Guten Abend,
Ich habe ich folgendes gelesen:
(ich finde denn Beitrag nicht mehr, aber es ging um globale Interrupts)
1 | #define GLOBAL_INTERRUPT_ENABLE VICIntEnable = interrupt_temp;
|
2 | #define GLOBAL_INTERRUPT_DISABLE interrupt_temp = VICIntEnable, VICIntEnClr = interrupt_temp;
|
3 | unsigned int interrupt_temp = 0x000004F0;
|
4 | T0TCR = INTERRUPT_DISABLE;
|
Hier werden VICIntEnable für Peripherie(UART0,TIMER0 usw.) gesetzt.
Ich mache das aber anderes.
Bei der Initialisierung der Peripherie werden die Register U0IER(UART0),
T0TCR(TIMER0) usw. nicht gesetzt. Der VICIntEnable wird aber gesetzt.
1 | #define ALL_INTERRUPTS_ENABLE (U0IER = INTERRUPT_ENABLE, U1IER = INTERRUPT_ENABLE, T0TCR = INTERRUPT_ENABLE)
|
2 | #define ALL_INTERRUPTS_DISABLE (U0IER = INTERRUPT_DISABLE, U1IER = INTERRUPT_DISABLE, T0TCR = INTERRUPT_DISABLE)
|
3 |
|
4 | #define INTERRUPT_ENABLE 0x00000001
|
5 | #define INTERRUPT_DISABLE 0x00000000
|
und bevor ich TIMER und UARTS nutzen will mache ich folgendes:
ALL_INTERRUPTS_ENABLE;
das mache ich vor meine main-loop.
Aber das sind doch verschiedene Sachen.
Mit VICIntEnable wird doch die kann man die Priorität festlegen.
Wie ist das denn richtig zu machen???
Vielen Dank im Voraus.