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
#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?)
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
@ABu Danke, funktioiniert wunderbar so. Vielen Dank :-) Gruß giny
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.