Estoy aprendiendo a usar un Attiny84. He generado una señal pwm rápida. Me las arreglé para entender cómo hacer esto:
#include <avr/io.h>
int main(void)
{
// setup timer0
TCCR0B |= _BV(CS00); // use clk_i/O without prescalers as clock source.
// also enables TIMER0
// set fast PWM mode
TCCR0A |= _BV(WGM01) | _BV(WGM00); // Mode 3
TCCR0A |= _BV(COM0A1) | _BV(COM0A0); // set OC0A on compare match, clear on BOTTOM
OCR0A = 0xff / 2; // 50% PWM
// set PB2 as output. This should enable OC0A
DDRB |= _BV(PB2);
for (;;) {
}
}
Sin embargo, no entiendo por qué solo tengo ~ 30kHz en el alcance. Deshabilité el fusible CKDIV8 y configuré mi CKSEL a "Calibrado RC Oscilador Interno 8MHz".
Pensé que podía tener al menos 8MHz de frecuencia PWM. No puedo encontrar en la documentación cómo se relacionan clk_i / o y clk_cpu. ¿Hay alguna manera de obtener una frecuencia PWM más alta?
N.B .: No necesito tener una frecuencia PWM en particular, solo estoy probando el chip y tratando de entender sus límites.