Fade un LED usando PWM rápido e interrupciones en Arduino

0

Tengo un proyecto para hacer que un LED se ilumine durante 1 segundo, permanezca encendido durante 1 segundo, desaparezca durante 1 segundo y luego permanezca apagado durante 1 segundo, todo el proyecto debe hacerse con registros y con la ayuda de timer0 funcionalidad PWM rápida sin ninguna función (por ejemplo, analogWrite ).

Ya tengo una parte lógica del problema, sé cómo generar una interrupción en el timer0, pero no puedo entender la parte que se está desvaneciendo. ¿Cómo le doy un brillo específico al LED con registros?

Tal vez me esté perdiendo la documentación, no me importa si sugieres algo para leer primero y luego regresaste con preguntas.

    

1 respuesta

1

Si sabe cómo generar una interrupción en el temporizador 0, asumo que ya terminó las partes de configuración de los registros PWM rápidos. Según la documentación mencionada de @Chupo_cro, puede cambiar el brillo al cambiar el valor de OCR0A o OCR0B . es decir, su configuración estaba usando el temporizador 0 - A, y estaba en modo no invertido.

OCR0A =   0; //  0% duty cycle
OCR0A = 128; //50% duty cycle
OCR0A = 255; //100% duty cycle (since timer 0 is 8 bit)
    
respondido por el dpw

Lea otras preguntas en las etiquetas