Bonjour,
J'ai écrit un début de code utilisant le Timer1 sur un PIC18F458 cadencé à 40 MHz, mais je n'arrive pas à déclencher l'interruption du timer...
Mon timer déborde au bout de 10000 impulsions d'horloge, donc ma Led devrait changer d'état tout les 500 ms... Mais rien ne se passe, j'ai pourtant suivi les divers exemples trouver sur internet, et dans le mode d'emploi du compilateur.
Code:#include <p18f458.h> #include <p18cxxx.h> #include "config_PIC.h" #include "config_PORT.h" double counttmp; void timer1_init(void){ T1CON = 0x05; TMR1H = 0xD8; TMR1L = 0xF0; PIR1bits.TMR1IF = 0; } //________________________________________________________________ void timer1_isr (void); #pragma code address_it=0x18 void low_interrupt (void){ _asm GOTO timer1_isr _endasm } #pragma code #pragma interrupt timer1_isr void timer1_isr(){ counttmp++; if(counttmp==10000){ counttmp=0; L_LED_C0=!P_LED_C0; PIR1bits.TMR1IF = 0; } } void main (){ counttmp = 0; timer1_init(); initPORT(); while (1){ L_LED_CPU = 1; } }
-----