Das Prinzip ist recht einfach.
Als erstes definiert man die Sprungadressen für die Interupts am Anfang des Programms.
Als nächstes an der Adresse des Reset Handlers zunächst einmal der Stack initialisiert.Code:rjmp reset ; Reset Handler rjmp irq0 ; IRQ0 Handler <- definierte Sprungadresse reti ; IRQ1 Handler reti ; Timer1 Capture Handler reti ; Timer1 Compare A Handler reti ; Timer1 Compare B Handler reti ; Timer1 Overflow Handler reti ; Timer0 Overflow Handler reti ; SPI Transfer Complete Handler reti ; USART RX Complete Handler reti ; UDR0 Empty Handler reti ; USART TX Complete Handler reti ; Analog Comparator Handler reti ; IRQ2 Handler reti ; Timer0 Compare Handler reti ; EEPROM Ready Handler reti ; Store Program memory Ready
Anschließend initialisiert man die Peripherie und aktiviert glabal die Interupts.Code:reset: ldi ZH, high(RAMEND) ldi ZL low(RAMEND) out SPH, ZH out SPL, ZL
Zum Schluss kommt dann noch das eigentliche Programm sowie die einzelnen Interupt Routinen.
Aber mehr dazu findest du hier im Wiki, auf www.mikrocontroller.net und auch im Datenblatt (das gibts auf www.atmel.com)
Ich hoffe dir trotzdem soweit geholfen zu haben.
Grüße,
Hanni






Zitieren

Lesezeichen