Une petite question, qui me tourmente, faut-t-il effacer le flash d’interruption sur l'usart, même si on n'a pas activer les interruptions ?
J'ai trouvé ça dans la datsheet :
bit 5 = RC1IF: EUSART1 Receive Interrupt Flag bit
1 = The EUSART1 receive buffer, RCREG1, is full (cleared when RCREG1 is read)
0 = The EUSART1 receive buffer is empty
Il ne parle pas d'effacer le flash d'interruption, il faut juste lire le registre RCREG1, (j'ai bien précisé que les interruptions son couper)
Est ce que ça suffit d'après vous ?
Car dans la pratique, pour savoir si un caractère est reçu on fait comme ceci, (test du flash d'interruption)
Code : Tout sélectionner
btfss PIR1,RC1IF ; caractère reçu ?
bra re_usart_1 ; non
; oui
Hors RC1IF fait parti du flash d'interruption qu'il faut effacer quand ont sort de l'interruption (c'est pas mon cas)
Code : Tout sélectionner
btfsc PIR1,RC1IF
bcf PIR1,RC1IF ; effacer le flag d'interruption


paulfjujo et satinas pour votre intervention