Ergebnis: PWM (Pulsweitenmodulation) an mehr als einem Pin des AVR-Mikrocontrollers ausgeben

Wichtige Aspekte bei der Ausgabe an mehr als einen Pin sind folgende: - Stellen Sie sicher, dass die Pins, die PWM ausgeben sollen, auf die Ausgabedatenrichtung eingestellt sind (d.h. DDRB = 0xFF für alle PORT B Pins als Ausgang). - Stellen Sie sicher, dass die Pins in der Interrupt-Service-Routine (ISR) auf High gesetzt werden. - Fügen Sie eine weitere Zeile in den Codeblock der if (TCNT1>=800 && TCNT1<=2400) ein und stellen Sie sicher, dass der Pin den korrekten Ausgangspin widerspiegelt und die Zahl nach dem TCNT1 >= Wert korrekt für die Position dieses Servos an diesem Pin eingestellt ist.



#include #include int main(void) { DDRA = 0xFF; DDRB = 0xFF; TCCR1A |= 1<= 2000 && bit_is_set(PORTB, PINB0)) PORTB &= ~(1<= 1000 && bit_is_set(PORTB, PINB1)) PORTB &= ~(1<= 1500 && bit_is_set(PORTB, PINB2)) PORTB &= ~(1<= 800 && bit_is_set(PORTB, PINB3)) PORTB &= ~(1<= 2300 && bit_is_set(PORTA, PINA0)) PORTA &= ~(1<= 1390 && bit_is_set(PORTA, PINA1)) PORTA &= ~(1<= 1800 && bit_is_set(PORTA, PINA2)) PORTA &= ~(1<= 1850 && bit_is_set(PORTA, PINA3)) PORTA &= ~(1<
Zurück zum Blog

Hinterlasse einen Kommentar

Bitte beachte, dass Kommentare vor der Veröffentlichung freigegeben werden müssen.