BASIC-Briefmarke

BASIC-Briefmarke BASIC-Briefmarke

21.08.2013 Aufrufe

BASIC-Briefmarke Benutzer-Handbuch Teil 1

<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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!