Customizing font style for running message...


Closed Thread
Results 1 to 18 of 18

Hybrid View

  1. #1
    Join Date
    Nov 2005
    Location
    Bombay, India
    Posts
    970


    Did you find this post helpful? Yes | No

    Default Re: Customizing font style for running message... Dot matrix editor

    There is something called the dot factory http://www.pavius.net/2009/07/the-do...age-generator/ This is one very useful tool which allows you to convert any font/image from your PC.

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


    Did you find this post helpful? Yes | No

    Default Re: Customizing font style for running message... Dot matrix editor

    @Jerson

    Cool...thanks for the link.

    kind regards,
    tacbanon

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


    Did you find this post helpful? Yes | No

    Default Re: Customizing font style for running message... Dot matrix editor

    Hello, I'm back...I understand how to make the text message stop and scroll forward... can any one point out how can I make it scroll up.
    Bellow is the code I'm using...
    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
    
    CLEAR  :  portd=255:sure=200 :GOTO oku:
    oku:
    call yazi  : yazi_reg=yazi_reg+1  :  z=harf_reg
        for i=1 to z
            call yazi  : yazi_reg=yazi_reg+1  : 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=%11111110:pauseus sure:portc=%11111111
        next i
        for i=0 to 15
            portb=sutun_reg[t]  :  t=t+1
            porta=i
            portc=%11111101:pauseus sure:portc=%11111111
        next i
        for i=0 to 15
            portb=sutun_reg[t]  :  t=t+1
            porta=i
            portc=%11111011:pauseus sure:portc=%11111111
        next i
    
         for i=0 to 15
            portb=sutun_reg[t]  :  t=t+1
            porta=i
            portc=%11110111:pauseus sure:portc=%11111111
        next i
    
        for i=0 to 11
            portb=sutun_reg[t]  :  t=t+1
            porta=i
            portc=%11101111:pauseus sure:portc=%11111111
        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]
        next i
            sutun_reg[240]=yedek
    goto gonder
    yazi:
    lookup yazi_reg,[10,"HELLO WORLD"],harf_reg
    return
    
    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,[$05, $24, $74, $54, $7C, $78_      ;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
    This is the code for scrolling..
    Code:
    kaydir:
        yedek=sutun_reg[0]
        for i=0 to 239
            sutun_reg[i]=sutun_reg[i+1]
        next i
            sutun_reg[240]=yedek
    Thanks in advance,
    tacbanon

  4. #4
    Join Date
    May 2006
    Location
    Del Rio, TX, USA
    Posts
    343


    Did you find this post helpful? Yes | No

    Default Re: Customizing font style for running message... Dot matrix editor

    What you want to do is shift the bits for each byte. Shift left to scroll up, shift right to scroll down.

    Scroll up: sutun_reg[i]=sutun_reg[i] << 1

    Scroll up: sutun_reg[i]=sutun_reg[i] >> 1

    Note that this does NOT carry the bits over, so after doing it 8 times, the display will be blank.

    If you want to display to "roll", then you would need to save the MSbit (or LSbit scrolling down) and then make it the LSbit (MSbit for scrolling down)after the shift.

    so, here's one way to do that (there is likely a more efficient way).

    Code:
    temp_byte = sutun_reg[i]
    temp_bit = temp_byte.7
    temp_byte = temp_byte << 1
    temp_byte.0 = temp_bit
    sutun_reg[i] = temp_byte

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


    Did you find this post helpful? Yes | No

    Default Re: Customizing font style for running message... Dot matrix editor

    @ SteveB
    Code:
    temp_byte = sutun_reg[i]
    temp_bit = temp_byte.7
    temp_byte = temp_byte << 1
    temp_byte.0 = temp_bit
    sutun_reg[i] = temp_byte
    Thank you for the info and code..works awesome on my setup. However I was thinking of adding a little delay when (each letter are complete and reached the base of the matrix), before it'll scroll up again. I tried to add pauseus 200 in the code below but no effect..what do you think I'm missing?
    Code:
    pauseus 200
    for i=0 to 30
            ;sutun_reg[i]=sutun_reg[i+1]
            temp_byte = sutun_reg[i]
            temp_bit = temp_byte.7
            temp_byte = temp_byte << 1
            temp_byte.0 = temp_bit
            sutun_reg[i] = temp_byte
     next i
    Kind regards,
    tacbanon
    Last edited by tacbanon; - 30th June 2012 at 04:54.

  6. #6
    Join Date
    May 2006
    Location
    Del Rio, TX, USA
    Posts
    343


    Did you find this post helpful? Yes | No

    Default Re: Customizing font style for running message... Dot matrix editor

    "pauseus 200" is too quick, hardly a blink of an eye (it's 1/5 of a millisecond). Try "PAUSE 1000" This will be a 1 sec pause.

  7. #7
    Join Date
    May 2006
    Location
    Del Rio, TX, USA
    Posts
    343


    Did you find this post helpful? Yes | No

    Default Re: Customizing font style for running message... Dot matrix editor

    Here is a little more optimized code for the scroll up:

    Code:
    temp_byte = sutun_reg[i]
    temp_Byte = temp_Byte << 1
    temp_Byte.0 = STATUS.0
    sutun_reg[i] = temp_byte
    It get's rid of the bit variable by taking advantage of the fact that the underlying assembly instruction moves the MSbit from the left shift into the "C" bit (which is bit 0) of the "STATUS" register.

    This will also work in a similar way for scrolling down:

    Code:
    temp_byte = sutun_reg[i]
    temp_Byte = temp_Byte >> 1
    temp_Byte.7= STATUS.0
    sutun_reg[i] = temp_byte

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