Gast
#7066230
Hallo Leute,
interrupt.c
void adc_isr(void) interrupt 6 /* using 0 */ {}
void spi_isr(void) interrupt 7 /* using 0 */ {}
main.c
void main() { while(1) {} }
startup.a51
// default von Keil
// hier verstehe ich nicht alles
// build
C51.exe interrupt.c
BL51.exe startup.obj,main.obj,interrupt.obj,C51S.LIB TO main.ABS
RAMSIZE(256) NODEFAULTLIBRARY
OH51.exe main.ABS
in main.M51 sehe ich unter CODE MEMORY nicht, dass die interrupts
entsprechend dem Datenblatt an den Adressen
['0x03', '0x0B', '0x13', '0x1B',
'0x23', '0x2B', '0x33', '0x3B',
'0x43', '0x4B', '0x53', '0x5B']
untergebracht sind. Die Interrupts passen u.U. nicht an diese
Adressen, aber ich müsste doch zumindest JMP oder ähnliches dort sehen.
Hier ist was M51 steht.
* * C O D E M E M O R Y * *
CODE 0000H 0003H ABSOLUTE
CODE 0003H 0008H UNIT
CODE 000BH 0003H ABSOLUTE
CODE 000EH 000BH UNIT
CODE 0019H 0001H UNIT
CODE 001AH 0001H UNIT
Erstaunlicherweise funktionieren die Interrupts.
Hat jemand ein Rat?