Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: eeprom.writelong - Was mache ich da falsch Kategorie: I²C-Bus (von Franz - 16.01.2004 14:19)
Als Antwort auf Re: eeprom.writelong - Was mache ich da falsch von André H. - 16.01.2004 13:56

Danke, werd ich gleich probieren!

mfg,
Franz

> Hallo Franz,
>
> Das liegt leider an den von mir so hei� geschätzten Compiler, an
> der Unterscheidung zwischen Integer und Long.
> Irgendwie war mir das damals nicht aufgefallen.
>
> Ersetzte im Modul eeprom.c2 folgende Zeilen in der Funktion readlong
> data = (i2c.read() shl 8) or i2c.read();
> data = (data shl 16) or (i2c.read() shl 8) or i2c.readlast();

> durch diese:
> data = i2c.read();
> data = (((((data shl 8) or i2c.read()) shl 8) or i2c.read()) shl 8) or i2c.readlast();

>
> Dann sollte es funzen.
> Das gleiche Problem gibt's nochmal bei readlongarray() .
> Ich werde in kürze ein Update von eeprom.c2 hochladen.
> Dann sind diese Bugs behoben.
>
> MfG André H.
>
> > Hallo,
> >
> > ich brauche da wiedereinmal Hilfe:
> >
> > ich schreibe z,B.: die Zahl 60 000 mit "eeprom.writelong(0,0,60000) in ein 24C65,
> > wenn ich dann das ganze mit "eeprom.readlong(0,0) auslese erhalte ich die Zahl: -25786...
> >
> > das ganze funktioniert aber mit 30 000 - warum also nicht mit 60000?
> >
> > Ich würde mich freuen, wenn mir da jemand weiterhelfen könnte...
> >
> > Danke schon mal im Voraus!
> > GruÃ?,
> >
> > Franz


    Antwort schreiben


Antworten: