Forum: Mikrocontroller und Digitale Elektronik Interrup - ARM M0


von Adrian H. (adrian1102)


Lesenswert?

Hallo,
ich bin relativ neu im Umgang mit Mikrocontrollern und habe ein Problem 
mit der Programmierung eines NXP - LPC11c24 (ARM Cortex M0).
Zur Programmierung benutze ich das LPCXpresso Studio.

Zum Problem: ich möchte einen I2C-Bus programmieren. Dazu hae ich 
zunächst den Bus initialisiert und Start-Befehl erteilt. Laut Datenblatt 
steht dann im Statusregister 0x08 und das SI (interrupt)-Bit wird 
gesetzt. Im Anschluss soll die entsprechende ISR ausgeführt werden und 
da liegt das Problem. Bisher habe ich es nicht geschafft in die ISR zu 
kommen...

Zum Code:
Der Interrupt wurden mit
1
NVIC_EnableIRQ(I2C_IRQn);
freigeschaltet.

Bei der ISR habe ich schon verschiedene Varianten probiert. Vielleicht 
kann mit jemand ein Codebeispiel dazu geben?

von Jojo S. (Gast)


Lesenswert?

auf LPCware.com findest du Beispiele, hier ist eines in 'Code 
Examples\LPC1110' drin:
http://www.lpcware.com/system/files/MCORE48%20rev%20B%2003032014.zip

oder besser die LPCOpen Lib, da ist Code für die gesamte Peripherie 
drin:
http://www.lpcware.com/system/files/LPC11xx-LPCXpresso-CMSIS-updateV1_01_0.zip

von Karl (Gast)


Lesenswert?

Hast Du die Interrupts global eingeschaltet (CPSR Regsiter des ARM).
Gruss

von Adrian H. (adrian1102)


Lesenswert?

Ich habe einen I2C_IRQHandler geschrieben. Wenn ich das SI-Bit selber 
setze komme ich auch in diese Routine. Allerdings steht im Staturegister 
des IC2 dann nur quark. Es klappt nicht, dass das Startflag auch das 
SI-Flag setzt.
Ideen und Erfahrungen?

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.