Gast
#893341
Hallo zusammen ich habe volgendes Programm geschreiben:
.include "m8def.inc"
;-----------------------------------------------------------------------
-
;Reset and Interrupt vector ;VNr. Beschreibung
rjmp main ;1 POWER ON RESET
reti ;2 Int0-Interrupt
reti ;3 Int1-Interrupt
reti ;4 TC2 Compare Match
reti ;5 TC2 Overflow
reti ;6 TC1 Capture
reti ;7 TC1 Compare Match A
reti ;8 TC1 Compare Match B
reti ;9 TC1 Overflow
rjmp led ;10 TC0 Overflow
reti ;11 SPI, STC Serial Transfer Complete
reti ;12 UART Rx Complete
reti ;13 UART Data Register Empty
reti ;14 UART Tx Complete
reti ;15 ADC Conversion Complete
reti ;16 EEPROM Ready
reti ;17 Analog Comparator
reti ;18 TWI (I²C) Serial Interface
reti ;19 Store Program Memory Ready
;-----------------------------------------------------------------------
-
;Start, Power ON, Reset
main:
ldi r16,0b11111111
out PORTD,r16
out DDRB,r16
ldi r19,0b00000001
ldi r16, 0b00000001 ; CS00 setzen: Teiler 1
out TCCR0, r16
ldi r16, 0b00000001 ; TOIE0: Interrupt bei Timer Overflow
out TIMSK, r16
sei
;-----------------------------------------------------------------------
-
mainloop: wdr
nop
rjmp mainloop
led:
out PORTB,r19
rol r19
reti
So weit so gut. Aber wenn mein Interrupt beendet ist bekomme ich eine
fehlermeldung das:
AVR Simulator: Uninitialized stack pointer used at 0x001c
AVR Simulator: Invalid opcode 0xffff at address 0x000808
AVR Simulator: Uninitialized stack pointer used at 0x08fc
Meine Frage ist jetzt was mach ich mit meinem srack pointer falsch?
Vielen dank schon mal führ die Antwort.
David
PS: Ich weis das programm hat keinen all zu großen Sinn und das
lauflicht an portD würde sehr schnell laufen aber zum simulierren dauert
das mit einem größeren teiler zu lange.