Addressierungs-Fehlerchen in Modul eeprom Kategorie: I²C-Bus (von Christian H. - 17.11.2002 14:37) | |
| |
Hallo beisammen! Für alle die das Modul eeprom für I2C-Eprom Ansteuerung benutzen (wollen): Die Adresse der Chips wird nicht korrekt berechnet, da hat sich wohl ein kleiner Tippfehler eingeschlichen: function write(byte eepromaddr, int addr) returns int { byte i; i=0; eepromaddr= 160 + (eepromaddr) shl 1; ..... function read(byte eepromaddr,int addr) { eepromaddr= 160 + eepromaddr shl 1; Da der Compiler "+" vor "shl" ausführt (!! ist das immer so? kommt mir spanisch vor...) ergibt sich hier eine falsche Adresse. Mit eepromaddr= (eepromaddr shl 1) or 160; funktionierts besser. Aber ich kann nur jedem empfehlen den alten Code mal auszuprobieren, die (falsche) sich ergebende Adresse spricht dann nämlich einen PCF8574 an. Da sich in meiner Anwendung auch tatsächlich einer an dieser Stelle befinden gehen meine 4kB Daten nicht ans eeprom sondern an 8 Relais.... Vieleicht erinnert sich noch jemand an das gute alte "Floppymusic" auf dem Amiga? ;-) | |
Antwort schreiben Antworten: Besser nach neueste Version benutzen !! (von André H. - 17.11.2002 19:00) Re: Besser nach neueste Version benutzen !! (von Christian H. - 18.11.2002 23:14) |