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
Jim M. schrieb: > Interrupt, Timer, DMA. Wozu bitte DMA und Interrupt? Hardware PWM mit Timer ist das Stichwort. Gruß, Norbert
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....
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
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.
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.