Bonsoir,
j'ai récupéré un code en C sur internet pour un microcontroleur PIC18F2550 qui permet de réaliser une sorte d'alarme, je n'ai pas mis le code en entier juste la partie que je ne comprends pas trop dans les interruptions,
pourquoi mettre des flags comme c'est fait ci dessous dans les test des interruptions et ne pas mettre le code directement dans l'interruption?
toutes les interruptions sont testé par des variables flag et passer au main? c'est plus optimisé?
et comment sait on dans le code que le timer déborde chaque 100 ms??
merci
Code:void interrupt() { // Débordement du Timer1 chaque 100 ms if (TMR1IF_bit) { TMR1IF_bit = 0; TMR1H = 0x3C; TMR1L = 0xB0; Count_S++; if(Count_S == 10) { Flag_S = 1; Count_S = 0; } } // Interruption déclenché sur la patte RB0 (Basculement en mode alarme) if( INTCON.INT0IF == 1) { Flag_RB0 = 1; INTCON.INT0IF = 0; } // Interruption déclenché sur la patte RB1 (Réglage des heure) if( INTCON3.INT1IF == 1) { Flag_RB1 = 1; INTCON3.INT1IF = 0; } // Interruption déclenché sur la patte RB2 (Réglage des minutes) if( INTCON3.INT2IF == 1) { Flag_RB2 = 1; INTCON3.INT2IF = 0; } // Interruption déclenché sur la patte RB4 if (INTCON.RBIF == 1) { if (LATB.F5 == 1) { Flag_RB5 = 1; INTCON.RBIF = 0; } }
-----