¿Cómo puedo usar PWM en atmega16 con otros puertos (por ejemplo: PB0, PB1, PA0, etc.) y mostrar que el LED aparece y desaparece lentamente?
Intenté hacerlo, pero el LED solo se apaga, apaga y apaga, no se desvanece.
¿Cómo puedo usar PWM en atmega16 con otros puertos (por ejemplo: PB0, PB1, PA0, etc.) y mostrar que el LED aparece y desaparece lentamente?
Intenté hacerlo, pero el LED solo se apaga, apaga y apaga, no se desvanece.
PWM le da control sobre el brillo promedio del LED al variar el ciclo de trabajo. Esto no significa automáticamente que el LED se "apagará" o "se apagará". Esto significa que cuando cambie el ciclo de trabajo, el brillo del LED cambiará "instantáneamente" (bueno, no realmente al instante, pero se verá con una frecuencia PWM suficientemente alta). Si desea realizar un fundido de entrada o salida, deberá variar el ciclo de trabajo durante un período de tiempo. Tal vez podría hacer un bucle que se ejecute durante 1000 iteraciones, cada una aumentando o disminuyendo el ciclo de trabajo un poco y esperando 1 ms. Esto producirá un desvanecimiento de 1 segundo. Sin embargo, tal vez un desvanecimiento lineal no se vea tan bien, en lugar de actualizar el ciclo de trabajo directamente, puede incrementar una variable del acumulador y luego ejecutarla mediante una función matemática (por ejemplo, la función seno) para suavizar un poco. Creo que el parpadeo de atenuación estándar en la mayoría de las Mac es en realidad una especie de curva suave (posiblemente un seno o coseno, o quizás solo una parábola).