Forum: Mikrocontroller und Digitale Elektronik LPC2368 Vectored Interrupts Controller anders?


von Christian J. (elektroniker1968)


Lesenswert?

Hallo,

kann es sein, dass die den VIC von LPC21xx nach LPC23xx umgestrickt 
haben? Bisher konnte man sich den Slot für seine ISR doch frei auswählen 
und im VICVectCntrl Register festlegen, welcher Slot welchem IRQ 
zugeordnet wird. Ist das jetzt so zu verstehen, dass jeder Slot genau 
einer IRQ Quelle entspricht, also zB Slot 4 wird Timer 0 (Nr.4) 
zugeordnet? Das VicVectCntrol Register vermisse ich beim LPC23xx auch 
:-( Kein wunder, dass mein alter Code nicht mehr läuft.

Weiss jemand, ob der GNU CC die Register bei Einsprung in eine ISR 
automatisch auf den Stack rettet oder ob man das manuell tun muss?

Gruss,
Christian

von Robert T. (robertteufel)


Lesenswert?

Hallo Christian,

nur zu Deiner Bestaetigung, der VIC auf dem 23xx/24xx ist ander als der 
auf den LPC21xx/22xx. Die Anzahl der verfuegbaren Interrupts beim 
urspruenglichen VIC war lediglich 16, alle schon benuetzt. Jetzt hiess 
es entweder mehrere Quellen auf so ziemlich jeden Vector oder einen 
erweiterten VIC. Mehrere Quellen auf die Vectoren waere der Tod 
jeglicher schnellen Interrupt Antwortzeit gewesen, deshalb und aus ein 
paar anderen Gruenden ist der neue erweiterete VIC drin. Kaskadierte 
VICs waere zwar gegangen aber hatte sehr grosse Nachteile.

Gruss, Robert

von Christian J. (elektroniker1968)


Lesenswert?

Hallo Robert,

Du scheinst Dich ja gut damit ausszukennen. Ich bin allerdings auch 
schon weiter meinem Baby ein Betriebssystem zu verpassen. ARM7 
programmiert sich laangsamer als ein PIC wegen der fehlenden HAL beim 
GNU. Der VIC ist aber nicht so schwer wie ich dachte, Sachen wie nested 
interrupts mache ich nicht, da ich keinen ARM Assember kann und lernen 
will.

Könnte ich Dir ggf. per e-mail ab und an mal ein paar Fragen stellen, 
wenn ich nicht mehr weiterkomme? zB verstehe ich nicht, warum mein 
Programm nicht mehr läuft, wenn ich beim GNU "Optimize for size" setze, 
Rowley spuckt dann auch eine Warnung aus, dass der erzeugte Code 
unbenutzbar sein kann.

Oder lieber im Forum stellen?

Gruss,
Christian

von Robert T. (robertteufel)


Lesenswert?

Hallo Christian,

mit GNU kennen sich hier viele besser aus als ich, also lieber im FOrum 
stellen. Ich schau regelmaessig rein und antworte auch oft, wenn ich was 
vernuenftiges beitragen kann.
Ausserdem bin ich 9h zeitversetzt, da kommt Hilfe im Forum doch oft 
etwas schneller.

Robert (in Silicon Valley, California)

p.s. mit der Hardware im Chip kenne ich mich schon ziemlich gut aus.

von Christian J. (elektroniker1968)


Lesenswert?

Hallo Robert,

prima, dann kannst Du mir vielleicht sagen, wie man die PLL des ARM 
wieder abschaltet und den Oszi wieder ankoppelt. Im Handbuch ist leider 
nur beschrieben, wie man die PLL einschaltet. Beim Absschalten hängt 
sich mein Proz völlig auf und ich komme auch nicht mehr mit dem JTAG 
rein, muss über die Uart ein Dummyprogramm flashen. Der Grund ist 
einfach, dass mir der Chip zuviel Strom verbraucht, bei 24 Mhz zieht 
sich mein Board 110ma rein, davon vermutlich 20ma für andere bauteile 
und das meiste für den ARM. Das ist zuviel für einen Akku der mit einer 
Solarzelle geladen wird.

Gibt es da eine bestimmte Vorschrift?

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.