To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.robotics.nxt.nxthackingOpen lugnet.robotics.nxt.nxthacking in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / NXT / NXT Firmware Hacking / 29
28  |  30
Subject: 
Re: Faster NXT LCD Screen Refresh
Newsgroups: 
lugnet.robotics.nxt.nxthacking
Date: 
Thu, 22 Mar 2007 15:07:29 GMT
Viewed: 
17352 times
  
In lugnet.robotics.nxt.nxthacking, Jason J Railton wrote:
   I already got one shade of grey out of it by flicking between two images at the current rate:



I use all those spare cycles to mix and merge screen layers in real time, so this image has full parallax scrolling. I’ve been trying to do something like this since the MDP call-up went out.

You can update the screen data faster by messing around with the interrupts, but you run up against a big problem.

What you’re doing in code is transferring screen data over a serial link to the single-frame buffer held on the LCD driver chip. You’re not controlling the display’s pixels directly. The LCD controller then refreshes the physical screen from that buffer at a rate of around 60Hz or 70Hz. It doesn’t matter how quickly you actually dump data over the serial link, the display only gets refreshed at the rate dictated by the LCD controller.

That’s why small matrix ‘passive’ LCD devices (like calculators, the original Nintendo Game Boy, and the Grapevine PDA on my desk) only have two shades of grey. They flick between two images as fast as possible, but are able to control the delay between refreshes slightly so that one of the frames lasts a little longer than the other, and you get two different shades of grey. They can’t regulate the brightness of individual pixels like more recent ‘active’ colour LCD displays do (TFTs have a discrete transistor for each pixel).

I’m not sure it’s possible to affect the refresh rate of the actual LCD controller on the NXT, so one shade of grey may well be its limit. I’ve tried longer cycles (four frame patterns), but the flicker is too great. This may improve if I can get the data refresh in synch with the screen refresh, but that’s a tough one.

Only one shade of grey does have an up-side, but I’m working on that at the moment.

Okay, there’s a little more to it than this. If you have a display that supports greyscales, it can control the level of the voltage jolt that’s applied to each pixel during the actual refresh cycle. That way you get a smoother display with less flicker, as the pixels designated as grey never get turned completely black. You still get a little flicker though from the paler shades as they fade out before the next refresh cycle.

Unfortunately, you can’t do this with the NXT unless you want to completely replace the display module. So, it seems a two-frame flicker is about as far as it can go.

Jason R



Message is in Reply To:
  Re: Faster NXT LCD Screen Refresh
 
(...) I already got one shade of grey out of it by flicking between two images at the current rate: (URL) I use all those spare cycles to mix and merge screen layers in real time, so this image has full parallax scrolling. I've been trying to do (...) (18 years ago, 22-Mar-07, to lugnet.robotics.nxt.nxthacking, FTX)

8 Messages in This Thread:




Entire Thread on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    

Custom Search

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR