Forum: Mikrocontroller und Digitale Elektronik Grundlagen zum LPC2294 Interrupt


von Michael Gerkens (Gast)


Lesenswert?

Hallo zusammen,
ich arbeite zum ersten mal mit einem ARM7 (LPC2294) und teste mich nun 
heran. Als IDE benutze ich CrossWorks.

Meine Frage:

Ich habe ein Test-Programm geschrieben, welches den Timer1 Interrupt 
benutzt. Die Interrupts sind freigeschaltet, das Flag kommt, aber der 
Controller springt im startup-file immer zum default irq-handler.
Was muß ich wo eintragen, damit der Sprung in den Interrupt 
funktioniert?

Vielen Dank

Michi

von A.K. (Gast)


Lesenswert?

Den Interrupt-Controller entsprechend programmieren.

von Michael Gerkens (Gast)


Lesenswert?

Hallo A. K.
sicherlich hast du recht und ich bin nicht würdig.

Ein kleines Beispiel wäre schon schön.

Michi

von A.K. (Gast)


Lesenswert?

Meine Antwort war so präzise wie deine Frage. Soll heissen: Ich habe ins 
Blaue geraten, dass du vielleicht den VIC nicht programmiert hast. Ins 
Blaue deshalb, weil du kein bischen deines Codes preisgegeben hast. Also 
spar dir den Zynismus bitte.

Mit einem Beispiel für Crossworks kann ich nicht dienen, bin aber 
sicher, dass sich dort entsprechende Beispiele finden lassen.

von Martin Thomas (Gast)


Lesenswert?

Da der default-handler angesprungen wird, scheinen die grundlegenenden 
Einstellungen korrekt (Sprungaddresse im Excpetions-Vector), Aktivieren 
der INT-Excpetions und des Timer-Interrupts. Scheint eher, dass die 
Adresse des Interrupt-Handlers im VIC nicht inititalisiert. Könnte 
allerdings auch ein andere Fehler in der Initialisierierung sein. 
Detaillierte Analyse ohne Vorzeigen des Quellcodes kaum möglich.

Vielleicht ist mein Beispiel hilfreich: 
http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/index.html#lpcio_irq

Code sollte relativ leicht an die Crossworks-Umgebung und den LPC2294 
anpassbar sein. Im Hintergrund arbeiten die gleichen Tools ("GNU arm-elf 
Toolchain") wie die bei der von mir genutzten WinARM und die VIC-Zelle 
ist bei LPC2106 und LPC2294 meines Wissens identisch (besitze selbst 
kein Board mit LPC2294).

Martin Thomas

von Michael Gerkens (Gast)


Lesenswert?

Martin, vielen Dank für Deine Mühen, aber mein Code war soweit in 
Ordnung, ich hatte lediglich vergessen in der Preprozessor Anweisung 
VECTORED_IRQ_INTERRUPTS einzutragen.

Interrupts Funktionieren.

CU

Michi

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.