BASIC-Briefmarke

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