Ergebnis: Ausgabe einer PWM (Pulsweitenmodulation) an mehr als einem Pin des AVR-Mikrocontrollers und an mehreren Ports

Es waren nur drei Servos verfügbar, daher wird die tatsächliche Ausgabe nicht angezeigt. Wichtige Aspekte der Ausgabe an mehr als einen Pin sind folgende: - Stellen Sie sicher, dass die Pins, die das PWM ausgeben, für die Ausgabedatenrichtung eingestellt sind (d.h. DDRB = 0xFF für alle PORT B Pins Ausgabe) - 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 des 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 des Servos an diesem Pin eingestellt ist.



#include #include int main(void) { DDRA |= 0xFF; DDRB |= 0xFF; DDRD |= 0xFF; TCCR1A |= 1< 700 && TCNT1 < 2500) { if (TCNT1 >= 2200 && bit_is_set(PORTA,PINA0)) PORTA &= ~(1<= 900 && bit_is_set(PORTA,PINA1)) PORTA &= ~(1<= 1200 && bit_is_set(PORTA,PINA2)) PORTA &= ~(1<= 2000 && bit_is_set(PORTA,PINA3)) PORTA &= ~(1<= 2200 && bit_is_set(PORTA,PINA4)) PORTA &= ~(1<= 900 && bit_is_set(PORTA,PINA5)) PORTA &= ~(1<= 1200 && bit_is_set(PORTA,PINA6)) PORTA &= ~(1< 2000 && bit_is_set(PORTA,PINA7)) PORTA &= ~(1<= 2200 && bit_is_set(PORTB,PINB0)) PORTB &= ~(1<= 900 && bit_is_set(PORTB,PINB1)) PORTB &= ~(1<= 1200 && bit_is_set(PORTB,PINB2)) PORTB &= ~(1<= 2000 && bit_is_set(PORTB,PINB3)) PORTB &= ~(1<= 2200 && bit_is_set(PORTB,PINB4)) PORTB &= ~(1<= 900 && bit_is_set(PORTB,PINB5)) PORTB &= ~(1<= 1200 && bit_is_set(PORTB,PINB6)) PORTB &= ~(1< 2000 && bit_is_set(PORTB,PINB7)) PORTB &= ~(1<= 2200 && bit_is_set(PORTD,PIND0)) PORTD &= ~(1<= 900 && bit_is_set(PORTD,PIND1)) PORTD &= ~(1<= 1200 && bit_is_set(PORTD,PIND2)) PORTD &= ~(1<= 2000 && bit_is_set(PORTD,PIND3)) PORTD &= ~(1<= 2200 && bit_is_set(PORTD,PIND4)) PORTD &= ~(1<= 900 && bit_is_set(PORTD,PIND5)) PORTD &= ~(1<= 1200 && bit_is_set(PORTD,PIND6)) PORTD &= ~(1< 2000 && bit_is_set(PORTD,PIND7)) PORTD &= ~(1<
Zurück zum Blog

Hinterlasse einen Kommentar

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