Hallo,
ich programmiere gerade auf dem ARM LPC und will ein Zeichen per
Interrupt empfangen:
Im main wird eine Funktion aufgerufen. Die ein Zeichen an UART1
versendet.
Jetzt will ich eine Funktion schreiben die ein Zeichen per Interrupt
empfängt.
Dazu habe ich schon mal folgende Pins aktiviert:
1 | uart1_interrupt_enable()
|
2 | {
|
3 | U1IER = 0x01; /*UART1 Interrupt Enable*/
|
4 | //RBR IE
|
5 | //Rx Line Status IE
|
6 | //Modem Status IE
|
7 |
|
8 | /*Vectored Interrrupt Controller (VIC) UART1*/
|
9 | VICIntSelect = 0x00000000;
|
10 | VICIntEnClr = 0xFFFFFFFF; //clear all interrupts
|
11 | VICIntEnable = 0xFFFFFFFF; //enable UART1 interrupt
|
12 | //VICVectAddr0 = 0x00000000; //abhänig vom IRQ Slot
|
13 | //VICRawIntr = 0x00001008
|
14 | //VICIRQStatus = 0x00000000;
|
15 | //VICFIQStatus = 0x00000000;
|
16 | //VICSoftInt = 0x00000000;
|
17 | //VICSoftIntClear = 0x00000000;
|
18 |
|
19 | /* Receiver & Transmitter Register */
|
20 | //U1RBR/THR
|
21 |
|
22 | /* Scatch Pad Register */
|
23 | //U1SCR
|
24 | }
|
Kennt sich einer mit Interupts aus?
Welche PINS soll ich noch zusätzlich aktivieren?
Jetzt will eine Empfangsroutine schreiben:
ISR (Interrupt Service Routine).
Wie sieht diese ungefähr aus?
und von wo statet man die?