Hallo, ich verzweifle etwas mit dem Interrupt. Vielleicht kann mir jemand von euch weiter helfen . Ich kopiere am besten mal das Programm hinein. Irgendetwas wird wohl an der Init. nicht stimmen :|
1 | void main() |
2 | {
|
3 | |
4 | // Button Select (PF1) als digitalen Eingang
|
5 | GPIO_PORTF_DIR_R &= ~ BIT1; // Eingang |
6 | GPIO_PORTF_DEN_R |= BIT1; // Digitale Funktion (0: Nein 1: Ja) |
7 | |
8 | GPIO_PORTF_IEV_R |= BIT1; // steigende Flanke |
9 | GPIO_PORTF_IBE_R &= ~ BIT1; // single Flanke |
10 | GPIO_PORTF_IS_R &= ~ BIT1; // Int. Sense: edge |
11 | GPIO_PORTF_IM_R &= ~ BIT1; // Interrupt enabled |
12 | |
13 | GPIO_PORTF_PUR_R |= BIT1; // Pull Up |
14 | |
15 | |
16 | // Enable processor interrupts.
|
17 | IntMasterEnable(); |
18 | |
19 | while(1) |
20 | asm("nop"); |
21 | }
|
22 | |
23 | void PORTF_ISR(void) |
24 | {
|
25 | asm("nop"); |
26 | }
|
In der startup.c habe ich folgende Zeile der Vektor TAbelle geändert. PORTF_ISR, // GPIO Port F Wenn ich Select drücke (PF1) dann seh ich, dass Data auf 0 wechselt aber er springt nicht in die PORTF_ISR() Ich weiß leider nemmer weiter Gruß Timo