Ergebnis: Ausgabe eines PWM-Signals (Pulsweitenmodulation) an jedem beliebigen Pin des AVR-Mikrocontrollers

In diesem Programm werden Interrupts verwendet, um jedes Mal einen Interrupt zu liefern, wenn der PWM-Zähler den oberen Wert in ICR1 (Input Capture Register 1) erreicht. Innerhalb der ISR (Interrupt Service Routine) werden alle Pins, die das PWM-Signal ausgeben sollen, auf High gesetzt. Dies dient dazu, alle Pins als Impuls zu starten. Wenn der Timer die gewünschte Breite erreicht, geht dieser einzelne Pin auf Low. Dabei wird das TCNT1-Register verwendet, um die Zählwerte zu bestimmen. Um den Interrupt für den Timer zu aktivieren, wird das TIMSK1 (Timer Mask) OCIE1A (Output Compare Interrupt Enable 1A)-Bit gesetzt. Das Oszilloskop wird auch verwendet, um die PWM-Ausgabe am ausgewählten Pin anzuzeigen.



Zurück zum Blog

Hinterlasse einen Kommentar

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