Hallo apfelwolle,
die Aussage
Ich kann mit PWM ja einen Port in der Ausgangsspannung regeln?
ist nicht ganz korrekt. Die Spannung eines pulsweitenmodulierten Ausgangs ist immer GND für LOW und z.B. +5V für High. Die Signale sind und bleiben Digital. Wenn Du unterschiedliche Spannungen erzeugen möchtest so benötigst Du externe Peripherie, z.B. einen nachgeschalteten RC-Filter.
Es ist aber richtig, dass mittels PWM ein Motor gesteuert oder auch die Helligkeit einer LED geändert werden kann.
Bei der Puls-Weiten-Modulation (PWM) wird ein digitales Ausgangssignal erzeugt, dessen Tastverhältnis moduliert wird.
Das Tastverhältnis gibt das Verhältnis der Länge des eingeschalteten Zustands zur Periodendauer an. Dabei bleiben die Frequenz und der Pegel des Signals immer gleich! Es ändert sich nur die Länge von High zu Low.
In BASCOM hast Du zwei Möglichkeiten PWM zu machen:
1. SW-PWM
2. HW-PWM mittels Timer
Software PWM:
Die Vorteile der SW-PWM ist, das Du fast jeden beleibeigen PIN dazu verwenden kannst. Du kannst so auch mehrere PWM's mit einem Timer implementieren die unterschiedliche Signale auf verschiedenen PIN's erzeugen.
Der Nachteil dieser Methode liegt ganz klar im Programmieraufwand.
Hardware PWM:
Die Vorteile der HW-PWM ist, dass die sehr schnell ist und vom Programm unabhängig da sie vollständig über HW mit Timern funktioniert.
Der Nachteile ist halt, dass Du bzgl. der HW Ressource an die entsprechenden PIN's des ATmegas gebunden bist und den Timer damit belegst.
Z.B. beim ATMega8 stehen 4 HW-PWM-Ausgänge von 2 Timer zur Verfügung.
Mit Timer1 können zwei PWM Signale erzeugt werden (Compare A => OC1A - Pin 15 und Compare B => OC1B - Pin 16).
Die Auflösung kann auf 8, 9 und 10 Bit eingestellt werden.
Timer2 kann ein PWM-Signal mit einer Auflösung von 8 Bit erzeugen (Compare Register => OC2 - Pin 17)
So, nun schauen wir mal rein in die Praxis....
Im Anhang findest Du zunächst ein Beispielprogramm von mir, wie ich zwei PWM's für eine LCD-Hintergrundbeleuchtung und einen Lüfter umgesetzt habe.
Sorry, wenn ich nun auf ein anderes Forum verlinken muss aber dort habe ich mal einen tollen Beitrag zum Thema BASCOM PWM gefunden und besser kann ich es auch nicht erklären. Ich müsste den Inhalt ja kopieren
Schau mal hier:
http://www.rn-wissen.de/index.php/Bascom_und_PWM
Vielleicht wird Dir damit einiges klarer.
So, nun glaube ich, dass Du zunächst ausreichend Stoff hast.
Grüße,
Markus