Customizing font style for running message...


Closed Thread
Results 1 to 18 of 18
  1. #1
    Join Date
    Jun 2011
    Location
    Philippines
    Posts
    223

    Default Customizing font style for running message...

    Hi everyone,
    I'm trying to modify font style for the led matrix display(2x 8x8) please image below.
    Name:  AB_output1.jpg
Views: 4283
Size:  433.7 KB
    and the following table is the font I'm using..
    Code:
    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]veri  ;E
    As I understood there are hex values for each letter to turn on the individual leds in columns. Is it possible to change the style like bold and italic and is there a tool that will make this task easier? Sorry to ask this too but is it possible to display animated icon like pac-man? I appreciate any help.

    Thanks in advance,
    tacbanon

  2. #2
    Join Date
    Feb 2006
    Location
    Gilroy, CA
    Posts
    1,530


    Did you find this post helpful? Yes | No

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

    The excel file attached lets you create fonts in dot matrix, and outputs the binary code for each column. Here is a description: http://www.instructables.com/id/LED-...cs-Generator-/
    Name:  LED-Scolling-Dot-Matrix-Font-Graphics-Generator-.jpg
Views: 3360
Size:  19.9 KB

    Here is one example of bold dot matrix font: http://www.identifont.com/show?1SN
    Name:  DotMatrixTwoExtended.gif
Views: 7952
Size:  14.8 KB
    Attached Files Attached Files
    Last edited by ScaleRobotics; - 24th June 2012 at 17:36.
    http://www.scalerobotics.com

  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 scalerobotics,
    Thanks for sharing. I will try it and post here my output.

    Regards,
    tacbanon

  4. #4
    Join Date
    Nov 2005
    Location
    Bombay, India
    Posts
    947


    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.

  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

    @Jerson

    Cool...thanks for the link.

    kind regards,
    tacbanon

  6. #6
    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

  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

    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

  8. #8
    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.

  9. #9
    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.

  10. #10
    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

  11. #11
    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
    Thanks again for the update...but sorry to bother you with this again, my text is scrolling downward at pauseus 200(fast) but in a certain point I want to pause it for about a 1 sec before it continue its process again.
    Name:  scroll.png
Views: 2884
Size:  7.6 KB

    I tried to place pause within the program but not the exact output I'm trying to achieve...hope there is a way to do this.

    regards,
    tacbanon
    Last edited by tacbanon; - 30th June 2012 at 10:30.

  12. #12
    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

    You need to pause after 8 cycles, this should work:

    Code:
        Scroll_Position = Scroll_Position + 1
        IF Scroll_Position = 8 THEN
            PAUSE 1000
            Scroll_Position = 0
        ELSE
            PAUSE 100
        ENDIF
    It looks like it should go after the "NEXT Q"

  13. #13
    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

    Scroll_Position = Scroll_Position + 1
    IF Scroll_Position = 8 THEN
    PAUSE 1000
    Scroll_Position = 0
    ELSE
    PAUSE 100
    ENDIF
    Hi,
    The only problem now I'm having is that when it execute the "PAUSE 1000" it clears the matrix(blank) and prints again the letters after the pause.

    Kind regards,
    tacbanon

  14. #14
    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

    Please post the code you have now. That will help sort out the logic.
    I suspect the problem is that you need to execute the output code under "Gondor:" frequently enough to refresh the display, and the pause in interfering with the refresh.

  15. #15
    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

    Quote Originally Posted by SteveB View Post
    Please post the code you have now. That will help sort out the logic.
    I suspect the problem is that you need to execute the output code under "Gondor:" frequently enough to refresh the display, and the pause in interfering with the refresh.
    I did try to find to place the code(you gave) and test it(by trial and error)...but having no luck. The following is the code I'm working on.
    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
    Scroll_Position var byte
    temp_byte var byte
    temp_bit var bit
    sure var byte
    yedek var byte
    
    CLEAR  :  portd=255:sure=500 :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:
    ;---------------------------------------------------
        Scroll_Position = Scroll_Position + 1
        IF Scroll_Position = 16 THEN   ; when this is TRUE it clears the matrix(turned off leds) for 1second
           
            pause 1000
            Scroll_Position = 0 
           
        ELSE          
        ENDIF 
    
    ;---------------------------------------------------
    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 30        
            
            temp_byte = sutun_reg[i]
            temp_Byte = temp_Byte << 1
            temp_Byte.0 = STATUS.0
            sutun_reg[i] = temp_byte
            
    ;----------------------------------
       
            
            
        next i  
       
       
    goto gonder
    yazi:
    lookup yazi_reg,[12,"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
    Thanks for taking the time helping...

    regards,
    tacbanon

  16. #16
    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

    I can't test it out here, but I suspect that the problem with the longer pause is that the matrix wasn't being refreshed. So I modified a couple of things to control the flow of the program a little.

    I made a "Main_Loop" inside of which "gonder" is called as a GOSUB and the scrolling is controlled with a GOSUB to "kaydir". So both of those sections of code now terminate in a RETURN.

    This allows for the modified pause control. As you can see, the longer pause is multiple short pauses with a call to "gonder" in between to keep the display refreshed.

    Hope this helps.


    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
        Scroll_Position VAR BYTE
        Pause_Cnt VAR BYTE
        temp_byte VAR byte
        temp_bit VAR bit
        sure VAR BYTE
        yedek VAR BYTE
    
        CLEAR  
        portd=255 : sure=500
        
    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
    
    Main_Loop:
        GOSUB gonder
        
        Scroll_Position = Scroll_Position + 1
        IF Scroll_Position = 16 THEN
            For Pause_Cnt = 1 to 10         '<-- Change to control duration of pause after scroll, 10 = 1 sec, 20 = 2 sec, ...
                Pause 100
                GOSUB gonder
            Next Pause_Cnt
            Scroll_Position = 0   
        ELSE
            GOSUB Kaydir
            PAUSE 100    
        ENDIF
        
        GOTO Main_Loop
    
    
    '-------------------------------------------------------------------------------
    yazi:
        LOOKUP yazi_reg,[12,"HELLO WORLD"],harf_reg
        RETURN
    
    '-------------------------------------------------------------------------------
    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
        Return
        
    '-------------------------------------------------------------------------------
    kaydir:
        yedek=sutun_reg[0]
        FOR i=0 TO 30
            temp_byte = sutun_reg[i]
            temp_Byte = temp_Byte << 1
            temp_Byte.0 = STATUS.0
            sutun_reg[i] = temp_byte
        NEXT i
        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

  17. #17
    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 SteveB,
    Your'e awesome...works great as you expected.
    I will build to extend the length of led matrix display and post here the results.

    Regards,
    tacbanon

  18. #18
    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

    Glad it worked!

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