J'ai un problème pour utiliser le Timer2 de l'atmega8 en PWM.
Voici le code C que j'utilise:
- Code: Tout sélectionner
#include <avr/io.h>
#include <avr/interrupt.h>
uint8_t val;
ISR(TIMER2_OVF_vect)
{
val=1;
}
int main(void)
{
val = 0;
DDRB = _BV(PB3);
TCCR2 = _BV(WGM20) | _BV(COM21) | _BV(CS20);
TCNT2 = 0;
TIMSK = _BV(TOIE2);
sei();
while (1) {};
return 0;
}
Le problème c'est que l'interruption ne déclenche jamais. Lorsque je débug je vois bien le compteur TCNT2 evolué, le problème c'est qu'il compte de 2 en 2 ??!! et ne repasse jamais à 0 donc l'interruption ne déclenche pas.
Si vous avez des explications...



