![]() ![]() INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Hy! Das Programm ist super, findet auch schon ein paar Adressen in meinem Haus-Bus. Ein fettes Dankeschön nochmal für die Tipps! LG Peter > 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" Meine Homepage: http://www.lanzenberg.at |
Antwort schreiben |