Je crois que tout est dans le titre. Sachant que je viens de debuter la programmation des PIC, je souhaite utiliser le module timer0 afin de creer une interruption toutes les x secondes.
Jutilise le pic 16F690 dont voici le datasheet datasheet pic16f690
Les infos sur le timer sont page 83-85.
Jutilise mikroC pour programmer en C.
En gros je souhaite compter le nombre d'interruptions et allumer des leds sur le port A apres un certain nombre d'interruptions. Mais sans succes, dapres ce que le debugger mindique lors de lexecution la variable temp nest jamais incrementé, comme si il ny avait pas dinterruption.
De plus, comment calcule t-on le temps entre deux interruptions en fonction du prescaler et de l'horloge?
voici mon code:
void interrupt(void);
void init()
{
// interrupts
INTCON.F7=1; //1 = Enables all unmasked interrupts
INTCON.F6=0;
INTCON.F5=1; //1 = Enables the Timer0 interrupt
INTCON.F4=0;
INTCON.F3=0;
INTCON.F2=0; // timer0 flag (reset)
INTCON.F1=0;
INTCON.F0=0;
OPTION_REG.F7=0;
OPTION_REG.F6=0;
OPTION_REG.F5=0; //0 = Internal instruction cycle clock (FOSC/4)
OPTION_REG.F4=0;
OPTION_REG.F3=0; //0 = Prescaler is assigned to the Timer0 module
OPTION_REG.F2=1; //prescaler rate 1:256
OPTION_REG.F1=1;
OPTION_REG.F0=1;
}
void interrupt(void)
{
temp=temp+1;
INTCON.F2=0;
}
///////////////////////////////////////////////////////////////////////////////
//variables
double temp=0;
void main()
{
init();
if(temp>100)
{
PORTA = 0b00001111;
}
}
[/code]
Pouvez vous m'aider?
merci d'avance
Cédric