Hallo, wie fasse ich 2 Bytes zu einem Word zusammen? Word = HighByte * &F100 Word = Word + LowByte oder mit Shift, oder mit ... Was ist die eleganteste, was die Speicher sparenste und was die schnellste Variante? BASCOM hat für den umgekehrten Weg zwei eigene Funktionen LowByte = low(Word) HighByte = high(Word) Fürs Zusammenfassen scheint es aber nichts zu geben. Ciao, Werner
:
Gesperrt durch User
hallo werner: Vieleicht mit MAKEINT(lowbyte,Higebyte) siehe Helpfile von BascomAVR mfg ThomasB
hallo werner: Vieleicht mit MAKEINT(lowbyte,Highbyte)(sorry) siehe Helpfile von BascomAVR mfg ThomasB
Hallo Thomas
Danke!
> siehe Helpfile von BascomAVR
ich konnt nicht ganz glauben, daß es dafür keinen Befehl gibt, aber
gefunden hab ich ihn nicht.
Zur Ehrenrettung, bei MAKEINT ist High und Low verlinkt, aber umgekehrt
nicht. Wenn einem dann nicht MSB & LSB als Suchworte einfallen, läuft
man ins leere.
Ciao und gute Nacht
Werner
P.S. ich nerv jetzt öffter :teufel: ;)
Hallo, irgendwie komm ich mit der BASCOM Hilfe auf Kriegsfuß :-( Wenn es einen Befehl MAKEINT gibt, dann gibt es bestimmt auch einen, der aus zwei Wörtern oder 4 Bytes ein Lang macht. Ich find ihm nicht! :-((( Ciao, Werner (blutiger Anfänger)
Hallo Werner Der Befehl "MakeLONG" gibt es bei BascomAVR nicht. Es gibt die Befehle "MakeINT,MakeBCD und MakeDEC" Und MakeNIX ;-))
> Was ist die eleganteste, was die Speicher sparenste und was die > schnellste Variante? Dim Bytearray(2) As Byte Dim Wordvariable As Word At Bytearray Overlay Bytearray(1) = 25 Bytearray(2) = 17 Print Wordvariable MfG formtapez
Hallo formtapez,
> Dim Wordvariable As Word At Bytearray Overlay
Ich hatte mich schon gefragt (aber noch nicht gesucht) wo sich die
Pointer in BASCOM verstecken.
Schön ist, das ich auf dem Weg auch elegant die einzelnen Bytes einer
Word- oder Longvariablen manipulieren kann. Kann ich gut gebrauchen
:-))
Ciao,
Werner
Dim Adresse As Word At $160 Dim Low_adresse As Byte At $160 Overlay Dim High_adresse As Byte At $161 Overlay Jetzt kannst Du 16Bit breit Adresse ansprechen und Low_adresse / High_adresse die einzelnen Bytes schreib die Definition ziemlich am Anfang, bevor $160, $161 durch andere Variablen belegt ist
Jens S. schrieb: > schreib die Definition ziemlich am Anfang, bevor $160, $161 durch andere > Variablen belegt ist Und warum soll er sich dem Risiko von Adresskonflikten aussetzen, wenn es auch gänzlich ohne geht. Ausserdem: wenn er es nach 10 Jahren immer noch nicht raus hat, dann sollte er sich besser ein anderes Hobby suchen.