Forum: Mikrocontroller und Digitale Elektronik Interrupts beim LPC2138


von Fried V. (tich)


Angehängte Dateien:

Lesenswert?

Hallo,
ich bekomme einfach keinen TIMER0 Interrupt zustande. Nach der Lektüre 
diverser Beispiele, des UM und des Datenblattes habe ich den Code im 
Anhang geschrieben.
Was habe ich da übersehen? Der Int kommt nicht durch, die Startup Files 
sind die Originale von Rowley.
Besten Dank
Fried

von Andreas K. (a-k)


Lesenswert?

Werden die Interrupt-Flags des Prozessors im Startup-Code von Rowley 
bereits freigegeben?

von Andreas K. (a-k)


Lesenswert?

Wozu ist das gut, vor allem in dieser Reihenfolge?
1
  return( TRUE );
2
  VICVectAddr = (unsigned long) HandlerAddr;

von Andreas K. (a-k)


Lesenswert?

Funkioniert das?
1
void wait(unsigned long zeit) {
2
  while (zeit > 0) zeit--;
3
}
GCC neigt ja dazu, solchen Code komplett wegzuoptimieren.

von Fried V. (tich)


Lesenswert?

@Andreas Sorry, Rest aus altem Code

von Fried V. (tich)


Lesenswert?

@Andreas Ja, das tut, ist GCC v4.1.1
Aber die Optimierung des GCC kann manchmal schon zu bösen Überraschungen 
führen.

von Andreas K. (a-k)


Lesenswert?

Wenn du dem Timer nicht über den Weg traust: Bit in VICSoftInt setzen 
(und im Handler wieder löschen). Wenn dann immer noch nichts durchkommt, 
sind die Interrupts nicht freigegeben. Ich kenne Rowleys Startup Code 
nicht.

von Fried V. (tich)


Lesenswert?

Andreas Kaiser wrote:
> Werden die Interrupt-Flags des Prozessors im Startup-Code von Rowley
> bereits freigegeben?

Welche Flags meinst Du? Ich habe in den Startups so nichts gesehen?

von Andreas K. (a-k)


Lesenswert?

Fried Vissel wrote:

> Welche Flags meinst Du? Ich habe in den Startups so nichts gesehen?

Das "I" Flag im Statusregister.

von Fried V. (tich)


Lesenswert?

Andreas Kaiser wrote:
> Fried Vissel wrote:
>
>> Welche Flags meinst Du? Ich habe in den Startups so nichts gesehen?
>
> Das "I" Flag im Statusregister.

Vielen Dank, das war's!
Bei den vielen VIC Regs übersieht man halt einfach den Wald vor lauter 
Bäumen! Auch nach mehrmaligem intensiven Lesen der VIC Doku habe ich 
noch ordentlich Knoten im Hirn und die Vorteile dieses zumindest 
"unübersichtlichen" Konstrukts VIC sehe ich auch noch nicht ganz.

von Andreas K. (a-k)


Lesenswert?

Fried Vissel wrote:

> noch ordentlich Knoten im Hirn und die Vorteile dieses zumindest
> "unübersichtlichen" Konstrukts VIC sehe ich auch noch nicht ganz.

Musst du nicht verwenden. Wenn du ohne separate Vektoren gut leben 
kannst, dann hängt dir einen eigenen Handler in die Sprungleiste und 
sortiere die Quellen dort aus. PIC-Fans ist das sehr vertraut.

Vorteil des VIC ist halt die Vektorisierung und die Priorisierung von 
verschachtelten Interrupts. Letzteres ist allerdings noch ein bischen 
komplizierter, weil ARM diesen Aspekt bei Design der Architektur 
schlichtweg vergessen hatte.

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.