Determining variable length (number of digits) possible?


Closed Thread
Results 1 to 15 of 15

Hybrid View

  1. #1
    Join Date
    Apr 2014
    Location
    OK
    Posts
    557


    Did you find this post helpful? Yes | No

    Default Re: Determining variable length (number of digits) possible?

    IF XVR > 999 THEN
    [Work the first digit]
    ENDIF ;If not, no action taken
    IF XVR > 99 THEN
    [Work the 2nd digit]
    ENDIF ;If not, no action taken

  2. #2
    Join Date
    Feb 2013
    Posts
    1,124


    Did you find this post helpful? Yes | No

    Default Re: Determining variable length (number of digits) possible?

    I'm doing a more featured custom decoder, which will display both letters and digits on max7219 7 segment display. It will also have custom decoder for digital values. The code is below:

    Code:
    FOURD=12345 'test value
    dstart=2 'start segment
    DLEN=2 'decode length
    
    TEST: 'test digits
    FOR x=DLEN TO 1 STEP -1
    Z=FOURD DIG X+1	'EXTRACT VALUE
    GOSUB FOURDEC
    PAUSE 500
    NEXT
    GOTO TEST
    
    FOURDEC:	'DIGIT DECODER
    if Z=0 then Y=126
    if Z=1 then Y=48
    if z=2 then Y=109
    if z=3 then Y=121
    if z=4 then Y=51
    if z=5 then Y=91
    if z=6 then Y=95
    if z=7 then Y=112
    if z=8 then Y=127
    if z=9 then Y=115
    low load
    shiftout datapin,clockpin,1,[x+DSTART-1, y]	'DISPLAY THE LETTER
    high load
    RETURN
    This code works, but DLEN instead of cropping digits from the left, crops them from the right - say initial variable is "12345" and I want to display 2 digits from it, I'm getting "45" instead of "12", have no idea why. Same for start position - DSTART starts from rightmost position, instead of leftmost....

  3. #3
    Join Date
    Feb 2013
    Posts
    1,124


    Did you find this post helpful? Yes | No

    Default Re: Determining variable length (number of digits) possible?

    FOURD=12345
    FOURD=FOURD>>2 should return FOURD=123, right? but it returns 11419 !

  4. #4
    Join Date
    Feb 2013
    Posts
    1,124


    Did you find this post helpful? Yes | No

    Default Re: Determining variable length (number of digits) possible?

    Forgot to mention, startup shift fixed:
    shiftout datapin,clockpin,1,[X-DLEN+DSTART, y]

  5. #5
    Join Date
    Apr 2014
    Location
    OK
    Posts
    557


    Did you find this post helpful? Yes | No

    Default Re: Determining variable length (number of digits) possible?

    Quote Originally Posted by CuriousOne View Post
    FOURD=12345
    FOURD=FOURD>>2 should return FOURD=123, right? but it returns 11419 !
    Not sure how that happened. First, you wouldn't get "123", as Right Shift 2 (>> 2) is the same as Divide by 4; in which case 12345 >> 2 = 3086 and not 11419.

    Since you're dealing with a display, you may have to treat each place holder as a unique byte (perhaps value + $30 to convert it to ASCii); "12345" would be saved as $31, $32, $33, $34, $35 in an array. You can then shift your pointer 2 places to look at 123 by itself (as 3 individual bytes, of course).

  6. #6
    Join Date
    Feb 2013
    Posts
    1,124


    Did you find this post helpful? Yes | No

    Default Re: Determining variable length (number of digits) possible?

    I've written a PC based converter, which deals with ASCII conversion. It generates PBP code for EEPROM.
    Name:  pic2.jpg
Views: 63064
Size:  99.7 KB
    Name:  pic1.jpg
Views: 63381
Size:  73.9 KB

  7. #7
    Join Date
    Feb 2013
    Posts
    1,124


    Did you find this post helpful? Yes | No

    Default Re: Determining variable length (number of digits) possible?

    So back to shift.
    How to trim one variable from left to right, to value of another variable?

    say trim 12345 by 3 - mean, make 123 digits from it.

  8. #8
    Join Date
    Oct 2005
    Location
    Sweden
    Posts
    3,612


    Did you find this post helpful? Yes | No

    Default Re: Determining variable length (number of digits) possible?

    12345 / 10 = 1234
    12345 / 100 = 123
    12345 / 1000 = 12
    12345 / 10000 = 1

    /Henrik.

  9. #9
    Join Date
    Feb 2013
    Posts
    1,124


    Did you find this post helpful? Yes | No

    Default Re: Determining variable length (number of digits) possible?

    This requires too many IFs....
    On spectrum we had X=LEFT(Y,Z)....

Similar Threads

  1. Replies: 11
    Last Post: - 9th March 2020, 12:37
  2. Measuring a variable freq/length pulse and generating more pulses.
    By retepsnikrep in forum mel PIC BASIC Pro
    Replies: 10
    Last Post: - 18th September 2014, 09:10
  3. Determining how much RAM is available?
    By Art in forum mel PIC BASIC Pro
    Replies: 1
    Last Post: - 20th February 2012, 16:04
  4. Determining LONG compiler
    By Charles Linquis in forum mel PIC BASIC Pro
    Replies: 2
    Last Post: - 10th September 2011, 19:19
  5. HSERIN for variable length string
    By Pic2008 in forum mel PIC BASIC Pro
    Replies: 1
    Last Post: - 19th February 2010, 05:58

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts