Estoy tratando de configurar Timer0 en un ATTiny45 usando el núcleo arduino-tiny. TIM0_COMPA_vect funciona bien para los preescaladores 1,8 y 64, pero 256 y 1024 hacen que el ISR no se dispare. Estoy ejecutando el chip a 1MHz.
El código de configuración es el siguiente:
void setup()
{
ADCSRA &= ~(1<<ADEN); //Disable ADC
ACSR = (1<<ACD); //Disable the analog comparator
DIDR0 = 0x3F; //Disable digital input buffers on all ADC0-ADC5 pins.
DDRB |= _BV(PINB0); // Set Pin 5 (PB0) as output;
PORTB &= ~_BV(PINB0); //Set it to low, just to be safe
//cli();
TCCR0A |= _BV(WGM01); //CTC Mode
TCCR0B |= (_BV(CS02) | _BV(CS00)); //Prescale 1024
TIMSK |= _BV(OCIE0A); //enable CTC interrupt
OCR0A = 243;
sei();
}
los fusibles son:
low_fuses=0x62
high_fuses=0xD7
extended_fuses=0xFF
¿Alguna idea sobre por qué este podría ser el caso?
Actualización: Los precalentadores / 256 y / 1024 no solo funcionan para COMPA o COMPB, sino que tampoco funcionan para el ISR de desbordamiento. Realmente no lo entiendo ya que, de acuerdo con la tabla 11-6 en Hoja de datos ATTinyx5 , soporta preescaladores / 1, / 8, / 64, / 256 y / 1024 a través del registro TCCR0B.