Forum: Mikrocontroller und Digitale Elektronik MSP Interruptroutine


von Gerhard (Gast)


Lesenswert?

Ich bin ziemlich neu auf diesem Gebiet, aber habe dafür schon mal 
herausgefunden wie I/O Interrupts ausgelöst werden. Was ich aber nicht 
im user guide gefunden habe, ist die Abarbeitung dieser Interrupt, aslo 
Infos über die ISR.
Mir geht es darum auf ein Interupt am P2.1 I/O Pin reagieren zu können. 
Wie gesagt ich weiss wie ich ein Interrupt auslösen kann, nur eben nicht 
wie ich das verarbeiten kann... :-)
Wie würde denn jetzt eine ISR zu diesem Interrupt ausschauen (C-Code)? 
Wo finde ich den überhaupt eine Auflistung der verschiedenen 
Interruptvektoren?

von Christian R. (supachris)


Lesenswert?

Wenn du uns verrätst, welchenm Kompiler du einsetzt, können wir dir auch 
sagen, wie die Deklaration für die ISR aussehen muss. Die 
Interrupt-Vektoren stehn im Datenblatt des Prozessors, mit 
entsprechender Priorität. Außerdem in einem Header-File, was der 
Kompiler mitbringt.

Für IAR und GCC geeignet ist folgende Deklaration:
1
#ifdef __IAR_SYSTEMS_ICC
2
#pragma vector=PORT2_VECTOR        /* IAR */
3
__interrupt void IntServiceRoutine(void){
4
#else              /* GCC */
5
interrupt (PORT2_VECTOR) wakeup IntServiceRoutine(void)
6
{
7
#endif
8
9
...ISR...
10
11
}

von szimmi (Gast)


Angehängte Dateien:

Lesenswert?

Hiho,
also im angehängten Beispiel siehst Du, wie man die ISR einbindet. Die 
Vectoren stehen nicht im User's Guide. Sie stehen separat in den 
Datasheets zu den einzelnen Derivate, z.B. :
http://focus.ti.com/lit/ds/symlink/msp430f2012.pdf (Seite 13)

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.