Software Projects
hier gibt es Softwaremodule fuer die C-Control
   
i2ctest.zip (4 kB)  
Viele Geräte lassen sich an die systemeigene I2C-Schnittstelle der C-Control anschließen. Doch oftmals ist es sicherer, eine zweite, von der ersten getrennte, Schnittstelle einzusetzen. Für diesen Anwendungsfall ist das Assemblermodul für einen zweiten I2C-Bus gedacht. Es kann mit zwei Pins von Port B (BYTEPORT [1] in Basic) eine vollwertige und schnelle I2C-Schnittstelle emulieren.

Gegenüber den Systemroutinen besitzt das neue Modul sogar den Vorteil, auch bei einem nicht angeschlossenen oder nicht reagierenden Gerät nach einer halben Sekunde in das Hauptprogramm zurückzukehren. Anhand des Rückgabecodes kann der Bus gescannt und der Anwender entsprechend informiert werden.

Abweichend von anderen Softwaremodulen für I²C wird die Acknowledge-Quittierung nicht in den Lese- und Schreibroutinen durchgeführt. Nach I2C_READ muß deshalb I2C_SENDACK oder I2C_SENDNACK aufgerufen werden und nach I2C_WRITE das I2C_GETACK.

 
pctast.zip (3 kB)  
Mit diesem Softwaremodul läßt sich eine ganz normale PC-Tastatur an die C-Control anschließen. Die von der Tastatur gesendeten Scancodes können empfangen werden, eine Umwandlung nach ASCII findet zwar nicht statt, kann aber noch in CCBASIC implementiert werden.

Wer noch mehr über den Anschluß einer PC-Tastatur an einen 68HC05-Mikrokontroller erfahren möchte, kann auf der Site Interfacing the PC / Beyond Logic vorbeischauen. Dort ist auch beschrieben, an welchen Pins des DIN- oder PS/2-Steckers das Daten- und Clocksignal entnommen werden kann. Und auch sonst gibt es reichhaltige Informationen für Bastler auf dieser Site.

 
quirl.zip (7 kB)  
Mit dem nebenstehenden Assemblermodul lassen sich bis zu drei digitale Drehsignalgeber abfragen. Die Geber müssen eine Rechts-/Links-Kennung anhand um 90 Grad verschobener Impulsphasen aufweisen.

Die Routine ist in der Lage, nur jeweils einen Impuls von einem Drehgeber zu erkennen. Eine gleichzeitige Erfassung aller Geberbewegungen ist also nicht möglich. Die vorliegende Lösung ist daher gedacht zur Auswertung von Drehgebern, welche als Eingabegerät für PCs dienen und von Hand bedient werden, beispielweise ein Jog Shuttle.

 
i2c_ram_eeprom.zip (8 kB)  
Dieses Softwaremodul ist eine Alternative zu DeepXS 2.0 von Mark Hämmerling. Es handelt sich um Assemblerroutinen zur Verwaltung eines externen RAMs und eines externen EEPROMs am System-I²C-Bus der C-Control-1. Bytes, Words und Vektoren von Bytes koennen unter festen Adressen im externen Speicher abgelegt und das RAM kann als Stack benutzt werden. Explizit nicht unterstuetzt werden Bausteine mit Paging, die DeepXS unterstuetzt. Grund ist der knappe Platz, der im internen EEPROM fuer Assemblerprogramme zur Verfuegung steht.

Im Quellcode muessen zunaechst die hart kodierten Adressen von RAM und EEPROM angepasst und anschliessend mittels AS05 assembliert werden.

 
irsony.zip (5 kB)  
Das nebenstehende ZIP-Archiv hat mir Romain Roduit aus Lausanne zugesandt. Mit den darin enthaltenen BASIC- und Assemblerprogrammen kann man Sony-Geräte mittels Infrarot-Licht steuern. Romain hat je ein Beispielprogramm für 12, 15 und 20 Bit Protokollänge entwickelt. Allerdings hat er den Code für 15 Bit bisher noch nicht austesten können.
 
