BASIC-Briefmarke Benutzer-Handbuch Teil 1 Copyright © 1994 by Parallax, Inc. © 1994 by Wilke Technology GmbH Version 1.2 / Mai 1996 / BSM1-1.PM5 Dieses Handbuch, sowie die Hard- und Software, die es beschreibt, ist urheberrechtlich geschützt und darf ohne ausdrückliche schriftliche Genehmigung von Wilke Technology GmbH in keiner Weise vervielfältigt, übersetzt oder in eine andere Darstellungsform gebracht werden. Warenzeichen Diejenigen Bezeichungen in dieser Publikation von Erzeugnissen und Verfahren, die zugleich Warenzeichen sind, wurden nicht besonders kenntlich gemacht. Solche Namen sind Warenzeichen der jeweiligen Warenzeichen-Inhaber. Aus dem Fehlen der Markierung ® kann nicht geschlossen werden, daß diese Bezeichnungen freie Warennamen sind. PBASIC ® ist ein Warenzeichen von Parallax, Inc. BASIC-Briefmarke ® ist ein Warenzeichen von Wilke BASIC-Knopf ® ist ein Warenzeichen von Wilke Hinweis Herausgeber, Übersetzer und Autoren dieser Publikation haben mit größter Sorgfalt die Texte, Abbildungen und Programme erarbeitet. Dennoch können Fehler nicht völlig ausgeschlossen werden. Wilke Technology übernimmt daher weder eine Garantie noch eine juristische Verantwortung oder Haftung für Folgen, die auf fehlerhafte Angaben zurückgehen. Mitteilungen über eventuelle Fehler werden jederzeit gerne entgegengenommen. Alle Rechte vorbehalten. Seite 4 • BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 Inhaltsverzeichnis Inhaltsverzeichnis Einleitung ........................................................................8 Das Entwicklungs-System...........................................8 Die Hardware ..............................................................8 Die Programmierung ...................................................9 BASIC-Briefmarken 1-Platinen Computer ...................9 Der BASIC-Briefmarken Chip .....................................9 Installation der Software ................................................13 Erste Schritte .................................................................14 1. Beispiel .................................................................14 DEBUG.BAS - mit Basic-Briefmarke ....................14 2. Beispiel .................................................................15 COMPUTER.BAS - mit Minioolkit-Board ..............15 Beispiel-Applikation ...................................................19 Das Computer-System ..................................................20 Die Basic-Briefmarken-Typen........................................21 Die BASIC-Briefmarke-A ...........................................21 Die Entwicklungs-Briefmarke ....................................21 Der Basic-Knopf ........................................................22 Das BASIC-Briefmarken Minitoolkit ..........................22 Editieren ........................................................................23 Programm-Format .....................................................23 Programme eingeben und editieren ..........................26 Editor Funktions-Tasten ............................................27 Starten Ihres Programms ..........................................28 Programm von Disk laden .........................................29 Programm auf Disk speichern ...................................29 Ausschneiden, Kopieren und Einfügen .....................29 Suchen & Ersetzen ...................................................30 I/O Port & Variablen-Speicherplatz ................................32 BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 • Seite 5 Inhaltsverzeichnis Übersicht Befehlssatz ...................................................35 SPRUNGBEFEHLE ..................................................35 SCHLEIFEN ..............................................................35 NUMERIK .................................................................35 DIGITALER I/O ..........................................................35 SERIELLER I/O ........................................................36 ANALOGER I/O ........................................................36 SOUND .....................................................................36 EEPROM ZUGRIFF ..................................................36 ZEIT ..........................................................................37 POWER KONTROLLE ..............................................37 PROGRAMM DEBUGGEN .......................................37 BASIC Befehle ..............................................................38 BRANCH ...................................................................38 BUTTON ................................................................... 39 DEBUG ..................................................................... 41 EEPROM .................................................................. 42 END .......................................................................... 43 FOR...NEXT .............................................................. 44 GOSUB ..................................................................... 46 GOTO ....................................................................... 47 HIGH ......................................................................... 48 IF...THEN................................................................... 49 INPUT ....................................................................... 50 LET ........................................................................... 51 LOOKDOWN ............................................................. 52 LOOKUP ................................................................... 53 LOW .......................................................................... 54 NAP ........................................................................... 55 OUTPUT ................................................................... 56 PAUSE ...................................................................... 57 POT ........................................................................... 58 PULSIN ..................................................................... 61 Seite 6 • BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 Inhaltsverzeichnis PULSOUT ................................................................. 62 PWM ......................................................................... 63 RANDOM .................................................................. 64 READ ........................................................................ 65 RETURN ................................................................... 66 REVERSE ................................................................. 67 SERIN ....................................................................... 68 SEROUT ................................................................... 70 SLEEP ...................................................................... 72 SOUND ..................................................................... 73 TOGGLE ................................................................... 74 WRITE ...................................................................... 75 HARDWARE .................................................................76 SOFTWARE ..................................................................77 Aktuelle Applikations-Berichte .......................................78 Bezug ........................................................................78 BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 • Seite 7 Einleitung Einleitung Vielen Dank für den Kauf des Starter-Kits "BASIC Briefmarke". Sie haben sich für ein modernes und ebenso faszinierendes neues Produkt entschieden, das Kosten und Dauer für die Entwicklung neuer Produkte drastisch reduzieren kann. Durch seine kleinen Abmessungen, finden BASIC-Briefmarken Computer in praktisch allen Anwendungen Platz. Das Entwicklungs-System Um Programme für die BASIC-Briefmarke zu schreiben, benötigen Sie ein Entwicklungs-System. Dies beinhaltet alle Komponenten für die komfortable und rasche Entwicklung Ihrer Anwendungen: • • • Entwicklungs-Oberfläche für PC-Computer mit: Editor, PBASICCompiler, Downloader und Debugger. Übertragungs-Kabel vom PC zum 1-Platinen-Computer "BASICBriefmarke". Neue Programm-Versionen werden in Sekundenschnelle ins Zielsystem übertragen und dort dauerhaft gespeichert. Umfangreiches Hardware Minitoolkit mit Applikations-Beispielen. Hardware-Schaltungen können direkt ausprobiert werden. Die Hardware BASIC-Briefmarken Computer bestehen aus zwei Hauptkomponenten. Das "Gehirn" der Briefmarke ist der BASIC-Briefmarken-Chip mit dem PBASIC Run-Time Modul. Ein 256-Byte großes EEPROM nimmt Ihr compiliertes BASIC Anwendungs-Programm auf, das automatisch beim Einschalten gestartet wird. Ihr Anwendungs-Programm bleibt dauerhaft im EEPROM des BASIC-Briefmarken Computers erhalten, wenn Sie es nicht durch ein anderes Programm vom PC aus überschreiben. Seite 8 • BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 Einleitung Es stehen am BASIC-Briefmarken-Chip 8 universell einsetzbare I/OLeitungen zur Verfügung, die einzeln für digitale, analoge und serielle Daten Ein- und Ausgabe genutzt werden können. Ein 5 Volt Regler ermöglicht den Betrieb an ungeregelten Spannungen von 6...15 Volt. Je nach Modell gibt es BASIC-Briefmarken 1-Platinen-Computer mit unterschiedlicher Zahl von I/O-Leitungen, Patchfeld und Sonderfunktionen. Die Programmierung Die BASIC Briefmarke wird in einem einfachen BASIC-Dialekt programmiert. Er enthält bekannte Befehle, wie FOR...NEXT, IF...THEN, und GOTO, wie auch SBC Befehle, wie SERIN, SEROUT (serielle Ein-/ Ausgabe), PWM, und BUTTON (Tasten-Eingabe). Jeder Befehl benötigt 2-3 Bytes auf dem EEPROM, was eine maximale Programmgröße dieser BASIC-Briefmarke von 80-100 Befehlen ergibt. Die Programme laufen mit einer Geschwindigkeit von ca. 2.000 (bzw. 10.000) Befehlen pro Sekunde ab. BASIC-Briefmarken 1-Platinen Computer Für Einzel-Anwendungen sowie kleine und mittelgroße Serien, gibt es verschiedene BASIC-Briefmarken 1-Platinen-Computer, die direkt in einen Sockel gesteckt oder über ein Flachkabel mit den Hardware verbunden werden. Der BASIC-Briefmarken Chip Für die Serien-Produktion in größeren Stückzahlen integrieren viele Anwender den BASIC-Briefmarken Chip selbst in ihre eigenen Platinen. Hierdurch steht ihnen ein kompletter BASIC-Computer "on board" auf kleinstem Raum zur Verfügung. BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 • Seite 9 Einleitung Das folgende Diagramm zeigt die BASIC-Briefmarke Typ A: Layout der BASIC-Briefmarke-A 256 Byte EEPROM BASICBriefmarken Chip PC-Schnittstelle Pin 1 5 Volt Regler D0 1 D1 2 D2 3 D3 4 D4 5 D5 6 D6 7 D7 8 N.C. 9 GND 10 Vcc 11 UB1 12 4 MHz Resonator BASIC-Briefmarken Chip: Das "Gehirn" der BASIC-Briefmarke. Der Controller führt die mit dem PBASIC Compiler übersetzten AnwenderProgramme aus. EEPROM: hält das compilierte Anwender-Programm. EEPROM-Speicher kann auch für Daten verwendet werden. Die gesamte Speicherkapazität beträgt 256 Byte. 4 MHz Resonator: die Zeitbasis für die BASIC-Briefmarke. 5 Volt Regler: regelt die Stromversorgungs-Spannung intern auf 5 Volt. 3 Pin Anschluß: Der Anschluß für das PC-Übertragungskabel. Das Kabel wird für die Programm-Übertragung an die BASIC-Briefmarke angeschlossen. Befestigungs-Löcher: ermöglichen die sichere Befestigung auf anderen Objekten. Seite 10 • BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 Einleitung Anschlußleiste: die Verbindung zu Ihrer Applikation erfolgt komplett über die 12-polige Anschlußleiste. Nur für das Laden eines neuen Programms in den Briefmarken-Computer vom PC aus gibt es den 3poligen Stecker oben. Die Signale: BASIC Briefmarke D0...D7 I/O-Pins der Briefmarke N.C. nicht angeschlossen GND Signal-Ground = 0 Volt Vcc 3...5 V geregelt UB1 6...15 V ungeregelt • Wilke Technology GmbH • 0241-918 900 • Seite 11 EinleitungInhaltsverzeichnis Schaltbild des 1-Platinen-Computers BASIC-Briefmarke-A: DATA Vcc BUSY 4.7K 1 8 CS Vcc CLK NC 2 3 93LC56 6 DI ORG DO Vss 4 Vcc 1 18 CS 17 PC-Busy DI/DO PC-Data OSC1 Reset OSC2 3 2N3906 2.2M 2.2M 16 4 4 MHz 15 5 GND 6 BASIC Briefmarke 14 Vcc Vcc 13 D0 D7 D1 D6 D2 D5 D3 D4 7 Power-On Reset 5 4.7K CLK 2 470K PC-Schnittstelle 7 12 8 11 9 10 Frei programmierbare I/O-Leitungen Stromversorgung ungeregelt (9V Batterie-Clip) LM2936 VI VO GND Vcc 10µF Geregelte 5V Stromversorgung Dieses Schaltbild gibt die elemetare Verschaltung des BASIC-Briefmarken Chips auch in Ihren eigenen Designs wieder. Je nach schon vorhandenen Funktionen in Ihrer Hardware können noch Komponenten eingespart werden: Reset-Erzeugung, Clock oder Spannungs-Regler für die 5 Volt Versorgung. Interessant für Batterie-Anwendungen ist die Möglichkeit mit 3...4 Volt Stromversorgung zu arbeiten (2 Standard Batteriezellen, 3 NiCd- oder 2 Pb-Zellen) und ausgiebigen Gebrauch von SLEEP- und NAP-Funktionen zu machen. Langzeit-Anwendungen mit Batteriebetrieb können mit einer BatterieLadung über viele Monate betrieben werden, mit entsprechend ausgelegter Solarzelle ist wartungsfreier Dauerbetrieb denkbar. Seite 12 • BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 Software-Installation Installation der Software Kopieren Sie die Dateien von der Diskette in ein Laufwerk und Verzeichnis Ihrer Wahl. BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 • Seite 13 Erste Schritte Erste Schritte 1. Beispiel DEBUG.BAS - mit Basic-Briefmarke Stecken Sie die Basic-Briefmarke mit der Bestückungsseite zum Rand auf das Minitoolkit und verbinden Sie die Briefmarke mit einem freien Parallel-Port des PC's. Verbinden Sie das Minitoolkit mit dem Steckernetzteil. Gehen Sie am PC in das Verzeichnis, wo sich STAMP.EXE befindet und starten Sie die Entwicklungs-Oberfläche durch Eingabe von ↵]. STAMP [↵ Wenn der Editor-Bildschirm erscheint, drücken Sie ALT-L und geben ↵]. Hierdurch wird das Sie dann den Programmnamen ein: DEBUG [↵ Programm DEBUG.BAS von der Disk geladen und auf dem Bildschirm angezeigt. Dies Programm dient lediglich zur Demonstration der DEBUGFunktion. Drücken Sie nun ALT-R. Das Programm wird daraufhin compiliert und sofort an die Briefmarke gesendet und gestartet. In der Mitte des Bildschirms erscheint jetzt ein Fenster, das DebugFenster. Dort werden bei jeder Ausführung des DEBUG-Befehls die entsprechenden Variablen angezeigt: b2 = 1 b2 = 2 . . . b2 = 10. Das Drücken einer beliebigen Taste schließt dieses Fenster und Sie befinden sich wieder im Editor. Die DEBUG-Funktion verlangsamt die Programmausführung so, daß man die ausgegebenen Variablen gut mitverfolgen kann. Seite 14 • BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 Erste Schritte 2. Beispiel COMPUTER.BAS - mit Minitoolkit-Board Zunächst stellen Sie die Datenverbindung zwischen PC und BasicBriefmarke her: Der 25-polige Verbinder wird am PC in einen freien Parallel-Port gesteckt, der 3-polige Verbinder wird auf die 3-polige Stiftleiste gesteckt. Achten Sie dabei auf die Markierung, um eine richtige Polung zu gewährleisten. Stecken Sie die Basic-Briefmarke mit der Bestückungsseite zum Rand in das Minitoolkit. Stellen Sie die Stromversorgung des Toolkit-Boards über das Steckernetzteil her. Verbinden Sie nun am Toolkit-Board mit einem Kabel die Kontakte Stamp I/O-Pin 0 und Sound-Pin (siehe Lautsprechersymbol). Gehen Sie am PC in das Verzeichnis, wo sich STAMP.EXE befindet und starten Sie die Entwicklungs-Oberfläche durch Eingabe von ↵]. STAMP [↵ Wenn der Editor-Bildschirm erscheint, drücken Sie ALT-L und geben ↵]. Hierdurch wird Sie dann den Programmnamen ein: COMPUTER [↵ das Programm COMPUTER.BAS von der Disk geladen und auf dem Bildschirm angezeigt. Dieses Programm dient zur Demonstration des SOUND-Befehls. Drücken Sie nun ALT-R. Das Programm wird daraufhin compiliert und sofort an die Briefmarke gesendet und gestartet. Der Lautsprecher des Toolkit-Boards fängt sofort an zufällige Töne zu erzeugen. Das Programm arbeitet mit einer Endlos-Schleife, die TonErzeugung endet also erst wenn Sie Stromversorgung des ToolkitBoards unterbrechen. Stellen Sie die Stromversorgung wieder her, wird das Programm unabhängig von der Verbindung zum PC sofort wieder gestartet. BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 • Seite 15 Erste Schritte Stellen Sie auf dem Toolkit-Board die unten eingezeichnete Verbindung her, um die Funktion von COMPUTER.BAS zu testen: Seite 16 • BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 Häufige Fragen Welche Spannungen benötigt die Briefmarke? Für Test und Entwicklung raten wir zu einer 9 Volt-Batterie. Das ist einfach und kann die Briefmarke für Tage oder Wochen (sleep) betreiben. Wollen Sie eine externe Stromversorgung benutzen, muß diese zwischen 3 und 15 Volt DC bei mindestens 2 mA liefern (ohne den Bedarf für die Stromangabe der I/O-Leitungen). Eine externe 3-5 Volt Versorgung verbinden Sie mit dem +5V Anschluß der Briefmarke. Dies versorgt die Briefmarke unter Umgehung des 5 Volt-Reglers direkt. Der Anschluß befindet sich im Prototyp-Bereich. Eine externe 6-15 Volt Versorgung verbinden Sie mit dem Vin Anschluß der Briefmarke. Das leitet den Strom durch den 5 Volt Regler. Kann die Briefmarke externe Schaltungen versorgen? Ja. Wenn Sie 5 Volt benötigen, verbinden Sie Ihre Schaltung mit dem +5V Anschluß der Briefmarke. Benötigen Sie die ungeregelte Eingangsspannung (6-15 Volt), verbinden Sie Ihre Schaltung mit dem Vin Anschluß. Beide Anschlüsse befinden sich im Prototype- Bereich. Wie lange läuft die Briefmarke mit einer 9 Volt Batterie? Das hängt davon ab, was Sie mit der Briefmarke machen. Verwendet Ihr Programm nie den Sleep-Modus und hat einige LED’s verbunden mit den I/O-Leitungen, sind es vielleicht nur einige Stunden. Wird der Sleep-Modus verwendet und nur wenig Strom über die I/O's abgegeben, kann die Briefmarke wochenlang laufen. Wie ist die Belastbarkeit der I/O-Leitungen? Die I/O Pins können jeweils 25 mA aufnehmen und 20 mA abgeben. Allerdings sollte die Summe für alle 8 I/O-Leitungen 50 mA (Aufnahme) und 40 mA (Abgabe) nicht überschreiten. BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 • Seite 17 Häufige Fragen Unterstützt der BASIC-Dialekt der Briefmarke Fließkomma-Mathematik? Nein. Die Briefmarke arbeitet ausschließlich mit ganzen Zahlen. Auch mit den Division-Operatoren / und // werden ebenfalls wieder Integerwerte erzeugt. Wie verarbeitet die Briefmarke mathematische Ausdrücke? Mathematische Ausdrücke werden streng von links nach rechts verarbeitet. Dies ist wichtig zu wissen, denn Sie könnten nach normalen Regeln andere Ergebnisse erwarten. Zum Beispiel wird der Ausdruck 2 + 3 x 4 normalerweise als 2 + (3 x 4) gelöst, da die Multiplikation eine höhere Priorität hat als die Addition. Das Ergebnis wäre 14. Da die Briefmarke Ausdrücke von links nach rechts auswertet, wird der Ausdruck als (2 + 3) x 4 gelöst, mit dem Ergebnis 20. Beachten Sie dies beim Schreiben Ihrer Programme. Seite 18 • BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 Applikation Beispiel-Applikation Diese Seite zeigt eine einfache Applikation für die Briefmarke. Der Zweck dieser Applikation ist das Lesen des Wertes des Potentiometers und dann die Erzeugung eines entsprechenden Tons auf dem Lautsprecher. Ändert sich der Potentiometerwert, ändert sich auch der Ton. Für interessante Variationen kann das Potentiometer einfach durch ein Thermo-Widerstand oder einen lichtempfindlichen Widerstand ersetzt werden. 10K + PC 0 1 2 3 4 5 6 7 +5V GND Vin 0.1 µF 40 Ω 10 µF loop: pot 0,100,b2 'Lese Potentiometer auf Pin 0 'und speichere das Ergebnis 'in Variable b2. b2=b2/2 'Dividiere das Ergebnis, so 'daß der größte Wert 128 ist. sound 1,(b2,10) 'Generiere einen Ton auf dem 'Lautsprecher auf Pin 1. Die 'Frequenz ist gesetzt durch 'den Wert in b2. Die Dauer 'des Tons ist auf 10 gesetzt. goto loop 'Wiederhole der Vorgang. BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 • Seite 19 Computer-System Das Computer-System Um das Entwicklungs-System einzusetzen, brauchen Sie folgendes Computer-System (Minimal-Anforderung): • • • • • IBM PC oder kompatibler Computer Disketten-Laufwerk Paralleler Port 128K RAM MS-DOS 2.0 oder höher Wegen dieser geringen Anforderungen eignen sich auch Laptops und Notebook PCs bestens, wenn sie über diese Mindest-Resourcen verfügen. Auch die Benutzung von anderer Software aus (WINDOWS, SHELL, ...) ist in der Regel problemlos möglich. Seite 20 • BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 Basic-Briefmarken Die Basic-Briefmarken-Typen Zum Starter-Kit gehört: • • • • • BASIC-Briefmarke-A: mit 12-poliger Steckerleiste BASIC-Briefmarke Hardware-Minitoolkit-Board 3-poliges Kabel zur Verbindung PC - Basic-Briefmarke Entwicklungssoftware Handbuch Die BASIC-Briefmarke-A Sie wird über eine 12-polige Steckerleiste angeschlossen. Das ermöglicht den einfachen und platzsparenden Einbau in Ihre ApplikationsSchaltungen. Diese Briefmarke kann mit einer ungeregelten Spannung (6,5V..15V) oder direkt mit einer geregelten 4..5 V Spannung (Spannungsregler auslöten!) betrieben werden. Hier: richtige Polung! Die Entwicklungs-Briefmarke Erkennbar an den integrierten Batterie-Clips für eine 9V Batterie. Die Versorgung über eine 9V Batterie ist auf jeden Fall die einfachste Art diesen 1-Platinen-Computer zu betreiben. Natürlich können auch andere Stromversorgungen von 3...15 Volt verwenden werden. Bitte achten Sie dabei unbedingt auf korrekte Polung, da es sonst zur Zerstörung von Bauteilen kommen kann. Eine geregelte Versorgungsspannung von 3...5 Volt wird direkt mit dem 5 Volt Anschluß der BASIC-Briefmarke verbunden. Höhere Spannungen zwischen 6...15 Volt sind über den Spannungs-Regler zu führen. Der Basic-Knopf ... ist der bisher kleinste Basic-Briefmarken-Computer. Er hat mit seinen 14 Pins die Größe eines ´gekürzten´ DIL-24 IC, wird auch wie ein normales IC in die Schaltung eingefügt und benötigt eine 5V-Spannungs- BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 • Seite 21 Toolkit versorgung. Zum Programmieren gibt es einen Programmieradapter, oder die eigene Schaltung muß die drei Pins zum Downloaden zur Verfügung stellen. Das BASIC-Briefmarken Minitoolkit Das Minitoolkit-Board kann eine BASIC-Briefmarke A aufnehmen. Sie wird automatisch richtig mit Strom versorgt, wenn das Toolkit-Board mit einem Netzteil 10...15 V / 200 mA betrieben wird. Um die BASIC-Briefmarke zu programmieren, verbinden Sie sie mit Ihrem PC und starten Sie dann die Entwicklungs-Software. Zum Verbinden der Briefmarke mit Ihrem PC: 1) In Ihrem Entwicklungs-System befindet sich ein Kabel zur Verbindung der Briefmarke mit Ihrem PC. Das Kabel hat zwei Enden, eines mit einem DB25 Stecker, das andere mit einem 3 Pin-Stecker. Stecken Sie das DB25-Ende in einen verfügbaren parallelen Port an Ihrem PC. 2) Stecken Sie das verbleibende Ende des Kabels auf den 3 Pin Anschluß der Briefmarke. Sowohl auf den BASIC-Briefmarken wie auch am Kabel befindet sich eine Markierung, die zueinander passend verbunden werden müssen. 3) Versorgen Sie die Briefmarke mit Strom wie im vorigen Abschnitt beschreiben. Haben Sie diese Schritte durchgeführt, starten Sie die EntwicklungsSoftware wie nachfolgend im Handbuch beschrieben. Seite 22 • BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 Editieren Editieren Starten Sie die Editor-Software, indem Sie am DOS-Prompt eingeben: STAMP Angenommen Sie sind im richtigen Verzeichnis, wird die Software nach einigen Sekunden starten. Der Editor-Bildschirm ist dunkelblau, mit einer Menüzeile am oberen Bildschirmrand. Außer dieser Zeile kann der ganze Bildschirm zur Eingabe von BASIC Programmen verwendet werden. Programm-Format Es gibt einige Einschränkungen beim Eingeben von Programmen. Sie sollten die Regeln für die Eingabe von Konstanten, Labels und Kommentaren kennen, wie auf den folgenden Seiten beschrieben: • Konstanten: konstante Werte können auf 4 Arten deklariert werden: dezimal, hex, binär und ASCII. Hex-Zahlen werden durch ein vorgestelltes Dollar-Zeichen ($) gekennzeichnet, Binär-Zahlen durch ein Prozent-Zeichen (%) und ASCII-Werte werden in Anführungszeichen eingeschlossen ("). Wird keine spezielle Kennung angegeben, nimmt der Editor einen Dezimalwert an. Einige Beispiele: 100 $64 %01100100 "A" "Hello" • 'Dezimal 'Hex 'Binär 'ASCII "A" (65) 'ASCII "H", "e", "l", "l", "o" Adress-Label: der Editor verwendet Labels um auf Adressen (Positionen) in Ihrem Programm zu verweisen - im Unterschied zu einigen BASIC-Versionen, die Zeilennummern verwenden. BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 • Seite 23 Editieren Allgemein können Labelnamen jede Kombination von Buchstaben, Zahlen und Unterstrichen (_) sein, aber das erste Zeichen des Namens darf keine Ziffer sein. Auch dürfen Labels keine reservierten Worte beinhalten, wie Befehls-Namen (serin, toggle, goto, etc.) und Variablen-Namen (port, w2, b13, etc.) Bei erstmaliger Verwendung müssen die Labels mit einem Doppelpunkt enden (:). Werden Sie irgendwo im Programm aufgerufen, werden Sie ohne den Doppelpunkt bezeichnet. Das folgende Beispiel zeigt, wie mit einem Label auf eine Adresse verwiesen wird: loop: • 'Toggle pin 0 for b0 = 1 to 10 toggle 1 next 'Toggle pin 1 (10 x) goto loop 'Wiederhole den Vorgang Wert-Label: Sie können sich mit Labels auch auf Variablen und Konstanten beziehen. Wert-Labels haben die gleichen SyntaxRegeln wie Adress-Labels, aber Wert-Labels enden niemals mit einem Doppelpunkt, und sie müssen mit der "Symbol"-Direktive definiert werden. Das folgende Beispiel zeigt einige Wert-Labels: loop: • toggle 0 symbol start = 1 symbol end = 10 'Definiere 2 Konstanten 'Labels symbol count = B0 'Definiere ein Variablen'Label for count = start to end toggle 1 next Kommentare: Das Einfügen von Kommentaren macht Ihre Programme übersichtlicher. Kommentare beginnen mit einem Hochkomma (') und gehen bis zum Ende der Zeile. Wahlweise können Sie einen Kommentar mit der REM-Anweisung kennzeichnen. Ein Beispiel: Seite 24 • BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 Editieren symbol relay = 3 REM 'Definiere Konstante dies ist die Hauptschleife main: port = %0000000011111111 length = length + 10 gosub sub goto main sub: pulsout relay,length : toggle 0 : return • Generelles Format: Mehrere Befehle und Label in einer Zeile werden durch Doppelpunkte (:) voneinander getrennt. dirs = 255 for b2 = 0 to 100 : pins = b2 : next • Mathematische Operatoren: die folgenden Operatoren können in mathematischen Ausdrücken verwendet werden: + addieren - subtrahieren * multiplizieren (gibt low word des Ergebnis zurück) ** multiplizieren (gibt high word des Ergebnis zurück) / dividieren (gibt Quotient zurück) // dividieren (gibt Rest zurück) MIN behält Variable größer oder gleich Wert MAX behält Variable kleiner oder gleich Wert & logisch AND | logisch OR ^ logisch XOR &/ logisch AND NOT |/ logisch OR NOT ^/ logisch XOR NOT Einige Beispiele: count = count + 1 timer = timer * 2 BASIC Briefmarke 'count hochzählen 'timer mal 2 • Wilke Technology GmbH • 0241-918 900 • Seite 25 Editieren b2 = b2 / 8 w3 = w3 & 255 'b2 durch 8 teilen 'low-byte von w3 Wichtiger Hinweis: Mathematische Ausdrücke werden von der BASIC-Briefmarke streng von links nach rechts verarbeitet. Dies ist wichtig zu wissen, denn Sie könnten andere Ergebnisse erwarten. Zum Beispiel wird der Ausdruck 2 + 3 x 4 normalerweise als 2 + (3 x 4) gelöst, da die Multiplikation eine höhere Priorität hat als die Addition. Das Ergebnis wäre 14. Da die BASIC-Briefmarke Ausdrücke von links nach rechts auswertet, wird der Ausdruck als (2 + 3) x 4 gelöst, mit dem Ergebnis 20. Programme eingeben und editieren Wie auf den vorherigen Seiten beschrieben gibt es einige Regeln für die Benutzung von Konstanten, Labels und Kommentaren. Größtenteils können Sie Ihre Programme aber nach eigenem Wunsch gestalten. Wir haben versucht die Bedienung des Editors so intuitiv wie möglich zu machen: drücken Sie <CrsrOben> um eine Zeile nach oben zu kommen, drücken Sie <Shift-CrsrRechts> um ein Zeichen zu markieren usw. Die meisten Funktionen des Editors sind einfach anzuwenden. Mit einzelnem Tastendruck können Sie folgende Funktionen ausführen: • • • • • Laden, Speichern, und Ausführen von Programmen. Bewegen des Cursor in Schritten von Zeichen, Worten, Zeilen, Seiten oder zum Beginn oder Ende einer Datei. Markieren von Text in Blöcken von Zeichen, Worten, Zeilen, Seiten oder bis zum Beginn oder Ende einer Datei. Ausschneiden, Kopieren und Einfügen von markiertem Text. Suchen und/oder Ersetzen von Text. Seite 26 • BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 Editieren Editor Funktions-Tasten Die folgende Liste zeigt die Tasten, die eine Funktion auslösen: Alt-L Alt-S Alt-Q Programm auf Briefmarke starten (beinhaltet downloaden, dann starten) Programm von Disk laden Programm auf Disk speichern Editor verlassen/Rückkehr nach DOS Enter Tab Information eingeben + eine Zeile weiter Wie Enter Cursor links Cursor rechts Cursor rauf Cursor runter Ctrl-Links Ctrl-Rechts Ein Zeichen nach links Ein Zeichen nach rechts Eine Zeile nach oben Eine Zeile nach unten Ein Wort nach links Ein Wort nach rechts Home/Pos1 End Page Up Page Down Ctrl-Page Up Ctrl-Page Down Zum Anfang der Zeile Zum Ende der Zeile Eine Seite zurück Eine Seite nach vorne Zum Anfang der Datei Zum Ende der Datei Alt-R Shift-Left Ein Zeichen nach links markieren Shift-Right Ein Zeichen nach rechts markieren Shift-Up Eine Zeile nach oben markieren Shift-Down Eine Zeile nach unten markieren Shift-Ctrl-Left Ein Wort nach links markieren Shift-Ctrl-Right Ein Wort nach rechts markieren Shift-Home Bis Zeilenanfang markieren Shift-End Bis Zeilenende markieren Shift-Page Up Eine Seite rückwärts markieren Shift-Page Down Eine Seite vorwärts markieren Shift-Ctrl-Page Up Bis Datei-Anfang markieren Shift-Ctrl-Page Down Bis Datei-Ende markieren BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 • Seite 27 Editieren Shift-Einfügen ESC Wort unter Cursor markieren Markierung löschen Backspace Delete Shift-Backspace Shift-Delete Ctrl-Backspace Zeichen vor Cursor löschen Zeichen unter Cursor löschen Von Zeilenanfang bis vor Cursor löschen Bis Zeilenende löschen Zeile löschen Alt-X Alt-C Alt-V Alt-F Alt-N Alt-P Markierten Text ausschneiden Markierten Text kopieren Markierten Text einfügen (an Cursorposition) Suche Text Suche nächstes Auftreten des Textes Potentiometer-Skalierung einstellen (siehe POT -Befehl für mehr Information) Starten Ihres Programms Um das Programm im Editor zu starten, drücken Sie ALT-R. Der Editor durchsucht die parallelen Ports nach einer BASIC Briefmarke. Findet er eine, sendet er das Programm ab und startet es. Findet der Editor keine Briefmarke, zeigt er eine Fehlermeldung. Angenommen Sie haben die Briefmarke korrekt an Ihren PC angeschlossen, zeigt der Editor einen Balken mit dem aktuellen Stand des Download. Dieser dauert normalerweise nur einige Sekunden, der Balken füllt sich also schnell. Sie werden feststellen, daß sich ein Teil des Balkens weiß füllt, der Rest rot. Diese Farben zeigen die Speicherbelegung des EEPROM an. Weiß zeigt den verfügbaren Speicherplatz, Rot den vom Programm belegten Speicherplatz. Dadurch können Sie einfach feststellen, wieviel Speicher des EEPROM für zusätzliche Befehle oder Daten frei bleibt. Wenn der Download beendet ist, wird Ihr Programm in der Briefmarke automatisch gestartet. Wenn Sie in Ihrem Programm die DEBUGDirektive verwendet haben, zeigt es seine Daten beim Auftreten im Programm an. Seite 28 • BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 Editieren Um den Balken vom Bildschirm zu entfernen und das Editieren fortzusetzen, drücken Sie eine beliebige Taste. Programm von Disk laden Um ein BASIC Programm von einer Disk zu laden, drücken Sie Alt-L. Eine kleine Box erscheint und fragt nach dem Dateinamen. Haben Sie den Namen korrekt eingegeben, wird das Programm in den Editor geladen. Andernfalls wird eine Fehlermeldung angezeigt. Wollen Sie das Programm nicht laden, drücken Sie ESC. Programm auf Disk speichern Um ein Programm auf einer Disk zu speichern, drücken Sie Alt-S. Eine kleine Box erscheint und fragt nach einem Dateinamen. Nachdem der Dateiname eingegeben ist, speichert der Editor Ihr Programm. Ausschneiden, Kopieren und Einfügen Wie die meisten Textverarbeitungen kann der Editor Text leicht ausschneiden, kopieren und einfügen. Wollen Sie große Änderungen in Ihrem Programm vornehmen oder hat Ihr Programm sich wiederholende Sequenzen, können Ihnen diese Funktionen viel Zeit sparen. Die Aufgabe der Ausschneide-, Kopier- und Einfügeroutinen ist es, markierten Text auszuschneiden oder in das Clipboard zu kopieren (das Clipboard ist ein Speicherbereich außerhalb des Editors). Text im Clipboard kann später irgendwo in Ihrem Programm eingefügt werden. Sowohl Ausschneiden wie auch Kopieren kopiert Text in das Clipboard, aber Ausschneiden entfernt den Text auch von seiner aktuellen Position. BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 • Seite 29 Editieren Beachten Sie, daß Ausschneiden und Löschen von Text unterschiedlich sind. In beiden Fällen wird er aus seiner ursprünglichen Position gelöscht, aber Ausschneiden speichert ihn im Clipboard - Löschen entfernt ihn vollständig. Als Übung schneiden wir einen Textbereich aus und fügen ihn an anderer Stelle wieder ein. Die folgenden Schritte helfen Ihnen dabei: • • • Erstens: Markieren Sie etwas Text. Beispielsweise vom Cursor bis zum Ende der Zeile. Drücken Sie Shift-End (alles von Cursor bis zum Ende der Zeile wird markiert). Zweitens: Drücken Sie Alt-X (ausschneiden). Der Text sollte verschwinden. Drittens: Bewegen Sie den Cursor an eine andere Stelle und drücken Sie Alt-V (einfügen). Der Text sollte an der CursorPosition erscheinen, den nachfolgenden Text nach hinten verschiebend. Der zweite Schritt könnte ersetzt werden durch Kopieren (Alt-C). In diesem Fall würde der Text an seiner ursprünglichen Position erhalten bleiben. Suchen & Ersetzen Der Editor hat eine Funktion, die Ihnen das Suchen und/oder Ersetzen von Text erlaubt. In vielen Fällen kann diese Funktion sehr nützlich sein. Zum Beispiel wollen Sie im ganzen Programm einen Variablen-Namen ändern. Manuell würde das viel Zeit kosten, mit Suchen/Ersetzen dauert es nur Sekunden. Um das Such-Kriterium zu setzen, drücken Sie Alt-F (suchen). Eine Eingabe-Box fragt nach dem Such-String und optional nach einem Ersetzungs-String. Führen Sie folgende Schritte durch: • Geben Sie den Such-String ein. Soll dieser die Tab or Return Tasten enthalten, geben Sie diese durch Ctrl-Tab oder CtrlReturn ein. "Ÿ" erscheint für jeden Tab, "¯" für jedes Return. Seite 30 • BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 Editieren • • Geben Sie den Ersetzungs-String ein (falls nötig). Wenn Sie diesen eingeben, wird er in das Clipboard kopiert. Während der Suche haben Sie die Möglichkeit, einzelne Auftreten des SuchStrings mit dem Ersetzungs-String zu ersetzen. Wollen Sie nur suchen, geben Sie beim Ersetzungs-String nur Enter ein. Der Editor entfernt die Eingabe-Box und zeigt das erste Auftreten des Such-Strings an. Um den markierten String zu ersetzen, drücken Sie Alt-V (ersetzen). Um das nächste Auftreten des Such-Strings zu finden, drücken Sie Alt-N. BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 • Seite 31 I/O Port & Variable I/O Port & Variablen-Speicherplatz Die BASIC-Briefmarke hat 16 Byte des RAM als Variablen-Speicherplatz zur Verfügung. Zwei Bytes werden für I/O benötigt (1 für Pins, 1 für Direction-Control), verbleiben 14 für Daten. Die 14 Daten-Byte können als Word-Variablen (W0-W6) und Byte-Variablen (B0-B13) verwendet werden. Zusätzlich können B0 and B1 (W0) als Bit-Variablen (Bit0Bit15) verwendet werden. Die Aufteilung des Variablen-Speichers: Words Bytes Bits Alternative Bit-Namen 0000 0000 Port 0000 0000 Pins Pin0-Pin7 Dirs Dir0-Dir7 Pins.0-Pins.7, Port.0-Port.7 Dirs.0-Dirs.7, Port.8-Port.15 0000 0000 W0 0000 0000 B0 B1 B0.0-B0.7, W0.0-W0.7 B1.0-B1.7, W0.8-W0.15 0000 0000 W1 0000 0000 B2 B3 0000 0000 W2 0000 0000 B4 B5 0000 0000 W3 0000 0000 B6 B7 0000 0000 W4 0000 0000 B8 B9 0000 0000 W5 0000 0000 B10 B11 0000 0000 W6 0000 0000 B12 B13 Bit0-Bit7 Bit8-Bit15 Die BASIC-Sprache erlaubt eine ziemliche Flexibilität im Benennen von Variablen und I/O-Pins. Abhängig von Ihren Anforderungen können Sie Variablen-Speicher und I/O-Pins als Bytes oder 16-Bit Worte verwen- Seite 32 • BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 I/O Port & Variable den. Zusätzlich können die I/O-Pins und ersten beiden Variablen-Byte Bit-für-Bit verwendet werden. In vielen Fällen kann ein einzelnes Bit völlig ausreichen, z.B. für Flags oder zum Lesen eines einzelnen Input. Port ist das I/O-Wort, welches aus 2 Bytes, Pins and Dirs, besteht: Pins und Pin0-Pin7 sind die I/O-Port-Pins. Werden diese Variablen gelesen, werden die I/O-Pins direkt gelesen. Wird auf diese Variablen geschrieben, wird auch auf das zugehörige RAM geschrieben, welches dann vor jedem Befehl an den I/O-Port gesendet wird. Dirs und Dir0-Dir7 sind die I/O-Port Richtungs-Bits. Eine "0" in einem dieser Bits macht den zugehörigen I/O-Pin zu einem InputPin, eine "1" zu einem Output-Pin. Dieses Daten-Byte wird vor jedem Befehl an die I/O-Port Richtungs-Register gesendet. Beim Schreiben eines BASIC Programms verwenden Sie die oben genannten Symbole zum Lesen und Beschreiben der 8 I/OPins. Normalerweise starten Sie Ihr Programm mit der Definition welche Pins Input und welche Output sind. "dirs = %00001111" würde Bits 0-3 als Output, Bits 4-7 als Input festlegen (von rechts nach links). Nach dieser Definition können Sie die Pins auslesen und beschrei-ben. Der Befehl "pins = 7" setzt die Bits 0-2 high. Der Befehl "b2 = pins" würde alle 8 Pins in die Byte-Variable b2 einlesen. Pins können bit-weise adressiert werden, was für einige Applikatio-nen von Vorteil ist. Der Befehl "if pin3 = 1 then start" liest den I/O-Pin 3 und springt nach "start" (Adresse) wenn der Pin high (1) war. BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 • Seite 33 I/O Port & Variable Die restlichen Variablen (W0-W6) können für beliebige Speicherzwecke verwendet werden, mit einer wichtigen Ausnahme: W6 wird als Stack benötigt wenn GOSUB’s ausgeführt werden. Die Editor-Software erkennt die Variablen-Namen auf der vorherigen Seite. Wollen Sie andere Namen verwenden, können Sie Ihr Programm mit Befehlen zur Definition neuer Namen beginnen: symbol switch = pin0 symbol flag = bit0 symbol count = b2 Seite 34 • BASIC Briefmarke 'I/O-Pin-Label 'Bit-Label 'Byte-Label • Wilke Technology GmbH • 0241-918 900 Übersicht Befehlssatz Übersicht Befehlssatz SPRUNGBEFEHLE IF...THEN BRANCH GOTO GOSUB RETURN Vergleichen und bedarfsweise springen. Springen auf durch Offset spezifizierte Adresse. Springen auf Adresse. Springen auf Unterprogramm bei Adresse. Bis zu 16 GOSUB's sind erlaubt. Rücksprung aus Unterprogramm. SCHLEIFEN FOR...NEXT Einrichten einer FOR-NEXT Schleife. NUMERIK Variablen-Manipulation, wie A=5, B=A+2, usw. Erlaubte Operationen sind addieren, subtrahieren, multiplizieren, dividieren, max. limit, min. limit, und logische Operationen AND, OR, XOR, AND NOT, OR NOT, und XOR NOT. LOOKUP Speichert den durch Offset angegebenen Wert einer Tabelle in einer Variablen. LOOKDOWN Findet Position des Zielwerts in einer Tabelle und speichert sie in einer Variable. RANDOM Generieren einer Pseudo-Zufallszahl. {LET} DIGITALER I/O OUTPUT LOW HIGH TOGGLE PULSOUT INPUT Macht Pin zu Output. Macht Pin zu Output (low). Macht Pin zu Output (high). Macht Pin zu Output und wechselt Status. Ausgabe eines Impuls durch zeitliche Invertierung eines Pin. Macht Pin zu Input BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 • Seite 35 Übersicht Befehlssatz PULSIN Mißt einen Input-Impuls. REVERSE Macht Input- zu Output-Pin und umgekehrt. BUTTON Entprelle Taste, führe Auto-Repeat durch, und springe zu Adresse falls Taste im Ziel-Zustand. SERIELLER I/O Serieller Input mit optionalen Triggern und Variablen für Speicherung der empfangen Daten. Sind Trigger gesetzt, wartet der Befehl bis er sie empfängt bevor er Variablen besetzt oder mit dem nächsten Befehl fortfährt. Baudraten von 300, 600, 1200 und 2400 sind gestattet. Voraussetzung: No Parity, 8 Datenbit und 1 Stopbit. Daten seriell senden. Daten werden mit 300, 600, 1200 oder 2400 Baud gesendet (No Parity, 8 Datenbit und 1 Stopbit). SERIN SEROUT ANALOGER I/O Output PWM, dann Pin wieder auf Input setzen. Kann für Ausgabe analoger Spannungen (0-5V) mit Kondensator und Widerstand verwendet werden. Liest ein 5-50K Potentiometer und skaliert Ergebnis. PWM POT SOUND SOUND Erzeugt Töne. Ton 0 ist Ruhe, Töne 1-127 sind aufsteigende klare Töne. Töne im Bereich 128-255 sind weißes Rauschen. EEPROM ZUGRIFF EEPROM READ WRITE Seite 36 Speichert Daten im EEPROM vor dem downloaden eines BASIC Programms. Liest EEPROM Byte in eine Variable. Schreibe Byte ins EEPROM. • BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 Übersicht Befehlssatz ZEIT PAUSE Unterbreche Ausführung für 0–65536 Millisekunden. POWER KONTROLLE NAP SLEEP END "Schlummer-Modus". Strombedarf ist kurzzeitig reduziert. "Schlaf-Modus". Strombedarf ist dauerhaft reduziert auf ca. 20 µA. "Schlaf-Modus" bis Stromversorgung AUS-EIN geschaltet wird oder eine Verbindung zum PC aufgenommen wird. Der Strombedarf ist reduziert auf ca. 20 µA. PROGRAMM DEBUGGEN DEBUG Sendet während des Programm-Laufs Variablen zur Ansicht an den PC. Der Entwickler kann an Hand der Variablenwerte die richtige Programmfunktion überprüfen. BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 • Seite 37 Basic-Befehle BASIC Befehle BRANCH BRANCH Offset,(Adresse0,Adresse1,...AdresseN) Sprung auf die in Offset angegebene Adresse und weitere Aus-führung dort. • • Offset ist eine Variable/Konstante welche die Adresse bestimmt, auf die gesprungen werden soll (0-N). Adressen sind Labels die angeben wohin gesprungen werden soll. Beispiel-Programm: abc: serin 0,n2400,("code"),b2 'Monitor serial input and 'wait for "c","o","d","e". 'Store next byte in b2. BRANCH b2,(xyz,iou,irs) 'If b2=0, gehe zu xyz; 'If b2=1, gehe zu iou; 'If b2=2, gehe zu irs. goto abc xyz: iou: irs: Seite 38 'Gehe zu abc falls b2 'nicht in Bereich 0-2. ... ... ... • BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 Basic-Befehle BUTTON BUTTON Pin,Downstate,Delay,Rate,Bytevar,Zielstatus,Adresse entprelle Tasten-Eingabe, führe Auto-Wiederholung durch und springe, wenn die Taste im Ziel-Zustand ist. Die Tasten-Schaltung kann aktivlow oder aktiv-high sein, wie im Schaltbild auf der nächsten Seite zu sehen. • • • • • • • Pin ist eine Variable/Konstante (0-7), die den benutzten I/O-Pin spezifiziert. Downstate ist eine Variable/Konstante (0 oder 1), die angibt, welcher logische Status gelesen wird, wenn die Taste gedrückt ist. Delay ist eine Variable/Konstante (0-255), die angibt wie lange die Taste gedrückt sein muß, bevor die Auto-Wiederholung startet. Die Verzögerung wird in Zyklen der Tasten-Routine gemessen. Delay hat zwei spezielle Einstellungen: 0 und 255. Falls 0, gibt die Routine den Tasten-Status zurück ohne Entprellung oder Auto-Wiederholung. Falls 255, wird ein Entprellung, aber keine Auto-Wiederholung durchgeführt. Rate ist eine Variable/Konstante (0-255), die die Auto-Wiederholungsrate angibt. Die Rate wird angegeben in Zyklen der Tasten-Routine. Bytevar ist der Arbeitsspeicher für BUTTON. Er muß vor der ersten Verwendung von BUTTON auf 0 gesetzt werden. Zielstatus ist eine Variable/Konstante (0 oder 1), welche angibt, bei welchem Tasten-Status der Sprung ausgeführt wird. (0=nicht gedrückt, 1=gedrückt) Adresse ist ein Label, das angibt wohin gesprungen wird, wenn die Taste im Ziel-Zustand ist. BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 • Seite 39 Basic-Befehle Beispiel-Programm: b2=0 loop: abc: 'Lösche b2 vor Verwen'dung in der Tasten'Routine. BUTTON 3,0,90,10,b2,0,abc 'Lies Taste auf Pin 3. 'Taste ist low (0) wenn 'gedrückt. Auto-Repeat 'startet nach 50 Routi'nen-Zyklen. 'B2 enthält die Anzahl 'der Routinen-Zyklen. 'Falls Taste nicht 'gedrückt, Sprung zu abc. pulsout 5,1000 'Puls Pin 5 für 0.01 sec. pause 10 'Pause für 10 ms. Erstellt 'ein Auto-Repeat-Delay 'von 1000 ms (10x100) 'und eine Repeat-Rate von '100 ms (10x10). goto loop 'Zurück zu BUTTON-Befehl. +5 +5 10K zu I/O-Pin 10K zu I/O-Pin Seite 40 • BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 Basic-Befehle DEBUG DEBUG Sendet Variablen-Inhalte an den PC zur Ansicht. DEBUG arbeitet ähnlich wie PRINT in vielen BASIC-Dialekten. Statt Text auf dem Bildschirm auszugeben, sendet DEBUG Text und Variablen zurück an den PC. Die folgenden Regeln beziehen sich auf den DEBUG Befehl: • • • • • • • Die genannten Variablen generieren den Ausdruck "Variable = Wert" auf dem PC. Die als #variable genannten Variablen generieren Ihren Wert (ohne den "Variable =" Text). Text in Anführungszeichen erscheint am PC wie eingegeben. Variablen werden normalerweise dezimal angezeigt. Um eine Variable in Hex anzuzeigen, stellen Sie ein "$" vor ihren Namen. Um eine Variable binär anzuzeigen, stellen Sie ein "%" vor ihren Namen. "cr" kann für einen Zeilenumbruch am PC eingefügt werden. "cls" kann für Bildschirm löschen am PC eingefügt werden. Anzuzeigende Variablen müssen durch Kommas getrennt werden. Beispiele: DEBUG DEBUG DEBUG DEBUG DEBUG BASIC Briefmarke b2 'Print "b2 = " + Wert von b2 #b2 'Print Wert von b2 "Wert b2=",b2 'Print "Wert b2=" + Wert b2 #%b2 'Print Wert von b2 (binär) "Werte:",b2,b3,cr 'Print "Werte" + Wert b2 + 'Wert b3 + <CR> • Wilke Technology GmbH • 0241-918 900 • Seite 41 Basic-Befehle EEPROM EEPROM {Position},(Data,Data,...) Speichert Werte im EEPROM vor dem Downloaden des BASIC Programms. Dies ist hilfreich, um das EEPROM mit Werten vorzubesetzen, die von Ihrem Programm verwendet werden. Die EEPROM Direktive wird vor jedem Download ausgeführt, wird selbst aber nicht an die Briefmarke gesendet. Daher verbraucht Sie keinen Speicherplatz auf der Briefmarke. • • Position ist eine optionale Variable/Konstante (0-255), die die Startposition der Daten im EEPROM festlegt. Wird keine Position angegeben, werden die Daten an die nächste freie Position geschrieben. Data sind Variablen/Konstanten (0-255), die sequentiell im EEPROM gespeichert werden. Beispiel-Program: EEPROM 0,(5,23,17,158,2) 'Vorbesetzen des EEPROM 'mit später verwendeten 'Daten. . . . Seite 42 • BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 Basic-Befehle END END Wechselt auf unbestimmte Zeit in den "Sleep Mode". Die Briefmarke wacht wieder auf wenn die Stromversorgung unterbrochen und wieder eingeschaltet wird oder der PC die Verbindung herstellt. Der Stromverbrauch ist im Sleep-Mode reduziert auf ca. 20 µA, ange-nommen an den Ausgangs-Pins liegt keine Belastung an. END hat keine Parameter. BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 • Seite 43 Basic-Befehle FOR...NEXT FOR Variable = Start TO End {STEP {-}Inkrement} . . . NEXT {Variable} Einrichten einer FOR-NEXT Schleife. Variable wird auf den Wert Start gesetzt. Die Anweisungen zwischen dem FOR und dem NEXT-Befehl werden ausgeführt. Die Variable wird um den Wert Increment erhöht oder vermindert (ist kein Inkrement angegeben, wird die Variable um 1 erhöht). Falls die Variable den Wert End noch nicht erreicht oder überschritten hat, werden die Befehle zwischen FOR und NEXT nochmals ausgeführt. Hat die Variable den Wert End erreicht oder überschritten, wird die Ausführung hinter dem NEXT-Befehl fortgesetzt. Die Schleife wird mindestens einmal ausgeführt, unabhängig von den Werten für Start und End. Ihr Programm kann soviele For...Next-Schleifen enthalten wie nötig, aber nur bis Verschachtelungstiefe 8 (Im Programm können nicht mehr als 8 Schleifen ineinander verschachtelt werden). • • • • Variable ist eine Bit, Byte oder Wort-Variable als interner Zähler. Start und End sind eingeschränkt durch die Art der Variable (BitVariablen können von 0 bis 1 zählen, Byte-Variablen von 0 bis 255, und Wort-Variablen von 0 bis 65535). Start ist eine Variable/Konstante, die den Anfangswert von Variable festlegt. End ist eine Variable/Konstante, die den Endwert von Variable festlegt. Inkrement ist ein optionaler Wert, der den Zähler erhöht oder vermindert (falls negativ). Wird kein Inkrement-Wert angegeben, wird der Zähler um 1 erhöht. Beispiel auf nächster Seite ... Seite 44 • BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 Basic-Befehle Beispiel Programm: FOR b2 = 0 TO 255 'For-Next-Schleife, die 'von 0 bis 255 zählt. pins = b2 'Ausgabe von 8-Bit-Wert 'auf die Pins 0-7. NEXT BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 • Seite 45 Basic-Befehle GOSUB GOSUB Adresse Speichert die Adresse des auf GOSUB folgenden Befehls und springt dann nach Adresse, wo die Ausführung fortgesetzt wird. Ihr Programm kann die Ausführung dort fortsetzen, von wo aus der Sprung erfolgte, indem Sie ein RETURN an das Ende der gerufenen Routine schreiben. Es sind bis zu 16 GOSUB’s in einem Programm erlaubt. • Adresse ist ein Label das angibt, wohin gesprungen wird. Beispiel Programm: for b4 = 0 to 10 GOSUB abc 'Speichere Rücksprung'Adresse und springe 'nach abc next abc: Seite 46 pulsout 0,b4 'Ausgabe Puls auf Pin 0. 'Puls-Länge ist b4 x 10µs. toggle 1 'Invertiere return 'Rücksprung • BASIC Briefmarke Pin 1 • Wilke Technology GmbH • 0241-918 900 Basic-Befehle GOTO GOTO Adresse Springe nach Adresse, wo die Ausführung fortgesetzt wird. • Adresse ist ein Label das angibt, wohin gesprungen wird. Beispiel Programm: abc: pulsout 0,100 'Generiert einen 1000µs 'Puls auf Pin 0 GOTO abc 'Wiederhole dies BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 • Seite 47 Basic-Befehle HIGH HIGH Pin Setze den angegebenen Ausgabe-Pin auf High. Ist der Pin als EingabePin programmiert, wird er zum Ausgabe-Pin. • Pin ist eine Variable/Konstante (0-7) die den zu setzenden I/OPin festlegt. Beispiel Programm: ibm: Seite 48 HIGH 3 low 2 HIGH 2 low 3 'Ausgabe-Pin 'Ausgabe-Pin 'Ausgabe-Pin 'Ausgabe-Pin goto ibm 'Wiederhole dies • BASIC Briefmarke 3=High 2=Low 2=High 3=Low • Wilke Technology GmbH • 0241-918 900 Basic-Befehle IF...THEN IF Variable ?? Wert {AND/OR Variable ?? Wert...} THEN Adresse Vergleiche Variable(n) mit Wert(en) und springe nach Adresse, falls Ergebnis positiv (wahr). Anders als der IF...THEN Befehl in anderen BASIC-Dialekten kann die auf THEN folgende Adresse nicht durch andere Befehle ersetzt werden, wie "IF A=10 THEN READ 200,B". Es darf nur ein Adress-Label auf THEN folgen. • • • • ?? ist einer der folgenden Operatoren: =, <>, >, <, >=, <=. Variable ist eine Variable, die mit Wert(en) verglichen wird. Wert ist eine Variable/Konstante, mit der verglichen wird. Adresse ist ein Label das angibt, wohin gesprungen wird wenn die Vergleiche positiv (wahr) sind. Beispiel Programm: abc: serin 0,n2400,b2 'Empfange serielles Byte IF b2 = 185 THEN xyz 'Falls 185 empfangen, 'springe nach xyz. xyz: high 2 'Ausgabe-Pin 2=High. goto abc 'Springe nach abc. low 2 'Ausgabe-Pin 2=Low. goto abc 'Springe nach abc. BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 • Seite 49 Basic-Befehle INPUT INPUT Pin Setze den angegebenen Pin als Input-Pin. Dies schaltet alle AusgabeTreiber ab und erlaubt Ihrem Programm jeden Status zu lesen, der an diesem Pin anliegt. • Pin ist eine Variable/Konstante (0-7) die angibt, welcher I/O-Pin angesprochen wird. Beispiel Programm: INPUT 5 abc: 'Eingabe-Pin 5 =Input. if pin5 = 1 then xyz 'Falls Pin 5=High, 'springe nach xyz. goto abc 'Springe nach abc. xyz: serout 3,n300,(65) 'Sende 65 (seriell). nbc: if pin5 = 1 then nbc 'Warte bis Pin 5=Low. goto abc Seite 50 • BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 Basic-Befehle LET {LET} Variable = {-}Wert ?? Wert... Weise einer Variable einen Wert zu und/oder manipuliere eine Variable. Alle internen Manipulationen werden auf Wort-Ebene ausgeführt (16 Bits). Der Befehl "LET" ist optional. "A=10" ist beispielsweise identisch zu "LET A=10". • • • ?? ist einer der folgenden Operatoren: + addieren - subtrahieren * multiplizieren (gibt Low-Wort des Ergebnis zurück) ** multiplizieren (gibt High-Wort des Ergebnis zurück) / dividieren (gibt Quotient zurück) // dividieren (gibt Rest zurück) MIN behält Variable größer oder gleich Wert MAX behält Variable kleiner oder gleich Wert & logisch AND | logisch OR ^ logisch XOR &/ logisch AND NOT |/ logisch OR NOT ^/ logisch XOR NOT Variable wird ein Wert und/oder ein Ausdruck zugewiesen. Wert(e) ist eine Variable/Konstante, die die Variable beeinflußt. Bespiel Program: abc: pot 0,100,b3 'Lies Potentiometer und 'lege Ergebnis in b3. LET b3=b3/2 'Teile Ergebnis durch 2. b3=b3 max 100 'Begrenze Ergebnis auf '0-100."LET" ist nicht 'notwendig. BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 • Seite 51 Basic-Befehle LOOKDOWN LOOKDOWN Ziel,(Wert0,Wert1,...WertN),Variable Durchsuche Werte nach dem Ziel-Wert. Falls Ziel einem der Werte entspricht, wird die Nummer dieses Wertes in Variable gespeichert. Sind beispielsweise die Werte 2, 13, 15, 28, 8 und der Zielwert ist 15, würde die Variable den Wert "2" enthalten, da "15" der dritte Wert in der Liste ist (der erste Wert ist #0, der zweite ist #1, usw.). Wird keine Übereinstimmung gefunden, wird die Variable nicht verändert. • • • Ziel ist die Variable/Konstante nach der Sie suchen. Wert0, Wert1,... ist eine Liste von Werten. Der Zielwert wird mit diesen Werten verglichen. Variable enthält das Ergebnis der Suche. Beispiel Programm: serin 0,n2400,b2 'Empfange serielles Byte. LOOKDOWN b2,(65,88,93),b3 'Falls b2=65, b3=0; 'Falls b2=88, b3=1; 'Falls b2=93, b3=2; . . . Seite 52 • BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 Basic-Befehle LOOKUP LOOKUP Offset,(Wert0,Wert1,...WertN),Variable Sieht nach einem Wert angegeben durch Offset und speichert ihn in Variable. Sind die Werte beispielsweise 2, 13, 15, 28, 8 und der Offset ist 1, würde die Variable den Wert "13" enthalten, da "13" der zweite Wert in der Liste ist (der erste Wert ist #0, der zweite ist #1, usw.). Liegt der Offset oberhalb der Anzahl der gegebenen Werte, wird die Variable nicht verändert. • • • Offset gibt an welcher Wert in die Variable kopiert wird. Wert0, Wert1,... ist eine Liste von Werten. Der Offset-Wert wird aus diesen Werten genommen. Variable enthält das Ergebnis des Befehls. Beispiel Programm: for b2 = 0 to 25 LOOKUP b2,(65,66,67,..),b3 'Konvertiere Offset (0'25) zu entsprechendem 'ASCII-Zeichen (A-Z). next BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 • Seite 53 Basic-Befehle LOW LOW Pin Setze den angegebenen Ausgabe-Pin auf Low. Ist der Pin als EingabePin programmiert, wird er zum Ausgabe-Pin. • Pin ist eine Variable/Konstante (0-7) die den zu setzenden I/OPin festlegt. Beispiel Programm: abc: Seite 54 LOW 3 'Output-Pin 3=Low. pause 1000 'Pause für ca. 1 sec. high 3 'Output-Pin 3=High. goto abc 'Wiederhole dies. • BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 Basic-Befehle NAP NAP Dauer Wechselt für eine kurze Zeit in den "Sleep Mode". Der Stromverbrauch ist reduziert auf ca. 20 µA, angenommen an den Ausgangs-Pins liegt keine Belastung an. • Dauer ist eine Variable/Konstante die die Dauer der "Schlummerphase" festlegt. Die Dauer ist (2^Dauer) * ~18 ms. Dauer kann zwischen 0 und 7 liegen, resultierend in "Schlummerphasen" von 18 ms bis 2.3 Sekunden. Beispiel Programm: . . . NAP 7 'Briefmarke schläft für '2304 ms (2.304 Sek). Übersicht über die einstellbare Zeitdauer: NAP 0: NAP 1: NAP 2: NAP 3: NAP 4: NAP 5: NAP 6: NAP 7: 18 36 72 144 288 576 1152 2304 BASIC Briefmarke ms ms ms ms ms ms ms ms • Wilke Technology GmbH • 0241-918 900 • Seite 55 Basic-Befehle OUTPUT OUTPUT Pin Macht angegebenen Pin zu Ausgabe-Pin. • Pin ist eine Variable/Konstante (0-7) die angibt, welcher I/O-Pin angesprochen wird. Beispiel Programm: abc: Seite 56 bit0 = 0 bit1 = 1 'Setze Bit-Variablen OUTPUT 2 'Pin 2=Ausgabe-Pin. pin2 = bit0 pin2 = bit1 'Ausgabe-Pin 2=Low. 'Ausgabe-Pin 2=High. goto abc 'Springe nach abc. • BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 Basic-Befehle PAUSE PAUSE Millisekunden Unterbricht die Programmausführung für ein paar Millisekunden. Die Dauer der Unterbrechung ist so genau wie die Zeitbasis des Resonators. Zusätzliche Zeit (vielleicht 1 ms) wird allerdings benötigt, um die anliegenden Befehle zu holen und auszuführen. Wird die Länge der Pause erhöht, fällt diese zusätzlich benötigte Zeit weniger ins Gewicht. "Ziemlich genaue" Timer-Funktionen können implementiert werden, indem man eine längere Pause, z.B. 100 ms, einfügt und dann einen Zähler erhöht, auf eine End-Bedingung prüft und - falls nicht wahr - auf die Pause zurückspringt. Im Fall von 100 ms könnte der Fehler +1% sein. Das kann umgangen werden indem man die 100 in eine 99 ändert (basierend auf Tests), oder die 100 auf 1000 erhöht und in Schritten von 1 Sekunde zählt. • Millisekunden ist eine Variable/Konstante (0-65535) die angibt, für wieviele Millisekunden unterbrochen wird. Beispiel Programm: abc: low 2 'Output-Pin 2=Low. PAUSE 100 'Pause für 0.1 Sekunde. high 2 'Output-Pin 2=High. PAUSE 100 'Pause für 0.1 Sekunde. goto abc BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 • Seite 57 Basic-Befehle POT POT Pin,Scale,Variable Liest ein 5-50K Potentiometer ein. Physikalisch kann es sich dabei um einen Thermistor, Photowiderstand, Weg- oder Winkelgeber oder anderen variablen Widerstand handeln. Der Eingabe-Pin muß mit einer Seite eines Widerstands verbunden sein, dessen verbleibende Seite durch einen Kondensator mit Masse verbunden ist. Die WiderstandsMessung erfolgt durch Messung der RC-Zeitkonstante. • • • Pin ist eine Variable/Konstante (0-7) die den verwendeten I/O-Pin angibt. Scale ist eine Variable/Konstante (0-255) die verwendet wird um das interne 16-Bit Ergebnis des Befehls zu skalieren. Der 16-BitWert wird mit (Scale/256) multipliziert, so daß ein Scale-Wert von 128 den Bereich um ca. 50% reduziert, eine Skalierung von 64 auf 25% usw. Die Alt-P Option (siehe unten) bietet eine Möglichkeit den besten Scale-Wert für einen bestimmten Widerstand zu finden. Variable speichert das endgültige Ergebnis der Messung. Intern errechnet der POT Befehl einen 16-Bit Wert, der dann in einen 8Bit Wert gewandelt werden muß. Der Faktor durch den der interne Wert umgesetzt wird hängt von der Größe des verwendeten Widerstands ab. Um den besten Scale-Wert zu finden, drücken Sie Alt-P in der EditorSoftware (Die Briefmarke muß dabei mit dem PC verbunden sein). Ein spezielles Kalibrierungs-Fenster erscheint, das Ihnen das Finden des besten Wertes ermöglicht. Die erforderlichen Schritte sind auf der nächsten Seite aufgeführt. Fortsetzung nächste Seite... Seite 58 • BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 Basic-Befehle POT (Fortsetzung) Findes des besten POT Scale-Wertes: • • • • • Drücken Sie Alt-P im Editor. Die Briefmarke muß mit dem PC verbunden sein und der Widerstand für den POT-Befehl muß mit der Briefmarke verbunden sein. Ein Fenster erscheint und fragt nach der Nummer des I/O-Pin mit dem der Widerstand verbunden ist. Wählen Sie den entsprechenden Pin (0-7). Der Editor sendet ein kurzes Programm an die Briefmarke (überschreibt jedes in der Briefmarke gespeicherte Programm). Ein Fenster erscheint mit zwei Zahlen: Scale und Wert. Justieren Sie den Widerstand bis die Zahl für Scale so klein wie möglich ist. Sobald Sie den kleinsten Wert für Scale gefunden haben, sind Sie fertig. Diese Zahl sollte im POT Befehl für Scale eingesetzt werden. Als zusätzlichen Schritt können Sie die Scale-Nummer durch Druck auf die Space-Taste verifizieren. Dies blockiert den ScaleWert und veranlaßt die Briefmarke fortlaufend den Widerstand auszulesen. Das Ergebnis wird als Wert im gleichen Fenster angezeigt. Ist der Scale-Wert gut, sollten Sie den Widerstand so justieren können, daß die Werte zwischen 0 und 255 liegen (oder so dicht wie möglich). Um den Scale-Wert zu ändern und diesen Schritt erneut auszuführen. drücken Sie noch einmal die SpaceTaste. Machen Sie weiter bis Sie den besten Sclae-Wert gefunden haben. Fortsetzung nächste Seite... BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 • Seite 59 Basic-Befehle POT (Fortsetzung) Beispiel Programm: abc: POT 0,100,b2 'Lese Potentiometer an 'Pin 0. serout 1,N300,(b2) 'Sende Potentiometerwert 'über seriellen Ausgang. goto abc 'Wiederhole das. zu I/O-Pin 5-50K 0.1 µF Seite 60 • BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 Basic-Befehle PULSIN PULSIN Pin,Status,Variable Messen eines Eingangs-Puls in Schritten von 10 µs. • • • Pin ist eine Variable/Konstante (0-7) die den verwendeten I/O-Pin festlegt. Status ist eine Variable/Konstante (0 oder 1) die angibt, welcher Pegel auftreten muß damit die Pulsdauer-Messung beginnt. Variable ist eine Variable die das Ergebnis der Messung speichert (1-65536). Die verwendete Variable kann vom Typ Byte oder Wort sein. Wenn eine Byte-Variable benutzt wird und das Ergebnis größer als 0.65536 Sekunden ist, ist das Ergebnis 0. Beispiel Programm: PULSIN 4,0,w2 'Mißt einen Eingangs-Puls 'auf Pin 4. Startet die 'Messung wenn ein High'nach-Low Übergang 'auftritt. Stoppt die 'Messung beim Auftreten 'eines Low-nach-High 'Übergangs. serout 1,n300,(b5) 'Sendet High-Byte der 16'Bit-Puls-Messung über 'seriellen Ausgang. . . . BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 • Seite 61 Basic-Befehle PULSOUT PULSOUT Pin,Zeit Generiert einen Puls durch Invertieren eines Pins für eine bestimmte Zeitdauer. • • Pin ist eine Variable/Konstante (0-7) die den verwendeten I/O-Pin festlegt. Zeit ist eine Variable/Konstante (0-65535) die die Länge des Pulses in Einheiten von 10 µs angibt. Beispiel Programm: abc: Seite 62 PULSOUT 0,3 'Invert. Pin 0 für 30 µs. pause 1 'Pause für 1 ms. goto abc 'Sprung nach abc. • BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 Basic-Befehle PWM PWM Pin,Duty,Cycles Gibt auf einem Pin ein puls-breiten-moduliertes Signal aus und kehrt dann in den Eingangs-Status des Pin zurück. Kann benutzt werden zum Generieren von analogen Spannungen (0-5V) über einen Pin verbunden mit einem Widerstand und Kondensator mit Masse; die Widerstand-Kondensator-Verbindung ist der analoge Ausgang (siehe Schaltung unten). Da sich der Kondensator langsam entlädt, sollte PWM periodisch ausgeführt werden um die analoge Spannung aufzufrischen. • • • Pin ist eine Variable/Konstante (0-7) die den verwendeten I/O-Pin festlegt. Duty ist eine Variable/Konstante (0-255) die den gewünschten analogen Level (0-5 Volt) angibt. Cycles ist eine Variable/Konstante (0-255) die die Anzahl der Zyklen für die Ausgabe angibt. Größere Kondensatoren benötigen mehrere Zyklen zum vollständigen Aufladen. Jeder Zyklus dauert ca. 5 ms. Wenn der Analog-Ausgang einen nennenswerten Strom abgeben muß, ist ein Ausgangsverstärker vorzusehen (Op-Amp). Beispiel Program: abc: serin 0,n300,b2 'Empfange serielles Byte. PWM 1,b2,20 'Ausgabe analoger Spannung 'entsprech. empfang. Byte. 10K von I/O-Pin analoger Ausgang + BASIC Briefmarke 1 µF • Wilke Technology GmbH • 0241-918 900 • Seite 63 Basic-Befehle RANDOM RANDOM Wortvariable Generiert die nächste Pseudo-Zufallszahl in Wortvariable. Die Briefmarke verwendet eine Sequenz von 65535 essentiellen Zufallszahlen um diesen Befehl auszuführen. Wenn der Befehl ausgeführt wird, bestimmt der Wert in Wortvariable wo in die Sequenz von Zufallszahlen eingegriffen wird. Wird immer mit dem gleichen Wert initialisiert, erhalten Sie auch immer die gleiche Sequenz von Zufallszahlen. Obwohl diese Methode nicht absolut zufällig ist, reicht sie für die meisten Applikationen aus. Um wirklich zufällige Ergebnisse zu erhalten, müssen Sie ein unsicheres Element in den Prozeß einbeziehen. Ein Beispiel wäre eine Echtzeit-Uhr, die über einen seriellen Eingang gelesen wird. • Wortvariable ist eine Variable (0-65535) die als Arbeitsplatz für die Routine und ihr Ergebnis fungiert. Jeder Durchlauf durch RANDOM läßt die nächste Zahl der Pseudo-Zufalls-Sequenz zurück. Beispiel Program: loop: Seite 64 RANDOM w1 'Generiert 16-Bit Zufalls'zahl. sound 1,(b2,10) 'Generiert zufälligen Ton 'auf Pin 1 mit dem Low'Byte der Zufallszahl (b2) 'of the random number (b2) 'als Nummer der Note. goto loop 'Wiederhole das • BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 Basic-Befehle READ READ Position,Variable Liest Position im EEPROM und speichert Wert in Variable. Das EEPROM wird sowohl als Programmspeicher (von oben nach unten) als auch als Datenspeicher (von unten nach oben) verwendet. Um sicherzustellen, daß Ihr Programm sich nicht selbst überschreibt, lesen Sie die Position 255 im EEPROM bevor Sie Daten schreiben. Position 255 enthält die Adresse des letzten Befehls Ihres Programms. Folglich kann Ihr Programm jeden Platz unterhalb der Adresse in Position 255 verwenden. Enthält Position 255 den beispielsweise den Wert 100, kann Ihr Programm die Positionen 0-99 für Daten verwenden. • • Position ist eine Variable/Konstante (0-255) die angibt, welche Position im EEPROM gelesen werden soll. Variable empfängt den Wert vom EEPROM (0-255). Beispiel Program: loop: READ 255,b2 'Hole Position des letzten 'Befehls Ihres Programms. b2 = b2 - 1 'Nächste freie EEPROM'Position serin 0,N300,b3 'Empfange serielles Byte 'in b3. write b2,b3 'Speichere empfangenes 'Byte in nächster EEPROM'Position. if b2 > 0 then loop 'Hole weiteres Byte falls 'noch Speicherplatz. BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 • Seite 65 Basic-Befehle RETURN RETURN Rücksprung aus Unterprogramm. RETURN springt zurück auf die Adresse, die der der letzten GOSUB-Anweisung folgt. Dort wird die Ausführung fortgesetzt. RETURN hat keine Parameter. Beispiel Program: for b4 = 0 to 10 gosub abc 'Speichere Rücksprung'Adresse und springe 'dann nach abc next . . . end abc: Seite 66 pulsout 0,b4 'Ausgabe eines Puls auf 'Pin 0. Puls-Länge ist 'b4 x 10 µs. toggle 1 'Invertiere Pin 1. RETURN 'Rücksprung zur rufenden 'Routine. • BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 Basic-Befehle REVERSE REVERSE Pin Ändere die Richtung des angegebenen Pins. Ist der Pin ein EingangsPin, wird daraus ein Ausgangs-Pin und umgekehrt. • Pin ist eine Variable/Konstante (0-7) die den zu ändernden I/OPin festlegt. Beispiel Program: dir3 = 0 'Pin 3=Input. REVERSE 3 REVERSE 3 'Pin 3=Output. 'Pin 3=Input. BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 • Seite 67 Basic-Befehle SERIN SERIN Pin,Baudmode,(Trigger,Trigger,...) SERIN Pin,Baudmode,{#}Variable,{#}Variable,... SERIN Pin,Baudmode,(Trigger,Trigger,..),{#}Variable,{#}Var,.. Einrichten eines seriellen Eingangs und warten auf optionale Trigger und/oder Variablen. Sind Trigger angegeben, müssen Sie in der exakten Reihenfolge empfangen werden, bevor die Ausführung weiterläuft. Sind Variablen angegeben, werden Sie mit den empfangenen Daten aufgefüllt (Achtung: nur auf Trigger folgende Daten werden zum Besetzen derVariablen verwendet). Variablen-Namen können optional mit vorgestelltem Nummern-Symbol (#) versehen werden. Dies sagt der Routine, nur ASCII-Daten als Daten für die Variablen anzunehmen. Zum Vergleich: Ist die Variable "abc" als nächste zu besetzen, würde das nächste Daten-Byte dies tun. Ist die Variable "#abc", wartet die Routine bis eine Zahl empfangen wird. Eine "Zahl" ist jede Byte-Folge von ASCII-Ziffern 0-9, gefolgt von einem nicht-Ziffern-Zeichen wie A-Z, Space, usw. Dies ist nützlich zum Lesen von Zahlen von einem Terminal oder anderen Gerät das ASCII-Format abgibt. Solche Geräte übertragen z.B. "108" in drei Bytes ('1', ‘0’, ‘8’), gefolgt von Space oder einem anderen Zeichen. • • Pin ist eine Variable/Konstante (0-7) die den verwendeten I/O-Pin festlegt.. Baudmode ist eine Variable/Konstante (0-7) die den Modus des seriellen Ports festlegt (durch # oder durch Symbol): # Symbol Baudrate Eingang wahr/invert 0 1 2 3 4 5 6 7 Seite 68 T24002400 T12001200 T600 600 T300 300 N2400 N1200 N600 600 N300 300 wahr wahr wahr wahr 2400 invert 1200 invert invert invert • BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 Basic-Befehle SERIN (Fortsetzung) • • Trigger sind optionale Variablen/Konstanten (0-255) die in exakter Reihenfolge empfangen werden müssen. Variablen (optional) speichern die empfangenen Daten (0-255). Falls Trigger angegeben sind, müssen diese erfüllt sein bevor die Variablen besetzt werden. Wenn Sie den seriellen Eingang verwenden, können Sie nur die Baudrate und den wahr/invert-Status anpassen. Die Daten müssen immer im Format 8 Datanbit, No Parity, 1 Stopbit eintreffen. Beispiel Programm: loop: read 255,b2 'Hole Position des letzten 'Programm-Befehls. b2 = b2 - 1 'Nächste verfügbare 'EEPROM Position. SERIN 0,N300,("ABC"),b3 'Warte bis "ABC" empfangen 'nächstes Byte in b3. write b2,b3 'Speichere empfangenes 'Byte in nächster 'EEPROM Position. if b2 > 0 then loop 'Hole weiteres Byte falls 'noch Speicherplatz. Soll die Briefmarke ein RS-232 Signal empfangen, kann dies durch Hinzufügen eines 22K Widerstands erreicht werden. Schalten Sie den Widerstand in Reihe mit dem Eingangs-Signal. Dies begrenzt den Eingangwert auf einen verwertbaren Pegel. Die ±10 Volt RS-232 Pegel, werden intern auf 0 bis 5 Volt begrenzt. Schaltbild: 22K ±10 Volt serieller Eingang BASIC Briefmarke zu I/O-Pin • Wilke Technology GmbH • 0241-918 900 • Seite 69 Basic-Befehle SEROUT SEROUT Pin,Baudmode,({#}Data,{#}Data,...) Einrichten eines seriellen Ausgangs und senden von Daten. Variablen/Konstanten können optional mit vorgestelltem NummernSymbol (#) versehen werden. Dies sagt der Routine die Daten als ASCII-Daten zu senden. Zum Vergleich: Soll die Variable "abc" gesendet werden, würde die Routine ein Byte senden. Ist die Variable "#abc", sendet die Routine soviele Byte wie Ziffern in der Zahl in "abc" sind. Eine "Zahl" ist eine Byte-Folge von ASCII-Ziffern 0-9, gefolgt von einer nichtZiffer wie A-Z, Space, usw. Ein Beispiel wäre "108", was in drei Bytes ('1', ‘0’, ‘8’) gesendet würde, gefolgt von Space oder einem anderen Zeichen. Dies ist nützlich zum Senden an ein Gerät, das Daten im ASCII-Format erwartet. • • Pin ist eine Variable/Konstante (0-7) die den verwendeten I/O-Pin festlegt.. Baudmode ist eine Variable/Konstante (0-7) die den Modus des seriellen Ports festlegt (durch # oder durch Symbol): # Symbol Baudrate wahr/invert Open/Driven 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Seite 70 T24002400 T12001200 T600 600 T300 300 N2400 N1200 N600 600 N300 300 OT2400 OT1200 OT600 OT300 ON2400 ON1200 ON600 ON300 wahr wahr wahr wahr 2400 1200 invert invert 2400 1200 600 300 2400 1200 600 300 • BASIC Briefmarke stets getrieben stets getrieben stets getrieben stets getrieben invert stets getrieben invert stets getrieben stets getrieben stets getrieben wahr open drain wahr open drain wahr open drain wahr open drain invert open source invert open source invert open source invert open source • Wilke Technology GmbH • 0241-918 900 Basic-Befehle SEROUT (Fortsetzung) • Data sind Variablen/Konstanten (0-255) die von der seriellen Routine ausgegeben werden. Wenn Sie den seriellen Eingang verwenden, können Sie nur die Baudrate und den wahr/invert-Status anpassen. Die Daten müssen immer im Format 8 Datenbit, No Parity, 1 Stopbit eintreffen. Beispiel Programm: abc: pot 0,100,b2 'Lies Potentiometer auf 'Pin 0. SEROUT 1,N300,(b2) 'Sende Potentiometer'Messung über 'seriellen Ausgang. goto abc 'Wiederhole das. Der serielle Ausgang der Briefmarke verwendet 0-5 Volt Pegel, könnte also u.U. RS-232 Geräte nicht ohne zusätzliche Schaltung betreiben. Die meisten seriellen PC-Ports funktionieren allerdings auch ohne zusätzliche Schaltung. BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 • Seite 71 Basic-Befehle SLEEP SLEEP Sekunden Wechselt für einige Sekunden in den "Sleep Mode". Die Auflösung dieses Befehls ist ca. 2.3 Sekunden, die generelle Genauigkeit ist ca. 99.9%. Der Stromverbrauch ist reduziert auf ca. 20 µA, ange-nommen an den Ausgangs-Pins liegt keine Belastung an. • Sekunden ist eine Variable/Konstante (1-65535) die die Dauer des "Sleep Mode" in Sekunden angibt. Die Länge kann zwischen 1 Sekunde und etwas über 18 Stunden liegen. Beispiel Programm: Seite 72 . . . SLEEP 3600 'Schlafe für ca. 1 Stunde. goto xyz 'Weiter nach dem "Schlaf". • BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 Basic-Befehle SOUND SOUND Pin,(Note,Dauer,Note,Dauer,...) Spielt Noten mit vorgegebener Dauer. Der Ausgangs-Pin muß mit der positiven Seite eines Kondensators verbunden sein, dessen negative Seite mit einem Lautsprecher verbunden ist, dessen andere Seite wiederum mit Masse verbunden ist (siehe Schaltbild unten). Die Töne werden durch Rechteck-Wellen generiert. • • • Pin ist eine Variable/Konstante (0-7) die den verwendeten I/O-Pin festlegt. Note(n) sind Variablen/Konstanten (0-255) die den Typ und die Frequenz angeben. Ton 0 bedeutet Ruhe für die angegebene Dauer. Die Töne 1-127 sind aufsteigende klare Töne. Töne im Bereich 128-255 sind weißes Rauschen. Dauer sind Variablen/Konstanten (0-255) die angeben wie lange jede Note gespielt wird. Beispiel Programm: for b2 = 0 to 255 SOUND 1,(25,10,b2,10) 'Konstanter Ton (25), 'gefolgt von aufsteigendem 'Tone (b2). Beide Töne mit 'gleicher Dauer (10). next von I/O-Pin + 10 µF 40 Ω Kondensator entfernen bei Verwendung eines piezo-elektrischen Lautsprechers BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 • Seite 73 Basic-Befehle TOGGLE TOGGLE Pin Bringe Pin in Ausgangs-Status und invertiere ihn. • Pin ist eine Variable/Konstante (0-7) die den verwendeten I/O-Pin festlegt. Beispiel Programm: for b2 = 1 to 25 TOGGLE 5 'Invertiere Pin 5. next Seite 74 • BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 Basic-Befehle WRITE WRITE Position,Data Speichere Daten an Position in EEPROM. Das EEPROM wird sowohl als Programmspeicher (von oben nach unten) als auch als Datenspeicher (von unten nach oben) verwendet. Um sicherzustellen, daß Ihr Programm sich nicht selbst überschreibt, lesen Sie die Position 255 im EEPROM bevor Sie Daten schreiben. Position 255 enthält die Adresse des letzten Befehls Ihres Programms. Folglich kann Ihr Programm jeden Platz unterhalb der Adresse in Position 255 verwenden. Enthält Position 255 den beispielsweise den Wert 100, kann Ihr Programm die Positionen 0-99 für Daten verwenden. • • Position ist eine Variable/Konstante (0-255) die angibt, an welche Position im EEPROM geschrieben werden soll. Data ist eine Variable/Konstante (0-255) die an die Position im EEPROM geschrieben wird. Beispiel Programm: loop: read 255,b2 'Hole Position des letzten 'Befehls Ihres Programms. b2 = b2 - 1 'Nächste freie EEPROM'Position serin 0,N300,b3 'Empfange serielles Byte 'in b3. WRITE b2,b3 'Speichere empfangenes 'Byte in nächster EEPROM'Position. if b2 > 0 then loop 'Hole weiteres Byte falls 'noch Speicherplatz. BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 • Seite 75 Technische Daten HARDWARE Stromversorgung: 3..5 Volt DC geregelt oder 6...15 Volt DC ungeregelt Stromaufnahme: 2 mA (Normal), 20 µA (Sleep-Mode) Stromabgabe: Für Anwender-Schaltungen kann geregelte Spannung von den Briefmarken-Platinen abgenommen werden. Die Belastbarkeit ist abhängig von der Umgebungstemperatur, dem eingesetzten Kühlkörper und den Reglerdaten Maße: ca. 2,5 x 5 cm (Entwicklungs-Briefmarke) ca. 2,4 x 4,3 cm(Briefmarke-A) ca. 5 x 8 cm (Briefmarke-B) Temperaturbereich: 0...70°C (Standard) EEPROM: 256 Byte, mehr als 10.000 Schreibzyklen Geschwindigkeit: 4 Mhz (standard), 20 Mhz (Hi-Speed) PC-Schnittstelle: bidirektional über Spezialkabel I/O-Leitungen: 8 frei verwendbare I/O-Leitungen als: Eingang seriell, Ausgang seriell, Eingang digital, Ausgang digital, Eingang analog (R), Ausgang analog (PWM), Belastbarkeit: als Quelle bis 20 mA pro Pin als Senke bis 25 mA pro Pin bzw. Summe aller Belasstungen pro Chip: als Quelle bis 40 mA pro Pin als Senke bis 50 mA pro Pin Seite 76 • BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 Technische Daten SOFTWARE Sprache: PBASIC, BASIC Subset mit Instruktionen für einfache Prozeß-Steuerung: IF...THEN, BRANCH, GOTO, GOSUB, RETURN, FOR...NEXT, LET, LOOKUP, LOOKDOWN, RANDOM, OUTPUT, LOW, HIGH, TOGGLE, PUSLOUT, INPUT, PULSIN, REVERSE, BUTTON, SERIN, SEROUT, PWM, POT, SOUND, EEPROM, READ, WRITE, PAUSE, NAP, SLEEP, END, DEBUG Arithmetik: Integer Arithmetik mit Objekten: Bit, Byte und Wort. Operatoren: + * ** / // MIN MAX & | ^ &/ |/ ^/ Programmierung: PBASIC-Source und Compilation auf dem PC. Übertragung in das Zielsystem-EEPROM über Spezialkabel und Download-Funktion in der BASIC-Briefmarke Geschwindigkeit: Compilation und Download in ca. 1...5 Sek., Programm-Ausführung im Zielsystem ca. 2000 BASIC-Instruktionen/s (Standard) bzw. ca. 10.000 Instruktion/s (Hi-Speed) Programm-Länge: ca. 80...100 BASIC-Instruktionen BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 • Seite 77 Applikationen Aktuelle Applikations-Berichte Eine Reihe von Veröffentlichungen und Applikations-Berichten über die BASIC-Briefmarken Technologie sind bereits in der Fachpresse erschienen - Hinweise hierzu erhalten Sie unter der unten stehenden Adresse. Ferner gibt es Beispiel-Applikationen mit Hardware-Schaltungen und kompletten Listings im Toolkit des BASIC-Briefmarken EntwicklungsSystems. Auch von Anwendern liegen einzelne Beispiel-Applikationen vor, die im Toolkit Handbuch wiedergegeben sind. Wenn Sie selbst interessante Lösungen mit der BASIC-Briefmarke realisiert haben, und Sie möchten diese anderen Anwendern zugänglich machen, senden Sie uns Schaltung, Programm-Listing und einen erläuternden Text ein. Es ist geplant solche Applikationen in einer eigenen Broschüre zusammenzufassen. Bezug Chips, 1-Platinen Computer und das Entwicklungs-System "Die BASIC-Briefmarke" sind zu beziehen über: Wilke Technology GmbH bzw. Krefelder Str. 147 52070 Aachen, Germany Wilke Technology GmbH P.O.Box 1727 52018 Aachen, Germany Tel: ++49 (241) 918 90-0 Fax: ++49 (241) 918 90-44 oder über kooperierende Partner. Versionen: deutsch, englisch, französisch, italienisch. Seite 78 • BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 Notizen BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900 • Seite 79 Notizen Seite 80 • BASIC Briefmarke • Wilke Technology GmbH • 0241-918 900