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