Interrupts bei HCS12 mit CodeWarrior initialisieren

Gast #349123
Lesenswert?

IDE: Metrowerks CodeWarrior 5.5.1272
Prozessor: MC9S12DG128 (HCS12 Motorola)
Programmiersprache: C

Das Problem:
Ich will die Interrupts von einem MC9S12DG128 nutzen, bekomme aber die
Interrupt nicht initialisiert.
Hab gemacht wie es in der Hilfe beschrieben ist:

Im main.c file hab ich dies als meine Interrupt Funktion eingefügt:

#pragma TRAP_PROC
void myISR(void)
{
  //ISR code
};
Im Linker File hab ich dies als letztes angefügt:
VECTOR ADDRESS 0x0000FFDE myISR
// Das sollte eigentlich der Timer Overflow Interrupt sein

Der Fehler:
"L1108: Initializing of Vector myISR failed because of over- or
underflow of vector value"

Was mach ich falsch ??? Ich bekomms einfach nicht hin vielleicht wisst
ihr mir Rat am besten mit Beispielcode.
Vielen Dank.... giny
Gast #349124
Lesenswert?

#pragma TRAP_PROC
void myISR(void)
{
  //ISR code
};

So wie ich #pragma vom IAR kenne, gibt man dahinter den
Interrupt-Vector-Namen an...
Das letzte ; kannst du dir auch sparen...
Beispielcode sollte sich beim Compiler finden lassen (Online-Hilfe?
Handbuch?)
Gast #349125
Lesenswert?

So gehts:

<c>

#pragma CODE_SEG NON_BANKED
void interrupt 16 TimerOverflow(void){
#pragma CODE_SEG DEFAULT

   PTP_PTP7  =! PTP_PTP7;  // LED toggeln
   TFLG2_TOF=1;            // Interruptflag löschen

};

</c>

Die Geschichte mit
<c>
VECTOR ADDRESS 0x0000FFDE myISR
</c>
brauchst du dann auch nicht

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