Forum: Mikrocontroller und Digitale Elektronik ISR in Headerdatei deklarieren?


von Alex (Gast)


Lesenswert?

Hi,

muss ich eine ISR, welche in in einer C-Datei verwende auch in der 
Header-Datei deklarieren, wenn ich nur die Header-Datei einbinde?

von Ahem (Gast)


Lesenswert?

>muss ich eine ISR, welche in in einer C-Datei verwende auch in der
>Header-Datei deklarieren, wenn ich nur die Header-Datei einbinde?

Kannst Du das bitte nochmal anders formulieren?

ISR (Interrupt Service Routinen) werden normalerweise nicht in C-Dateien 
"verwendet". Was meinst Du damit?

Da ISR normalerweise nicht durch andere Funktionen aufgerufen werden, 
auch nicht von Funktionen aus anderen Modulen, so wird keine 
Header-Datei mit deren Deklaration benötigt. Wozu willst Du eine 
Deklaration? Nach Deiner Frage weil Du sie in einer C-Datei "verwenden" 
willst? Wie willst Du sie "verwenden"?

Eine Header-Datei wird nicht "eingebunden". Der Linker kann damit 
garnichts anfangen. Eine Header-Datei dient dazu Deklarationen, 
insbesondere Funktions- aber auch Daten- und Typdeklarationen, meist 
Modulweise, zentral, in einer Datei zu halten und zu verteilen. Sie 
werden "eingefügt", was mit dem Präprozessor-Befehl "#include" 
geschieht.
Wozu und wie willst Du eine Header-Datei "einbinden"?

von Oliver (Gast)


Lesenswert?

>muss ich eine ISR, welche in in einer C-Datei verwende auch in der
>Header-Datei deklarieren, wenn ich nur die Header-Datei einbinde?

Deklarieren brauchst du ISR's nicht, daß macht <avr/interrupt.h> für 
dich.

Den Rest deiner Frage habe ich genausowenig verstanden, wie Ahem.

Oliver

von Alex (Gast)


Lesenswert?

Ok,

also ich habe eine Datei main.c. In der ist die main()-Funktion, also 
das Hauptprogramm.

Wenn ich jetzt noch zwei weitere Dateien, nämlich "meinUART.c" und 
"meinUART.h" verwende, und in der C-Datei die ISR für UART verwende, 
aber in der main.c nur die meinUART.h einbinde, wird die ISR dann auch 
aufgerufen?

von ... .. (docean) Benutzerseite


Lesenswert?

ja

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
Noch kein Account? Hier anmelden.