bonjour,
Je tente actuellement de faire un programme sur base d'un MC9S12 de freescale.
Le but de ma manip est d'utiliser une carte mémoire.
j'ai créé les routines d'écriture et de lecture de la carte mémoire et elle fonctionnent.
Je souhaite utiliser la liaison série du micro (en y connectant un FTDI 232BM pour l'adaptation USB), j'utilise des routines fournis par Freescale et compatible avec les fonctions printf() et scanf(), cela fonctionne bien.
Donc en fait j'ai réussi à dévelloper les fonctions séparément, maintenant je souhaite commander la mise en marche (et l'arrêt) de la lecture de la carte mémoire par la liaison série mais je ne voit pas bien comment procéder
Car si je fait scanf() le micro va attendre jusqu'a ce que une information soit reçut, donc le micro n'effectuera plus la tâche de lecture de carte mémoire.
j'ai pensé à utiliser les interruptions, mais je ne vois pas trop comment.
Est-ce que quelqu'un à une idée sur l'architecture à mettre en place, pour pouvoir gérer deux tâche en même temps: - l'une s'occupe de la liaison série et l'autre de la lecture de la carte mémoire.
MERCI de vos avis!!!
organisation d'un programme
Modérateur : Modérateur
-
- Administrateur
- Messages : 2328
- Inscription : 23 sept. 2003 19:14
- Localisation : Strasbourg
- Contact :
Salut,
Ce qui donne :
PC : RTS = 1 // le PC prévient qu'il veut envoyer des données.
µC : CTS = 1 // l'interruption se déclanche CTS=1 (Clear To Send) donc exécution de scanf.
PC : TX = données et RTS = 0 // le PC envoie les données
µC : RX = données et CTS =0 // le µC récupère les données avec le scanf et sort de l'interruption.
a+
JP
Je pense à la même chose une interruption du µC qui se déclanche sur un changement d'état d'une ligne d’interruption de la liaison RS232 comme RTS (Request To Send).j'ai pensé à utiliser les interruptions, mais je ne vois pas trop comment.
Ce qui donne :
PC : RTS = 1 // le PC prévient qu'il veut envoyer des données.
µC : CTS = 1 // l'interruption se déclanche CTS=1 (Clear To Send) donc exécution de scanf.
PC : TX = données et RTS = 0 // le PC envoie les données
µC : RX = données et CTS =0 // le µC récupère les données avec le scanf et sort de l'interruption.
a+
JP
Ca clignote !!!!