was ist mit stackpointer ?
Hallo,
eine kleine Routine, macht nichts anderes als über einen Adressbus 8 Pins abfragen ("Eingabeport") und dann an einem Ausgabebus ausgeben. Funktioniert einwandfrei - nur nicht, wenn das Anwählen des Eingabeports als Subroutine programmiert ist.
a) So läufts auf Atiny 2313 und Atmega8:
ldi Adresse, 1
out Adressbus,Adresse
START:
in Temp, Datenbus_in
out Magnetbus,Temp
rjmp START
b) So läufts auf Atiny 2313, aber nicht auf Atmega8:
rcall Tastatur
START:
in Temp, Datenbus_in
out Magnetbus,Temp
rjmp START
Tastatur:
ldi Adresse, 1
out Adressbus,Adresse
ret
Ich habe keine Ahnung, wo ich ansetzen muß. Bitte Hilfe!
was ist mit stackpointer ?
Linus TorvaldSoftware is like s e x: its better when its free.
danke für schnelle Antwort!
Ich habe eine ungefähre Ahnung, was ein Stackpointer macht, aber nicht mehr. Hatte bisher nur Atiny2313 programmiert, da funktionierten die rcalls ohne weiteren Aufwand. Was muß ich tun?
http://www.izaseba.roboterbastler.de...Lektion8#Stack
Vielleicht hilft das ?
Linus TorvaldSoftware is like s e x: its better when its free.
super erklärt, verstanden.
Aber auch das Beispielprogramm läuft auf dem Atmega8 nicht (Atiny2312 schon). Im Datenblatt und Instruction Manual habe ich nichts gefunden. Verstehe nicht wo das Problem ist, siehe "Unterprogramme aufrufen" => "Das schöne daran ist, ablegen der Adresse usw. macht der assembler für uns automatisch, wir brauchen uns nicht darum zu kümmern."
Vor allem den Unterschied zw. Atiny2313 und Atmega8 nicht. Die Befehle sind doch identisch!
Den Stackpointer muß man initialisieren, wenn man mit Funktionsaufrufen
arbeitet, egal ob m8 oder Tiny.
Ist das jetzt alles am Programm, oder nur ein Ausschnitt ?
Poste bitte das ganze Programm
Gruß Sebastian
Linus TorvaldSoftware is like s e x: its better when its free.
Sebastian, das mit dem Initialisieren war es! Tausend Dank für Deine Anleitung!!! Warum die Programme auf dem Atiny2313 trotzdem immer liefen, ich weiß es nicht. Aber das Problem ist nachhaltig gelöst.
Nochmals vielen, vielen Dank! \/ (Hoffe, das ist das richtige Smeili)
Evtl. kann ich mich mal mit etwas Relais- oder Hubmagnete-Wissen revanchieren.
Das ist gut, viel Spaß weiterhin beim ProgrammierenSebastian, das mit dem Initialisieren war es!
Gruß Sebastian
Linus TorvaldSoftware is like s e x: its better when its free.
Lesezeichen