Paso 3: Configurar el PWM en el MCU
En el video, hablamos acerca de dos niveles, utilizados el módulo de temporizador/contador: el valor superior y el valor de comparación. Ambas son importantes en la generación de la señal PWM que desee.
Pero para activar la salida PWM de tu ATmega168 en primer lugar, tenemos que crear unos registros. En primer lugar, seleccionamos el modo Fast PWM con OCR1A como el valor superior, que nos permite fijar arbitrariamente la frecuencia de iniciar un nuevo impulso.
Luego, ponemos el reloj a correr con una previa División de 8, que significa que el contador incrementará en 1 cada 8 /(14745600 Hz) = 542 nanosegundos. Desde que tenemos registros de 16 bits para este temporizador, esto significa que podemos fijar nuestro general período de señal a ser tan alta como 36 * 542ns = 65536 milisegundos. Si utilizamos un mayor número de división, podríamos hacer nuestros impulsos más lejos aparte (que no ayuda en esta situación), y perderíamos la resolución. Si utilizamos un número menor de división (como 1), no podríamos hacer nuestros pulsos de al menos 16 milisegundos aparte, como nuestro servo espera.
Por último, establecemos el modo de comparar la salida para una salida, que se describe en nuestro video PWM "sin inversión". También configuramos el pin PB2 sea un pin de salida--no se muestra aquí, pero es en el código.
Haga clic para ampliar estas fotos de las páginas 132-134 de la hoja de datos del ATmega168, con nuestra selección de valor de registro destacados: