Forum: Mikrocontroller und Digitale Elektronik LPC 2148


von Thomas (Gast)


Lesenswert?

Hallo.Sitze jetzt hier schon set stunden und komme nicht mehr weiter.
Möchte eigentlich nur beim Arm LPC2148 den timer0 benutzen und einen 
Interrupt auslösen.Das haut aber nicht hin,da mein Programm nicht in die 
S.Routine spring.Vielleicht kann mir da jemand helfen.
Hier sind noch die einstellungen:
void init_timer(void)
{
  T0PR = 2;
  T0MR0 = 1900;            //Match Register
  T0MCR = 3;                    //Interrupt and Reset on MR0
  T0TCR = 1;                         //TIMER0 enable
  VICVectAddr0 = (unsigned long)tc0;
  VICVectCntl0 = 0x20 | 4;
  VICIntEnable = 0x00000010;       //enable Timer0 interrup
}


void tc0(void) __irq
{
ausgabe();
T0IR=1;
VICVectAddr =0;
}

von ARM-Fan (Gast)


Lesenswert?

Hast du im startup-file den VIC-Vector beim IRQ eingetragen?

Vectors         LDR     PC, Reset_Addr
                LDR     PC, Undef_Addr
                LDR     PC, SWI_Addr
                LDR     PC, PAbt_Addr
                LDR     PC, DAbt_Addr
                NOP                            ; Reserved Vector
;               LDR     PC, IRQ_Addr
                LDR     PC, [PC, #-0x0FF0]     ; Vector from VicVectAddr
                LDR     PC, FIQ_Addr

von let (Gast)


Lesenswert?

In dem Codeausschnitt kann ich keinen Fehler entdecken.

Sind Interrupts global aktiviert (I-Bit im CPSR)?
Benutzt du Thumb-Code? Der GCC erzeugt dann falschen Code
für die Interrupt-Handler.

Für weitergehende Analysen solltest du ein compilierbaren
Code anhängen. Sonst artet das nur in ein Ratespiel aus - sofern
überhaupt noch jemand antwortet.


 - Michael

von A.K. (Gast)


Lesenswert?

Vorsichtshalber sollte man vorher den Counter auf 0 setzen. Oder besser 
gleich den ganzen Timer zurücksetzen.

von Thomas (Gast)


Lesenswert?

HI Danke!die startup datei hatte gefehlt!Sowas peinliches
Thx

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.