Compilerfehler bei ProgrammersNotepad

Gast #764280
Lesenswert?

Hi,
möchte gerade auf ProgrammersNotepad umsteigen, da mein alter Compiler 
in seiner Freewareversion ab einer bestimmten Dateigröße nichtmehr 
arbeitet.

Als Makefile hab ich einfach die aus dem Sampleordner von WinAVR 
kopiert. Da ich in erster Linie mein Programm compilieren will, hab ich 
die Makefile so gelassen, ohne den Controllertyp etc. einzustellen.

Wie zu erwarten funktioniert das natürlich nicht so reibungslos, da das 
ganze mir Fehler ausspuckt, die ich mir nicht erklären und 
dementsprechend auch nicht beheben kann.

Aber fange ich einfach mal:

main.c:37: error: expected declaration specifiers before 'interrupt'

Der dazugehörige Code: void timer0() interrupt 1 using 2
Wird wohl daran liegen, das im PN ein Interruptfunktion anders 
geschrieben wird. Die Frage ist wie.

main.c:54: error: expected '=', ',', ';', 'asm' or '__attribute__' 
before '{' token
main.c:66: error: expected '=', ',', ';', 'asm' or '__attribute__' 
before '{' token
main.c:82: error: expected '=', ',', ';', 'asm' or '__attribute__' 
before '{' token

Hier der dazugehörige Code. Es ist egal in der Funktion steht.

void Textablauf(void)
{
...
}

Ähnlich sehen die beiden anderen Funktionen, auf die sich die 
Fehlermeldungen beziehen, aus.


main.c:101: error: expected '{' at end of input

Was er da vermisst weiß ich auch nicht. Verweist auf die letze Zeile im 
Code, die mit einem "}" das Hauptprogramm abschließt.

Hoffe man kann mir helfen^^"
#764341
Lesenswert?

Du müsstest Dir mal in der libc-Doku oder im AVR-GCC-Tutorial 
anschauen, wie in WINAVR-C Interrupt Handler definiert werden. 
Jedenfalls nicht so, wie Du es anscheinend in Deinem Programm 
geschrieben hast. Folglich kennt der Compiler die Syntax nicht und rotzt 
Fehlermeldungen raus.

Je nachdem, welchen "alten Compiler" Du da hattest, wird es vermutlich 
noch ein paar andere Fehlermeldungen geben.

> main.c:101: error: expected '{' at end of input

> Was er da vermisst weiß ich auch nicht. Verweist auf die letze Zeile im
> Code, die mit einem "}" das Hauptprogramm abschließt.
Das dürfte ein Folgefehler sein. Beseitige erstmal die Fehler mit der 
Interrupt-Handler-Deklaration. Wenn der Fehler dann immer noch da ist, 
ist noch an anderer Stelle der Wurm drin.
Gast #764344
Lesenswert?

> möchte gerade auf ProgrammersNotepad umsteigen, da mein alter Compiler
> in seiner Freewareversion ab einer bestimmten Dateigröße nichtmehr
> arbeitet.

Programmer's Notepad ist kein Compiler, sondern ein Editor.

> main.c:37: error: expected declaration specifiers before 'interrupt'
>
> Der dazugehörige Code: void timer0() interrupt 1 using 2
> Wird wohl daran liegen, das im PN ein Interruptfunktion anders
> geschrieben wird. Die Frage ist wie.

Mit PN hat das nichts zu tun, sondern mit dem verwendeten Compiler. 
Falls du GCC verwendest (immerhin sind wir im GCC-Forum), empfielt es 
sich, die Doku der avr-libc zu lesen. Da steht drin, wie man 
Interrupt-Routinen definiert.

> Hoffe man kann mir helfen^^"

Kaum. Die drei Zeilen Code, die du gepostet hat, enthalten keinen 
Fehler, der die Meldungen erklären würde. Eine völlig ins Blaue 
geschossene Idee wäre, daß du vielleicht irgendwo vorher mal eine 
Klammer vergessen hast und das ein Folgefehler ist.

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