Forum: Mikrocontroller und Digitale Elektronik Interrupt Fehler: Uninitialized stack pointer used at.


von David H. (Gast)


Lesenswert?

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.

von Stefan E. (sternst)


Lesenswert?

David H. wrote:

> Meine Frage ist jetzt was mach ich mit meinem srack pointer falsch?

Du hast ihn nicht initialisiert.
http://www.mikrocontroller.net/articles/AVR-Tutorial:_Stack

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.