Étape 3: Le code
Sub pwm_init(void)
{
/ * Utilisez OC1A broches en sortie * /
DDRB = _BV(PB5) ;
/*
* effacer OC1A sur comparer match
* la valeur OC1A au fond, mode non inversé
* Rapide PWM, 8 bits
*/
TCCR1A = _BV(COM1A1) | _BV(WGM10) ;
/*
* Rapide PWM, 8 bits
* Prédiviseur : clk/1 = 8 MHz
* Fréquence PWM = 8MHz / (255 + 1) = 31,25 kHz
*/
TCCR1B = _BV(WGM12) | _BV(CS10) ;
/ * la valeur initiale de rapport cyclique à zéro * /
OCR1A = 0 ;
/ * Configuration Timer0 * /
TCCR0| = (1 << CS00) ;
TCNT0 = 0 ;
TIMSK| = (1 << TOIE0) ;
sample_count = 4 ;
SEI() ; Activer les interruptions
}