Probleme mit I2C - lib

Gast #5806
Lesenswert?

Hallo!!
Ich möchte gerne Daten auf meinen seriellen EEPROM schreiben bzw. diese 
Daten auch lesen. Hierzu habe ich die Files von Peter Fleury 
heruntergeladen. Beim compilieren treten allerdings unendlich viele 
Fehler auf ( anscheinend im .S - File). Kann mir jemand weiterhelfen???
Vielen Dank - Peter
Gast #5809
Lesenswert?

Hallo Peter Fleury!!
Ja, ich habe deine neueste Version heruntergeladen. Ich verwende * 
binutils - 20020614
* avrgcc 3.2 - 20020610
* avr-libc - 20020612
(von AVRFreaks)

Die Ausgabe vom Compiler sieht wie folgt aus:

i2cmaster.S:Assembler messages:
i2cmaster.S:80 Error: number must be less than 32
i2cmaster.S:81 Error: number must be less than 32
i2cmaster.S:82 Error: number must be less than 32
i2cmaster.S:83 Error: number must be less than 32
i2cmaster.S:99 Error: number must be less than 32
i2cmaster.S:118 Error: number must be less than 32
i2cmaster.S:120 Error: number must be less than 32
i2cmaster.S:122 Error: number must be less than 32
... und so weiter

Der Fehler tritt überall dort auf, wo entweder SDA oder SCL vorkommt.
Muss ich irgendetwas im header-file ider sonst wo ändern??

vielen Dank im Voraus!
Peter
Gast #5810
Lesenswert?

Ich verwende immer noch die avr-gcc 3.0 Version von AVRfreaks.
Meine Assembler Source verwendet C-style defines, deshalb muss der 
Assembler mit dem C-Preprocessor aufgerufen werden mittels
avr-gcc -x assembler-with-cpp

Gruss
Peter
Gast #5813
Lesenswert?

Hallo Peter!

Ich habe AVR-GCC V3.4.3

Hier meckert er bereits bei "#include <io-avr.h>".
Ändere ich diese zeile in "#include <avr/io.h>" ab, und füge die
"#define __SFR_OFFSET 0" davor ein, bringt er trotzdem noch diesen
Fehler (i2cmaster.S:122 Error: number must be less than 32)! :-(

Was könnte ich da noch ändern?

Danke!
Gast #5814
Lesenswert?

Hallo!

Habe den Fehler eingrenzen können!

Im i2cmaster.S werden die Pins folgendermassen definiert:
---------------
#define SDA     0
#define SCL  1
#define SDA_PORT        PORTD
#define SCL_PORT        PORTD
---------------

Das EEPROM hängt bei mir jedoch an Port G!
Als PORTD lässt sich der Code compilieren, aber nicht als PORTG! :-(

Wie muß ich was ändern, damit es funktioniert?

Bitte gebt mir einen Tipp! - Danke! :-)
Gast #5816
Lesenswert?

:-/

Hab ich grade auch in einem anderen Thread gefunden.. (die "neue"
Suche per Google ist bescheiden, die Originalsuche war viel
übersichtlicher)

Leider kann ich nicht mehr aus. EEPROM ist fix an Pin 0 und 1 von Port
G.

Kennst du evtl. eine C-Lib, die nicht die Hardware-TWI verwendet? Ist
I2C eigendlich zeitkritisch?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren