What you need is the Bitwise operators "&" + "|" (OR).
Since you only want to output the lower bits of PORTB, you have to read PORTB first, mask out the lower bits, then OR the new bits in.
portb = (portb & %11110000) | (var & %00001111)
<br>
What you need is the Bitwise operators "&" + "|" (OR).
Since you only want to output the lower bits of PORTB, you have to read PORTB first, mask out the lower bits, then OR the new bits in.
portb = (portb & %11110000) | (var & %00001111)
<br>
DT
Hi Darrel,
I've been up all nite trying to sort this thing out. Let's see if I can explain where I am ATM:
I've got 5 bytes coming in as 5 hex2 numbers.
I am taking the low nibble of each of those as hex1 numerals.
Gotta then convert then to dec1 digits and write them to port b low nibble.
I think I've got it sorted...
I don't think I will need to read, mask, or, then write portb as there is a set sequence that needs following, but that will be another problem, probably.
I just gotta write the low nibble with the high nibble all 0's and then do some bit manipulation with the high nibble. Should be pretty easy.
Famous last words huh?
Im not sure if this is what you need but, it is a simple Ascii to hex converter. This assumes the stringbyte is limited to valid hex characters.
ConvertAscii_to_Hex:
StringByte = StringByte - 48
Lookup StringByte, ( 0,1,2,3,4,5,6,7,8,9,0,0,0,0,0,0,10,11,12,13,14,15) , Returnbyte
Return
Rightyo, thanks for all the help blokes. I got it all sorted out.
It may not be pretty, but it works a treat.
And it fits in the codespace.
Peter Moritz.
Up the bush, Western Plains,
New South Wales,
Australia.
Bookmarks