Hallo,
ich beginne mit MPLAB mich in die PIC32 einzuarbeiten.
Als erstes möchte ich die Interrupts INT0 und INT1 in unterschiedlichen
Routinen behandeln.
Zur Testen verwende ich MPLAB SIM und mittels Stimulus simuliere ich die
Eingänge.
Hier mein Code:
1 | #include<plib.h>
|
2 |
|
3 | #define sysFreq (80000000)
|
4 |
|
5 | #define INT0 (int)INT_INT0
|
6 | #define INT1 (int)INT_INT1
|
7 |
|
8 | int main(void)
|
9 | {
|
10 | unsigned int pbFreq=0;
|
11 | //System Konfiguration
|
12 | pbFreq= SYSTEMConfig(sysFreq, SYS_CFG_WAIT_STATES | SYS_CFG_PCACHE);
|
13 |
|
14 | //Konfigurieren des Interrupt 0
|
15 | ConfigINT0(EXT_INT_PRI_1 | RISING_EDGE_INT | EXT_INT_ENABLE);
|
16 |
|
17 | //Konfigurieren des Interrupt 1
|
18 | ConfigINT1(EXT_INT_PRI_2 | RISING_EDGE_INT | EXT_INT_ENABLE);
|
19 |
|
20 | //Multi Interrupt einschalten
|
21 | INTConfigureSystem(INT_SYSTEM_CONFIG_MULT_VECTOR);
|
22 | // enable interrupts
|
23 | INTEnableInterrupts();
|
24 | }
|
25 |
|
26 | /***********************************************************************************************************/
|
27 | /* Interrupt Handler für INT0 */
|
28 | /***********************************************************************************************************/
|
29 | void __ISR(INT0,ipl1) Int0Handler(void)
|
30 | {
|
31 | //Löschen des Flags
|
32 | INTClearFlag(INT0);
|
33 | }
|
34 |
|
35 | /***********************************************************************************************************/
|
36 | /* Interrupt Handler für INT1 */
|
37 | /***********************************************************************************************************/
|
38 | void __ISR(INT1,ipl2) Int1Handler(void)
|
39 | {
|
40 | //Löschen des Flags
|
41 | INTClearFlag(INT1);
|
42 | }
|
Ich habe jeweiles einen Breakpoit in die Handler Routinen gesetzt.
Beim INT0 wird er Breakpoint angesprungen, es funktioniert.
Beim INT1 bekommen ich aber folgende Fehlermeldung und das Programm hält
an.
(119510064) SIM-N0001 Note: Asynchronous Stimulus Toggle INT1 fired.
CORE-W0018: Instruction at 0x9fc012e0 decoded as Reserved (NOP)
.
.
.
CORE-W0018: Instruction at 0x9fc01600 decoded as Reserved (NOP)
MAXIMUM number of warnings/errors exceeded 200, program execution
halted.
Könnte mir Jemand auf die Sprünge helfen was am Code falsch ist?
Die Hilfe von MPLAB ist so umfangreich das ich den Überblick verloren
habe.
Und was ich im Internet finde hilft mir bei dem Problem leider auch
nicht weiter.
Gruß Robert