PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Error in i2cmaster.S



X-917
20.06.2009, 12:39
Hallo zusammen,
ich hab hier ein ein Problem mit der I2c-lib von Peter Fleury.
Ich weiss, dass viele Leute Probleme damit haben, obwohl es eine gute lib ist. Ich habe nun sicher 1h30 gegoogelt und MEIN Problem nur einmal gefunden; auf mikrocontroller.net. Nur konnten sie das Problem dort auch nicht richtig lösen/erklären.

Was ich möchte:
-Software i2c auf Attiny45

Was ich gemacht habe:
-lib heruntergeladen
-i2cmaster.h und i2cmaster.S in den Ordner des AVR Studio projekts
-unter AVR Studio links als Source "i2cmaster.S angegeben
-in i2cmaster.S die Ports und Pin-nummern geändert
-im Code #include "i2cmaster.h" eingegeben

Problem:
Ich drücke "Build active Configuration" und es kommt eine Liste von Fehlern:
../i2cmaster.S: Assembler messages:
../i2cmaster.S:94: Error: constant value required
../i2cmaster.S:94: Error: number must be less than 32

das in jeder Zeile,in der die Begriffe SDA und SCL vorkommen... :-k

Nun kann ich kein Assembler und möchte nicht in der lib "herumprobieren" und wäre froh, wenn nmir jemand einen Tipp geben könnte. [-o<

Anbei ein Screenshot

MfG und danke im voraus

uwegw
20.06.2009, 14:07
-in i2cmaster.S die Ports und Pin-nummern geändert

Die Meldung reicht danach, dass du dabei irgendwas falsch gemacht hast. Was passiert, wenn du es mal mit den ursprünglichen Einstellungen kompilierst?

PicNick
20.06.2009, 14:25
Zeig doch her, was du in der Lib geändert hast.

hosti
20.06.2009, 16:42
Wie sind hier ja im C Forum, also nehme ich an du programmierst auch in C.
Was willst du mit der ASM-Lib?
Nimm doch die I2cmaster.c

uwegw
20.06.2009, 16:52
@hosti: das ist schon richtig so. Die Lib ist zwar für die Verwendung in C vorgesehen, die I2C-Routinen sind aber in ASM geschrieben, damit sie schneller laufen.

hosti
20.06.2009, 16:53
Gibts in der Fleurylib nicht eine Lib für ASM und eine für C?

uwegw
20.06.2009, 16:58
Die C-Version ist für TWI, also das Hardware-I2C-Modul in den mega-AVRs. Das hat der Tiny45 aber nicht, daher muss dort die Software-I2C-lib genutzt werden.

@X-917: pack mal das gesamte Projekt in nen zip und lad es hoch. Dann kann man den Fehler am schnellsten nachvollziehen...

hosti
20.06.2009, 17:07
Achso, das ist irgendwie untergegangen. Danke

X-917
20.06.2009, 17:31
omg! Ich habe es ein paar Mal hintereinander probiert und da hat es einen Bluescreen gegeben und der PC hat neu gebootet! Und jetzt läufts!!! :-s 8-[ Keine Syntaxfehler mehr! Ich konnt s downloaden.

Aber ich möcht euch gern noch den Code geben, vielleicht findet ihr noch den einen oder anderen Fehler, ich programmiere erst seit etwa 3Monaten C.

Und: danke!

X-917
20.06.2009, 17:34
Nicht beachten, das Attachment ist ZIP-Komprimiert in der nächsten Nachricht

X-917
20.06.2009, 17:38
ok, noch einmal. Mit ZIP
Ich nehm das nachher wieder raus. Müssen nicht alle einen Keylogger haben. :-$

X-917
20.06.2009, 18:29
Und zur Vervollständigung noch der Schaltplan.

*edit*: Oh, Mist! Ich muss wohl noch irgendwo 2 kleine 4.7K-Pullups hinquetschen, für das I2C-Interface.

uwegw
20.06.2009, 19:06
Auf kurzen Strecken (innerhalb einer Platine) reicht es teilweise, die internen Pullups des AVRs zu aktivieren.

X-917
20.06.2009, 19:13
ich hab jetzt trotzdem schnell 2 widerstände angelötet, hatten gerade noch Platz. Sicher ist sicher.
Was meinst du zum Code?