Paul_Lenz_DCF77-Simulator.zip (9 kB)  
Paul Lenz demonstriert in seinem Projekt, wozu die Original-C-Control in der Lage war. Er hat einen DCF77-Simulator mit der C-Control 1.1 erstellt, dessen Quellcode hier heruntergeladen werden kann. Mittels GPS-Modul wird dabei die simulierte DCF77-Uhrzeit je nach Aufenthaltsort der Uhr automatisch an die jeweils national geltende Zeitzone angepaßt. Hierzu sind Tabellen für 4+1 Zeitzonen mit ihren Grenzkoordinaten im Quelltext enthalten. Auch ein NMEA-Parser wurde integriert. Zur Übertragung des simulierten DCF77-Signals außerhalb Deutschlands wird ein Kleinstleistungssender mit einigen Metern Reichweite beschrieben. Beides stellt Paul auf seiner Website ausführlich vor. Paul wohnte von 2006 bis 2010 in Finnland, wo die Osteuropäische Zeit gilt. Da funktionierte seine Funkuhr nicht mehr korrekt, die er ebenfalls mit einer C-Control gebaut hatte. Da er deren Komfort nicht missen wollte, hat er den DCF77-Simulator erstellt.

Paul Lenz: Ich fürchte nur, so "nackt" nützt es euch wenig, insbesondere ohne Schaltbild, aber ich habe keins angefertigt, und ich habe auch längst vergessen, was ich gemacht habe - weitere Fragen sind leider zwecklos.

 
dht11.zip (5 kB)  
Ralf Rosche hat Sourcecode erstellt, um den Feuchte- und Temperatursensor DHT11 an der C-Control 1.1 zu betreiben. Der Sensor wird per 1-Wire-Bus angesprochen. Da BASIC nicht die nötige Geschwindigkeit liefert, wurde das Ansprechen des Sensors in Assembler realisiert. Die Übergabe der Daten erfolgt über Variablen im USER-RAM. Ralf erklärt im beiliegenden INFO.TXT alles Wesentliche.
 
CC1_US-Entfernungsmessung.zip (1070 kB)  
Marko Piering alias MaPi hat ein Softwarepaket zur Ultraschall-Entfernungsmessung mit der C-Control 1.1 geschnürt. Es kommt die Ultraschall-Empfangs-/Sendeeinheit HC-SR04 zum Einsatz. Die Meßroutine wurde in Assembler erstellt und in den TCAP-Interrupt eingebunden. Marko hat auch in der Excel-Datei "Fehlerabschätzung.xls" Überlegungen zur Abschätzung des entstehenden Fehlers durch vereinfachte Umrechnung der gemessenen Laufzeit in eine Entfernung angestellt.
 
CC1_Servo-Steuerung.zip (23 kB)  
Marko Piering alias MaPi stellt zwei von ihm entwickelte Verfahren zur Servo-Ansteuerung auf der C-Control 1.1 vor. Das ZIP-Archiv beinhaltet Assembler- und CCBASIC-Programme als Demo zur Ansteuerung von Servos über eine durch die CC1 erzeugte PWM, entweder an den PWM-Ausgängen PLMA/PLMB, oder an Digitalports unter Nutzung des TCMP1- bzw. TCMP2-Interrupts. Bisherige Lösungsansätze der Servo-Ansteuerung, dokumentiert durch Burkhard Kainka oder Mario Boller-Olfert, nutzen auch Maschinencoderoutinen zur Erzeugung der PWM, belassen aber einen gewissen Aufwand an Steuerung des Bewegungsablaufs des Servos beim CCBASIC-Programm.
 
Langzeitzaehler.zip (13 kB)  
Marko Piering alias MaPi hat eine Lösung für die Messung von größeren Periodenlängen für die Control V1.1 erarbeitet. Inspiriert wurde er dazu durch einen Original-Beitrag für die Open-Maxi. Dabei kam ihm auch gleich die praktische Anwendung der berührungslosen Messung der Schwingungsdauer eines Uhrpendels über eine diskret aufgebaute Lichtschranke in den Sinn. Der mittels TCAP1- und TOFL-Interrupts aufgebaute Zähler ist 24bit breit bei 2us Auflösung und erlaubt eine Messung von Periodenlängen bis ca. 33s. Der Zähler muß entsprechend konfiguriert werden, abhängig davon, ob die Periodendauer eines Rechtecksignals oder zwischen 1. und 3. Nulldurchgang einer Sinusschwingung gemessen wird.