Artikel
Bascom-5 I
Neuer BASIC-Compiler für Elektor-Flash-Board
Bisher wurde das Elektor-Flash-Board unter anderem mit dem Interpreter Basic-52 verwendet. Freunde der Programmiersprache Basic haben aber noch eine Alternative: BASCOM-51 ist der neue Stern am Compiler-Himmel.BASCOM wurde von Mark Alberts und seiner niederländischen Firma MCS-Electronics zuerst für die AVR-Familie entwickelt. Später kam dann die Version BASCOM-LT speziell für kleine Controller vom Typ 89C2051 hinzu. Und schließlich wurde die Version BASCOM-51 auch für die größeren Derivate aus der 8051-Familie entwickelt. Auf der Internetseite von MCS-Electronics kann man eine Demoversion von BASCOM-51 laden, die immerhin Programme bis zu einer Größe von 2 K erzeugt. Das ist nicht wenig, denn BASCOM generiert sehr effektiven Code. Die freie Demoversion wurde mit dem 89S8252-Board getestet. Das Ergebnis war sehr gut!
Extra-Info / Update
Leserbrief:
Beim Programmieren von Interrupts mit dem Timer 2 (mit BASCOM-8051 auf dem 89S8252-Board) habe ich festgestellt, dass bei Verwendung des Befehls "Load Timer2, Value" der Timer nicht mit dem Wert nachgeladen wird. Nach Rücksprache mit Mark Alberts von CMS erfuhr ich, dass dieses Problem anscheinend nicht bekannt war. Als Lösung wurde vorgeschlagen, in der Interrupt-Routine folgende Programmzeilen einzufügen, was auch einwandfrei funktioniert:
If T2con.7=1 Then
Reset T2con.7
Else
Reset T2con.6
Peter Schulz
Das Problem ist nicht, dass das Nachladen nicht ausgeführt wird. Es liegt vielmehr daran, dass kein Interrupt mehr auftritt, wenn der Anwender die Timer2-Interrupt-Flag nicht zurücksetzt. Einige Interrupts beim 8051 müssen vom Anwender zurückgesetzt werden. Und es hängt vom verwendeten Controller ab, ob man es einfach zurücksetzen kann. Beim 89s8252 muss man die Quelle checken, die den Interrupt ausgelöst hat.
Mark Alberts
Leserbrief:
Bei dem Artikel über den BASIC-Compiler BASCOM-51 (Heft 5/02) hat mich besonders die Möglichkeit der einfachen Nutzung eines LCD-Display begeistert.
Um BASCOM-51 mit dem 89S8252-Board aus Heft 12/01 zu verwenden, muss der Anschluss RS an der Adresse A0 liegen - sonst sieht man nur den Cursor. Ein Vertauschen der Anschlüsse 4 und 5 am LCD genügt. Noch ein Tipp für alle, die das beigelegt Demo-Programm LCD von BASCOM-51 testen: der §sim Befehl muss vor der Compilierung entfernt werden.
Mirko Voigtländer
Beim Programmieren von Interrupts mit dem Timer 2 (mit BASCOM-8051 auf dem 89S8252-Board) habe ich festgestellt, dass bei Verwendung des Befehls "Load Timer2, Value" der Timer nicht mit dem Wert nachgeladen wird. Nach Rücksprache mit Mark Alberts von CMS erfuhr ich, dass dieses Problem anscheinend nicht bekannt war. Als Lösung wurde vorgeschlagen, in der Interrupt-Routine folgende Programmzeilen einzufügen, was auch einwandfrei funktioniert:
If T2con.7=1 Then
Reset T2con.7
Else
Reset T2con.6
Peter Schulz
Das Problem ist nicht, dass das Nachladen nicht ausgeführt wird. Es liegt vielmehr daran, dass kein Interrupt mehr auftritt, wenn der Anwender die Timer2-Interrupt-Flag nicht zurücksetzt. Einige Interrupts beim 8051 müssen vom Anwender zurückgesetzt werden. Und es hängt vom verwendeten Controller ab, ob man es einfach zurücksetzen kann. Beim 89s8252 muss man die Quelle checken, die den Interrupt ausgelöst hat.
Mark Alberts
Leserbrief:
Bei dem Artikel über den BASIC-Compiler BASCOM-51 (Heft 5/02) hat mich besonders die Möglichkeit der einfachen Nutzung eines LCD-Display begeistert.
Um BASCOM-51 mit dem 89S8252-Board aus Heft 12/01 zu verwenden, muss der Anschluss RS an der Adresse A0 liegen - sonst sieht man nur den Cursor. Ein Vertauschen der Anschlüsse 4 und 5 am LCD genügt. Noch ein Tipp für alle, die das beigelegt Demo-Programm LCD von BASCOM-51 testen: der §sim Befehl muss vor der Compilierung entfernt werden.
Mirko Voigtländer
Diskussion (0 Kommentare)