PWM invertido con ATTiny10

0

En un ATTiny10 de 10MHz, el siguiente código genera el mismo PWM de 40kHz con 50% de trabajo en los pines 0 y 1:

DDRB = (1 << PB0) | (1 << PB1); //Output on PB0 and PB1
TCCR0A = (1 << COM0A0) | (1 << COM0B0); //Toggle OC0A and OC0B on compare match
TCCR0B = (1 << CS00) | (1 << WGM02); //Clear on compare, use unscaled clock
OCR0A = (1000000L /40000 / 2) - 1; //Overflow twice per 40kHz period
OCR0B = (1000000L /40000 / 2) - 1; //Overflow twice per 40kHz period

Quiero que el pin 1 esté exactamente invertido: ambos pines deben ser PWM 40kHz 50% de servicio, pero invertidos el uno del otro. ¿Cómo puedo lograr eso?

    
pregunta gregoiregentil

2 respuestas

1

Use el modo 14 de wavegen, configure COM0Ax a 0b10 y COM0Bx a 0b11, y ajuste ICR0 , OCR0A y OCR0B para dar 40kHz 50% DC.

    
respondido por el Ignacio Vazquez-Abrams
-1

La mejor manera de obtener la señal PWM invertida exacta es generar una señal con el pin MCU y luego usar un chip inversor externo para invertir lógicamente la señal. Un chip como un 74HC04 puede estar en orden.

    
respondido por el Michael Karas

Lea otras preguntas en las etiquetas