IAR schrieb:
> muss ich nun noch etwas im Header definieren, damit insbesondere auch
> meine main-funktion mitbekommt, dass es eine ISR gibt?
Genau so wie main() ausschließlich vom Reset-Vektor (über den
Reset-init-Code) aufgerufen wird, wird eine ISR ausschließlich über den
ihr zugeordneten Interruptvektor (und dessen ISR-init-Code) aufgerufen.
Das ist reine Hardware, der Aufruf erfolgt gänzlich asynchron zum Ablauf
des Hauptprogramms.
Im Normalfall (den IAR-Compiler für MSP430 kenne ich nicht) sollte
entsprechend kein Import der Definition der ISR in andere Modulen
notwendig sein. Der Eintrag der Einsprungadresse auf dem Interruptvektor
(macht der Compiler) reicht.
Das führt andersherum aber auch dazu, dass man
a) globale Variable, die sowohl in der ISR als auch im Hauptprogramm
verwendet werden, als "volatile" deklarieren muss, da der Compiler sonst
keinen Hinweis hat, dass sie sich zwischenzeitlich ändern können. Und
b) alle Zugriffe im Hauptprogramm auf solche Variable atomar gestalten
muss, damit die ISR nicht "dazwischenfährt".
Ok?
Grüße
Stefan