Hi,
It works for me. Can you post more of your code I always use it for my Seven Segment Display Routines. http://www.melabs.com/resources/pbpmanual/4_0.htm#4177
Hi,
It works for me. Can you post more of your code I always use it for my Seven Segment Display Routines. http://www.melabs.com/resources/pbpmanual/4_0.htm#4177
Regards
Sougata
Hi,
The DIG operator should work for that, I can't say why it doesn't work for you. A mathematical way may be:
/Henrik Olsson.Code:Counter var word Thousands var byte Hundreds var byte Tens var byte Ones var byte Counter = 5389 Thousands = Counter / 1000 'Thousands is now 5 Counter = Counter - (Thousands * 1000) 'Counter is now 389 Hundreds = Counter / 100 'Hundreds is now 3 Counter = Counter - (Hundreds * 100) 'Counter is now 89 Tens = Counter / 10 'Tens is now 8 Ones = Counter - (Tens * 10) 'Ones is now 9
DIG work, have a look at the following
http://www.picbasic.co.uk/forum/showthread.php?t=1044
Steve
It's not a bug, it's a random feature.
There's no problem, only learning opportunities.
thanks a lot guys, i think there's a minor glitch with the programming.
It's working now with DIG.
But the mathematical approach was good.
Dig is great function but how to find out how many digits in the number if you dont know it, and what Dig function will do if you try to asses position what do not exist ?
W0 = 54321
B1 = W0 DIG 6 <---?
Last edited by therian; - 8th January 2007 at 11:51.
Hi,
The manual says:
This makes sense since the largest variable supported by PBP is 16bits so a word sizes variable can't be more than 5 digits.DIG returns the value of a decimal digit. Simply tell it the digit number (0 - 4 with 0 being the rightmost digit) you would like the value of, and voila.
If you have a word sized variable and it's value is 23 and you ask for DIG 2 it will return the value 0 since your variable is 00023.
HOWEVER, the program compiles just fine even if you say DIG 6. I don't know what it will return. Perhaps it "spills" over into the next byte in RAM.
/Henrik Olsson.
Originally Posted by therian, The Rian who asked the question
What I get from the question is this:
W0 is WORD
Say W0 = 23.
That makes it W0 = 00023.
IF you want to know which digits are NOT zero then you need a "check" routine.
Example: W1 = 00103. We have two zeros we do not need. So DIG3 and DIG4 are not required to be read (for some logical reason!)
I think this is what the question was asking.
In that case, starting from Left to Right, we have a check routine.
Do I make dead comments again?Code:IF W1 DIG 4 = 0 THEN IF W1 DIG 3 = 0 THEN ... ELSE 'Do something.... ELSE 'Do something.... .... etc.
Bookmarks