Hallo Leute, BASCOM AVR holt mit Var_W = Highw(Var_l) die zwei oberen Bytes raus. Wie komm ich an die beiden unteren Bytes loww geht nicht. Wer stupst mich drauf. Gruss Kurt
Kurt schrieb: > Wie komm ich an die beiden unteren Bytes > > loww geht nicht. Ich kenn zwar BASCOM nicht, weiß daher nicht ob das so geht, aber: einfach zuweisen und darauf vertrauen, das es auch in BASCOM so ist, dass das vorne überzählige (also das High-Word) dabei weggeschmissen wird.
1 | Dim Var_l as Long |
2 | Dim Var_LW As Word At Var_l Overlay |
3 | Dim Var_HW As Word At Var_l +2 Overlay |
Nichts zu danken :D
Ich denke auch, dass die einfache Zuweisung funktionieren wird. Auf jeden Fall sollte mod 256 funktionieren. Die Lösung von MWS wird so eine Art union wie in C sein? Wenns funktioniert, wohl die beste Lösung.
Guckstdu das Manual: ----- There is no LowW() function. This because when you assign a Long to a word or integer, only the lower part is assigned. For this reason you do not need a Loww() function. W=L will do the same. ----- mit Höhlengruß,
Karl heinz Buchegger schrieb: > einfach zuweisen und darauf vertrauen, das es auch in BASCOM so ist, > > dass das vorne überzählige (also das High-Word) dabei weggeschmissen > > wird. Genau so isses. @Kurt: Steht übrigens auch in der Hilfe zu HighW explizit drin. Alternativ geht noch ohne Zuweisungsaufwand: Dim Var_l as Long Dim Var_lw As Word at Var_l Overlay Dim Var_hw As Word at Var_l+2 Overlay Jede Zuweisung an Var_l führt automatisch dazu, dass low und high word über Var_lw und Var_hw zugreifbar sind.
Hallo Leute, danke für die guten/hilfreichen Tips. Var_w = Var_l werd ich benutzen. Das passt am besten. Das andere/höherwertige Wort liefert Highw. Gruss Kurt
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.