mikrocontroller.net

Forum: Compiler & IDEs Compilerfehler bei ProgrammersNotepad


Autor: Marcel (Gast)
Datum:

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

Autor: Johannes M. (johnny-m)
Datum:

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

Autor: Rolf Magnus (Gast)
Datum:

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

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Der dazugehörige Code: void timer0() interrupt 1 using 2

Das sieht mir nach Code für einen 8051 aus.
Damit kann der WinAVR nichts anfangen.

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.