TP 2 Enonc 13082013 JCLPMD 1 Objectif Grer
TP 2 Enoncé 13/08/2013 JC/LP/MD 1
Objectif • • • Gérer la liaison série en polling Envoi d’un caractère § au démarrage Faire l’écho des caractères entrés Ecrire un programme d envoi d’une chaine de caractères Ecrire un programme de conversion binaire ->ASCCI hexa Ecrire un programme de conversion binaire ->ASCCI décimal 13/08/2013 JC/LP/MD 2
Travail à effectuer • Etudier le chapitre e. SCI dans le user manual • Etudier le schéma des cartes CPU et Serial pour déterminer qu’elle liaison (A, B ou C) est utilisée • Ecrire une fonction Init pour programmer le SIU et initialiser la liaison série (9600 bauds, 8 bits data , pas de parité, 1 stop) la clock est à 30 MHz • Ecrire une fonction envoi d’un caractère • Ecrire une fonction réception d’un caractère • Ecrire le programme d’envoi d’une chaine de caractère • Ecrire les programmes de conversion 13/08/2013 JC/LP/MD 3
Remarque • Le registre de status du serial n’est pas reseté lorsque l’on charge un caractère dans le transmit ou lorsqu’on lit un caractère dans le receive il faut donc faire cette opération par logiciel • Deux solutions possibles: ex pour le receive en C on fait le reset en chargeant le registre complet (. R) on fait le reset en positionnant le bit (. B. RDFR) • Une seule solution fonctionne correctement: pourquoi? Regarder le code assembleur généré comment faudrait-il modifier le compilateur pour que cela fonctionne dans tous les cas 13/08/2013 JC/LP/MD 4
Remarque • Pour faire le reset des flags TDRE(Tx. Rdy) et RDRF Rx. Rdy deux méthodes existent • Exemple pout TDRE méthode 1 écriture du caractère dans le buffer transmit reset du Flag méthode 2 reset du Flag écriture du caractère dans le buffer transmit • Une seule méthode fonctionne en pas à pas pourquoi? 13/08/2013 JC/LP/MD 5
Registres du SCI a étudier • • CR 1 CR 2 SR DR • Remarque ne pas oublier les registres du SIU pour le transmit en sortie et le receive en entrée 13/08/2013 JC/LP/MD 6
- Slides: 6