www.mikrocontroller.net

Forum: Compiler & IDEs Probleme mit I2C - lib


Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Fleury (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Peter,

Hast du sicher meine neueste Version von http://jump.tp/fleury
heruntergeladen ?
Welche AVR-GCC Version verwendest du ?

Gruss Peter

Autor: Peter Fleury (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry Tipfehler,. richtige URL ist: http://jump.to/fleury

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Fleury (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Fleury (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In der AVR-GCC Version 3.2 hat sich offenbar die Syntax der include 
Files geändert.
Füge mal folgende Zeile in i2cmaster.S

#define __SFR_OFFSET 0

vor "#include <io-avr.h>

und compiliere es neu.

Gruss  Peter

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für deine Hilfe!!!

Autor: Der Techniker (_techniker_)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Der Techniker (_techniker_)
Datum:

Bewertung
0 lesenswert
nicht 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! :-)

Autor: Fritz Ganter (fritzg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PORTG ist für sbi usw. nicht erreichbar, verwende wenn möglich die
anderen Ports.
Sonst musst die in/out durch LD und ST Befehle ersetzen.

Autor: Der Techniker (_techniker_)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Fritz Ganter (fritzg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Irgendwo im Forum gibt es ein Makro, das die verschiedenen I/O Bereiche
berücksichtigt. Ich glaub Hagen verwendet das, viel Spass beim suchen
:-)

Autor: Peter Fleury (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bitte meine Original Software von meiner Homepage verwenden:
http://homepage.sunrise.ch/mysunrise/peterfleury/a...

In meiner Source gibt kein #include <ioavr.h> !

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.