String of characters(array) to decimal value


Closed Thread
Results 1 to 21 of 21

Hybrid View

  1. #1
    Join Date
    Oct 2005
    Location
    Sweden
    Posts
    3,624


    Did you find this post helpful? Yes | No

    Default Re: String of characters(array) to decimal value

    When you do myArray[0] = "H" the ASCII code for 'H' (which is 72) will be what ends up in the variable. If you want to display it as a decimal number on a LCD or UART then use the DEC modifier:
    Code:
    LCDOUT $FE, 1, DEC myArray[0]
    myArray[0] = "H"
    myArray[0] = 72
    myArray[0] = %01001000
    myArray[0] = $48

    All of the above are equal - it's just different interpretations of the same thing, in this case the decimal value 72.

    /Henrik.

  2. #2
    Join Date
    Jun 2011
    Location
    Philippines
    Posts
    223


    Did you find this post helpful? Yes | No

    Default Re: String of characters(array) to decimal value

    Hello Henrik, thank you so much for replying. Sorry for not being clear..I want the value to be use in a SELECT CASE..

    Code:
    Select Case  dec_value
    case "H"
    Serout PORTC.6, T9600, ["H", 13] 
    case "e"
    Serout PORTC.6, T9600, ["e", 13] 
    case "l"
    Serout PORTC.6, T9600, ["l", 13] 
    case "l"
    Serout PORTC.6, T9600, ["l", 13] 
    case "o"
    Serout PORTC.6, T9600, ["o", 13] 
    case "W"
    Serout PORTC.6, T9600, ["W", 13] 
    ......
    END SELECT
    Regards,
    tacbanon

  3. #3
    Join Date
    Oct 2005
    Location
    Sweden
    Posts
    3,624


    Did you find this post helpful? Yes | No

    Default Re: String of characters(array) to decimal value

    I don't understand the problem...The code in your first post should work just fine and so should that in your latest post - have you actually TRIED this or are you just thinking to much ;-)

    myArray[0] = "H"

    If myArray[0] = "H" THEN...
    or
    If myArray[0] = 72 THEN...
    or
    If myArray[0] = 001000 THEN...
    or
    If myArray[0] = $48 THEN...

    Same thing as in my previous response - they are all the exact same thing just expressed in different ways.

  4. #4
    Join Date
    Jun 2011
    Location
    Philippines
    Posts
    223


    Did you find this post helpful? Yes | No

    Default Re: String of characters(array) to decimal value

    Okay I'm a little confused...the following is what I'm actually trying to make it work..
    Code:
    porta=0  :  portb=0  :  portc=0  :  portd=0
    trisa=0  :  trisb=0  :  trisc=0  :  trisd=0
    porte=0  : trise=0
    harf_reg var byte
    adres_sec var byte
    yinele var byte
    sutun_reg var byte[300]
    veri var byte
    yazi_reg var byte 
    i VAR BYTE
    x var byte
    z var byte
    y var byte
    t var byte
    q var byte
    sure var byte
    yedek var byte
    '*****************************************************************************
    myArray VAR BYTE[11]
    myArray[0]="H"     
    myArray[1]="E"
    myArray[2]="L"
    myArray[3]="L"
    myArray[4]="O"
    myArray[5]=" "
    myArray[6]="W"
    myArray[7]="O"
    myArray[8]="R"
    myArray[9]="L"
    myArray[10]="D"
    
    
    CLEAR  :  portd=255:sure=200 :GOTO oku:
    oku:
    z=11
    
    
        for i=1 to z
            
            harf_reg = myArray[i]
        
            call data_sec
            
            for y=0 to yinele
                call datalar
                sutun_reg[t]=veri  :  t=t+1
                adres_sec=adres_sec+1
            next y
        next i
    t=0
    goto gonder
    gonder:
    FOR Q=0 TO 5
        for i=0 to 15
            portb=sutun_reg[t]  :  t=t+1
            porta=i
            
            portc=1111110:PAUSEUS sure:portc=111111
            
        next i
    
    
     for i=0 to 15
            portb=sutun_reg[t]  :  t=t+1
            porta=i
            portc=111101:pauseus sure:portc=111111
        next i
     for i=0 to 15
            portb=sutun_reg[t]  :  t=t+1
            porta=i
            portc=111011:pauseus sure:portc=111111
        next i
     
     for i=0 to 15
            portb=sutun_reg[t]  :  t=t+1
            porta=i
            portc=110111:pauseus sure:portc=111111
        next i
     
     for i=0 to 11
            portb=sutun_reg[t]  :  t=t+1
            porta=i
            portc=101111:pauseus sure:portc=111111
        next i
     
     
       
       
    t=0   
    
    
    NEXT Q
    goto kaydir
    kaydir:
        yedek=sutun_reg[0]
        for i=0 to 239
          ' sutun_reg[i]=sutun_reg[i+1]  ' this is for moving characters
        next i
          '  sutun_reg[240]=yedek
    goto gonder
    
    
    data_sec:
    select case harf_reg
    case "A"
    adres_sec=0  :  yinele=5  :  return
    case "B"
    adres_sec=6  :  yinele=5  :  return
    case "C"
    adres_sec=12  :  yinele=5  :  return
    case "D"
    adres_sec=18  :  yinele=5  :  return
    case "E"
    adres_sec=24  :  yinele=5  :  return
    case "F"
    adres_sec=30  :  yinele=5  :  return
    case "G"
    adres_sec=36  :  yinele=5  :  return
    case "H"
    adres_sec=42  :  yinele=5  :  return
    case "I"
    adres_sec=48  :  yinele=3  :  return
    case "i"
    adres_sec=52  :  yinele=3  :  return
    case "J"
    adres_sec=56  :  yinele=5  :  return
    case "K"
    adres_sec=62  :  yinele=5  :  return
    case "L"
    adres_sec=68  :  yinele=5  :  return
    case "M"
    adres_sec=74  :  yinele=5  :  return
    case "N"
    adres_sec=80  :  yinele=5  :  return
    case "O"
    adres_sec=86  :  yinele=5  :  return
    case "P"
    adres_sec=92  :  yinele=5  :  return
    case "Q"
    adres_sec=98  :  yinele=5  :  return
    case "R"
    adres_sec=104  :  yinele=5  :  return
    case "S"
    adres_sec=110  :  yinele=5  :  return
    case "T"
    adres_sec=116  :  yinele=5  :  return
    case "U"
    adres_sec=122  :  yinele=5  :  return
    case "ü"
    adres_sec=128  :  yinele=5  :  return
    case "V"
    adres_sec=134  :  yinele=5  :  return
    case "W"
    adres_sec=140  :  yinele=5  :  return
    case "X"
    adres_sec=146  :  yinele=5  :  return
    case "Y"
    adres_sec=152  :  yinele=5  :  return
    case "Z"
    adres_sec=158  :  yinele=5  :  return
    case " "
    adres_sec=164  :  yinele=5  :  return
    case "0"
    adres_sec=170  :  yinele=5  :  return
    case "1"
    adres_sec=176  :  yinele=3  :  return
    case "2"
    adres_sec=180  :  yinele=5  :  return
    case "3"
    adres_sec=186  :  yinele=5  :  return
    case "4"
    adres_sec=192  :  yinele=5  :  return
    case "5"
    adres_sec=198  :  yinele=5  :  return
    case "6"
    adres_sec=204  :  yinele=5  :  return
    case "7"
    adres_sec=210  :  yinele=5  :  return
    case "8"
    adres_sec=216  :  yinele=5  :  return
    case "9"
    adres_sec=222  :  yinele=5  :  return
    end select
    
    
    datalar:
    
    
     lookup adres_sec,[$7C,$0A,$09,$0A,$7C,0_      ;A
                       ,$7F,$49,$49,$49,$36,0_      ;B
                       ,$3E,$41,$41,$41,$22,0_      ;C
                       ,$7F,$41,$41,$41,$3E,0_      ;D
                       ,$7F,$49,$49,$49,$41,0_      ;E
                       ,$7F,$09,$09,$09,$01,0_      ;F
                       ,$3E,$41,$49,$49,$3A,0_      ;G
                       ,$7F,$08,$08,$08,$7F,0_      ;H
                       ,$41,$7F,$41,0_              ;I
                       ,$44,$7D,$44,0_              ;Ý
                       ,$20,$40,$41,$3F,$01,0_      ;J
                       ,$7F,$08,$14,$22,$41,0_      ;K
                       ,$7F,$40,$40,$40,$40,0_      ;L
                       ,$7F,$02,$04,$02,$7F,0_      ;M
                       ,$7F,$04,$08,$10,$7F,0_      ;N
                       ,$3E,$41,$41,$41,$3E,0_      ;O
                       ,$7F,$09,$09,$09,$06,0_      ;P
                       ,$3E,$41,$51,$61,$3E,0_      ;Q
                       ,$7F,$09,$19,$29,$46,0_      ;R
                       ,$26,$49,$49,$49,$32,0_      ;S
                       ,$01,$01,$7F,$01,$01,0_      ;T
                       ,$3F,$40,$40,$40,$3F,0_      ;U
                       ,$1E,$41,$01,$41,$1E,0_      ;Ü
                       ,$1F,$20,$40,$20,$1F,0_      ;V
                       ,$3F,$40,$30,$40,$3F,0_      ;W
                       ,$63,$14,$08,$14,$63,0_      ;X
                       ,$07,$08,$70,$08,$07,0_      ;Y
                       ,$61,$51,$49,$45,$43,0_      ;Z
                       ,$00,$00,$00,$00,$00,0_      ;Space
                       ,$3E,$51,$49,$45,$3E,0_      ;0
                       ,$42,$7F,$40,0_              ;1
                       ,$62,$51,$49,$45,$42,0_      ;2    
                       ,$22,$49,$49,$49,$36,0_      ;3
                       ,$18,$14,$12,$7F,$10,0_      ;4
                       ,$2F,$49,$49,$49,$31,0_      ;5
                       ,$3E,$49,$49,$49,$32,0_      ;6
                       ,$61,$11,$09,$05,$03,0_      ;7
                       ,$36,$49,$49,$49,$36,0_      ;8
                       ,$26,$49,$49,$49,$3E,0],veri ;9
    return
    I think my trouble is this part..
    Code:
     for i=1 to z
            
            harf_reg = myArray[i]
    
            call data_sec
    it produce this output (not HELLO WORLD)
    Name:  LedMatrix1.png
