C51 interrupt deklarieren und definieren und kontrollieren

Gast #7066230
Lesenswert?

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?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren