Modifications

Aller à : navigation, rechercher

USART ATmega328P - Programmation

7 octets supprimés, 1 novembre 2021 à 02:21
aucun résumé de modification
<br/>(à compiler avec avr-gcc, le compilateur gcc dédiée au microcontrôleurs d'architecture AVR, et le téléverser dans le circuit intégré avec avrdude par exemple)
 <br/>Ci-dessus, au début les directives pré-processeur des pointeurs des adresses des registres qui nous intéressent (voir [https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf fiche technique de l'ATmega328P]), également puis le vecteur d'interruption pour RXD, puis la définition d'une fonction générique d'interruption.
<br/>Une fonction startUsart permet de démarrer l'USART avec le choix du baudrate (paramètre FREQUENCY), une fonction readUsart permet de dépiler ce qui arrive sur RXD, une fonction writeUsart permet d'envoyer des données sur TXD, et une fonction d'interruption (_INTERRUPT_JUMP) avec le bon vecteur d'interruption (_USART_RX) est exécutée lorsque des trames arrivent sur RXD (plus précisément à la fin d'un bit de stop).
<br/>Mais il est tout à fait possible d'aller plus vite, en effet la limite de l'ATmega328P est 2M bauds/s, vous pouvez donc remplacer 9600 par 2000000, la durée est donc maintenant de :
<br/>'''1000000 / (2000000 / 10) = 5 µs'''
<br/>Supposons une liaison RS232 à 115200 bauds/s, la durée est donc maintenant de :
59
modifications

Menu de navigation