mikrocontroller.net

Forum: Compiler & IDEs Kompilierungsfehler bei SPI und Attiny2313


Autor: Alexander (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
zur Zeit versuche ich ein paar Sache mit meinem Attiny2313 und habe mir 
nun das Beispiel von Atmel für den SPI angeschaut und es in mein 
Programm zur Ansteuerung des TLC5940 eingebaut. Leider klappt das ganze 
nicht so.

Ich erhalte als Fehlermeldung folgendes:
 Invoking: AVR Compiler
avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=attiny2313 -DF_CPU=1000000UL -MMD -MP -MF"tlc5940.d" -MT"tlc5940.d" -c -o "tlc5940.o" "../tlc5940.c"
../tlc5940.c: In Funktion »init_tlc_con«:
../tlc5940.c:23:2: Fehler: »SPCR« nicht deklariert (erste Benutzung in dieser Funktion)
../tlc5940.c:23:2: Anmerkung: jeder nicht deklarierte Bezeichner wird nur einmal für jede Funktion, in der er vorkommt, gemeldet
../tlc5940.c:23:15: Fehler: »SPE« nicht deklariert (erste Benutzung in dieser Funktion)
../tlc5940.c:23:28: Fehler: »MSTR« nicht deklariert (erste Benutzung in dieser Funktion)
../tlc5940.c:23:42: Fehler: »SPR0« nicht deklariert (erste Benutzung in dieser Funktion)
../tlc5940.c: In Funktion »send_to_device«:
../tlc5940.c:48:3: Fehler: »SPDR« nicht deklariert (erste Benutzung in dieser Funktion)
../tlc5940.c:50:12: Fehler: »SPSR« nicht deklariert (erste Benutzung in dieser Funktion)
../tlc5940.c:50:25: Fehler: »SPIF« nicht deklariert (erste Benutzung in dieser Funktion)
make: *** [tlc5940.o] Error 1 

Mit #include habe ich die avr/io.h und die util/delay.h eingebunden. Ich 
habe jetzt schon gegoogled und auch hier gesucht und habe immer dieses 
Beispiel gefunden, indem SPCR und Co. genutzt worden sind.

Habe ich irgendwas vergessen mit #include einzufügen (in den Beispielen 
die ich bisher gesehen habe (allerdings zu ATmega8/16), war auch nur 
avr/io.h eingebunden)?

Autor: Troll (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Deine Sourcen fehlen

Autor: Alexander (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Anbei die Sourcen, die hatte ich ganz vergessen.

Autor: Coder (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bin kein AVR Experte aber hat der Attiny eine SPI-Schnittstelle?

Autor: Alexander (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja hat er, jedenfalls gehe ich von aus, wenn es ein Assembler Beispiel 
im Datenblatt gibt. Explizit auf der ersten Seite wie beim Atmega48-20PU 
wird der allerdings nicht aufgeführt.

Link zum Datenblatt: http://www.atmel.com/images/doc2543.pdf ab Seite139

Autor: Alexander (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Coder,
ich hab meinen Code gerade mal für einen Atmega48 (den hab ich hier auch 
noch rumliegen) kompiliert. Wie es scheint hast du Recht, der Attiny 
besitzt kein SPI.
Vielen Dank für die Hilfe

Autor: Coder (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann verifiziere das :-) Wenn ich Dich schon so Frage hast einen Wink 
mit dem Zaunenpfahl bekommen....schau dir Die Nomenklatur der Register 
mal an.

Autor: Coder (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stichwort USI. Im übrigen wenn der ATtiny eine ISP-Schnittstelle hat er 
eine SPI-Schnittstelle. Nur kann Du diese nicht programmieren. 
Klugsch***er-Modus aus...

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alexander schrieb:
> Link zum Datenblatt: http://www.atmel.com/images/doc2543.pdf ab Seite139

Datenblätter verlinken bringt nix, Datenblätter lesen dagegen viel.

Dein Tiny hat kein SPI, und damit auch keins der Register aus deinem 
o.a. Code.

Oliver

Autor: temp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oliver schrieb:
> Datenblätter verlinken bringt nix, Datenblätter lesen dagegen viel.

Richtig. Und wenn man das macht, dann stellt man fest, dass

Oliver schrieb:
> Dein Tiny hat kein SPI

totaler Blödsinn ist, natürlich kann der 2313 SPI.

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
temp schrieb:
> totaler Blödsinn ist, natürlich kann der 2313 SPI.

Natürlich kann der SPI, mit der USI. Und mit 3 Minuten Datenblatt lesen 
hätte der TO das auch rausgefunden...

Oliver

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.