Bonjour,
je désire créer une interruption lorsque le Timer3 à fini de compter ou décompter.
j'ai réaliser un programme, mais lors de l'exécution celui-ci ne rentre pas dans ma routine d'interruption.
Je suis convaincu que j'ai mal configurer mes registres....
voici mon code :
y'a des chose un peu flou pour moi, le doc du PIC 18F45k20 par un peu dans tous les sens...Code:#pragma interrupt_level 1 //choix interrupt void interrupt ITTIMER3(){ if(TMR3IF){ TMR3IF = 0; //resset flag it if(RD1=1) RD5=0; /*DO!!!*/ if(RD1=0) RD5=1;} } void init(void) { __CONFIG(1, FCMDIS & IESODIS & RCIO); //oscillateur interne __CONFIG(2, BORDIS & BORV18 & PWRTEN & WDTDIS & WDTPS1); __CONFIG(3, CCP2RB3/*PWM out*/ & LPT1DIS & MCLRDIS & 0xFDFF); __CONFIG(4, DEBUGEN & XINSTDIS & LVPDIS & STVRDIS); __CONFIG(5, 0xFFFF); __CONFIG(6, 0xFFFF); __CONFIG(7, 0xFFFF); // port directions: 1=input, 0=output TRISB = 0b00001000; TRISA = 0b00000000; TRISC = 0b00000100; TRISD = 0b00000000; } void main(void){ int i; init(); T3CON = 0b100011000; // RD16=1; coinfig clock; prescale=8;TMR3CS=0:internal clock set; TMR3IE = 1; // IT enable on timer3 TMR3IF = 1; GIEH = 1; IPEN = 1; //it level enable TMR3H=0x0000; TMR3L=0x000F; //INTCON=0x; while(1){ RD7=1; } }
si il y a quelqu'un pour me déflouter ^^ ?....
merci d'avance
-----