Ein Programmablaufplan für die Pulsweitenmodulation

Im heutigen Artikel soll die Pulsweitenmodulation mit Hilfe eines Programmablaufplans realisiert werden.

Und zwar in Zusammenhang mit der Programmierung des Timers.

Der Timer soll jeweils nach 1 ms ablaufen. Da der Mikrocontroller mit 12 MHz getaktet ist, die Timer-Register also jede µs (Mikrosekunde)inkrementiert werden, müssen wir bis 1.000 zählen bis 1 ms vergangen ist.

Da wir dafür TH0 und TL0 benötigen, mit einem Byte kann man ja nur bis 255 zählen, wählen wir nicht den auto-reload Modus, sondern wählen den Modus 1, bei dem wir beide Timerregister für das Zählen zur Verfügung haben.

Berechnung der Initialisierungswerte für die Register TH0 und TL0:
Da wir bei 65536 einen Überlauf haben, müssen wir bei dezimal 64536 starten. Hexadezimal ist das FC18. Das bedeutet TH0=0xFC und TL0=0x18.

In dem Video zeige ich noch einmal die Berechnung und die Programmierung der Registerwerte.

Planung des Programms mit Hilfe eines Programmablaufplans, PAP

In der Interrupt Service Routine des Timers soll nun die Pulsweitenmodulation realisiert werden.

Da die Realisierung des Programms nicht ganz trivial ist, ist die Planung des Programms zu empfehlen.
Für diese Planung gibt es verschiedene Möglichkeiten. Neben Struktogrammen hat sich in der Programmierung der sogenannte Programmablaufplan als zweckmäßig erwiesen.

In einem Programmablaufplan plant man das Programm zunächst einmal unabhängig von der Sprachsyntax und schreibt den Ablauf der Programms mit all seinen Verzweigungen zunächst einmal z.B. auf einem Blatt Papier auf.

Hierdurch bekommt man eine gute Vorstellung vom Ablauf des Programms. Ein Programmablaufplan ist hierbei einfacher zu lesen und zu erstellen als das benötigte C-Programm.

In einem zweiten Schritt schreibt man dann mit Hilfe des Programmablaufplans sein C-Programm. Diese Umsetzung geht einem dann in den meisten Fällen sehr leicht von der Hand.

Wie man einen Programmablaufplan erstellen kann, zeige ich im folgenden Video.

Plaung der PWM mit Programmablaufplan

Deine Aufgabe

Wenn ich Du wäre 😉 , würde ich mir jetzt, nachdem Du das Video gesehen hast, ein Blatt Papier nehmen und versuchen, den Programmablaufplan einmal selbständig zu erstellen – ohne noch einmal in das Video zu spicken.

Anschließend kannst Du µVision aufrufen und die Interrupt Service Routine erstellen.

weitere Videos

Dezember 7, 2009

November 28, 2012

Februar 18, 2010

Juni 1, 2010

September 8, 2011

Februar 1, 2010

>