wenns funktionieren soll, dann kannst du nicht einfach deinen Schleifenzähler mit dem Pointer addieren!
Ich würds in etwa so machen:
Code:
un reset
spb _001
auf DB xxx //gewünschten Datenbaustein öffnen
lar1 p#0.0 //Startbyte im DB
l 30
L1: set
r dbx[ar1,p#0.x] //Pointer auf dein Bit - z.B. p#0.1 für Bit 1
+ar1 p#x.0 //Adressregister 1 erhöhen - z.B. p#2.0 für 16-Bit Format (Word/Int)
loop L1
_001: nop 0
@gerhard
L L#0 geht sehr wohl. byte 0, bit 0 ... mit + 1 kann man so die 8bit eines bytes sogar ansprechen, beim nächsten byte wirds dann dann allerdings schwerer
@ralle
nu, war auch mein erster gedanke, warum nicht mit loop ...
@fai004 [das folgende ist nicht wahr]
der fehler deiner schleife liegt im <D
im akku1 steht dein schleifenzähler
mit dem laden des durchlaufwertes wird der schleifenzähler in akku2 transferiert und in akku1 steht der durchlaufwert
<D heißt - VKE = 1 wenn akku1 kleiner als akku2 ist ... isser bei dir nie
mit >D siehts schon anders aus. [die grütze endet hier]
natürlich heißt <D -> VKE = 1 wenn akku2 kleiner ist als akku1
un reset
spb _001
auf DB xxx //gewünschten Datenbaustein öffnen
lar1 p#0.0 //Startbyte im DB
l 30
L1: set
r dbx[ar1,p#0.x] //Pointer auf dein Bit - z.B. p#0.1 für Bit 1
+ar1 p#x.0 //Adressregister 1 erhöhen - z.B. p#2.0 für 16-Bit Format (Word/Int)
loop L1
_001: nop 0
im akku1 steht dein schleifenzähler
mit dem laden des durchlaufwertes wird der schleifenzähler in akku2 transferiert und in akku1 steht der durchlaufwert
<D heißt - VKE = 1 wenn akku1 kleiner als akku2 ist ... isser bei dir nie
mit >D siehts schon anders aus.
Code: un resetspb _001auf DB xxx //gewünschten Datenbaustein öffnenlar1 p#0.0 //Startbyte im DBl 30L1: setr dbx[ar1,p#0.x] //Pointer auf dein Bit - z.B. p#0.1 für Bit 1+ar1 p#x.0 //Adressregister 1 erhöhen - z.B. p#2.0 für 16-Bit Format (Word/Int)loop L1_001: nop 0 Gruß Micha