Shop OBEX P1 Docs P2 Docs Learn Events
TV Character Display - uses only 2.8KB — Parallax Forums

TV Character Display - uses only 2.8KB

cgraceycgracey Posts: 14,206
edited 2006-05-23 20:29 in Propeller 1
Here's the TV complement to the efficient VGA character display posted yesterday.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔


Chip Gracey
Parallax, Inc.

Post Edited (Chip Gracey (Parallax)) : 5/18/2006 7:26:40 AM GMT

Comments

  • GadgetmanGadgetman Posts: 2,436
    edited 2006-05-18 07:36
    That is AWESOME!

    I've looked a the source a bit, but can't find a small detail...

    How do you tell it to use PAL coding?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Don't visit my new website...
  • John CulverJohn Culver Posts: 5
    edited 2006-05-18 13:41
    Try changing vga_text.spin line·189 from

    ······················· long··· %10010········· 'mode
    to

    ······················· long··· %10011········· 'mode

    The bottom bit controls NTSC/PAL. You can go black and white by changing bits 2 and 3 to 1.


    ·
  • rokickirokicki Posts: 1,000
    edited 2006-05-18 23:22
    Maybe the next version of the propeller tool can have a menu option to "phone home" and download the
    latest and greatest object library? Perhaps providing a "virtual folder" in the explorer pane that visits
    the object repository? This would be a great way to have all these wonderful things right at your
    fingertips.
  • Jeff MartinJeff Martin Posts: 760
    edited 2006-05-19 14:52
    Hi,

    I've been considering something like this for a few weeks. We will likely implement something of this nature, but the specifics of how it will be done are unclear at the moment because we're in the process of a major redesign of our web/ftp site and behind-the-scenes structure.

    This is an excellent idea.

    Thanks for the suggestion!

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    --Jeff Martin

    · Sr. Software Engineer
    · Parallax, Inc.
  • pjvpjv Posts: 1,903
    edited 2006-05-20 06:09
    Hi All;

    A further related point, and request to Parallax:

    As updates to the various "download" sections (code, manuals, PDF's etc.) of the website are made, could these somehow be tagged with a date?

    The words "new" or "latest" don't mean much after one has been absent from those spots for a while. It would sure save some downloading to check to see if one already has the "newest" or "latest" piece of information.

    Thanks for your consideration.

    Cheers,

    Peter (pjv)
  • Stan671Stan671 Posts: 103
    edited 2006-05-20 23:52
    Connected to my Propeller, I use a 5" LCD display with composite input that is normally used for viewing DVD's in a car.

    With the orginal TV_Terminal object, the display is solid with no flickering. With this new TV_Text object, the display has a noticable and bothersome flicker. Two questions:

    - What is the difference ... why the flicker? Do the two objects use different refresh rates, maybe?

    - Is there anything that can be done?

    Thanks in advance.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Stan Dobrowski
  • cgraceycgracey Posts: 14,206
    edited 2006-05-21 05:23
    Stan,

    The tv_text object uses interlaced mode to get double the scan lines to be able to represent a whole 13 rows of the internal 16x32 pixel character font. The only thing you could do to reduce the flicker would be to turn off interlace in the tv_mode parameter and reduce 'rows' to 6. This would render only 6 rows of text, though, and not be so useful.

    - Chip
    Stan671 said...
    Connected to my Propeller, I use a 5" LCD display with composite input that is normally used for viewing DVD's in a car.

    With the orginal TV_Terminal object, the display is solid with no flickering. With this new TV_Text object, the display has a noticable and bothersome flicker. Two questions:

    - What is the difference ... why the flicker? Do the two objects use different refresh rates, maybe?

    - Is there anything that can be done?

    Thanks in advance.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔


    Chip Gracey
    Parallax, Inc.
  • ForrestForrest Posts: 1,341
    edited 2006-05-21 05:43
    You could also try adjusting the background and character colors. You should see less flickering if you reduce the contrast between the background and character colors. Try white characters on a blue background.
  • rokickirokicki Posts: 1,000
    edited 2006-05-21 09:24
    Can't we go back to non-interlace mode, and just or-together consecutive rows? I know this would decrease the quality somewhat,
    but the flicker can be maddening.
  • Stan671Stan671 Posts: 103
    edited 2006-05-22 11:28
    Thanks for the info, Chip. I understand.

    Forrest, I will try your suggestion of the for/back-ground contrast. Thanks.

    Stan

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Stan Dobrowski
  • Paul BakerPaul Baker Posts: 6,351
    edited 2006-05-23 18:28
    Is there a simple means for overriding the newline characterisitic of the tv_text object? Ive replaced TV_Terminal with TV_text in my logic analyser project with good success, using the waveform and line connection characters of the Parallax font look nice. But I dont want the newline executed when the last character is filled. I attempted just commenting out the if...newline section of the out(c) routine, but this messes the entire display up (only the first character of a string of characters is printed). Its probably something simple Im missing, I was quite exhuasted when trying to deal with it last night.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    1+1=10
  • Beau SchwabeBeau Schwabe Posts: 6,568
    edited 2006-05-23 20:08
    Paul Baker,

    If you are not sending any special characters, i.e. return, tab, etc. out(c) eventually filters out to being equivalent to print(c)


    Looking at print(c)


    PRI print(c)
    
      screen[noparse][[/noparse]row * cols + col] := (color << 1 + c & 1) << 10 + $200 + c & $FE
      if ++col == cols
        newline
    
    




    I believe that your culprit is the last two lines that read...

      if ++col == cols
        newline
    
    





    As long as you only used printable characters, you could just implement your own "print(c)" routine that does not check if you run off the page
    and call it anything you want.

    PUB PaulPrint(c)
           screen[noparse][[/noparse]row * cols + col] := (color << 1 + c & 1) << 10 + $200 + c & $FE
    
    

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Beau Schwabe

    IC Layout Engineer
    Parallax, Inc.
  • Paul BakerPaul Baker Posts: 6,351
    edited 2006-05-23 20:23
    Sorry Beau, my memory failed me in my post, I meant the print(c) routine. I deleted the exact section you suggested and the str function stopped working properly for reasons I cannot explain. From what I remember when using str with the altered print(c) only the first character of the string was displayed. Ill look into it further this evening, I want the autoupdate function for the column address but not for the row address since I want to print an entire waveform located horizontally in a row w/o causing the scroll (and not needing a $0A (column adress) for every character drawn. I was hoping for some easy way of suppression that didnt entail distributing an alternate TV_text object, but I think thats not in the cards.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    1+1=10
  • Beau SchwabeBeau Schwabe Posts: 6,568
    edited 2006-05-23 20:29
    Paul,
    You said...

    I was hoping for some easy way of suppression that didn’t entail distributing an alternate TV_text object, but I think that’s not in the cards.

    You still can! The "modified" or altered function set can fit within your main code, just call it differently when you want the 'newline' suppressed.
    There is no need for distributing an alternate TV_text object.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Beau Schwabe

    IC Layout Engineer
    Parallax, Inc.
Sign In or Register to comment.