Diferentes ondas cuadradas de un microcontrolador

Estoy haciendo un proyecto y necesito el microcontrolador (ATmega328) para hacer estas dos cosas:

  • Genere una onda rectangular para filtrar y obtenga un voltaje de CC (que varía linealmente con el ciclo de trabajo)
  • Generar una onda cuadrada (ciclo de trabajo del 50%) con un período determinado

El micro leerá sus pines de entrada constantemente porque el voltaje de CC y el período necesario pueden cambiar en cualquier momento.

Había pensado en hacer el primero con PWM y el segundo configurar manualmente un pin de salida o borrarlo, contando el período con un temporizador. Sin embargo, mi pregunta es: ¿ se pueden hacer estas dos cosas juntas?

Estoy pensando que en el código, el microcontrolador podrá seguir una rutina a la vez. Entonces, ¿cómo podría generar estas dos ondas simultáneamente (si es posible)? Si se puede hacer, ¿se podrían usar dos salidas PWM diferentes para generar dos señales diferentes en lugar de usar un temporizador y generar la segunda manualmente?

Respuestas (1)

Cada pin OCnx del ATmega328 puede generar su propia forma de onda PWM independiente. Además, cada temporizador ("n") puede tener su propia frecuencia y/o fase. Además , el ATmega328 PB tiene un pin que puede generar una forma de onda que es una modulación de dos formas de onda generadas a partir de temporizadores separados.

Dado que dice "el voltaje de CC y el período necesario pueden cambiar en cualquier momento", lea la hoja de datos cuidadosamente para averiguar cuándo puede cambiar de manera segura los valores que se utilizan para generar las formas de onda. Si los valores se cambian en el momento equivocado, la forma de onda puede fallar, brindándole una señal que no tiene un 50% de CC.

Hola Ignacio, gracias por tu respuesta. Entonces, ¿las dos señales se pueden generar simultáneamente ? Y con respecto a lo último que dijiste, no lo entendí. ¿Por qué dices que puede haber un momento en que sería incorrecto cambiar los valores?
Eche un vistazo a los diagramas de tiempo en las secciones de temporizador de la hoja de datos, así como a la tabla de selección de generador de ondas de la subsección de descripción de registro de la misma.