Re-Bonsoir,
Voila, j'essaye de mettre en place un interruption sur ma carte équipé d'un PIC18F458, que je programme avec MPLabX et compile avec XC8.
Seulement, voila, rien ne marche, et j'ai du mal à trouver à quel niveau.. J'ai déjà mis en place le même code dans des autres PIC et tout allait bien.
A force de tout relire, je doit passer a coté de quelque chose, mais je ne voit pas ou =)
(J'ai tester un autre PIC, et c'est pareil)
main.c
user.hCode:#include <xc.h> /* XC8 General Include File */ #include <stdint.h> /* For uint8_t definition */ #include <stdbool.h> /* For true/false definition */ #include "system.h" /* System funct/params, like osc/peripheral config */ #include "user.h" /* User funct/params, such as InitApp */ int count; int tps_fonc; void interrupt isr(void) { if(TMR1IF==1) { TMR1H = 0xD8; TMR1L = 0xF0; TMR1IF = 0; count++; tps_fonc++; if(count==500) { L_LED_1 = !P_LED_1; L_LED_2 = !P_LED_2; L_LED_3 = !P_LED_3; count = 0; } } } void InitTimer1(void) { INTCON = 0xC0; T1CON = 0x01; PIE1 = 0x01; TMR1H = 0xD8; TMR1L = 0xF0; TMR1IF = 0; } void main(void) { InitApp(); InitTimer1(); while(1) { } }
user.cCode:#ifndef USER_H #define USER_H #include <xc.h> #include <stdint.h> /* For uint8_t definition */ #include <stdbool.h> /* For true/false definition */ #define D_LED_1 TRISEbits.TRISE0 #define P_LED_1 PORTEbits.RE0 #define L_LED_1 LATEbits.LATE0 #define D_LED_2 TRISEbits.TRISE1 #define P_LED_2 PORTEbits.RE1 #define L_LED_2 LATEbits.LATE1 #define D_LED_3 TRISEbits.TRISE2 #define P_LED_3 PORTEbits.RE2 #define L_LED_3 LATEbits.LATE2 #define INPUT 1 #define OUTPUT 0 #define ON 1 #define OFF 0 void InitApp(void); /* I/O and Peripheral Initialization */ #endif
Thanks !Code:#include <xc.h> /* XC8 General Include File */ #include <stdint.h> /* For uint8_t definition */ #include <stdbool.h> /* For true/false definition */ #include "user.h" void InitApp(void) { ADCON1 = 0x00000110; D_LED_1 = OUTPUT; L_LED_1 = OFF; D_LED_2 = OUTPUT; L_LED_2 = ON; D_LED_3 = OUTPUT; L_LED_3 = ON; }
-----