Re: eeprom über I2C-Bus Kategorie: I²C-Bus (von Patrick - 8.04.2005 8:56) | ||
Als Antwort auf Re: eeprom über I2C-Bus von Udo - 25.03.2005 17:47 | ||
| ||
> byte config[10], config1[10]; > int error; > > error = eeprom.writebytearray(0, 32, config , 10); > error = eeprom.readbytearray (0, 32, config1, 10); > Hallo Udo, ich habe deinen Programmcode mal nachprogrammiert und um ein paar Anweisungen erweitert. Leider verstehe ich immer noch nicht, wie die Daten adressiert werden. Folgenden Programmcode nutze ich mal, um mein problem zu erläutern. thread main{ byte config[10], config1[10]; int error, i; config[0]=2; config[1]=5; config[2]=11; config[3]=14; config[4]=19; config[5]=25; config[6]=28; config[7]=32; config[8]=36; config[9]=40; error = eeprom.writebytearray(0,32, config,10); string s; s="test2"; error = eeprom.writestr(0,36,s); hwcom.setspeed(8); hwcom.clr(); hwcom.print("EEPROM-MAP"); hwcom.ret(); hwcom.ret(); error = eeprom.readbytearray(0,32,config1,10); hwcom.print("addr"); hwcom.tab(); hwcom.print("value"); hwcom.ret(); for i = 0 ... 9{ hwcom.num(i+32); hwcom.tab(); hwcom.num(config1[i]); hwcom.ret(); } s=""; eeprom.readstr(0,36,s); hwcom.print(s); quit 1; } Der Output bei der Ausführung sieht wie folgt aus: EEPROM-MAP addr value 32 116 33 101 34 115 35 116 36 50 37 0 38 0 39 0 40 0 41 0 test2 Das verstehe ich aber nicht ganz, das error = eeprom.writebytearray(0,32, config,10); schreibt doch auf die entsprechenden Adressen das hier(funktioniert auch): addr value 32 2 33 5 34 11 35 14 36 19 37 25 38 28 39 32 40 36 41 40 Wenn jetzt error = eeprom.writestr(0,36,s); folgt sollte es doch folgenden Output geben: addr value 32 2 33 5 34 11 35 14 36 116 37 101 38 115 39 116 40 50 41 0 32,33,34 und 35 sollten doch eigentlich unberührt bleiben oder? Eine weitere Frage: schreibt ein String immer die vollen 30 Byte , auch bei nur einem Buchstaben ? Bin mir nicht mehr ganz sicher, aber ich meine dem war so ;-) Vielen Dank im vorraus für eure Hilfe! | ||
Antwort schreiben Antworten: |