
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
Hallo Volker, in dem von Dir ins Forum gestellten Quellcode kann ich keinen Fehler entdecken. Ich vermute aber, in Deiner Leseroutine stimmt etwas nicht. Fehlt vielleicht das "Readlast"? Ich habe einmal Deinen Sourcecode entsprechend ergänzt. Damit funktioniert das Schreiben und Lesen, wie ich mit einem 24C64-I²C-EEPROM überprüft habe. Die OM gibt einen Hexdump vom Speicher über die serielle Schnittstelle aus. Es ist immer ratsam, Daten und Meldungen über die serielle Schnittstelle auszugeben, wenn etwas nicht funktionieren will. include "om.def" define SCL port[5] 'externe Pull-Up-Widerstaende sind nicht unbedingt define SDA port[6] ' notwendig, wenn interne Pull-Ups aktiviert sind define x,y,z byte define i byte 'temporaeres Byte gosub i2c_init 'I2C-Bus initialisieren PrintHex=on for x = 0 to 1 for y = 0 to 240 step 16 print x; y; ": "; i2c_start i2c_write &b10100000 i2c_write x i2c_write y for z = 0 to 15 print i2c_write(z+48);" "; next z i2c_stop repeat i2c_start until i2c_write(&b10100000) next y next x for x = 0 to 1 for y = 0 to 240 step 16 print x; y; ": "; i2c_start i2c_write &b10100000 i2c_write x i2c_write y i2c_start i2c_write &b10100001 for z = 0 to 15 print i2c_read(z<>15);" "; ' print i2c_read(on);" "; 'geht nicht (außer mit i2c_init) next z i2c_stop next y next x End2Host=on end include "om_i2c.bas" Viele Grüße Dietmar Meine Homepage: http://ccintern.dharlos.de |
| Antwort schreiben |