4433def.inc + SPH fehler

Gast #17550
Lesenswert?

hallo ich hab mal ne menge source runtergelanden und mit denen 
harumgepielt und ich habe immer bei der "gleich zeile" in problem ...

ldi temp, HIGH(RAMEND) ;
out SPH, temp;

da sagt er immer :
error : Undefined variable referenced

hab es mit dem AVRStudio gemacht ...
ich habe einen At90S4433-8PI
und hab .include "4433def.inc" eingebunden
bei anderen "include-files" funktioniert es
aber dann kann ich mit den hexfiles doch nichts anfangen oder ??
die source-files die ich da habe sind für den At90S4433 geschrieben ....
weiß jemmand von euch rat ??

danke cu
Gast #17552
Lesenswert?

wow ging das schnell mit der antwort :)

so sieht der ganze source aus

;----------------------------
; buttons.asm
; digitale Eingabe und Ausgabe
;----------------------------

.include "4433def.inc"

.def temp = r16
;---- IRQ Sprungtabelle
    rjmp    RESET        ;Reset Handler

RESET:
;---- Initialize stack pointer

        ldi temp, LOW(RAMEND)  ;LOW-Byte der obersten RAM-Adresse
        out SPL, temp
        ldi temp, HIGH(RAMEND) ;HIGH-Byte der obersten RAM-Adresse
        out SPH, temp

    ldi r16, 0xFF ; 1111 1111
    out DDRB, r16 ; Port B output
    ldi r16, 0x00 ; 0000 0000
    out DDRD, r16 ; Port D input

loop:
    in r16, PIND  ; Eingabe von Port D
    out PORTB, r16 ; Ausgabe zu Port D
    rjmp loop

wie gesagt ein beispiel für den 4433 ...
aber es ist in jedem diese zeile drinn ...
und ich darf die zeile einfach weglassen
und das programm funktioniert gleich .. ??

abgesehen davon muss ich hier überhaupt den stackpointer initalisieren 
?? der wird ja nur benutzt wenn ich was mit call aufrufe oder ??
Gast #17553
Lesenswert?

Jo, in diesem Programm brauchst du den SP tatsächlich nicht, aber 
solchen Schluderkram  sollte man sich gar nicht erst angewöhnen. Der SP 
wird immer initialisiert, basta. Die eine Zeile tut nicht weh, die 
eingesparten Bytes nutzen auch nichts (kein Programm, daß den gesamten 
Speicher füllt, kommt ohne SP aus). Schmeiß die 2 Zeilen raus (oder setz 
ein ";" davor), aus die Maus.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren