Hallo zusammen, ich hätte eine grundsätzliche Frage zur PWM an einem AVR-Port. Wie kann ich denn, wenn auf einem AVR prinzipiell nur serielle Programmabläufe möglich sind, auf einen Portausgang zur Dimmung einer LED-Hintergrundbeleuchtung ein PWM-Signal parallel laufen lassen, während das Programm darauf normal weiterläuft? Durch welchen Kniff kann ich denn das umsetzten? Wäre sehr dankbar für ein Stichwort. Danke, Michael
Interrupt, Timer, DMA. Letzeres haben aber nur die XMEGA IIRC.
Jim M. schrieb: > Interrupt, Timer, DMA. Wozu bitte DMA und Interrupt? Hardware PWM mit Timer ist das Stichwort. Gruß, Norbert
Gast
#5555681
Stichworte: Timer, Interrupt, Timer-Interrupt, Multitasking,...... Auf deinem PC kannst Du ja auch surfen, gleichzeitig ein Video gucken und in einem anderen Fenster zusätzlich skypen..... Aber du willst ja nur Stichworte....
Gast
#5555690
Hebi19 schrieb: > Stichworte: > Timer, Interrupt, Timer-Interrupt, Multitasking,...... Zu viele.. Stichwort: Timer Ist voll ausreichend. Im Datenblatt ist alles dazu nötige beschrieben.
Hebi19 schrieb: > Stichworte: > Timer, Interrupt, Timer-Interrupt, Multitasking,...... > > Auf deinem PC kannst Du ja auch surfen, gleichzeitig ein Video gucken > und in einem anderen Fenster zusätzlich skypen..... Das wäre Soft-PWM. @Michael: Das wäre quasi-parallel, der µC macht die Sachen zwar immer noch hintereinander aber so schnell, daß es wie gleichzeitig aussieht. Das geht auch ganz ohne Interrupt. Mit Interrupt unterbricht er eben immer ganz kurz das Hauptprogramm, um die LED an- oder auszuschalten. Noch besser ist Hardware PWM, da macht der Timer das ganz alleine, wenn er entsprechend eingestellt ist. Du wirfst ihm nur zu beliebiger Zeit den gewünschten Dimmwert vor die Füsse, brauchst Dich im Hauptprogramm um sonst nichts zu kümmern. Gruß, Norbert
Norbert S. schrieb: > Noch besser ist Hardware PWM, da macht der Timer das ganz alleine, wenn > er entsprechend eingestellt ist. Du wirfst ihm nur zu beliebiger Zeit > den gewünschten Dimmwert vor die Füsse, brauchst Dich im Hauptprogramm > um sonst nichts zu kümmern. Der HW-PWM läuft auf dem Atmega328 dann wahrscheinlich nur auf bestimmen Pins, oder?
Ja. Wie bei allen AVR8. Das Datenblatt musst Du aber jetzt schon selber lesen. Gruß, Norbert
Gast
#5555766
Ja, bei µCs guckt man erst, was man an speziellen HW-Funktionen braucht und an welchen Anschlüssen die verfügbar sind. Oft gibt es noch Alternativen: Anderer Timer, inverser Ablauf, inverse Pegel... DANN entwirft man den Schaltplan. ;-) Wer damit nicht zurecht kommt, sollte die Finger von den minimalisierten Helferlein lassen.
Gast
#5555876
Gast
#5555889
PWM Signale erzeugst du am Besten mit einem Timer. Dadurch ist sichergestellt, dass die Signale sauber, ohne Aussetzer sind. In meinem Buch http://stefanfrings.de/mikrocontroller_buch/ Band 3 Kapitel 9 demonstriere ich anhand einer 7-Segment Anzeige, warum und wie man Multitasking auf Mikrocontroller implementieren kann. Aber beschäftige zuerst mit dem PWM Timer, das wird Dich beim aktuellen Projekt sicher am ehesten weiter bringen.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.