Yahoo Groups archive

AVR-Chat

Index last updated: 2026-04-28 22:41 UTC

Message

Re: [AVR-Chat] Re: Dave vanHorn's 4bit LCD lib

2008-04-02 by David VanHorn

On Tue, Apr 1, 2008 at 10:26 PM, Cat C <catalin_cluj@hotmail.com> wrote:
>
>  > Here's a fun question: How did I get 30fps video out of an 8 MHz M128? :)
>
>  Answer: With some difficulty :-D


Sideways..

The data was stored in a gigabyte flash memory, predigested by a
windows program.

So on each frame, I had to read in only 16 words of data. After that,
all I had to do was to toggle an I/O pin for each word of data. On the
low transition the memory read the data onto the bus, and on the high
transition the display took the data off the bus. In the fastest
version, I used a long batch of straightline code to do bit set and
clear, rather than a loop, because the loop was slower. (had to
decrement a counter and decide whether to do it again)

There was a bunch of init code for the display and memory, and a bunch
of code to store the images, but playback was dead simple. It had to
be.  Further, each image was linked to the previous one and the next
one by part of that control data, so that the images didn't even have
to be loaded in any particular order, and four more words defined what
image you'd get sent to if you pressed any of the four buttons while
that image was on.

I used variable frame rate encoding with 16 words of each frame
dedicated to control information. A control word told me how many
milliseconds to wait before pulling up the next frame, unless you
pressed a button.

In addition to the appx 3k of code for the whole app, I could store
three color images in the M128's program space, which made it
convenient for testing.

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.