Tengo un ATMEGA8A-PU con un oscilador de cristal de 8Mhz (T8.000 es 8Mhz, ¿verdad?) y el siguiente código C:
#define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>
int main(void) {
DDRC = 0b00100000;
while(1) {
PORTC ^= 1 << PORTC5;
_delay_ms(1000);
}
return 0;
}
Entonces, solo un código simple, que enciende y apaga el LED cada segundo.
Pero cuando escribo este programa en el controlador, el LED se enciende / apaga después de unos 8 segundos. Cuando sustituyo F_CPU a 1000000UL, cambia casi cada segundo.
Así que pensé, es un problema con los bits de fusible, pero están configurados en F1 (bajo) y D9 (alto), lo que me parece bien.
¿Alguien que tenga una idea de cómo obtengo los 8Mhz completos?