Try this
Code:B0 VAR BYTE B1 VAR BYTE B2 VAR BYTE B3 VAR BYTE BWord1 Var BYTE BWord2 VAR BYTE BWord VAR WORD VarWord VAR WORD VarWord = 1389 ' Here is your number you defined B3 = VarWord DIG 3 B2 = VarWord DIG 2 B1 = VarWord DIG 1 B0 = VarWord DIG 0 BWord1 = B3 * 16 + B2 BWord2 = B1 * 16 + B0 BWord = BWord1 * $100 + BWord2 ' Here stands your Word like 1389 as hex
Displays 00:13:89Code:Value VAR WORD Buf VAR BYTE[3] DigLoop VAR BYTE Value = 01389 For DigLoop = 5 to 1 STEP -2 Buf((6-DigLoop)/2) = ((Value DIG DigLoop) << 4) + Value DIG (DigLoop -1) Next DigLoop LCDOUT HEX2 Buf(0),":",HEX2 Buf(1),":",HEX2 Buf(2)
<br>
DT
Darrel something is not going in my head.
Code:Value = 01389 ' <- Is the "0" really included ?
The compiler will ignore any leading 0's.
That's the way Tcbcats showed it, so I left it in there.
<br>
DT
@Darrel
i mean this line.
I don´t tried it out, maybe it worksCode:For DigLoop = 5 to 1 STEP -2 Buf((6-DigLoop)/2) ' = Buf((6-5)/2) = 0.5 ??? Does it really works? Round it to zero? Next DigLoop
Sure it works.
But PBP uses integer math. So there are no decimals.
With STEP -2 the loop will execute 3 times, with the values 5, 3, 1 in DigLoop.
Since it's Integer math, (6-DigLoop)/2 will return 0, 1 and 2 respectively.
hth,Code:loop Buf((6-DigLoop)/2) = ((Value DIG DigLoop) << 4) + Value DIG (DigLoop -1) 5 BUF( 0 ) = ( $00 ) + 0 = $00 3 BUF( 1 ) = ( $10 ) + 3 = $13 1 BUF( 2 ) = ( $80 ) + 9 = $89
DT
Bookmarks