Hallo,
wie kann man seinen eigenen Interrupt-Handler an die entsprechende Interrupt-Adresse bringen, in assembler anstatt mit ISR- define (in C)?
in meine Assembler Datei hab ich geschrieben:
#include <avr/io.h>
.text
.section .vectors
.extern IrqCounter_gu8
.org 0x00B
rjmp _my_tim_handler
...
_my_tim_handler:
...
reti
//******************
C-Datei:
int main(void) {
....
return 0;
}
Leider funktioniert das nicht, da mein Code ab Adresse 0x01A beginnt, und nicht bei 0x000B. Wie kann man seinen Code sozusagen dort hinschieben? Oder geht das bei den atmega nicht?
Disassembly:
00000000 RJMP PC+0x001A Relative jump
00000001 RJMP PC+0x0034 Relative jump
00000002 RJMP PC+0x0033 Relative jump
00000003 RJMP PC+0x0032 Relative jump
00000004 RJMP PC+0x0031 Relative jump
00000005 RJMP PC+0x0030 Relative jump
00000006 RJMP PC+0x002F Relative jump
00000007 RJMP PC+0x002E Relative jump
00000008 RJMP PC+0x002D Relative jump
00000009 RJMP PC+0x002C Relative jump
0000000A RJMP PC+0x002B Relative jump
0000000B RJMP PC+0x002B Relative jump
0000000C RJMP PC+0x0029 Relative jump
Ich programmiere mit AtmelStudio 6.2 und es ist ein C-Projekt.
Es ist kein konkretes Projekt, es geht mir ums lernen und wie man was machen kann..
Kann diesbezüglich jemand weiterhelfen?
Grüße
Lesezeichen