Meine Kristallkugel sagt, daß du avr-gcc verwendest.
Das Codebeispiel wird korrekt übersetzt:
1 | #include <avr/io.h>
|
2 | #include <avr/interrupt.h>
|
3 |
|
4 | extern void SendUart (const char*);
|
5 |
|
6 | void sayHello()
|
7 | {
|
8 | SendUart ("Bonjour");
|
9 | }
|
10 |
|
11 | ISR (INT0_vect)
|
12 | {
|
13 | sayHello();
|
14 | }
|
Das "volatile" erzeut eine zusätzliche Warnung, ansonsten ist der Code
damit gleich.
Dein Problem ist vermutlich
* Ein Stacküberlauf und Programmabsturz
* Fehler in SendUart
* SendUart geht davon aus, daß IRQs aktiv sind
* UART ist nicht korrekt initialisiert