Depende específicamente de qué compilador / biblioteca está utilizando para escribir el código AVR, pero en general, siempre que compile el código con las macros preprocesadoras adecuadas #define
'd para la velocidad de la CPU, debería bueno para ir.
Por ejemplo, en la documentación de avr-libc , la funciones de retardo y Las velocidades en baudios de UART dependen de la definición de la macro F_CPU
. La forma correcta de establecer la velocidad de la CPU en tal caso es:
#define F_CPU 1000000UL // 1 MHz, 16MHz is 16000000UL
#include <util/delay.h> // Delay functions library, delay values based on F_CPU.
#include <util/setbaud.h> // Automatically sets UART baud rate registers based on F_CPU.
También he notado el uso de #define FOSC
para configurar la velocidad de la CPU en algunas arquitecturas / bibliotecas (de la misma manera que anteriormente, por lo que también podría seguir con #define FOSC F_CPU
). Por este motivo, tenga en cuenta que la macro en particular que necesita definir / redefinir puede diferir.
Si está utilizando un entorno de desarrollo integrado, la configuración de la frecuencia de reloj en la configuración de su proyecto puede definir automáticamente las variables anteriores durante el tiempo de compilación. En ese caso, no es necesario realizar ninguna configuración al código, a menos que su código esté utilizando la macro del preprocesador incorrecta (o el valor codificado) para la frecuencia del procesador. Para estar seguro, verificaré qué macro está configurando el IDE y me aseguraré de que su código use los valores correctos.