Ich habe soeben die neue Version von WinAvr installiert und ein bis dahin problemlos laufendes Programm compiliert: #include <avr/interrupt.h> #include <avr/signal.h> SIGNAL(SIG_OUTPUT_COMPARE1A) { //... } Ergebnis: #warning "This header file is obsolete. Use <avr/interrupt.h>." Warnung: `_Z11__vector_12v' appears to be a misspelled signal handler Wenn ich '#include <avr/signal.h>' auskommentiere, erhalte ich weiterhin die zweite Warnung, die erste fällt logischer weise weg, da sie von besagtem Header-File generiert wird. In beiden Fällen (mit und ohne '#include <avr/signal.h>') wird ohne Fehlermeldungen compiliert und gelinkt. Das hex-File läßt sich laden und das Programm läuft erwartungsgemäß. Weiß jemand, was mir diese Warnungen (vor allem die zweite) sagen wollen und wie man sie verhindert? (Indem man den Ansrüchen des Compilers gerecht wird, nicht indem man einfach irgendwelche Warnungen unterdrückt! ;) Gruß, Michael
Hängt mit dem geänderten Interrupt zusammen, im Manual nachlesen, die Interrupt-Aufrufe haben sich geändert.
Hab mal getestet. Bei mir gehts, allerdings ist dein Signal im .lst File bei mir __vector_12, wo kommt bei dir das _Z11 und hinten das v her? Hab für den Mega32 übersetzt, welchen Controller hast du?
Bitte deklariere deine ISRs mal in einer C-Datei statt in einer C++-Datei. Im Prinzip müsste das auch irgendwie mit extern "C" ... gehen. Kannst gern einen Bugreport für avr-libc aufmachen. _Z11__vector_12v ist weiter nichts als der C++-vermanschte Name für __vector_12().
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.