Shop OBEX P1 Docs P2 Docs Learn Events
TV Flicker — Parallax Forums

TV Flicker

PhilldapillPhilldapill Posts: 1,283
edited 2008-06-13 16:17 in Propeller 1
I've been trying to get this to stop for a good while now. When I'm outputing something to the TV, it's usually something like data that's always in the same spot on the screen, ie, almost identical screens. The only problem, is that everytime I update the screen with something new, I have to clear it off, and draw it all again. I wouldn't mind except for the ugly flicker... Is there any simple way to fix this? Double buffering perhaps?

Comments

  • stevenmess2004stevenmess2004 Posts: 1,102
    edited 2008-06-13 07:15
    You have many options. First of all what drivers are you using? tv_text, graphics or something else?

    If it is tv_text than you can just write directly over the old data. Otherwise you can write an assembly driver for want to do which will be a lot quicker, wait for the sync on the display, double buffer the display, use an XOR technique...
  • PhilldapillPhilldapill Posts: 1,283
    edited 2008-06-13 07:22
    I have no experience with assembly... I'm just using the simple TV_Text. Is there anyway I can store the positions of each "entry" and just write a function to go to that position, rewrite it, and return to the cursor perhaps? I assume the flicker is actually due to that one frame or two that the screen is blank when I clear it?
  • stevenmess2004stevenmess2004 Posts: 1,102
    edited 2008-06-13 07:52
    The flicker is due to how long it takes to write to the screen, not how long it takes to clear the screen. To go to a position on the screen just check the out method. It has all the commands you need for going to a specific location.
  • jazzedjazzed Posts: 11,803
    edited 2008-06-13 16:17
    Flicker can also happen if you update one character at a time if the character changes quickly. If you wait for the driver data's status bit to be a given state (1 it seems) before writing the new character it should help. Spin is a little slow being interpreted so the effect of doing this is unknown. Given the horizontal line display period at around 65us it could help in spin, otherwise an asm layer for updating the display would work. In C it certainly makes a difference because the "wait" only takes 1us.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Sign In or Register to comment.