Open-Control
    Herzlich willkommen auf der offiziellen Infosite!
    Inhalte bitte über das Menü am unteren Bildschirmrand auswählen


    Notwendige Downloads

      Die Bedienungsanleitungen und die neue OCBASIC-Programmiersprache sind sicherlich für alle Anwender interessant. Die ZIP-Archive können zum Beispiel mittels Winzip entpackt werden. Nach dem Entpacken wird üblicherweise in der Datei INFO.TXT erklärt, wie die Programme zu benutzen sind.

      NEU: Bedienungsanleitung zur Open-Micro, Open-Mini und Open-Midi - Version 14.0 (zum Offline-Lesen)

            Diese umfangreiche Bedienungsanleitung soll den Umgang mit der Open-Micro, Open-Mini und der Open-Midi erleichtern. Der größte Teil beschäftigt sich mit der Programmierung im neuen OCBASIC-Dialekt, doch wird auch auf die vorhandenen Erweiterungsmodule und die Beschaltung der Ein- und Ausgabeports eingegangen. Abgerundet wird die Doku durch ein ROM-Listing des Betriebssystems.

      NEU: Bedienungsanleitung zur Open-Macro und Open-Maxi - Version 7.0 (zum Offline-Lesen)

            Diese umfangreiche Bedienungsanleitung soll den Umgang mit der Open-Macro und der neuen Open-Maxi erleichtern. Der größte Teil beschäftigt sich mit der Programmierung im neuen OCBASIC-Dialekt, doch wird auch auf die vorhandenen Erweiterungsmodule und die Beschaltung der Ein- und Ausgabeports eingegangen. Abgerundet wird die Doku durch die Tabelle "Unterstützter Befehlsumfang", in der alle zur Zeit von den OM-Controllern unterstützten Tokenbefehle aufgeführt sind.

      Open-Control/BASIC-Compiler - Version 1.11 (16 Bit & 32 Bit)

            Das ist die offizielle Programmiersprache der OM-Mikrocontroller. Da das Copyright zu CCBASIC bei Conrad Electronic liegt, habe ich den "Open-Control/BASIC-Compiler" (OCBASIC) ins Leben gerufen. Der Compiler ist (soweit sinnvoll) 100% kompatibel zur bewährten CCBASIC-Syntax, bietet aber trotzdem viele neue Features wie beispielsweise mehrzeiliges als auch einzeiliges IF, WHILE..WEND, REPEAT..UNTIL, Funktionen und Subroutinen (Prozeduren) in Standardsyntax. Außerdem gibt es eine neue Syntax, mit der BIT-Variablen nicht mehr auf festen Positionen im User-RAM gespeichert werden müssen, sondern innerhalb von BYTE- oder WORD-Variablen als "Bitarrays" abgelegt werden können. Dadurch müssen keine Variablen mehr an festen Positionen plaziert werden.

      Der Compiler besitzt sogar einen integrierten 6808-Assembler. Damit können BASIC- und Assemblerroutinen innerhalb derselben Sourcecode-Datei erstellt werden. Assemblerroutinen sind so deutlich komfortabler zu schreiben, da in Assembler auf vom Anwender definierte Variablen und auf die meisten internen Variablen direkt zugegriffen werden kann. Assemblerroutinen lassen sich von BASIC aus auf die gleiche Weise aufrufen wie BASIC-Routinen.

      Mit dem Compiler OCBASR lassen sich OCBASIC-Programmteile für alle OM-Mikrocontroller ohne großen Aufwand typischerweise um den Faktor 3 bis 4 beschleunigen. Mit diesem echten Compiler werden die Programmteile in die Maschinensprache der 6808-CPU umgewandelt.

      Standardmäßig wird Tokencode erzeugt, der die neuen Befehle der OM nutzt und auf diese Weise die Programmgröße um typisch 20% reduziert. Es ist aber auch möglich, zu bisherigen C-Control-Versionen kompatiblen Tokencode mit bis zu 64 KB Größe zu erzeugen. Der Compiler kann statt CCBAS.EXE in die DOS-IDE oder in ConTEXT eingebunden werden.

      Es gibt jetzt eine 32-Bit-Version des Compilers namens OCBAS32.EXE, die statt OCBAS.EXE in ConTEXT integriert werden kann. Diese 32-Bit-Version ist - anders als die 16-Bit-Version OCBAS.EXE - auch unter aktuellen Windowsversionen lauffähig.

      Ab Version 1.11 wird bei erfolgreicher Compilierung eine MAP-Datei generiert, die Informationen über die definierten Bezeichner enthält. Außerdem werden die Anfangsadresse und der Tokencode der verschiedenen Programmzeilen aufgeführt.

      Ich habe einige Zeit ins Austesten gesteckt und insbesondere darauf geachtet, daß der Compiler möglichst sinnvolle Meldungen ausgibt, falls während der Kompilierung Fehler auftreten. Der Compiler hat eine ausführliche Betatestphase durchlaufen und die offiziell erste Version wurde anhand diverser neuer Beispielprogramme vor der Veröffentlichung ausführlich getestet. Von den beiliegenden Beispielprogrammen sind die CRC32-Berechnung, die Demo zur Generierung von DTMF-Signalen mittels zwei Timer-Interrupts und per PWM, Tiefpaßfilterung mittels Faltung und die alternative Interpreterschleife zur Beschleunigung von BASIC-Programmen besonders interessant.

      NEU: Übertragungstools für Windows und DOS

            Der Compiler OCBASIC erhält als Eingabe eine BAS-Datei mit dem BASIC-Quellcode und gibt eine DAT-Datei mit dem Tokencode aus. Diese DAT-Datei muß mit einem Downloadtool wie OMDLWIN, OMDL oder CCDL zum OM-Mikrocontroller geschickt werden. Als Übertragungstool hat sich unter Windows besonders OMDLWIN bewährt. Es läßt sich komfortabel in die ConTEXT-IDE einbinden, auf Tastendruck starten und kann den Mikrocontroller nach einer erfolgreichen Übertragung automatisch starten. Die Version 1.4 arbeitet bei "AUTOBAUD" deutlich schneller und überträgt ein maximal großes Programm in unter 12 Sekunden in die Open-Maxi.

      Ab Version 1.5 wurde das Downloadtool OMDLWIN erweitert: Auf der Open-Maxi wird jetzt bei "AUTOBAUD" nach der Übertragung auf 9600 Baud zurückgeschaltet, damit bei nicht vorhandenem "AUTOSTART" der Controller im Terminal vom Anwender manuell mit RETURN (Eingabetaste) gestartet werden kann. Außerdem habe ich Terminal32.exe in das ZIP-Archiv aufgenommen. Es handelt sich um ein Terminalprogramm für neuere Windows-Versionen.

      Ab Version 1.51 von OMDLWIN.EXE funktioniert die Single-Wire-Schnittstelle wieder. Außerdem habe ich in der Version 1.52 den Fehler beseitigt, daß unter bestimmten Bedingungen trotz AUTOBAUD mit langsamer Geschwindigkeit übertragen wurde.

      Aktuelle Include-Datei für Open-Micro und Open-Mini in OCBASIC

            Das ist die aktuelle Include-Datei für die Open-Micro und Open-Mini. Sie enthält die unbedingt notwendigen Definitionen für die neuen internen Variablen zum Konfigurieren des Betriebssystems, zur Statusabfrage und zur Einbindung der User-Interruptroutine in verschiedene Interrupts. Außerdem wurde die Datei um viele neue Definitionen für den integrierten Assembler erweitert. Damit lassen sich alle vom Mikrocontroller bereitgestellten Funktionen nutzen. Einige der Treiber und Beispielprogramme, die im Internet heruntergeladen werden können, verwenden unter Umständen noch die ältere Include-Datei namens OM10.INC. Solche Programme sollten an die aktuelle Include-Datei OM.DEF angepaßt werden. Die Endung DEF signalisiert dem Anwender, daß diese Datei nur Definitionen (also keine Befehle oder Tabellen) enthält und deshalb mittels INCLUDE am Beginn eines Programms eingefügt werden sollte.

      Aktuelle Include-Datei für Open-Midi in OCBASIC

            Die oben zum Download bereitgestellte Definitionsdatei für Open-Micro und Open-Mini darf auf der Open-Midi nicht verwendet werden. In jedem BASIC-Programm, das auf der Midi lauffähig sein soll, muß die Datei OMID.DEF statt OM.DEF eingebunden werden. Am Programmbeginn muß deshalb ein INCLUDE "omid.def" stehen. Die Programme auf dieser Webside sind entsprechend anzupassen.

      Aktuelle Include-Datei für Open-Macro in OCBASIC

            Das ist die aktuelle Include-Datei für die Open-Macro. Die oben zum Download bereitgestellten Definitionsdateien dürfen auf der Open-Macro nicht verwendet werden. In jedem BASIC-Programm, das auf der Macro lauffähig sein soll, muß die Datei OMAC.DEF statt OMID.DEF oder OM.DEF eingebunden werden. Am Programmbeginn muß deshalb ein INCLUDE "omac.def" stehen. Die Programme auf dieser Webside sind entsprechend anzupassen.

      Aktuelle Include-Datei für Open-Maxi in OCBASIC

            Das ist die aktuelle Include-Datei für die Open-Maxi. Die oben zum Download bereitgestellten Definitionsdateien dürfen auf der Open-Maxi nicht verwendet werden. In jedem BASIC-Programm, das auf der Maxi lauffähig sein soll, muß die Datei OMAX.DEF statt OMAC.DEF, OMID.DEF oder OM.DEF eingebunden werden. Am Programmbeginn muß deshalb ein INCLUDE "omax.def" stehen. Die Programme auf dieser Webside sind entsprechend anzupassen.

      NEU: Aktuelle Include-Datei für Firmwareroutinen in OCBASIC

            Aufruf von Firmwareroutinen auf der Open-Micro, Open-Mini, Open-Midi, Open-Macro und Open-Maxi. Die Include-Datei wird von Anwendern benötigt, die in Assembler programmieren und Firmwareroutinen aufrufen wollen. Außerdem wird sie von einigen Beispielprogrammen benötigt. Am Ende des Programms muß ein INCLUDE "om_fw.pro" stehen.

    Ein Mikrocontroller mit zwei Betriebssystemen: Die Open-Midi und Open-Macro

      Die Open-Midi und Open-Macro basieren auf dem gleichen Mikrocontroller. Deshalb läßt sich das Betriebssystem in-system wechseln. Die Open-Midi hat den meisten Speicher, während die Open-Macro vollständiges 16-Bit-Handling, eine Hardware-RS232, 10-Bit-ADC und Programmdownload mit bis zu 38400 Baud bietet. Außerdem ist das Filehandling und LOOKTAB wahlweise im Byte- oder Word-Format möglich.

      ZIP-Archiv Kommentar
      Wechsel zwischen Open-Midi und Open-Macro Mit den hier zur Verfügung gestellten Programmen läßt sich das Betriebssystem der Open-Midi durch das Betriebssystem der Open-Macro komfortabel ersetzen. Der Wechsel in die Gegenrichtung ist genauso einfach möglich. Bitte die Datei INFO.TXT lesen.
      Kurzdoku zur Open-Macro Hier wird die neue Open-Macro anhand einiger Beispiele kurz vorgestellt.

    Zusätzliche Downloads

      Hier noch ein paar nützliche Downloads in Form von Treibern, Erweiterungsmodulen und Beispielprogrammen. Die ZIP-Archive können zum Beispiel mittels Winzip entpackt werden. Nach dem Entpacken wird üblicherweise in der Datei INFO.TXT erklärt, wie die Programme zu benutzen sind.

      ZIP-Archiv Kommentar
      NEU: Auflistung der Demoprogramme Einige Anwender haben im Forum etliche nützliche Beispielprogramme für die OM-Controller veröffentlicht. Hier ein Link auf die Auflistung.
      NEU: Preiswerte LED-Matrix-Anzeige auf der Open-Maxi Das preiswerte auf dem MAX7219 basierende "8x32 Dot-Matrix-LED-Display-Modul" von AZ-Delivery per Open-Maxi ansprechen. Es kann über Amazon bezogen werden und kostet zur Zeit nur 9,99 EUR. Beim Modul handelt es sich um eine LED-Dot-Matrix-Anzeige mit 256 (4*64) LEDs. Sie wird von vier Treiberchips "Maxim 7219" angesteuert. Jeder MAX7219 steuert dabei 8*8 LEDs. Die vier ICs sind hintereinander geschaltet und werden über einen SPI-Bus angesprochen. Die Betriebsspannung darf 3 bis 5 Volt betragen.
      NEU: Servomotoren für Open-Maxi mittels Basic++ Der E-Mail-Kontakt mit einem Open-Maxi-Anwender hat mich auf ein Problem aufmerksam gemacht, was auftritt, wenn die Open-Maxi mit Basic++ programmiert wird. Es lassen sich dann die beiden Digital-Analog-Ports der Open-Maxi nicht auf Servo-Betrieb konfigurieren. Wenn die C-Control I Versionen 1.2 und 2.0 mit Basic++ programmiert werden, nimmt das Basic++-Programm Konfigurationen am Controller vor, um die DA-Ports auf Servobetrieb zu konfigurieren. Diese Konfiguration muß bei der Open-Maxi auf andere Art und Weise durchgeführt werden. Um das zu bewerkstelligen, muß auf Assembler zurückgegriffen werden.
      Preiswertes OLED-I²C-Grafikdisplay auf der Open-Maxi Das preiswerte 0.96 Inch OLED-I2C-Display von AZ-Delivery per Open-Maxi ansprechen. Das Display ist grafikfähig und besitzt eine Auflösung von 128 mal 64 Pixel. Es kann über Amazon bezogen werden und kostet zur Zeit nur 5,99 EUR bei kostenlosem Versand. Das Display basiert auf der Controllertype SSD1306 und verfügt über einen I²C-Bus. Es wird an den I²C-Bus der Open-Maxi angeschlossen. Die Betriebsspannung darf 3 bis 5 Volt betragen. Im ZIP-Archiv enthalten sind zwei Demoprogramme: Einmal für Text und eines für Grafik. Als kleine Grafikdemo ein Splash-Screen. Im Forum gibt es auch ein kleines Programm, das die Mandelbrot-Menge berechnen und auf dem Display darstellen kann. Für echte Grafik benötigt man meinen Quellen nach zu urteilen wohl einen Displaybuffer mit 1024 Byte Größe im Controller. Die Open-Maxi würde das unterstützen, aber nicht die kleinen OM-Controller. In einem Beitrag im Forum habe ich das realisiert. Das Beispielprogramm kann Linien und Kreise auf dem Display zeichnen.
      Patch für preiswerte I²C-LCD-Module auf der Open-Maxi Besonders bei eBay gibt es in letzter Zeit sehr preiswerte I²C-LCD-Module, die für den Arduino entworfen wurden. Leider haben diese eine andere Pinbelegung zwischen dem I²C-Portexpander PCF8574 und dem LCD als es das Open-Maxi-Betriebssystem voraussetzt. Doch in diesem Code ist ein Konverter enthalten. Mit Hilfe des On-Chip-Debuggers wird ein sogenannter ROM-Patch realisiert. Die Ausführung des Betriebssystems wird an einer bestimmten Stelle unterbrochen und dann eigener Code ausgeführt. Danach wird die Ausführung des Betriebssystems an einer darauffolgenden Stelle fortgesetzt. Übrigens funktionieren mit diesem Code auch I²C-LCDs von CCTools.
      Komfortable 32-Bit-Arithmetik auf der Open-Maxi Bisher gab es eine Erweiterung für Grundrechenarten in 32 Bit für alle OM-Controller. Diese ließ sich aber nur recht umständlich verwenden. Im nebenstehenden ZIP-Archiv ist eine Erweiterung für komfortable 32-Bit-Arithmetik auf der Open-Maxi enthalten. Alle OCBASIC-Befehle wurden auf LONG erweitert. Es stehen nun 1024 Byte User-RAM mittels LONG-Variablen zur Verfügung. Die Open-Maxi kann jetzt Zahlen von -2147483648 bis +2147483647 verarbeiten. Auch ein schnelles 32-Bit-SQR ("Wurzelziehen") ist enthalten. Die 32-Bit-Funktionalität läßt sich nur mit dem beiliegenden OCBASIC-Compiler Version 1.12 nutzen. Es handelt sich um eine experimentelle Version. Mittels "OPTION 32BIT" muß die 32-Bit-Funktionalität am Quelltextanfang freigeschaltet werden. Enthalten sind auch zwei Testsuites inklusive Sourcecode, mit denen die Erweiterung mit Hilfe von Zufallszahlen überprüft werden kann.
      Schnelles Bit-Feld mit über 10000 Elementen auf der Open-Maxi Die Open-Maxi bietet dem Anwender über 1800 Byte freies RAM. In diesem Programmpaket befinden sich in Assembler geschriebene Routinen, mit deren Hilfe im RAM ein schnelles Bit-Feld mit über 10000 Elementen realisiert werden kann. Jedes Element des Bit-Feldes kann den Zustand ON oder OFF annehmen. Als Beispielcode habe ich unter anderem eine Primzahlberechnung beigefügt. Im Forum ist außerdem die Computersimulation Game Of Life (Spiel des Lebens) und der Bresenham-Algorithmus zum Zeichnen von Linien, Kreisen und Ellipsen zu finden.
      Zweite Serielle Schnittstelle auf der Open-Maxi Das Betriebssystem der Open-Maxi unterstützt eine Serielle Schnittstelle mit Empfangsbuffer, die mittels SCI2-Modul realisiert ist. Das SCI1-Modul ist also frei. In diesem Beispielprogramm wird das SCI1-Modul verwendet, um eine zweite Serielle Schnittstelle auf der Open-Maxi zu realisieren. Außerdem gibt es im Forum ein Programm, das die zweite Serielle Schnittstelle mit einem Empfangsbuffer ausstattet.
      Multithreading für Open-Maxi In diesem Programmpaket befindet sich ein BASIC-Interpreter für die Open-Maxi, der Multitasking, bzw. Multithreading zur Verfügung stellt. Unter Multithreading versteht man die quasi-parallele Abarbeitung mehrerer Programmsegmente. Eines von diesen Segmenten wird Thread (engl. "Faden") genannt. Beim Multithreading wird in schnellen zeitlichen Abständen zwischen den verschiedenen Threads gewechselt, so daß beim Anwender der Eindruck von Gleichzeitigkeit entsteht. Bitte INFO.TXT lesen.
      4 Kanäle Pulsweitenmodulation (PWM) für Open-Macro Routinen für Pulsweitenmodulation an 4 Ports für Open-Macro. Wie bei der C-Control/Micro arbeitet die PWM mit einer Frequenz von nur 50 Hz. Die PWM ist daher nur zur Generierung von Signalen niedriger Frequenz einsetzbar. Allerdings ist es möglich, die Taktfrequenz durch Verringerung des Wertes im TIM Counter Modulo Register (TMODH und TMODL) zu erhöhen. Die Systemuhr läuft dadurch schneller, aber die Uhrzeitfunktionen lassen sich ohnehin mittels ClockDis deaktivieren.
      Servomotoren für Open-Maxi In diesem ZIP-Archiv befinden sich die Programme servo12.bas und servoda1da2.bas, mit denen zwei mal zwei Servomotoren auf der Open-Maxi angesprochen werden können. Die beiden Sourcecodes sind kombinierbar, so daß gleichzeitig vier Servos steuerbar sind. Es wäre möglich, das in servoda1da2.bas verwendete Verfahren auch beim TPM1-Modul anzuwenden und auf diese Weise 6 weitere Servos (insgesamt also 8) anzusprechen. Das habe ich in einem Beitrag im Forum demonstriert.
      I²C-Bus-Routinen für Open-Maxi Die Schreib- und Leseroutine für I2C sind bereits im Betriebssystem der Open-Maxi integriert und werden als Firmwareroutinen zur Verfügung gestellt. Mit dem in diesem Archiv vorhandenen OMAX_I2C.PRO koennen sie auch in OCBASIC komfortabel genutzt werden.
      Soundausgabe per PWM Diese Beispielprogramme demonstrieren, wie DA[1] der Open-Maxi verwendet werden kann, um mit der Soundkarte eines PCs eingesampelte Klänge mittels PWM auszugegeben. Die Soundausgabe findet im Hintergrund, während der normalen Programmabarbeitung statt. Es ist möglich, eigene Klänge aufzunehmen und mit der Open-Maxi abzuspielen.
      Fließkommazahlen/Gleitkommazahlen Dieses Softwaremodul erweitert die Open-Macro und die Open-Maxi um 32-Bit-Fließkommazahlen ("Gleitkommazahlen") im IEEE-Format. Es verwendet die Float-Routinen für 6805 von Motorola. Der Darstellungsbereich umfaßt ±1,175*10-38 bis ±3,403*1038 bei etwa 7 dezimalen Stellen. Die von den OM-Controllern verwendeten ganzzahligen, vorzeichenbehafteten 16-Bit-Zahlen ("WORD") lassen sich leicht ins Fließkommazahlen-Format konvertieren. Ebenso leicht ist die Rückkonvertierung möglich.

      Dieses Softwarepaket basiert auf den Fließkommazahlenroutinen FLOAT05COD von Motorola. Obwohl diese vor über 20 Jahren veröffentlicht wurden, sind sie leider nicht fehlerfrei. Bisher wurden Fehler in der Additions- und Divisionsroutine entdeckt und behoben. Außerdem wurde die Divisionsroutine komplett von GeKue überarbeitet.

      UPDATE: GeKue hat auch die Multiplikationsroutine überarbeitet. Sie ist jetzt 60 Byte kürzer und sollte auch schneller arbeiten. Die Änderungen sind in einer neuen IEEEFPM.PRO zu finden.
      Grundrechenarten in 32 Bit für Open-Micro, Open-Mini und Open-Midi

      Grundrechenarten in 32 Bit für Open-Macro und Open-Maxi
      Diese Beispielprogramme demonstrieren, wie sich 32-Bit-Arithmetik auf allen OM-Controllern realisieren läßt. Für alle OM-Controller gibt es einen in Assembler erstellten Code, der hohe Verarbeitungsgeschwindigkeit, vorzeichenbehaftete Zahlen und ein schnelles PRINT32 bietet. Für die Open-Micro, Open-Mini und Open-Midi gibt es zusätzlich einen in BASIC erstellten Code.
      1-Wire Digitalthermometer DS1820 & Co. Dieses umfangreiche Gemeinschaftsprojekt von GeKü und Jens Gürtler ermöglicht die Verwendung aller für die "1 Wire"-Digitalthermometer DS1820, DS18S20, DS18B20 und DS1822 vom Hersteller MAXIM vorgesehenen Funktionen auf der Open-Micro bis Open-Macro. Um den zum Betrieb notwendigen Programmplatz so gering wie möglich zu halten, wurden Programme sowohl für eine einzelne Familie als auch zum gleichzeitigen Betrieb aller drei Thermometerfamilien geschrieben. Nach dem Entpacken des ZIP-Archivs wird in der PDF-Datei Lies_Mich.pdf alles Wesentliche erklärt.
      Funkuhr-Funktion (DCF77) Bei Frankfurt am Main steht ein Langwellensender namens DCF77, der ein von Atomuhren gespeistes Funkuhr-Signal ausstrahlt. Mittels preiswertem DCF-Empfangsmodul (Conrad-Bestellnummer 641138) und der Routinen in diesem ZIP-Archiv läßt sich das Signal auch auf der OM nutzen.
      Reproduzierung von Infrarot-Signalen Mit nur wenig Hardwareaufwand kann die OM beliebig formatierte Infrarotsignale empfangen und später wiedergeben (reproduzieren). Die OM kann so unter anderem als lernfähige IR-Fernbedienung eingesetzt werden, die das Signal einer Fernbedienung "lernen" und später wieder aussenden kann.
      I²C-Bus-Routinen für 100 kHz Bustakt Routinen für einen I²C-Bus mit 100 kHz Bustakt in OCBASIC und CCBASIC. Außerdem wird in den beiliegenden Beispielprogrammen gezeigt, wie ein I²C-EEPROM, das Videotext-IC SAA5246AP/E und mittels PCF8574-Portexpander ein 4x20-LCD über den I²C-Bus angesprochen werden können. Damit kann nun erstmals an einer Micro ein LCD mit hoher Geschwindigkeit betrieben werden! Die aktuellsten LCD-Routinen befinden sich allerdings im Beispiel Kleine Pizza-Uhr. Dort wird unter anderem gezeigt, wie sich auf dem LCD komfortabel Strings ausgeben lassen.
      Extended Ports für die OM Ein Nachteil der Open-Micro, Open-Mini und Open-Midi war bisher deren relativ geringe Portanzahl. Aus diesem Grund lassen sie sich jetzt mit diesem Softwaremodul um bis zu 64 Extended Ports erweitern. Die Extended Ports werden mittels PCF8574-I2C-Portexpandern realisiert und lassen sich in BASIC nach der Aktivierung des Softwaremoduls genauso wie die normalen Ports ansprechen.
      Hardware-RS232 auf der Open-Midi Der Mikrocontroller QB8, auf dem die Open-Midi basiert, besitzt ein Enhanced Serial Communications Interface (ESCI), also eine Hardware-RS232. In diesem ZIP-Archiv befinden sich eine INCLUDE-Datei und ein Programm namens DEMO.BAS, die die Benutzung dieses ESCI demonstrieren. Der Empfang findet interruptgesteuert mit 8 Byte großem Buffer statt.
      Arithmetikerweiterung für 16-Bit Bisher gab es zwar Erweiterungsroutinen für die Grundrechenarten, aber diese ließen sich nur recht unkomfortabel nutzen. Dieses Softwaremodul wird dagegen direkt in den Interpreter eingebunden und erweitert, für den Anwender völlig transparent, so gut wie jede Systemfunktion auf 16-Bit. Sie lassen sich also inklusive Wordvariablen und Wordpointer genauso nutzen wie auf den großen C-Controls.
      Pseudo-Zufallszahlen Dieses Softwaremodul enthält zwei Routinen zur Generierung von 8-Bit-Zufallszahlen mittels 16- und 32-Bit-Generator. Es wird die Methode der linearen Kongruenz verwendet. Im Archiv befindet sich auch ein Chi-Quadrat-Test (Chi-Square), um den Zufallscharakter der produzierten Zahlen zu überprüfen.
      8 MHz Bustakt (für alle OM-Controller) Der Bustakt wird von 3.2 MHz auf 8 MHz erhöht. Die OM wird also genauso schnell getaktet wie die C-Control I UNIT M 2.0. Da die OM oft nur mit Bytevariablen arbeiten muß, schneidet sie in Benchmark-Tests deutlich schneller ab als die neue C-Control. Für die Open-Micro und Open-Mini ist eine Anpassung der seriellen Schnittstelle an den erhöhten Bustakt enthalten, die direkt in den Interpreter eingebunden wird. Auf der Open-Midi und Open-Macro kann im laufenden Betrieb zwischen 3.2 und 8 MHz hin- und hergewechselt werden. Als Bonus stehen an der 2. Seriellen Schnittstelle (ESCI) der Open-Macro die zwei neuen hohen Baudraten 76800 und 153600 zur Verfügung.

      Es wird ein Quarzoszillator im DIP-14-Gehäuse verwendet, den Reichelt unter der Artikelnummer "OSZI 32,000000" für 0,86 EUR anbietet. Auch ein SMD-Quarzoszillator läßt sich verwenden. Dieser hat eine Größe von nur 3,2 x 2,5 mm, ist aber für eine Lastkapazität von nur 15 pF ausgelegt.
      I2C-Slave-Master Es wurde schon mehrfach nach der Möglichkeit gefragt, Daten und Befehle zwischen zwei OM-Mikrocontrollern zu übertragen. Die in diesem ZIP-Archiv vorhandenen Prozeduren stammen von GeKue und ermöglichen es, eine beliebige OM (Micro, Mini oder Midi) als I2C-Slave anzusprechen. Als I2C-Master kann ebenfalls ein beliebiger OM-Mikrocontroller verwendet werden.
      SLE-4442-Chipkarten Softwareroutinen zum Ansprechen der mit 256 Byte EEPROM ausgestatteten Chipkarten SLE 4442 und SLE 4432 von Siemens. Die SLE 4442 kann mit einem 3 Byte großen Sicherheitscode (PSC) schreibgeschützt werden. Nach drei vergeblichen Übermittlungsversuchen des PSC ist die Karte dauerhaft schreibgeschützt. Im Sourcecode sind alle wichtigen Funktionen mittels Subroutinen gekapselt. Die Karten lassen sich also komfortabel nutzen, ohne daß sich der Anwender mit den Interna auseinandersetzen muß. Die Karten sind bei Reichelt Elektronik erhältlich.
      Pulsweitenmodulation (PWM) Routinen für Pulsweitenmodulation an 2 Ports von René Stadler. Wie bei der C-Control/Micro arbeitet die PWM mit einer Frequenz von nur 50 Hz. Die PWM ist daher nur zur Generierung von Signalen niedriger Frequenz einsetzbar. Allerdings ist es möglich, die Taktfrequenz durch Verringerung des Wertes im TIM Counter Modulo Register (TMODH und TMODL) zu erhöhen. Die Systemuhr läuft dadurch schneller, aber die Uhrzeitfunktionen lassen sich ohnehin mittels ClockDis deaktivieren. In den Beispielen wird auf mögliche Probleme wie Phasenfehler hingewiesen.
      Servo-Ansteuerung Drei Demoprogramme zur Servo-Ansteuerung von René Stadler. Das Servo-Signal läßt sich an einem beliebigen Digitalport der OM ausgeben. Dieses Beispiel zeigt eine Realisierungsmöglichkeit für INLINE-Interrupt-Assemblerroutinen (IIARs) in CCBASIC.
      Interruptgesteuerter serieller Empfang Ein Demoprogramm für interruptgesteuerten seriellen Empfang an Port[2] (PTA1) oder Port[1] (PTA0) von René Stadler. Es kann ein Ringpuffer mit einer Größe von bis zu 32 Byte verwendet werden.
      Grundrechenarten mit 16-Bit-Festkommazahlen Ein Beispielprogramm für binäre 16-Bit-Festkommazahlen mit einem 8 Bit großen Nachkommaanteil. Im obenstehenden ZIP-Archiv mit den 32-Bit-Grundrechenarten ist demonstriert, wie man den ganzzahligen Anteil vergrößern kann. Mit dem Nachkommananteil kann man ähnlich verfahren.
      7-Segment-Anzeige über I²C-Bus Dieses Programm zeigt, wie eine 7-Segment-Anzeige mittels SAA 1064 über den I²C-Bus mit der OM verbunden werden kann. Es stammt ursprünglich vom Entwickler der neuen C-Control-1-Versionen, wurde aber von Eckhard Raetz an die OM angepaßt und freundlicherweise zur Verfügung gestellt.
      Demo zur AD-Wandlung und zu Kommazahlen Das Beispiel demonstriert, was auf der OM bei der Nutzung der AD-Ports zu beachten ist. Außerdem wird gezeigt, wie der gemessene Spannungswert als Kommazahl über die serielle Schnittstelle ausgegeben werden kann.
      Kleine Pizza-Uhr auf der Open-Macro Dieses kleine Beispielprogramm demonstriert, wie Tasten des PE-Boards abgefragt und daraufhin Signale erzeugt werden. Auch bei einem Sekundenwechsel wird ein Signal erzeugt. Ausgewertet werden die Signale in einem sogenannten Zustandsautomaten. Die Ausgabe findet auf dem an BYTEPORT[2] angeschlossenen I2C-LCD von Conrad Electronic (Bestellnr. 198330) statt. Darüber hinaus wird gezeigt, wie auf dem LCD komfortabel Strings (also Texte) ausgegeben werden können. Als kleinen Bonus gibt es zwei weitere Programme, die ebenfalls I2C-LCDs nutzen.
      I²C-EEPROM und I²C-LCD Routinen, die das Zusammenspiel von im EEPROM gespeicherten Texten und Ziffern und einem per PCF8574 angeschlossenem LCD auf einer Open-Mini über die I2C-Schnittstelle demonstrieren.
      Assembler-Hilfsroutinen von GeKü Hilfsroutinen einschließlich Testprogramm zur Fehlersuche in Inline-Assembler-Programmen.
      Diverse Beispielprogramme Eine Sammlung mit diversen Beispielprogrammen, mit denen die Open-Micro während der Betatest-Phase überprüft wurde. Enthalten ist ein Disassembler in OCBASIC, die Demonstration des Datei-, Pointer- und Fehlerhandlings, Aufruf von Firmwareroutinen in Assembler, ein einfaches Hexdump-Utility, das Benchmark-Programm und Demos für Inline-Assembler und die BASIC-Interruptroutine.
      NEU: Quadratische Regression (mit Bild)
      NEU: PAUSE in Assembler auf allen OM-Controllern
      NEU: Stringverarbeitung zusätzlich mit BIN$
      NEU: Stringverarbeitung auf der Open-Maxi
      NEU: CHIP-8 Challenge von das |_ Team
      NEU: Der wachsende Tannenbaum
      NEU: Interaktiver Speichermonitor von das |_ Team
      NEU: Statistikdaten am Ende des USERFLASHs lesen
      NEU: Statistikdaten ans Ende des USERFLASHs kopieren
      NEU: Statistik-Tabelle resident laden von das |_ Team
      NEU: Statistik-Challenge: Mittelwertbildung und OCBASR
      NEU: Statistik-Challenge: Mittelwertbildung
      NEU: Statistik-Challenge von das |_ Team
      NEU: Zahlenraten für die Einsteiger
      NEU: Timeout für INPUT an der Seriellen Schnittstelle
      NEU: Mittelwertbildung mittels Buffer
      NEU: TPM1CH1-Interrupt nutzen - Single Shot
      NEU: Little-Endian-Format bei der OF-Syntax
      NEU: TIMER32 in komfortabler 32-Bit-Arithmetik
      NEU: Freilaufender 32-Bit-Zähler TIMER32
      NEU: Frequenzmessung per FREQ2 in 32 Bit
      NEU: Einfache Berechnung für Ostersonntag
      NEU: Fehler melden, wenn IIAR nicht gefunden
      NEU: End2Host in CCBASIC
      NEU: Portzugriffe für Einsteiger erklärt I
      NEU: Felder aus Tabellen einlesen von Christian
      NEU: Vergleichen zweier Felder
      NEU: Timeout für GET an der Seriellen Schnittstelle
      NEU: Nimm-Spiel, bzw. Nim-Spiel
      NEU: TPM1CH0-Interrupt nutzen
      NEU: TPM1CH0-Interrupt nutzen - Single Shot
      NEU: BEEP-Interrupt nutzen
      NEU: BEEP-Interrupt nutzen in 32 Bit
      NEU: Timer/PWM-Module (TPM) auf Deutsch erklärt
      NEU: Labyrinth-Spiel auf dem I²C-Text-LCD
      NEU: Eine Zahl zwischen -16384 und 16383 erraten lassen
      NEU: Rechnen mit einer Quadratischen Gleichung in 32-Bit II
      NEU: Rechnen mit einer Quadratischen Gleichung in 32-Bit
      NEU: Symbolrätsel erstellen/generieren
      NEU: Schalthysterese verstehen und anwenden (mit Bild)
      NEU: 8x32 Dot-Matrix-LED-Display-Modul mit MAX7219
      NEU: Sortieren eines WORD- und BYTE-Feldes
      NEU: Spiel "Wörtersuchen"
      NEU: Palindrom-Test
      NEU: Viermal "Turm von Hanoi"
      NEU: Spiel "Mini-Schiffeversenken"
      NEU: Lied "Stille Nacht" auf der Open-Maxi
      NEU: Schneller Sinus, Cosinus und Tangens
      NEU: Spiel "Black-Jack", auch "17 & 4" genannt
      NEU: Arabische Zahl in römische Zahl umwandeln
      NEU: Ziegenproblem
      NEU: Echtzeituhr (Real Time Clock, RTC) mit DS3231
      NEU: Scan vom I²C-Bus
      NEU: Zweite Serielle Schnittstelle mit 255-Byte-Empfangsbuffer
      NEU: Universeller Ringbuffer für 255 Bytes
      NEU: Spiel "Kopfrechnen" - für geistige Fitneß
      NEU: Nummer des Tages ermitteln
      NEU: 512 Tagessprüche
      NEU: Eingrenzung des Wertebereichs von Zufallszahlen
      NEU: "Nibbles" mit Arduino-Anschlußbelegung und WASD
      NEU: Spiel "Nibbles" auf dem I2C-LCD
      NEU: I²C-LCD mittels Portexpander PCF8574A ansprechen
      NEU: Lied "Stille Nacht", bzw. "Silent Night"
      Wörterraten mit ROT13-Verschlüsselung
      Wörterraten (Hangman, Galgenmännchen)
      Open-Maxi abbremsen auf Original-C-Control-Niveau
      Zwei OLED-I2C-Displays gleichzeitig am I2C-Bus
      Smilies im Terminalprogramm
      RTC-Modul DS3231 von Norbert
      Adresse von Tabellen oder von Code bestimmen ohne Assembler
      Adresse von Tabellen oder von Code bestimmen
      Countdown mittels Zustandsautomat
      Fakultätsberechnung mittels FOR..NEXT-Schleife
      Fakultätsberechnung mittels Rekursion
      DTMF-Signale mittels PWM
      Preiswerte I²C-LCD-Module mit den kleinen OM-Controllern von Joe Fenk
      GPS-Modul auslesen (NMEA-Parser)
      Geschwindigkeit von Code, der mit OCBASR kompiliert wurde
      Entfernung per Ultraschall-Modul HC-SR04 ermitteln
      OLED-I2C-Grafikdisplay: Zufällige Kreise
      OLED-I2C-Grafikdisplay: Linien und Kreise
      OLED-I2C-Grafikdisplay: Mandelbrot-Menge
      Pulsweitenmodulation (PWM) konfigurieren
      Geschwindigkeit der schnellen DBNZ-Schleifen
      Timer/PWM-Module für 8 Servo-Ports umkonfigurieren
      Alle 16 Analog-Digital-Eingänge nutzen
      Anzahl der Variablen auf der Open-Maxi
      Interner Temperatur-Sensor bei variabler Betriebsspannung
      Internen Temperatur-Sensor nutzen
      Interne Bandgap-Spannungsreferenz nutzen
      Ein einfacher 6808-Disassembler
      Wochentagsberechnung für alle OM-Controller
      Wochentagsberechnung
      Serielle Schnittstelle mit 7 Datenbits
      Tasten abfragen
      HEX$ für BYTE-Variablen
      Periodendauer eines sehr langsamen Rechtecksignals ermitteln
      Periodendauer eines Rechtecksignals an FREQ1 ermitteln
      Verzögerungsschleife mit Vielfachen von 100 µs
      ON..TIMER-Funktionalität
      Ein Spiel auf dem I²C-LCD: "Meteor-Mess"
      Selbstdefinierte Zeichen auf dem I²C-LCD
      Mondphasenberechnung mit Integer-Arithmetik
      Reset-Historie per "System Reset Status Register"
      DCF77-Simulator
      Laufschrift auf dem I²C-LCD
      Bresenham-Algorithmus für Ellipsen
      Betriebssystem der Open-Macro mittels CRC prüfen
      Betriebssystem der Open-Maxi mittels CRC prüfen
      Haus vom Nikolaus von Joachim
      Bresenham-Algorithmus für Kreise
      Bresenham-Algorithmus für Linien
      Auf richtigen OM-Controller testen
      Game Of Life (Spiel des Lebens)
      Fehler-Behandlung mit RunOnErr
      PrintHex im BYTE-Format
      Arrays auf den OM-Mikrocontrollern
      TIMER-Takt auf der Open-Maxi erhöhen
      Assemblerkurs für die OM-Mikrocontroller - Teil 1
      Assemblerkurs für die OM-Mikrocontroller - Teil 2
      Assemblerkurs für die OM-Mikrocontroller - Teil 3
      Assemblerkurs für die OM-Mikrocontroller - Teil 4
      Mit skalierten Werten rechnen
      Auswirkungen der Drive-Strength-Kontrolle
      Auswirkungen der Slew-Rate-Kontrolle
      AD-Ports nicht mehr floaten lassen
      Oszillator aussetzen lassen auf der Open-Maxi
      Strom sparen auf der Open-Maxi
      Schnellere Serielle Schnittstelle
      Entfernungen mit Ultraschallmodul HC-SR04 messen von Norbert Klein
      Tastverhältnis eines Rechtecksignals ermitteln
      Periodendauer eines Rechtecksignals ermitteln
      LC-Display mit SSD1803-Controller von Norbert Klein
      Schnelle 32-Bit-Wurzelfunktion von Joe Fenk
      32-Bit-Arithmetik von Joe Fenk
      32-Bit-Quadratwurzel von GeKue
      GPS-NMEA-Daten auswerten von Joe Fenk
      ESCI-Demoprogramm von Joe Fenk
      Assemblerroutinen für 32 Bit von GeKue
      Software-Watchdog für die Open-Maxi
      Software-Watchdog für die kleinen OM-Controller
      Zwei Ausgänge unabhängig mit einem Taster schalten von Jens Gürtler
      "Flackerlicht" auf Open-Micro
      Spiel "Senso"
      BEEP während Programmausführung
      Dezimale Kommazahl auf dem LCD
      Interne BANDGAP-Spannungsreferenz
      PEEK und POKE (8 Bit & 16 Bit)
      Tabellenzugriff in Assembler
      Port toggeln in Assembler
      Anzahl der Stapelspeicher in Assembler
      Bis zu 8 Servos mit Open-Macro von Olaf Stermann
      Messung Pulsbreite 0,5 bis 1,5 ms bei 20 ms Duty cycle
      PWM Takt 100 bzw. 200Hz statt 50Hz von Joe Fenk
      Heizgriffsteuerung für Motorräder von Andreas Rutenberg
      LCD-Display-Ansteuerung über den I2C-Bus von Jens Gürtler
      PCA9530-Demo von Jens Gürtler
      Frequenz einlesen, verändern und wieder ausgeben von Georg
      20 µs Timerauflösung auf der Open-Macro
      Idee zum LCD-Grafikdisplays eDip240 auf der Open-Midi
      IRQ an PORT[3], FREQ1 an PORT[4], PWM an PORT[2] und RS232 an PORT[1]
      AD-Wandler der Open-Midi auf 10-Bit-Modus umschalten
      Anwender-Interrupt-Assemblerroutine auf der OM
      Rechtecksignale per Interrupt generieren
      IRQ an PORT[3] und FREQ1 an PORT[4]
      Kurze Impulse mit einer OM messen
      BASIC-Interruptroutine bei einem Keyboard-Interrupt aufrufen
      RC5-IR-Empfang auf der Open-Micro
      Hostmode starten per RS232
      PWM-Frequenz erhöhen und Echtzeituhr nutzen & Folgende
      Musik mit der Open-Micro
      Einige Anwender haben im Forum nützliche Beispielprogramme für die OM-Controller veröffentlicht. Hier einige Links zu den Beiträgen.

      Wer möchte, kann seine Beispielprogramme oder Softwaremodule ebenfalls ins Forum stellen. Falls sie zu lang dafür sind, sollten sie aber an mich per E-Mail gesandt werden. Ich stelle sie dann auf die Download- oder Projekte-Seite.

      Wenn Programme ins Forum gestellt werden, bitte den Quellcode mit den CODE-Tags formatieren: <code>Quellcode</code>

    Alternative Entwicklungsumgebungen, Compiler und Tools

      Integrierte Entwicklungsumgebungen (IDEs) für die C-Control I eignen sich oft auch zur Programmierung der OM.

      ZIP-Archiv Kommentar
      NEU: Open-Maxi für Sprint-Layout Rico Seifert alias MECler war so freundlich, mir sein Makro der Open-Maxi für Sprint-Layout zuzuschicken. Es kann mit seiner Genehmigung hier heruntergeladen werden.
      NEU: Konfiguration der ConTEXT-IDE für Syntaxhighlighting in Open-Control/BASIC. Außerdem Einbindung der CCBASIC-Hilfedatei. Version 2.3. Die Konfigurationsdatei OCBASIC.CHL muß in das Highlighters-Verzeichnis im Installationsverzeichnis der ConTEXT-IDE kopiert werden. Anschließend steht in der ConTEXT-IDE die Syntaxhervorhebung für Open-Control/BASIC zur Verfügung. Zusätzlich wird die CCBASIC-Hilfe in OCBASIC-Sourcecodes verwendet, sofern C-Control/BASIC für Windows installiert ist und der richtige Pfad zur Hilfedatei konfiguriert wurde. In der Version 2.1 wurden die Assemblerbefehle PSHA, PSHX, PSHH, PULA, PULX und PULH hinzugefügt. Außerdem wurde ein Fehler im Filter beseitigt. In der Version 2.2 wurde der Zeichensatz DOS7X12.FON hinzugefügt. Außerdem wird nun die aktuelle Zeile hervorgehoben. In der Version 2.3 wurden die Assemblerbefehle BCC und BCS hinzugefügt. Außerdem werden Zahlen jetzt rot angezeigt.
      NEU: Echter BASIC-Compiler OCBASR (16 & 32 Bit) Mit dem Compiler OCBASR lassen sich OCBASIC-Programmteile für alle OM-Mikrocontroller ohne großen Aufwand typischerweise um den Faktor 3 bis 4 beschleunigen! Mit diesem echten Compiler werden die Programmteile in die Maschinensprache der 6808-CPU umgewandelt.

      Enthalten sind auch zwei automatische Programmtests ("Testsuite") für die Open-Macro und Open-Maxi.

      Ich habe dem ZIP-Archiv auch zwei ältere 16-Bit-DOS-Versionen hinzugefügt. Diese unterstützen nicht die aktuellsten OM-Controller, benötigen dafür aber weniger DOS-Speicher.
      In-System-Debugger In diesem ZIP-Archiv befindet sich ein In-System-Debugger für alle OM-Controller. Der In-System-Debugger besteht aus zwei Teilen: Ein Teil wird in die OM übertragen und in den Interpreter eingebunden. Ein anderer Teil läuft auf dem PC und übernimmt die Steuerung. Es handelt sich dabei um ein Win32-Programm. Der Teil in der OM wird jedesmal aktiviert, nachdem ein neuer Tokenbefehl aus dem Speicher geholt wurde. Das ist unmittelbar bevor der Tokenbefehl vom Interpreter ausgeführt wird. Der Debugger wird über die PC-Tastatur gesteuert. Es werden die Befehle L, V, S, B, D, R, W und T unterstützt.
      Terminalprogramm in 32-Bit Terminalprogramm für neuere Windowsversionen, auf denen TERMINAL.EXE für DOS nicht arbeitet. Es handelt sich um ein 32-Bit-Consoleprogramm, das in die ConTEXT-Entwicklungsumgebung eingebunden und auf Tastendruck gestartet werden kann. Es hat die gleichen Übergabeparameter wie TERMINAL.EXE für DOS. Hilfe durch "Terminal32 /?".
      Studie zum DBG-Modul für Open-Maxi - Version 1.1 Dieses Beispielprogramm demonstriert, wie das "On-Chip Debug System" (DBG) des MC9S08AW60-Mikrocontrollers verwendet werden kann, um eigene Assemblerprogramme zu debuggen. Es wird gezeigt, wie ein Breakpoint gesetzt wird, um das Assemblerprogramm an einer beliebigen Stelle zu unterbrechen. Im Manual zum Controller wird außerdem beschrieben, wie auch andere Triggermodi verwendet werden können. Es handelt sich um die Version 1.1 der Studie. Sie unterstützt nun auch Firmwareroutinen-Aufrufe in der zu debuggenden Assemblerroutine.
      Studie zum BRK-Modul für Open-Macro Dieses Beispielprogramm demonstriert, wie das "Break Module" (BRK) des MC68HC908QB8-Mikrocontrollers verwendet werden kann, um eigene Assemblerprogramme zu debuggen. Es wird gezeigt, wie ein Breakpoint gesetzt wird, um das Assemblerprogramm an einer beliebigen Stelle zu unterbrechen. Leider unterstützt das BRK-Modul, anders als das DBG-Modul der Open-Maxi, keine weiteren Triggermodi.
      Studie zum BRK-Modul für Open-Micro, Open-Mini und Open-Midi Dieses Beispielprogramm demonstriert, wie das "Break Module" (BRK) der kleinen OM-Mikrocontroller verwendet werden kann, um eigene Assemblerprogramme zu debuggen. Es wird gezeigt, wie ein Breakpoint gesetzt wird, um das Assemblerprogramm an einer beliebigen Stelle zu unterbrechen. Leider unterstützt das BRK-Modul, anders als das DBG-Modul der Open-Maxi, keine weiteren Triggermodi.
      Downloadtool für Windows 8 Bei Michael Hoyer funktioniert mein Downloadtool OMDLWIN.EXE nicht unter Windows 8. Deshalb hat er ein eigenes kleines Downloadtool für die OM-Controller erstellt.
      Terminalprogramm für Windows In diesem ZIP-Archiv befinden sich ein von Jens Gürtler speziell für die OM-Controller entwickeltes Terminalprogramm. Es ist lauffähig unter Windows 95, 98, Me, NT, 2000, XP, Vista und 7. Das Terminalprogramm kann in die ConTEXT-Entwicklungsumgebung eingebunden und auf Tastendruck gestartet werden. Es hat die gleichen Übergabeparameter wie TERMINAL.EXE für DOS.
      NEU: CCBASIC für Windows 10 Zwar läßt sich C-Control/BASIC Version 1.33 für Windows 95/98/NT unter Windows 10 ausführen, aber leider nicht installieren. Deshalb habe ich ein ZIP-Archiv mit einem fertig installierten CCBASIC erstellt und biete es hier zum Download an. Es muß heruntergeladen und in das Verzeichnis "C:\CCBasic" entpackt werden. Anschließend läßt sich die Verknüpfung "C:\CCBasic\Ccew32d.exe" auf den Windows-Desktop kopieren. Mit Hilfe der Verknüpfung kann dann CCBASIC gestartet werden.

      Unter neueren Windows-Versionen funktionierte die kontextsensitive Hilfe nicht. Es kam die Fehlermeldung "Die Registerkarte Suchen kann nicht angezeigt werden. (177)". Ich habe jetzt dem ZIP-Archiv eine alte CCEW32D.FTS-Datei hinzugefügt, um dieses Problem zu beheben.
      CCBASIC für Windows:
      für Open-Micro, Open-Mini und Open-Midi
      oder

      für die Open-Macro
      Eine gepatchte DLL für die integrierte Entwicklungsumgebung von C-Control/BASIC-Windows Version 1.33, um die Open-Micro, Open-Mini, Open-Midi und Open-Macro in CCBASIC programmieren zu können. Die Original-DLL sollte nicht überschrieben, sondern sinnvollerweise umbenannt werden.

      Wer alle OM-Controllertypen mit CCBASIC programmieren möchte, sollte die DLL für die Open-Macro verwenden. Allerdings muß der Anwender dann selber darauf achten, keine Features zu benutzen, die von den kleinen OM-Controllern nicht unterstützt werden (z.B. WORD-Variablen).
      NEU: CCPLUS für Windows 10 Zwar läßt sich C-Control/Plus Version 1.08 für Windows 95/98/NT unter Windows 10 ausführen, aber leider nicht installieren. Deshalb habe ich ein ZIP-Archiv mit einem fertig installierten CCPLUS erstellt und biete es hier zum Download an. Es muß heruntergeladen und in das Verzeichnis "C:\CCPlus" entpackt werden. Anschließend läßt sich die Verknüpfung "C:\CCPlus\Ccplus" auf den Windows-Desktop kopieren. Mit Hilfe der Verknüpfung kann dann CCPLUS gestartet werden.
      CCPLUS für die kleinen OM-Mikrocontroller Patch für C-Control/Plus Version 1.08, damit das LCD-Modul auch in Programmen für die kleinen OM-Mikrocontroller benutzt werden kann. Das war bisher nicht möglich, weil die OM zu schnell arbeitet. Außerdem wurde der Fehler im Modul "Einlesen als Text" behoben. Die Originaldateien der CCPLUS-Installation sollten nicht überschrieben, sondern vor dem Patchen umbenannt werden.
      NEU: CCPLUS-LCD mit Open-Maxi Die Open-Maxi arbeitet das CCPLUS-Programm deutlich schneller ab, als die C-Control 1.1. Deshalb müssen alle CCPLUS-Programme, die den LCD-Block verwenden, zu Beginn im SLOWMODE gestartet werden, damit die Initialisierung des LCD korrekt erfolgen kann. Nach der einmal notwendigen LCD-Initialisierung kann dann wieder in den FASTMODE zurückgeschaltet werden.
      OM-Schablone für C-Control/PLUS Mit der OM-Schablone lassen sich mit CCPLUS auch jene Funktionen der OM-Mikrocontrollerfamilie verwenden, für die der CCPLUS-Blockvorrat keine Entsprechung kennt. Dies sind u.a. die Steuerung der internen Pull-up-Widerstände, Hostmodus, Aktivierung der Hardware-RS232 mit Open-Macro, zusätzliche Baudraten, und weitere.
      PWM für C-Control/PLUS Routinen für Pulsweitenmodulation an PORT[2] mit CCPLUS. Sie stammen vom |_ Team und basieren auf den Routinen von René Stadler. Sie funktionieren mit Open-Micro bis Open-Macro. Wie bei der C-Control/Micro arbeitet die PWM mit einer Frequenz von nur 50 Hz. Die PWM ist daher nur zur Generierung von Signalen niedriger Frequenz einsetzbar.
      mBasic (externer Link, nicht erreichbar)

      mBasic (gepatchte Version)

      NEU: mBasic9,0,5,37.zip (aktuellste Version)
      Patrick Borek hat freundlicherweise in seine Programmiersprache mBasic nun auch Support für die Open-Micro und Open-Mini integriert. Dadurch entfällt das bisher notwendige Patchen der Entwicklungsumgebung. Die zusätzlichen Features der OM-Mikrocontroller werden allerdings nicht unterstützt. Außerdem sind einige Funktionen von mBasic nur auf einer B-Control verfügbar.

      Leider ist die Website von mBasic seit einiger Zeit nicht mehr zu erreichen. Aus diesem Grund biete ich wieder die von mir gepatchte mBasic-Version zum Download an. Der Patch ersetzt in mBasic die C-Control durch die Open-Micro. Der Anwender muß selber darauf achten, keine Features zu benutzen, die von den OM-Controllern nicht unterstützt werden.

      Im nebenstehenden ZIP-Archiv ist die aktuellste Version von mBasic enthalten. Es unterstützt wohl auch die Open-Micro und Open-Mini. Leider kann ich keine Verbindung zur Open-Maxi aufbauen, was wohl daran liegt, daß mBasic von einer Single-Wire-Schnittstelle mit Echo ausgeht. Was ich außerdem feststellen mußte: Wenn man mBasic so konfiguriert, daß Code für die OM-Mikrocontroller erstellt wird, dann werden weder Word-Variablen noch Strings unterstützt!
      DOS-IDE für die OM-Mikrocontroller Dieses ZIP-Archiv enthält die leicht modifizierte integrierte Entwicklungsumgebung (IDE) für den von Conrad Electronic entwickelten C-Control/BASIC-Mikrocontroller, allerdings angepaßt an die Open-Micro und den Open-Control/BASIC-Compiler. Ein großer Vorteil der DOS-IDE ist, daß diese auf jedem Rechner, auf dem DOS oder Windows installiert ist, sofort lauffähig ist. Der Compiler OCBASIC, der Assembler AS05, ein Terminalprogramm, etc. wurden bereits in die IDE integriert.
      Einbinden des CCBASIC-Compilers in die ConTEXT-IDE: Benutzerbefehl 1 (F9) und Benutzerbefehl 2 (F10) Diese beiden Bilder zeigen, wie der CCBASIC-Compiler CCBAS.EXE und das Downloadtool OMDL.EXE in die ConTEXT-IDE eingebunden werden können. Alternativ lassen sich natürlich auch der OCBASIC-Compiler OCBAS.EXE und das Downloadtool OMDLWIN.EXE verwenden.
      Einbinden des AS05-Assemblers in die ConTEXT-IDE: Benutzerbefehl 1 und Benutzerbefehl 2 Diese beiden Bilder stammen von Gerhard Fischer und zeigen, wie der AS05-Assembler AS05.EXE und das Tool zum Erstellen einer INLINE-Assemblertabelle INLASM.EXE in die ConTEXT-IDE eingebunden werden können.
      Automatische Konfiguration der ConTEXT-Entwicklungsumgebung für Syntaxhighlighting in Open-Control/BASIC und AS05-Assembler. Außerdem Einbindung der CCBASIC-Hilfedatei. Dieses ZIP-Archiv von Gerhard Fischer enthält zwei Konfigurationsdateien für die ConTEXT-IDE, die in das Highlighters-Verzeichnis im Installationsverzeichnis kopiert werden müssen. Anschließend stehen in der ConTEXT-IDE die Syntaxhervorhebung für Open-Control/BASIC und AS05-Assembler zur Verfügung. Zusätzlich wird die CCBASIC-Hilfe in OCBASIC-Sourcecodes verwendet, sofern C-Control/BASIC für Windows installiert ist und der richtige Pfad zur Hilfedatei konfiguriert wurde.
      Mikrocontroller über serielle Schnittstelle starten Das ist ein Win32-Programm, um den ASCII-Code 13 (RETURN) über die serielle Schnittstelle zu senden und auf diese Weise die OM-Mikrocontroller aus dem Hostmode heraus zu starten. Es öffnet kein Fenster und läßt sich deshalb gut in die ConTEXT-IDE einbinden und auf Tastendruck starten.

    Wechsel von C-Control/Micro auf Open-Micro

      Einige Downloads für den Wechsel von der C-Control/Micro auf die Open-Micro.

      ZIP-Archiv Kommentar
      Upgrade C-Control/Micro 2.00 auf Open-Micro Mit diesem Upgrade kann die erste C-Control/Micro (Version 2.00) auf eine Open-Micro aufgewertet werden. Die C-Control/Micro 2.00 besitzt unter anderem einen Fehler bei FOR..NEXT-Schleifen. Der Endwert wird falsch ausgewertet, so daß ein Schleifendurchlauf zuwenig ausgeführt wird. Weitere Vorzüge der Open-Micro gegenüber der C-Control/Micro sind in der Dokumentation aufgelistet.
      Umbau des "C-Control Micro P/E-Board" in ein PE-Board für die Open-Micro Einige Anwender der C-Control/Micro haben ihre Micro durch das bereitgestellte Upgrade auf eine Open-Micro aufgewertet und haben nun keine Verwendung mehr für ihr Conrad-P/E-Board. Die in diesem ZIP-Archiv enthaltenen Bilder erklären, wie dieses P/E-Board in ein Board für die Open-Micro umgelötet werden kann, so daß es zur Programmierung der Open-Micro weiterverwendbar ist.

    Downloads für fortgeschrittene Anwender

      Der fortgeschrittene Anwender wird sicher den Mikrocontroller im vollen Umfang nutzen wollen. Die folgenden Sachen helfen dabei.

      ZIP-Archiv Kommentar
      NEU: Die vier Betriebssysteme der fünf OM-Mikrocontroller im LST-Format Dieses ZIP-Archiv richtet sich an alle Assemblerkundigen und enthält die Betriebssysteme der fünf OM-Mikrocontroller im LST-Format. Die Betriebssysteme wurden vollständig mit dem sehr zuverlässigen AS05-Assembler von Frank A. Vorstenbosch ("AS05 for M6805 [1.40]") und Macros für die neuen 6808-Befehle erstellt. Der Assembler erzeugt beim Assemblieren eine LST-Datei, die das Quellprogramm und den daraus generierten Maschinencode enthält. Das Listing dient vor allem dazu, daß ein prüfender Leser erkennen kann, an welchen Adressen der Assembler welchen Code erzeugt hat. Die LST-Datei ist also ein Teil der Dokumentation.
      NEU: DAT2TAB Mit diesem Tool können Codebereiche aus DAT-Dateien vom OCBASIC-Compiler in die CCBASIC-Tabellenform umgewandelt werden. Nützlich ist das zum Beispiel, um diese Codebereiche in CCPLUS-Tabellen einzufügen. So können positionsunabhängige INLASM-Routinen für die OM auch in CCPLUS verwendet werden.
      3 Volt für Open-Midi und Open-Macro Normalerweise ist auf der Open-Midi und Open-Macro nur 5-Volt-Betrieb erlaubt. Aber mit diesem Tool kann das Betriebssystem auf 3-Volt-Betrieb gepatcht werden. Damit können nun auch die mittleren OM-Controller mit Batterien oder mit 3-Volt-Equipment betrieben werden. Bitte die Warnhinweise beachten!
      Konfiguration der Open-Maxi Standardmäßig schaltet die Open-Maxi alle internen Pullup-Widerstände der Ports BYTEPORT[1], BYTEPORT[2], BYTEPORT[3], BYTEPORT[5], BYTEPORT[6] und BYTEPORT[7] nach jedem Reset aktiv. Wenn dieses Verhalten unerwünscht ist, kann das mit dem Programm NVCONFIG.BAS umkonfiguriert werden. Außerdem ist es möglich, das SPMSC2-Register dauerhaft anzupassen. Dadurch ist wahlweise 5-Volt- oder 3-Volt-Betrieb möglich. Darüber hinaus kann nun HGO eingestellt werden, um den Controller auch bei Minusgraden einsetzen zu können. Bitte die Warnhinweise beachten!
      RAM-Speicherbelegungsplan für
      Open-Micro und Open-Mini
      In dieser INCLUDE-Datei wird für jedes Byte im RAM detailliert beschrieben, wie es belegt ist und unter welchen Bedingungen es vom BASIC- oder CCPLUS-Programmierer benutzt werden darf. Dadurch kann der Anwender weit mehr als die üblichen 64 Byte zur Variablenspeicherung verwenden.
      Assembler-Befehlssatz in Deutsch Viele Anwender haben sicher Verwendung für das nebenstehende ZIP-Archiv. Es enthält eine PDF-Datei, in der alle Assemblerbefehle der 6808-CPU in deutscher Sprache erklärt werden. Leider handelt es sich um die Rohfassung der Befehlsbeschreibung, doch wenn ein Anwender Lust hat, kann er die Assemblerbeschreibung erweitern, denn die Original-Word-Perfect-Datei ist ebenfalls im Archiv enthalten. Die Dateien wurden von Jörg Schnyder von der SYSTECH J.Schnyder GmbH erstellt und freundlicherweise für das OM-Projekt zur Verfügung gestellt.
      Hilfsprogramme zur Assemblerprogrammierung In diesem ZIP-Archiv befindet sich der bekannte Assembler AS05 von Frank A. Vorstenbosch mit Makros für die Befehle der 6808-CPU. Außerdem sind ein Disassembler, ein Tool zum Erstellen von Tabellen für Inline-Assembler in CCBASIC und andere Goodies enthalten.
      NEU: C-Control/Token-Disassembler V2.00 für OCBASIC Als Update zum obigen Archiv gibt es hier den C-Control/Token-Disassembler V2.00 für OCBASIC und Open-Micro, Open-Mini, Open-Midi, Open-Macro und Open-Maxi.
      Speicherdump für QT4/QY4/QB8 Dieses Assemblermodul kann zum Testen eines Mikrocontrollers auch ohne Betriebssystem benutzt werden. Für die Ausgabe über RS232 werden keine ROM-Firmware-Routinen benutzt.
      Open-Micro-Betriebssystem Version 1.0
      und zugehörige Tools
      Die offiziell erste Version des OM-Betriebssystems für registrierte Anwender, die mittels QT4- oder QY4-Mikrocontroller eine eigene Open-Micro oder Open-Mini herstellen wollen. In dieser Betriebssystemversion wurde gegenüber der letzten während des Betatests veröffentlichten Version 0.6 fast nichts verändert, um die Fehlerfreiheit nicht zu gefährden.

      Das Betriebssystem und die Tools sind sowohl für QT4 als auch für QY4 geeignet und auf den zweiten PE-Board-Prototyp abgestimmt. Bitte KURZDOKU.TXT und die umfangreiche Anleitung zur OM lesen. In der Bedienungsanleitung ist ausführlich beschrieben, was beim OS-Download zu beachten ist. Die Mikrocontroller müssen vor dem OS-Download korrekt resettet werden, was offenbar viele Anwender nicht beachten. Die Anleitung beschreibt die Herstellung der Mikrocontroller noch anhand der OS-Version 0.6, was aber kein Problem sein sollte. Die Downloadtools arbeiten fehlerfrei unter allen PC-Betriebssystemen von DOS über Windows 98 bis XP. Allerdings klappt der OS-Download unter einigen Windows-Systemen in Kombination mit bestimmter Hardware offenbar nicht oder nur teilweise. Insbesondere einige USB-nach-seriell-Konverter bereiten Probleme. Für Hilfestellung stehe ich per E-Mail gern zur Verfügung.

      Alle Dateien mit dem Betriebssystem sind paßwortgeschützt. Nur noch Lehramtsinhaber können nach der Registrierung das Paßwort erhalten, damit sie das Betriebssystem in QT4- oder QY4-Mikrocontroller laden können, um die OM zu Schulungszwecken einzusetzen.

      Für andere Mikrocontroller ist das Betriebssystem in der jetzigen Form nicht geeignet.
      OSCTRIM in 32-Bit

      S19MON08 in 32-Bit
      Ich habe die DOS-Programme OSCTRIM.EXE und S19MON08.EXE nach 32-Bit konvertiert, denn die DOS-Tools konnten unter neueren Windowsversionen nicht eingesetzt werden. Außerdem gab es Probleme, wenn der Rechner keine "richtige" Serielle Schnittstelle besitzt. Jetzt kann sogar die Baudrate eingestellt werden, womit auch arg vertrimmte Controller ansprechbar sind.

      Mit Hilfe von Osctrim32.exe kann der interne Oszillator eines QT4-, QY4- und QB8-Controllers getrimmt, bzw. kalibriert werden. Die bei CCTools verkauften Controller sind bereits getrimmt. Und mit S19mon0832.exe kann ein Betriebssystem im S19-Format in einen QT4, QY4 und QB8 geladen werden. Wie die Tools im einzelnen zu benutzen sind, wird im Kapitel "Herstellung der OM-Controller" in der Bedienungsanleitung zur Open-Micro, Open-Mini und Open-Midi ausführlich erklärt. Als zusätzlicher Parameter kann beim Aufruf die Baudrate übergeben werden. Je nach Schnittstellenadapter lassen sich auch "krumme" Baudraten verwenden.

      Es handelt sich um 32-Bit-Consoleprogramme, die in einem Console-Fenster ("Eingabeaufforderung", "DOS-Box") gestartet werden sollten. Während die Programme in den FLASH programmieren, darf der Controller nicht resettet werden oder die Verbindung aus einem anderen Grund nicht abreißen. Nicht das Betriebssystem der Open-Micro und Open-Mini in einen QB8 laden! Das OS ist nicht kompatibel.

      Das Trimmen und Flashen sollte entweder über eine "echte", UART-basierte Schnittstelle oder mit einem USB-nach-seriell-Adapter mit FTDI-Chip durchgeführt werden.
      Zweites PE-Board für QT4, QY4, QB8 & C-Micro: Schaltbild, Layout und Bestückungsplan für Eagle, Stückliste, Kurzinstruktionen für den OS-Download, Optimierung des Protect-Jumpers für den Standard-Monitor-Mode, der am PE-Board angeschlossene GT16 und der AP32 Dieses Board ist besser zum Experimentieren geeignet als das erste PE-Board, da u.a. die LEDs über einen 4049 getrieben werden und Dual-Wire-RS232 möglich ist. Pro Europaplatine lassen sich zwei Boards herstellen. Unoptimal ist: Belegung der Stiftleisten, 4049-Eingänge ohne (möglichst zuschaltbare) Pull-Ups.
      Flash-Programmer PROG08SZ von PEMICRO einsetzen Dieser Text beschreibt am Beispiel des Flash-Programmers PROG08SZ von P&E Microcomputer Systems, wie man nach dem Installieren des Open-Micro-Betriebssystems den internen Systemmonitor MON08 starten und nutzen kann.

    Verschiedenes

      Für einige Anwender ist sicher die folgende Bildergalerie von Interesse.

      Bildergalerie Im Laufe der Zeit hat sich eine große Anzahl an Bildern angesammelt, die unter anderem den Einsatz der Open-Micro und die Weiterentwicklung des PE-Boards zeigen. Ich möchte sie dem interessierten Anwender nicht vorenthalten. Vielleicht ergibt sich daraus die eine oder andere Idee.

    Experimentelles

      Für alle ungeduldig auf neue Programmversionen wartenden Anwender gibt es hier einiges Neues, das sich noch in der Entwicklung befindet und deshalb teilweise noch nicht ausführlich getestet wurde. Verbesserungsvorschläge oder Hinweise auf Fehler werden per E-Mail dankbar entgegengenommen.

      ZIP-Archiv Kommentar
      OMDLWIN_fuer_groesser_COM9.zip Hier eine OMDLWIN-Version, die COM-Ports größer 9 unterstützt.  
      OMDLWIN_mit_groesserem_Timeout.zip Für besondere Einsatzzwecke gibt es hier eine OMDLWIN-Version mit einem größeren Timeout. Damit kann mittels Bluetooth-Anwendung unter Windows 11 eine Verbindung zur Open-Maxi aufgebaut werden.  
      OCBAS112e1_32_english_2.zip Here you can find a 32-bit version of OCBASIC in english language. It's version 2.  


    Diese Seite wurde von Dietmar Harlos am 4. Januar 2006 erstellt.