Views: 7853
Size:  50.7 KB
    But when I modify it to this code..
    Code:
     for i=1 to z
            
            harf_reg = 64+i
    
            call data_sec
    This is the output..
    Name:  LedMatrix2.png
Views: 7551
Size:  8.0 KB

    What do you think I'm missing in the process?

    Thanks,
    tacbanon
    Last edited by tacbanon; - 10th June 2012 at 15:02.

  5. #5
    Join Date
    Oct 2005
    Location
    Sweden
    Posts
    3,624


    Did you find this post helpful? Yes | No

    Default Re: String of characters(array) to decimal value

    Hi,
    Try using GOSUB instead of CALL.
    Also, your FOR loop starts indexing at myArray[1] instead of myArray[0] but that's not the real problem.

    /Henrik.

  6. #6
    Join Date
    Jun 2011
    Location
    Philippines
    Posts
    223


    Did you find this post helpful? Yes | No

    Default Re: String of characters(array) to decimal value

    Quote Originally Posted by HenrikOlsson View Post
    Hi,
    Try using GOSUB instead of CALL.
    Also, your FOR loop starts indexing at myArray[1] instead of myArray[0] but that's not the real problem.
    /Henrik.
    Hi, I tried it already but no changes...probably I need to try it on the real hardware....I will post later any results.

    Kind regards,
    tacbanon

  7. #7
    Join Date
    Jun 2011
    Location
    Philippines
    Posts
    223


    Did you find this post helpful? Yes | No

    Default Re: String of characters(array) to decimal value

    I thought it was a simulation issue so I tried it in the real device...but to my surprise I still get the same output..(not displaying 'HELLO WORLD')
    Attachment 6520

    I appreciate any input...

    Thanks in advance,
    tacbanon
    Attached Images Attached Images  
    Last edited by tacbanon; - 11th June 2012 at 02:02.

  8. #8
    Join Date
    Aug 2006
    Location
    Look, behind you.
    Posts
    2,818


    Did you find this post helpful? Yes | No

    Default Re: String of characters(array) to decimal value

    Looks to me as if you load HELLO WORLD into your array and then the following statement "CLEAR" erases all of your good work. I would try moving clear up above the array loading statements.
    If you do not believe in MAGIC, Consider how currency has value simply by printing it, and is then traded for real assets.
    .
    Gold is the money of kings, silver is the money of gentlemen, barter is the money of peasants - but debt is the money of slaves
    .
    There simply is no "Happy Spam" If you do it you will disappear from this forum.

Members who have read this thread : 1

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