
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
Hallo Peter! Anbei ist dass Demo zum durchsuchen vom I2C-Bus. Es wird wieder ein Terminalprogramm zur Anzeige benötigt. Die gefundenen Adressen werden Dezimal ausgegeben, also nicht verwirren lassen. :-) LG Jens ' --------------------------------------------------------------------------- ' --- I2C-Bus durchsuchen - für OCBASIC ------------------------------------- ' --------------------------------------------------------------------------- ' Hardware: ' Serielle Schnittstelle an Port[1] (mit Terminal Programm) ' I2C-Bus SCL an Port[5] (fals nicht anders festgelegt) ' I2C_Bus SDA an Port[6] (fals nicht anders festgelegt) ' Software: ' Das Programm durchsucht den I2C-Bus. Jeder gefundene I2C-Bus Baustein ' wird mit Adresse im Terminal Programm angezeigt. ' --- Betriebssystem konfigurieren ------------------------------------------ include "om.def" ' Betriebssystem Daten der Open-Micro laden 'include "omid.def" ' Betriebssystem Daten der Open-Midi laden ' --- definition der Ports -------------------------------------------------- define RS232 port[1] ' Serielle Schnittstelle an Port 1 ' SDA und SCL werden in "OM_I2C-PRO definiert ' --- definition der Variablen ---------------------------------------------- define adresse byte ' I2C-Bus Adresse define ACK byte ' I2C-Bus "ACK" vom Slave ' --- Voreinstellung und Initialisierung ------------------------------------ End2Host=ON ' Bei Programmende in den HOST-Modus wechseln i2c_init ' Initialisirung I2C-Bus ' --------------------------------------------------------------------------- ' --------------------------------------------------------------------------- ' --- Hauptprogramm --------------------------------------------------------- ' --------------------------------------------------------------------------- #anfang print ' Leerzeile print "I2C-Bus Suche gestartet..." ' Text Ausgabe print ' Leerzeile for adresse=0 to 254 step 2 ' I2C-Bus such - Adressen vorgeben gosub i2c_start ' I2C-Bus starten ACK = i2c_write(adresse) ' Adresse senden, ACK empfangen gosub i2c_stop ' I2C-Bus stoppen if ACK=255 and adresse=0 then goto i2c_fehler ' Fehler im I2C-Bus if ACK = 255 then gosub gefunden ' Wenn "ACK" vom Slave empfangen, dann auswerten next print ' Leerzeile print "Suche abgeschlossen" ' Text Ausbabe end ' Programmende ' --------------------------------------------------------------------------- #i2c_fehler print "Fehler - I2C-Bus nicht bereit" ' Text Ausgabe end ' --------------------------------------------------------------------------- #gefunden print "I2C-Bus Baustein bei Adresse "; Adresse; " (Dez) gefunden..." ' Text Ausgabe return ' --------------------------------------------------------------------------- ' --------------------------------------------------------------------------- ' Die I2C-Routinen einbinden ' --------------------------------------------------------------------------- INCLUDE "om_i2c.pro" ' --------------------------------------------------------------------------- ' Die Firmware-Routinen einbinden ' --------------------------------------------------------------------------- INCLUDE "om_fw.pro" |
| Antwort schreiben |