Allez un dernier cas pour la soirée .
Dans mon projet Horloge 2020, j'ai besoin de la reception UART
pour recevoir des messages ou la remise à l'heure RTC ou autre commandes ...
j'utilise donc l'interruption RX ...
Je m'apercois que mon interruption ne marche qu'une fois seulement !
apres avoir lancé mon programme
je peux par exemple remettre à l'heure et date ma RTC DS3231 en envoyant
U;JJ;MM;AA;HH;MM;JS;#
mais une commande suivante ne gère AUCUNE interrupt RX !! ??
je le vois bien, que l'interrupt RX ne s'arme pas, car j'ai rajouté un
TXREG='*'; .. etoile sur ecran = IT RX OK
Apres avoir bien verfié que RC1IE_bit et GIE_Bit etaient armés..
Code : Tout sélectionner
if (( RC1IF_bit==1) && (RC1IE_bit==1) )
{
c1=RCREG1;
/ TXREG1='*';
... etc ...
j'ai cherché longtemps, et pourtant j'avais déja recontré ce cas là !
en remontant dans mes archives j'ai fini par trouver le cas K
usage d'interrupt HIG level et Interrupt LOW Level (pour tempos avec timer3)
j'avais laissé trainé IPEN_bit=1 ; <- il fallait mettre IPEN_bit=0 !
car dans ce programme je gere toutes les IT en niveau HIGH
vecteur 0x08
Encore une fois , un montage qui tombe en marche et ne se releve pas !
Avec IPEN_bit=0; tout est OK
(avec en plus IT TImer2 et IT RB0 )