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
Tja, der 4433 hat ja auch kein SPH, braucht er auch nicht, da nicht mehr als 256 Byte RAM da sind. Insofern geht die Fehlermeldung in Ordnung, da SPH beim 4433 eben nicht definiert ist. Schmeiß die Zeilen raus und gut ist.
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 ??
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.