Nano-Board mit FORTH programmieren

Atmega 328 mit BASCOM und FORTH programmieren
Antworten
Heinrichs
Beiträge: 98
Registriert: Do 21. Okt 2010, 16:31

Nano-Board mit FORTH programmieren

Beitrag von Heinrichs » Mi 18. Sep 2019, 14:40

Vor einigen Jahren haben mein Sohn Michael und ich einen Forth-Compiler für den Attiny2313 programmiert. Nun habe ich diesen Compiler so erweitert, dass man mit ihm auch den Atmega328 auf dem Nano-Board programmieren kann. Diese neue Programm-Version MikroForth3 findet man hier.

Ein kleines Beispiel: Bei den Anschlüsse von D2-D9 (das entspricht PortD.2 - PortD.7 und PortB.0 -PortB.1) schließen wir jeweils eine LED (mit Vorwiderstand) auf dem Nano-Board an. Diese sollen abwechselnd das Muster 10101010 und das Muster 01010101 anzeigen.

bitmuster_an_PortE.jpg
LED-Array an PortE
bitmuster_an_PortE.jpg (72.5 KiB) 206 mal betrachtet

Die genannten Anschlüsse bilden bei MikroForth3 (aus didaktischen Gründen) einen virtuellen Port E. Wir müssen also nur diesem Port abwechselnd die Werte 85 = 0b01010101 und 170 = 0b10101010 zuweisen.

Wir installieren zunächst das Forth-System und folgen dabei den Anweisungen aus dem Tutorium. Keine Angst: Der eigentliche Compiler ist nur ca. 1 MB groß und macht auch keine Einträge in der Registrierdatenbank; wenn wir ihn nicht mehr brauchen sollten, können wir einfach das entsprechende Verzeichnis löschen.

In dem Forth-Compiler geben wir nun den folgenden Quelltext ein:

Code: Alles auswählen


( Lichtspiel an PortE )
: main begin 85 . 1 wait 170 . 1 wait 0 until ;

Die erste Zeile in den runden Klammern stellt nur einen Kommentar dar. In der zweiten Zeile wird im Rahmen einer so genannten Doppelpunktdefinition das Wort "main" definiert. Dieses Wort stellt einen Befehl dar, der automatisch vom Mikrocontroller nach dem Upload ausgeführt wird. In unserem Fall besteht "main" aus einer Endlos-Schleife; in dieser Schleife wird zunächst die Zahl 85 am PortE ausgegeben (genauer: Zunächst wird die Zahl 85 auf den Arbeitsstack gelegt, dann wird durch das Punkt-Wort die Zahl vom Stack genommen und am Standard-Ausgabegerät, hier Port E, ausgegeben.) Anschließend wird 1 Sekunde gewartet. Dann wird auf die gleiche Weise die Zahl 170 am Port E ausgegeben und wieder 1 Sekunde gewartet. Dies wird endlos wiederholt. Sie wollen wissen warum? Dann schauen Sie im Tutorium einmal nach.

Wie speichern die Datei ab und betätigen anschließend die Schaltflächen "Interpretieren", "Kompilieren", und "Intel HEX". (Taucht zwischendurch eine Überschreiben-Warnung auf, klicken Sie auf "Ja".) Dann sollte es bei unserem Compiler so aussehen:

forth_Bitmuster.jpg
MikroForth3 vor dem Upload
forth_Bitmuster.jpg (95.14 KiB) 205 mal betrachtet

Nun schließen wir das Nano-Board an den PC an. (Die zugehörige COM-Nummer haben wir dem Forth-System schon im Rahmen der Installation mitgeteilt; achten Sie darauf, dass Sie denselben Anschluss wie bei der Installation benutzen!) Wenn wir jetzt die Schaltfläche "Upload" betätigen, wird das Programm auf den Mikrocontroller geladen und automatisch gestartet. Das war es auch schon!

bitmuster_an_PortE.wmv
Video
(413.54 KiB) 24-mal heruntergeladen

Viel Erfolg!

Antworten