Re: Modul eeprom.c2 Kategorie: I²C-Bus (von Rolf - 18.07.2003 0:43) | |
Als Antwort auf Re: Modul eeprom.c2 von Rolf - 15.07.2003 22:48
| |
Hallo Andrè ich hab mir zwischenzeitlich noch mal die if ((addr+i) % Pagewrite)==0 and i angesehen... die tut es tatsächlich so auch wenn es etwas "komisch" aussieht. Betreffend dem Fehler beim Schreiben über Pagegrenzen müste man für writeint dann schreiben: function writeint(byte eepromaddr,int addr, int data) returns int { if write(eepromaddr,addr) { i2c.write(data shr 8); addr=addr+1; if (addr % Pagewrite)== 0 { i2c.stop(); if not write(eepromaddr,addr) return 0; } i2c.write(data); i2c.stop(); return -1; } return 0; } Die Prüfung auf den nullten Pagebreak (and i) kann ja entfallen da addr+1 nicht 0 sein kann. Schreibe ich bei Pagebreak=64 ein int auf 63, wird für 63+1 ein Pagebreak ausgelöst. Schreibe ich es auf 64, dann gilt für addr+1 = 65 und es kommt kein Pagebreak. Das Gleiche mu� dann auch bei writelong rein, nur 3 x. Gru� Rolf | |
Antwort schreiben Antworten: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |