Hello,
Je tente de faire communiquer 2 MCU (dont 1 PIC18F16K20) de manière asynchrone à 9600 bauds.
coté PIC, l'EUSART est configuré et la transmission (TX) s'effectue correctement. Le MCU comprend parfaitement les instructions du PIC.
Une interruption (high) est déclenchée si PIR1bits.RCIF vient à 1 (détection RX).
Dans le gestionnaire de cette interruption, je lis RCREG pour vider le buffer d'entrée de l'EUSART, cependant RCSTA.OERR s'active presque immédiatement après les premiers caractères reçus et bloque donc la suite de la lecture.
Comment écrire correctement la routine de gestion d'interruption RX afin d'éviter ces erreurs de dépassement du buffer (qui je pense peut contenir seulement 2 caractères au maximum)?
J'ai tenté d'augmenter la vitesse de fonctionnement du pic au maximum (16Mhz avec l'oscillateur interne), car j'ai cru que celui ci n'était pas assez rapide... cela ne solutionne pas le problème d'overrun.
Auriez vous des exemples fonctionnels de réception eusart asynchrone sur PIC18 (C18), ou bien quelques idées pour debbuger ces erreurs d'implementation de communication?
Merciiiiiiii d'avance
-----