Bonjour,
je suis entrain d'écrire une interruption avec le cc5x mais au cours de la compilation il y a toujours cette erreur : " PORTB = seg[digits[dcurr]]; // affectation de valeur 7 segments
^------
Error[1] D:\digits.c 40 : FSR not saved/restored during interrupt 'interruption'
(Please read 'int16cxx.h') "
mon interruption c'est pour afficher les chiffres qui sont stockés dans le tableau "digits" et qui sera convertis en un mot binaire pour l'affecter a PORTB mais je crois que le compilateur ne veux pas des tableaux dans l'interruption.
est ce que quelqu'un peut m'aider s'il vous plais.Code:int digits[4]; int dcurr ; const char seg[10]={0b00111111,0b00000011,0b01101101,0b01100111,0b01010011,0b01110110,0b01111110,0b00100011,0b01111111,0b01110111}; long cntr ; #pragma origin 4 interrupt interruption (void) { int_save_registers if(T0IF) // timer 0 overflow ? { cntr++ ; // inc d'un compteur dcurr++ ; // digit d'aprés PORTB = 0 ; // digits eteints if(dcurr == 4) // derier digit ? { PORTC = 0b00000001 ; // allumer le 1er digit dcurr = 0 ; } else { PORTC <<= 1 ; //allumer le second digit } PORTB = seg[digits[dcurr]]; // affectation de valeur 7 segments T0IF = 0 ; //ok }
.
-----