avr-gcc _delay_ms los tiempos están desactivados; ¿ISP a quien culpar?

2

Acabo de crear un AVRISP con un viejo Arduino Nano (ATmega328p), y traté de instalar un simple programa de parpadeo en un ATmega328 (no picopower). La primera vez que actualicé el programa, todo funcionó a la perfección: los intervalos de 1000 ms entre encendido y 1000 ms fueron los que esperaba. Sin embargo, cambié el intervalo de apagado a 100 ms y, de repente, el período fue de casi 9 segundos en total: aproximadamente 8 segundos y menos .8 segundos. La actualización de los intervalos de encendido y apagado de 1000ms originales también resultó en un período prolongado.

Estoy usando Makefile desde un tutorial de parpadeo simple ; Lo único que he cambiado es la designación de puerto y MCU. Teniendo en cuenta eso, creo que el problema está en mi ISP ... pero, ¿qué podría causar un éxito inicial y luego un fallo repetido? Si necesita más información (encabezado o volcado hexadecimal, etc.), avíseme y estaré encantado de atenderle.

    
pregunta TSL

1 respuesta

2

El problema es que su definición de F_CPU no coincide con el hardware. En los MCU recién llegados de Atmel, el fusible CKDIV8 (que divide el reloj de la CPU por 8) está programado, así que asegúrese de no programarlo si es necesario, si aún no lo ha hecho.

    
respondido por el Ignacio Vazquez-Abrams

Lea otras preguntas en las etiquetas