Paso 3: El código
void pwm_init(void)
{
/ * usar pin OC1A como salida * /
DDRB = _BV(PB5);
/*
* claro OC1A compara partido
* set OC1A en el fondo, de modo de no invertir
* Fast PWM, 8 bits
*/
TCCR1A = _BV(COM1A1) | _BV(WGM10);
/*
* Fast PWM, 8 bits
* Prescaler: clk/1 = 8 MHz
* Frecuencia PWM = 8MHz / (255 + 1) = 31,25 kHz
*/
TCCR1B = _BV(WGM12) | _BV(CS10);
/ * establece el ciclo de trabajo inicial en cero * /
OCR1A = 0;
/ * Configuración Timer0 * /
TCCR0| = (1 << CS00);
TCNT0 = 0;
TIMSK| = (1 << TOIE0);
sample_count = 4;
SEI(); Habilitar interrupciones
}