Gast
#306256
Hallo,
ich möchte bei einem Atmega128 in C (WINAVR) den Externen Interrupt 7
auslösen. Nur leider funktioniert das nicht; der Controler macht bei
Logikwechsel an dem enstrechenden Pin einen Restart!
Ich hab den Interrupt wie folgt initialisiert:
***********************************************
// External Interrupt(s) initialization
EICRA=0x00;
EICRB=0x40;
EIMSK=0x80;
// Global enable interrupts
sei ();
***********************************************
Die Interruptmethode sieht wie folgt aus:
***********************************************
SIGNAL (SIG_INTERRUPT7)
{
//Code für den Interrupt
}
***********************************************
Beim Überprüfen der List-Datei nach dem übersetzen ist mir aufgefallen,
dass nur bei der Adresse 0x20 ein Sprung zum Interruptprogramm vorhanden
ist.
Der Interuptadresse für den Externen Interrupt 7 müsste doch eigentlich
bei 0x10 sein, oder?:
**********************************************
00000000 <__vectors>:
0: 0c 94 46 00 jmp 0x8c
4: 0c 94 63 00 jmp 0xc6
8: 0c 94 63 00 jmp 0xc6
c: 0c 94 63 00 jmp 0xc6
10: 0c 94 63 00 jmp 0xc6
14: 0c 94 63 00 jmp 0xc6
18: 0c 94 63 00 jmp 0xc6
1c: 0c 94 63 00 jmp 0xc6
20: 0c 94 52 01 jmp 0x2a4
24: 0c 94 63 00 jmp 0xc6
28: 0c 94 63 00 jmp 0xc6
2c: 0c 94 63 00 jmp 0xc6
30: 0c 94 63 00 jmp 0xc6
34: 0c 94 63 00 jmp 0xc6
38: 0c 94 63 00 jmp 0xc6
3c: 0c 94 63 00 jmp 0xc6
40: 0c 94 63 00 jmp 0xc6
44: 0c 94 63 00 jmp 0xc6
48: 0c 94 63 00 jmp 0xc6
4c: 0c 94 63 00 jmp 0xc6
50: 0c 94 63 00 jmp 0xc6
54: 0c 94 63 00 jmp 0xc6
58: 0c 94 63 00 jmp 0xc6
5c: 0c 94 63 00 jmp 0xc6
60: 0c 94 63 00 jmp 0xc6
64: 0c 94 63 00 jmp 0xc6
68: 0c 94 63 00 jmp 0xc6
6c: 0c 94 63 00 jmp 0xc6
70: 0c 94 63 00 jmp 0xc6
74: 0c 94 63 00 jmp 0xc6
78: 0c 94 63 00 jmp 0xc6
7c: 0c 94 63 00 jmp 0xc6
80: 0c 94 63 00 jmp 0xc6
84: 0c 94 63 00 jmp 0xc6
88: 0c 94 63 00 jmp 0xc6
000000c6 <__bad_interrupt>:
c6: 0c 94 00 00 jmp 0x0
**********************************************
Was hab ich falsch gemacht?