Como ya han dicho otros, casi todos los desarrolladores de AVR seleccionan una frecuencia fija para cada aplicación y ejecutan el chip AVR en esa frecuencia fija.
Esta semana escribí un código que se ejecuta en un AVR que se ejecuta a 16 MHz fijos (que es bastante común),
pero genera dos salidas de frecuencia variable controladas independientemente por dos potes.
(Los potes están realmente conectados a otro microcontrolador, que lee los potes, y envía su posición a un cable serie RS485 de 400 pies al AVR UART).
Sin embargo, hay algunos desarrolladores AVR que varían la frecuencia de su chip AVR en tiempo de ejecución, como
Spritesmods (a) (b) ; cloudscapes (a) ;
K0LR (a) ; etc.
Usando un oscilador RC externo
Algunos AVR admiten una opción de "oscilador RC externo", que es extremadamente similar a un oscilador 555 RC: engancha una resistencia (como un potenciómetro) y un condensador directamente al AVR.
Al igual que el oscilador 555 RC, cuando giras el bote,
Cambia la resistencia R de la olla, lo que cambia la frecuencia.
"Application Note AVR051: configure y use el oscilador rc externo" (a) , (b)
Lamentablemente, muchos chips AVR populares no admiten una opción de "oscilador RC externo".
Incluso aquellos que lo hacen, la frecuencia está limitada al rango de 100 kHz - 12 MHz.
(El ADC no funciona bien en bajas frecuencias,
y la UART será difícil de usar si la frecuencia sigue cambiando).
conducir el AVR a alguna frecuencia generada en otro lugar
Si tiene alguna fuente de reloj que ya genera la frecuencia que desea,
puede conectar su salida al AVR y programar el AVR para usar la opción "Reloj externo".
Este enfoque funciona con cualquier AVR y cualquier frecuencia desde cero Hz (0 Hz) hasta 8 MHz.
(es decir, puede ir mucho más lento que el enfoque del "oscilador RC externo").
(El ADC no funciona bien en bajas frecuencias,
y la UART será difícil de usar si la frecuencia sigue cambiando).
Usted programa los bits de fusible AVR para usar la opción "Reloj externo" si alguna fuente externa (que oscila por sí misma) está impulsando una señal cuadrada en el pin de entrada del reloj AVR.
(Incluso si técnicamente ese reloj externo es un oscilador RC).
Este oscilador externo podría ser, por ejemplo, un Schmitt NAND 74HC132 y un capacitor y un potenciómetro, o un oscilador 555 con un capacitor y un potenciómetro, o una gran variedad de otros osciladores.