¿Lo entiendo correctamente de este hilo? ¿ Por qué algunos pines tienen signos `~` junto a sus números? , que los pines PWM generan una señal de onda cuadrada independientemente de lo que hace el código cargado en el chip después de iniciar la salida PWM? En otras palabras, si mi código contiene todo tipo de delay()
funciones que hacen una pausa más larga que el período de la señal PWM, la señal PWM aún se generará correctamente, ¿correcto?
Por otro lado, si decidiera implementar mi propio PWM en un pin digital cambiando el estado entre ALTO y BAJO en mi código a intervalos regulares, la presencia de otras llamadas en otras partes delay()
del código afectaría directamente mi capacidad de generar la señal PWM consistente deseada. ¿Es esto correcto? Espero que esta pregunta tenga sentido (un poco difícil de hacer la pregunta).
Entendiste bien. Los pines con el símbolo de tilde (~) son pines que están vinculados a un módulo PWM de hardware (es decir, un temporizador). Dado que es un módulo de hardware, es independiente de lo que haga su CPU. Como tal, si está atascado en un retraso, su PWM de hardware seguirá generando la señal de salida adecuada. Por otro lado, un PWM de software (uno que generaría con un cambio de pin manual) sería interrumpido por su retraso.
La mayoría de las veces, debería preferir hardware PWM sobre software PWM por muchas razones:
pkout
PORTB = 0b00000001;
, ¿eso también pasará por la CPU como si estuviera usando digitalWrite (1, ALTO) o sería tan eficiente como usar el puerto PWM? Supongo que también es ineficiente, ¿verdad?Mishyoshi
pkout