messwerte in db

A

Anonymous

Guest
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo leute ich brauch mal hilfe,
was verdammt ist hier verkehrt? Es geht darum einen Meßwert über einen Taktgeber in einen DB abzulegen.Ich hatte es auch schon so weit, daß ein meßwert in den Db geschrieben wurde , dann aber geht die cpu in stop.


U #imp
SPBN next
L DB1.DBW 8
AUF DB 36
T DBD [MD 52]
L MD 52
L L#1
+D
T MD 52

next: BE

habe die suchfunktion schon genutzt und viele versuche hinter mir

vielen dank im vorraus
 
Hallo
Dein MD52 muss vom Typ Pointer sein. Du musst ihn erst initialisieren mit z.B
L P#0.0
T MD52

und wenn du dann auf das nächste Doppelwort zugreifen willst musst du den MD52 erhöhen. Als Beispiel

L MD52
L P#4.0 (Erhöhung des Zeigers um eine Doppelwort)
+D
T MD52

Gruß

Andreas
 
Bei mir funktioniert das irgendwie nicht.

Ich will ein Byte auslesen, überprüfen ob der Hexwert des Bytes kleiner 31 ist und ggf mit Hex 0 überschreiben und dann das nächste Byte überprüfen.

Irgendwie funktioniert das nicht so richtig.
 
Ich habe vergessen den Programmteilanzuhängen. Hier ist er.

Ab dem wegkommentierten Teil geht die CPU auf Stop.

init: L P#14.0 //Start bei DBB14
T MD 1

L DBLG //Länge des DB bestimmen
T #lang //in Variable lang speicheren

S #init


ctrl: L MD 1 //Vergleich um Pointer größer als DB
L #lang
<=D
= #cont

U #cont
SPB chk

SPA ende


chk: L L#31 //Vergleich ob Hexwert kleiner gleich 31
L DBB [MD 1]
<=D
= #mist


U #mist
SPB pst

SPA ctrl

pst: NOP 0
//pst: L #zero //ist der Hexwert kleiner 31 wird dieser mit 0 überschrieben
// T DBB [MD 1]

// L MD 1 //Pointer um 1 erhöhen
// L P#1.0
// +D
// T MD 1

SPB ctrl

ende: NOP 0


Kann mir jemand sagen wo der Fehler liegt?
 
Zurück
Oben