Interrupt handling C167

Gast #2728370
Lesenswert?

Hallo,

ich möchte mich erstmal bedanken bei allen die mir bis jetzt 
weitergeholfen haben - ist ein echt super forum. Ich bin ja gerade am 
Anfang mit dem uC Programmieren bzw. generell.
Ich hoffe ihr habt Geduld mit mir - ich lese momentan ziemlich viel über 
den C167 aber so ganz hab ich das alles noch nicht durchschaut.

Da hätte ich auch schon die nächste Frage, ein Interrupt ist ja dazu da, 
dass man von extern (außerhalb des C167) über einen Port z.B.: einen 
Tastendruck mitbekommt (was anderes hab ich jetzt noch nicht gelesen, wo 
ein interrupt herkommen kann). Wenn dieser Interrupt daherkommt, dann 
wird eine Methode in meinem C- Programm aufgerufen (also der Port wo der 
Taster angeschlossen ist und Interrupt- Methoden- Adresse müssen 
zusammenpassen).

In der Interrupt- Routine mache ich dann was ich machen will.
Ich hoff ich hab das bis jetzt hier richtig erklärt.

Meine Frage wäre jetzt, was bei einem Interrupt- Routinen aufruf derweil 
mit der Endlosschleife passiert. Wird da der Interrupt ausgeführt und 
dann gehts in der Endlosschleife wieder weiter?

Wäre dankbar für Antworten/Korrekturen - vielen Dank.

lg
Birgit
#2728387
Lesenswert?

Birgit Egger schrieb:
> Da hätte ich auch schon die nächste Frage, ein Interrupt ist ja dazu da,
> dass man von extern (außerhalb des C167) über einen Port z.B.: einen
> Tastendruck mitbekommt
Gibt noch etliche andere Quellen, die intern im Controller passieren 
können (Timer, UART, etc)

> Wenn dieser Interrupt daherkommt, dann
> wird eine Methode in meinem C- Programm aufgerufen (also der Port wo der
> Taster angeschlossen ist und Interrupt- Methoden- Adresse müssen
> zusammenpassen).
> In der Interrupt- Routine mache ich dann was ich machen will.
> Ich hoff ich hab das bis jetzt hier richtig erklärt.
Was du mit der Methode meinst weiß ich jetzt nicht genau. Aber wenn ein 
Interrupt-Quelle ein Interrupt auslöst wird die dazu passende Interrupt 
Routine aufgerufen, ja.


> Meine Frage wäre jetzt, was bei einem Interrupt- Routinen aufruf derweil
> mit der Endlosschleife passiert. Wird da der Interrupt ausgeführt und
> dann gehts in der Endlosschleife wieder weiter?
Richtig.
Siehe:
http://de.wikipedia.org/wiki/Interrupt
Gast #2730280
Lesenswert?

Vielen Dank Jörg,

vielen Dank für die Antwort.
Wenn ich jetzt eine Interrupt Service Routine habe:
1
void my_interrupt_service_routine(void) interrupt 0x23 {
2
   // mach was
3
}

wie kann ich das mappen dass ich die Adresse z.B.: auf Port 2.12 lege.
Muss ich das irgendwo mappen:

2.12 -> 0x23

?
Vielen Dank!!
lg
Birgit

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren