Bonsoir, je recherche la méthode afin de faire fonctionner l'interruption UART.
Le projet étant de recevoir des informations via un module bluetooth j'ai trouvé sur le net :
ISR(USART_RX_vect) mais je n'arrive pas a comprendre comment le faire fonctionner. Quelqu'un pourrais m'aider?
Si tu écris toi-même une routine d'interruption il te faudra un buffer, alimenté par l'ISR.
Et dans l'application il te faudra une routine read(), et éventuellement une routine available().
Afin de t'éviter de réinventer la roue et aussi de longues séances de test.
Je connais un seul cas où l'écriture d'une routine ISR spéciale est intéressante, le cas d'un protocole série.
Les caractères sont reçus dans la routine ISR.
Le checksum est calculé dans la routine ISR.
L'acquittement ACK ou NACK est renvoyé dans la routine ISR.
La trame est mise à disposition de l'application seulement si elle est OK.
Sous Linux les protocoles série du genre SLIP, PPP, etc. sont écrits ainsi.
On parle alors de line discipline. Il s'agit d'un pseudo-driver qui vient se plugger sur le driver série standard TTY à l'aide d'un appel IOCTL.
On utilise aussi une line discipline dans le cas où le driver TTY standard est trop lourd, car il effectue pas mal de traitements liés aux terminaux. On vient donc brancher un pseudo-driver minimaliste qui a des performances plus élevées.
Mais la classe Serial ARDUINO est trop simple pour justifier ce genre de chose.