Forum: Mikrocontroller und Digitale Elektronik verständnisfrage


von Pierre (Gast)


Lesenswert?

Hallo
ich habe einen Code ,der  für  msp430x12x geschrieben ist .und ich will 
den in msp430g2252 (Launchpad) umwandelen .leider ein  teil  macht mich 
irre .
1
#if __VER__ < 200
2
    interrupt [TIMERA0_VECTOR] void TimerA_ISR(void)    
3
#else
4
    #pragma vector=TIMERA0_VECTOR
5
    __interrupt void TimerA_ISR(void)
6
#endif

 kann  mir  jemand das  hier
1
 interrupt [TIMERA0_VECTOR] void TimerA_ISR(void)
  erklären
habe  so was noch nie ( oder noch nicht) gesehen .
danke  im voraus .

von Ted K. (ted1405)


Lesenswert?

Hallo Pierre,

Pierre schrieb:
>
1
#if __VER__ < 200
2
>     interrupt [TIMERA0_VECTOR] void TimerA_ISR(void)
3
> #else
4
>     #pragma vector=TIMERA0_VECTOR
5
>     __interrupt void TimerA_ISR(void)
6
> #endif
>
>  kann  mir  jemand das  hier
1
 interrupt [TIMERA0_VECTOR] void
2
> TimerA_ISR(void)
  erklären


In Anlehnung ans AVC-C würde ich schätzen, dass es sich dabei einfach um 
die Einleitung eines Interrupthandlers für TIMERA0 handelt. Sprich: die 
darauffolgende Subroutine wird immer dann ausgeführt, wenn TIMERA0 einen 
Interrupt auslöst.

Das Attribut sorgt dafür, dass der Compiler dann an die entsprechende 
Stelle der Interrupttabelle ein Vektor auf diese Routine hinterlegt.

von B. L. (b8limer)


Lesenswert?

Ganz richtig, das ist die Einleitung der ISR (Interrupt Service Routine)

Pierre schrieb:

> #if _VER_ < 200
>     interrupt [TIMERA0_VECTOR] void TimerA_ISR(void)
> #else
>     #pragma vector=TIMERA0_VECTOR
>     __interrupt void TimerA_ISR(void)
> #endif

Das scheint irgendwas mit einer Version zu tun zu haben: _VER_ < 200

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.