Problema al cambiar la frecuencia del reloj del sistema

Tengo un ATtiny85 y estoy tratando de configurar el reloj a 8 MHz. He leído la hoja de datos y algunas discusiones sobre cómo hacer esto, pero no tengo suerte para que funcione. He incluido mi código y cualquier ayuda será muy apreciada.

#include <avr/io.h>
#include <avr/interrupt.h>


int main(void)
{
    cli();
    CLKPR |= 1<<CLKPCE;
    CLKPR |= 0;
    sei();

    DDRB |= 1<<PINB1 | 1<<PINB0;

    TCCR0A |= 1<<WGM00 | 1<<WGM01 | 1<<COM0B0 | 1<<COM0B1;
    TCCR0B |= 1<<CS00;
    OCR0B = 240;

    TCCR1 |= 1<<PWM1A | 1<<COM1A0 | 1<<CS13 | 1<<CS12 | 1<<CS11 | 1<<CS10; 
    OCR1C = 255; 
    OCR1A = 127;

    while (1)
    {
    }
}

No tengo un alcance, por lo que no puedo determinar cuál es la frecuencia del Timer0, pero sé que el Timer1 está funcionando a alrededor de 61 Hz (prescaler = CK/16384) porque cronometré el parpadeo de un LED. Eso significaría que la CK todavía está en 1 MHz. No estoy seguro de lo que estoy haciendo mal aquí.

Respuestas (1)

Obviamente me di cuenta de lo que estaba haciendo mal después de publicar una pregunta. Los siguientes cambios lo arreglaron.

CLKPR = 0b10000000;
CLKPR = 0;
#include <avr/power.h> clock_prescale_set(clock_div_1);