usart mit interrupt an Atmega8 avr-gcc

Gast #811361
Lesenswert?

Hallo
ich wollte das Programm USART mit Interrupt von dieser Hompage testen 
damit ich es dann für meine Zwecke umschreiben und verwenden kann.

http://www.mikrocontroller.net/articles/Interrupt


bekomme aber immter folgende Fehlermeldung:

Build started 14.3.2008 at 00:51:15
avr-gcc.exe  -mmcu=atmega8 -Wall -gdwarf-2 -DF_CPU=18432000UL -Os 
-fsigned-char -MD -MP -MT main.o -MF dep/main.o.d  -c  ../main.c
../main.c: In function 'main':
../main.c:139: warning: passing argument 1 of 'get_string' makes integer 
from pointer without a cast
../main.c:148: warning: passing argument 1 of 'put_string' makes integer 
from pointer without a cast
../main.c:198: error: static declaration of '__vector_11' follows 
non-static declaration
../main.c:198: error: previous declaration of '__vector_11' was here
../main.c:229: error: static declaration of '__vector_12' follows 
non-static declaration
../main.c:229: error: previous declaration of '__vector_12' was here
../main.c:265: error: expected declaration or statement at end of input


kann mir da vielleicht jemand helfen

Danke
Werner
Angehängte Dateien:
#811373
Lesenswert?

> ../Forum9.c:198: error: static declaration of '__vector_11' follows non-static 
declaration

Der ist gemein, weil es ein Folgefehler ist.

Jetzt siehst du dir mal deine main() Funktion durch
und suchst dir für jede öffnede { die zugehörige schliessende }
Wenn du das tust, dann wirst du feststellen, dass mindestens
eine schliessende } fehlt.
Die noch vorhandene Code-Einrückung wird dich leiten.

PS: Das nächste mal kompilierst du ein kopiertes Programm
zuerst einmal um festzustellen, ob das klappt. Dann machst
du immer nur kleine Modifikationen und wirfst den Compiler
zwischendurch immer wieder mal an um zu sehen ob du bei
deinen Modifikationen bereits Fehler eingebaut hast oder
nicht.
Auf die Art stehst du nicht nach einer Editiersitzung mit
Fehlern da, die du nicht zuordnen kannst und von denen du
nicht weißt, ob sie nicht auch schon im Originalcode enthalten
waren (Deine waren es nicht. Die Fehler sind alle von dir
hausgemacht).
Gast #811567
Lesenswert?

Vielen Dank
man sollte wenn man müde ist (und sowieso nichts mehr sieht) schlafen 
gehen und am nächsten Tag weitermachen.
Ich hab zwar nach einem fehlenden Strichpunkt gesucht, weil da auch so 
eine komische Fehlermeldung kommt.


Eine Frage hab ich noch, was muss man machen damit man auch Daten vom 
Atmega zum PC senden kann.
#811610
Lesenswert?

Im Grunde musst du nichts Spezielles machen.
Das funktioniert genauso, wie wenn ein menschlicher
Benutzer vor einem Terminal die Werte mitliest.

Auf dem PC brauchst du natürlich ein Programm, welches
die Daten entgegennimmt und sie dann wahlweise auswertet,
anzeigt oder abspeichert.

Aber auf µC ist da nichts spezielles. Einfach senden, so
wie man über eine serielle Schnittstelle eben versendet.
Dazu gibt es eine schöne Abhandlung im AVR-gcc Tutorial

Das einzige worauf du mglw. aufpassen musst ist, daß du
in die Sendung ein paar 'Hilfszeichen' einbaust, die dem
PC-Programm helfen den Datenwust auseinanderzupfriemeln
und ihm sagen, welcher Wert was darstellt.
Gast #811953
Lesenswert?

Hätte geglaubt man muss diesen Interrupt "USART_TXC_vect" auch noch 
ausprogrammieren, aber es funkt ja eh.

Habs dummerweise vorher nicht probiert.

Die Library ist aber auch eine sehr gute Methode, vielen Dank

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