Problem bei RAM-Zugriff bei 4433

Gast #35479
Lesenswert?

Hallo!

Ich hab ein programm geschrieben, das an bestimme zellen von ram bytes 
puffert, die über die serielle schnittstelle reinkommen, und die dann 
später wieder rausgesendet werden. nur irgendwie funktioniert das nicht. 
leider kann ich keinen fehler finden.

wäre toll, wenn mir da jemand helfen könnte.

Danke Bernhard

PS: die LCD-Routinen sind vom tutorial
Angehängte Dateien:
Gast #35480
Lesenswert?

ich greif immer mit lds / sts aufs ram zu. weiss nicht wie du des 
machst, hab ich aber noch nie so gesehen. bin auch erst n halbes jahr 
mim avr zugange hab aber bisher immer lds und sts bei ramzugriffen 
gesehen.
Gast #35481
Lesenswert?

Hallo Bernhard !

dec rammem
breq endrw

Wenn rammem bei Aufruf 0 ist werden 256 Byte ausgegeben.
ist das so gewollt?

Z+ ist 16 Bit, ich sehe aber sehr selten einen direkten Wert für Z der 
eine richtige Startadresse beinhaltet. Läuft Z eventuell davon? ld und 
st ist alles mit Z+

Richtig durchdacht habe ich es allerdings jetzt nicht, sind nur so 
Gedanken.

Nimm doch mal einen Simulator zur Hand und teste einfach

MFG Uwe
Gast #35482
Lesenswert?

hallo

1. LTS und STS bringt mir nix, weil ich mehr daten hab und ich mal die 
vom anfang oder vom ende brauch.

2. das problem mit rammem und den 256 byte hab ich auch schon gemerkt. 
um das werd ich mich aber später kümmern.

3. Z wird am anfang beim speichern einmal mit 0x0060 geladen und dann 
immer erhöht und dann wenns wieder ausgegeben wird, wirds auch mit 
0x0060 geladen und dann immer mit Z+ ausgegeben und wenns mitm ausgeben 
fertig ist, wird wieder 0x0060 geladen.

dürfte doch eigentlich funktionieren, oder?

Und mit nem Simulator hab ichs noch nicht ausprobiert, weil ih keinen 
habe. gibts überhaupt einen für linux und wo krieg ich ne einführung 
dazu her?

Danke
Bernhard
Gast #35483
Lesenswert?

Hi Bernhard!

Was ist bei Empfang wärend Senden läuft? Da entsteht doch bestimmt Müll!

>Z wird am anfang beim speichern einmal mit 0x0060 geladen ..
...
>und wenns mitm ausgeben fertig ist, wird wieder 0x0060 geladen.

Wo sind die Zeilen? Ich sehe nur Z+ und bei ramlcd einmal Z=0x60

Übrigens schon beim ersten Einsprung in "serin" steht Z noch auf 
(text*2)+ Text, also ganz bestimmt nicht auf 0x60

MFG Uwe

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