Hardware Bedienung BASIC Beispiele Download:
|
AVR-ChipBasic8: BASIC-Referenz
(c) 2006-2009 Jörg Wolfram
1 Lizenz Das Programm unterliegt der GPL (GNU General Public Licence) Version 3 oder höher, jede Nutzung der Software/Informationen nonkonform zur GPL oder ausserhalb des Geltungsbereiches der GPL ist untersagt! Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, daß es Ihnen von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, auch ohne die implizite Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK. Alle im Text genannten Marken sind Eigentum des entsprechenden Inhabers. 2 Allgemeines Jedes Programm besteht aus maximal 20 Programmzeilen (1-20). Nach jedem Schlüsselwort sollte ein Leerzeichen stehen. Viele Befehle blenden nicht benutzte Bits bei den Parametern aus oder begrenzen auf den gültigen Wertebereich (z.B. PL für PLOT). (z.B. PL für PLOT). 3 Zahlen, Variablen und Funktionen AVR-ChipBASIC8 kennt nur einen Datentyp, und das sind 8 Bit vozreichenlose Integerzahlen. Dazu gibt es 26 Variablen (A-Z). Konstanten können sowohl in Dezimalform als auch in Hexadezimalform (beginnend mit $) eingegeben werden. Folgende Operationen sind erlaubt:
4 Wertzuweisung Wertzuweisungen beginnen nicht mit einem Schlüsselwort, sondern mit einem Variablennamen gefolgt von einem Gleichheitszeichen und einem Ausdruck.
4.1 LIM v,min,max Der Wert der Variable v wird auf den Wertebereich min...max begrenzt.
im ersten Beispiel wird die Variable A auf den Bereich 1...6 begrenzt, im zweiten Beispiel die Variable B auf den Wertebereich, der durch den Inhalt der Variable C und die 4 darauffolgenden Zahlen begrenzt ist. 4.2 INV v Wandelt die Variable V in ihr Zweierkomplement um.
A ist jetzt 255 (-1). 5 Programmsteuerung 5.1 END Einen END-Befehl gibt es nicht, anstelle muß ein GO zu einer nicht existierenden Zeile (0 oder >20) benutzt werden. 5.2 GO n Mit dem GOTO-Befehl kann die Programmabarbeitung mit einer anderen Zeile fortgesetzt werden. Argument ist ein beliebiger Ausdruck.
Das ist eine Endlosschleife, die nur mit CTRL+C abgebrochen werden kann. 5.3 IF Die bedingte Anweisung besteht aus IF gefolgt von einem Ausdruck. Ist das Ergebnis des Ausdrucks Null, wird zum Anfang der nächsten Zeile gesprungen, andernfalls wird die Zeile weiter abgearbeitet.
5.4 FOR - NXT Bei der Schleifenabarbeitung gibt es nur die Grundform FOR A=1 TO C ohne die Angabe der Schrittweite, die konstant 1 ist. Da der Stack auf 16 Einträge begrenzt ist, lassen sich nur 16 Schleifen bzw. Unterprogrammaufrufe schachteln.
Dieses Programm zeichnet ein Rechteck in die obere linke Ecke des Bildschirmes. 5.5 SUB - RET SUB Expr ruft das Unterprogramm in der durch den Ausdruck definierten Zeile auf, mit RET wird wieder zurückgesprungen. Da der Stack auf 16 Einträge begrenzt ist, lassen sich nur insgesamt 16 Schleifen bzw. Unterprogrammaufrufe schachteln. 5.6 VID n VID 0 schaltet die Videoausgabe ab (auf schwarz). Programme laufen dadurch schneller ab. Mit VID 1 wird die Bildschirmausgabe wieder eingeschaltet. Mit VID 1 wird die Bildschirmausgabe wieder eingeschaltet. 6 Bildschirm-Ausgabe 6.1 CO n Mit dem COlor-Befehl wird die Vorder- sowie die Hintergrundfarbe festgelegt. Akzeptiert werden die Werte 0 und 1, wird 8 dazuaddiert werden die Zeichen in Großschrift ausgegeben. Dabei bedeutet:
Nach dem Priogrammstart ist der Voreinstellwert 1. 6.2 CLS Mit dem CLS-Befehl wird der Bildschirm gelöcht. Beim Programmstart geschieht das automatisch. Es wird die eingestellte Hintergrundfarbe (beim Programmstart schwarz) verwendet. 6.3 PRINT [?] Der PRINT-Befehl dient zur Ausgabe auf den Bildschirm Zusätzlich kann die Ausgabe noch formatiert werden. Anstelle des PRINT Befehls muß ein Fragezeichen verwendet werden.
Steht am Ende des PRINT-Befehls einer der beiden Trenner, wird kein Zeilenvorschub ausgeführt. 6.4 SCR n Es gibt ein Scrollfenster, in dem in alle 4 Richtungen gescrollt werden kann. Das Fenster beginnt bei Zeichen 2 in Zeile 2 und geht bis Zeichen 27 in Zeile 20. Somit gibt es um das Scrollfenster einen 2 Zeichen breiten Rand in dem z.B. Informationen stehen, die nicht mitgescrollt werden sollen. Die freiwerdende Zeile wird mit Leerzeichen in der aktuellen Farbeinstellung gefüllt.
verschiebt das Scrollfenster um 1 Zeichen nach unten. verschiebt das Scrollfenster um 1 Zeichen nach unten. 7 Tastatur 7.1 INP V die Variable V wird an der aktuellen Stelle eingelesen.
Enthält die Eingabe ungültige Zeichen, ist das Resultat 0. 7.2 Die Keycodes Neben den "normalen" ASCII-Werten für Ziffern, Zahlen und Satzzeichen liefern RKEY und WKEY auch Codes für Funktionstasten etc.
7.3 Die Funktion KY Diese Funktion liefert verschiedene Tastaturabfragen als -1,0,1 Wert. Als Parameter wird die Art der Abfrage eingetragen. Bei den Abfragen 2...5 gilt: Ist keine der beiden Tasten betätigt, wird 0 zurückgegeben.
8 Pseudografik Für die Pseudografik wird jedes Zeichen in 4 "Pixel" aufgeteilt. Bei 23 Zeilen a 30 Zeichen ergibt sich so eine Arbeitsfläche von 60x46 Punkten. Ist die Zeichenfarbe gleich 0 so werden die Pixel nur gelöscht, bei 1 entsprechend fesetzt. 8.1 PL Y,X Mit dem PLOT-Befehl wird ein "Pixel" gesetzt.
Zeichnet ein "Pixel" an der Position Y=3 und X=7+A mit der aktuellen Vordergrundfarbe. 8.2 DR Y1,X1,Y2,X2 Zeichnet eine Linie von Y1,X1 nach Y2,X2.
Hier wird eine Linie von der linken oberen in die rechte untere Ecke gezeichnet. 8.3 BX Y1,X1,Y2,X2 Mit dem BX-Befehl wird ein Rechteck gezeichnet.
8.4 FBX Y1,X1,Y2,X2 Mit dem FBX-Befehl wird ein gefülltes Rechteck gezeichnet. Ist Y1=Y2 oder X1=X2 werden horizontale oder vertikale Linien gezeichnet.
zeichnet eine waagerechte Linie am oberen Bildschirmrand, der Wert 100 wird zur Laufzeit auf den Bildschirmbereich begrenzt. Auch wenn die Ausgabe auf den sichtbaren bereich begrenzt ist, verbrauchen auch nicht gesetzte Pixel Rechenzeit. 9 Audio 9.1 NO n Ein Ton mit der Tonhöhe n (Halbtonschritte ab 220 Hz aufwärts) wird ausgegeben. Bei n=0 bis 63 werden Noten ausgegeben, bei n=63 wird keine Note sondern Rauschen ausgegeben.
gibt nacheinander alle spielbaren Noten aus. 10 Zeit 10.1 SY n Mit dem SYNC-Befehl wird auf N Bildsynchronimpuse gewartet. N kann wieder ein beliebiger Ausdruck sein.
wartet ca. 2 Sekunden, bis das Programm fortgesetzt wird. 11 Ein- und Ausgabe 11.1 DIR n Setzt die I/O-Richtung der 8 Portpins an der parallelen Schnittstelle. Eine 0 bedeutet Eingang, eine 1 Ausgang.
Pin I/O 0-2 werden als Ausgang, I/O 3 als Eingang konfiguriert. 11.2 OUT n Der Wert N wird an I/O 0-3 ausegegeben. Ist der I/O als Ausgang konfiguriert, wird er entsprechend gesetzt. Ist der I/O als Eingang konfiguriert, wird der interne Pull-Up Widerstand aus- bzw. eingeschaltet. Beispiele:
setzt I/O 0-2 auf 1-Pegel und I/O 3 auf 0. 11.3 IN(n) Gibt den aktuellen Status des I/O Pins n zurück. Je nach anliegendem Pegel ist das Resultat 0 oder 1.
gibt den Status von I/O Pin 0 aus. 11.4 AV(n) Gibt den aktuellen Spannungswert des I/O Pins n zurück. Der Wertebereich liegt zwischen 0 und 255 für 0...5V..
gibt den Spannungswert von I/O Pin 3 aus. gibt den Spannungswert von I/O Pin 3 aus. 12 Kommunikation 12.1 PUT n das Byten wird an die serielle Schnittstelle ausgegeben.
gibt einen Zeilenvorschub an die serielle Schnittstelle aus. 12.2 GET V Ein Zeichen von der seriellen Schnittstelle wird eingelesen und in die Varaiable V gespeichert.
wartet auf ein Zeichen von der seriellen Schnittstelle und speichert die in die Variable C 13 Speicher 13.1 POK adr,dat Speichert ein Datenbyte in den internen EEPROM. Als Adressen sind 0...255 möglich.
speichert den Wert 18 an die Adresse V im internen EEPROM. 13.2 EP(adr) Die Funktion liest ein Byte aus dem internen EEPROM. Als Adressen sind 0...255 möglich.
liest den Wert von EEPROM-Adresse V (internes EEPROM) und speichert diesen in der Variable W. 14 Fehlermeldungen 14.1 Fehlermeldungen Insgesamt gibt es 5 verschiedene (Fehler) Meldungen. Im Editor werden diese oben in der zweiten Zeile mit Zeilen- und Statementnummer angezeigt. Im Allgemeinen lässt sich damit der Fehler recht schnell finden, manchmal kann er sich auch am Ende der vorherigen Zeile befinden.
created with latex2web.pl v0.54 © 2006-2009 Joerg Wolfram |