Gast
#48359
HIIIIILFEEEEE !
Ich werd noch verrückt, meine Unterprogrammsprünge
funktionieren nicht, obwohl ich den Stackpointer initialisiert habe.
Mein Problem ist der erste Unterprogrammaufruf funktioniert, ist das
erste Unterprogramm jedoch beendet (mit ret) so springt er nicht
in das main Programm zurück von dem er aus in das Unterprogramm
gesprungen ist sondern springt anscheinend auf Adr. 0x0000 wo der rjmp
des Main Programm ist. -> Somit wird wieder ganz am Anfang des Main
Programms begonnen....
Wer weiß meinen Fehler, wäre Euch sehr dankbar...
Mein Main Programm:
MAIN:
;Initialisierung des Stack Pointers
ldi stack,HIGH(RAMEND)
out SPH,stack
ldi stack,LOW(RAMEND);Initiate Stackpointer
out SPL,stack ; wegen Interrupts und Unterprogr.
;Stackpointerinitialisierung ende
ldi mp,0xff
out DDRC,mp
ldi mp,0x00
out PORTC,mp
ldi DATENREG, 0b01000001
ldi X_ADRESSREG_LOW,0b10101010
ldi X_ADRESSREG_HIGH, 0b00000111
rcall INFO_IN_SR ; SR->Schieberegister
rcall SCHREIBEN_IN_DPRAM
LOOP: jmp LOOP
Vielen Dank
Peter