Autor |
PWM mit AVR Suche nach: pwm (3615) |
|
|
|
|
BID = 368729
Humus Aus Forum ausgetreten
|
|
Moin,
hätte mal eine Frage wie das mit dem integrierten PWM bei den AVRs funktioniert.
Wie muss ich das in Assembler schreiben?
Steig da noch nicht so ganz durch!
Schon mal vielen dank! =)
Viele Grüße |
|
BID = 368813
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
|
Steht alles im Datenblatt.
Es gibt verschiedene Modi, u.a. die einfachste:
In das Vergleichsregister wird ein Wert geschrieben, ein Zähler zählt von 0 bis 255 (8 Bit) und vergleicht ständig mit dem Wert, der im Vergleichsregister steht.
Stimmen nun die beiden Werte überein, dann führt die PWM-Hardware ein Ereignis aus, z.b. wird der OC-Pin dabei gesetzt oder dabei gelöscht (je nach dem, ob invertierte oder nichtinvertierte PWM).
Beim Minimum wird dann der Pin wieder abgeschaltet. So erhält man Pulsweiten, die man mit einer Genauigkeit von 8 Bit auflösen kann.
Das ist nur eine Form der Pulsweitenmodulation, es gibt aber auch noch andere. Schau mal ins Datenbaltt, dort unter PWM nach den benötigten Register.
_________________
[ Diese Nachricht wurde geändert von: DonComi am 12 Sep 2006 15:15 ] |
|
BID = 369199
Humus Aus Forum ausgetreten
|
okay, dankeschön! Dann werde ich jetzt erst einmal datenblätter durchschauen.
|
BID = 369258
Jornbyte Moderator
Beiträge: 7170
|
Zitat :
| Dann werde ich jetzt erst einmal datenblätter durchschauen. |
Das sollte man vor dem Fragen machen.
_________________
mfg Jornbyte
Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.
|
BID = 369665
Megabug Stammposter
Beiträge: 411 Wohnort: Gelsenkirchen
|
Kurze Frage... kann man das PWM nicht auf normalen Ports des AVRs (bzw auch auf PICs) erzeugen? Man muss dann doch software seitig nur mehr schreiben, oder?
Hätte einer ein kleines Beispiel für mich für ein kleines Programm, welches das macht und man die PWM Frequenz mit 2 Tastern einstellen kann? Egal ob für PIC oder AVR. Basic oder C am liebsten.
Arbeite mit PIC gerade in der Schule. Möchte mir das alles mit dem PWM sachen besser vorstellen können.
Gruß
|
BID = 369724
DonComi Inventar
Beiträge: 8605 Wohnort: Amerika
|
Halloo,
Du kannst in einer Schleife immer von 0 bis z.b. 255 zählen und dann nach jeder Erhöhung um eins mit einem ert zw. 0 und 255 vergleichen. Ist der Wert gleich, dann setzt du z.b. einen Pin und mein Maximum (255) wird er wieder gelöscht. Das ganze läuft in einer Endlosschleife mit einer gewissen Frequenz. Wenn der Controller zu schnell ist, dann Warteroutinen einbauen.
Das ist aber nicht sooo dolle, da der µC permament mit der rzeugung der PWM beschäftig ist.
Deshalb, alsmöglich immer hardware-PWM nutzen.
_________________
|