Julian W. schrieb:
> Waaahhhh... ich hab es....
>
> es fehlte einfach nur
>
1 | > #include <avr/interrupt.h>
|
2 | >
|
>
> in der uart.h -.- Naja da war ich wohl sehr Betriebsbilnd. Doof das der
> Compiler nicht meckert.
Hat er doch :-)
Für den Compiler war das hier
1 | ISR( UART_RXC_vect )
|
2 | {
|
3 | }
|
eine ganz normale C-Funktion.
OK. Der Compiler musste seinen Freiraum komplett ausnutzen, um daraus
etwas Sinnvolles zu machen - in dem er alle unbekannten Datentypen als
int annahm, aber ... das darf er.
Für ihn stand da
1 | int ISR( int UART_RXC_vect )
|
2 | {
|
3 | ...
|
4 | }
|
und: diese Funktion hat keinen return, obwohl sie eine int-Funktion ist.
UNd das hat er dir freundlicherweise mitgeteilt.
Erst durch den #include wurde dann aus "ISR" etwas ganz anders.