On Tue, Apr 1, 2008 at 11:11 PM, Cat C <catalin_cluj@hotmail.com> wrote:
>
> VERY ingenious!
> I don't quite get all of it, but I can say that again: Ingenious :-D
It worked.. :)
The key was storing the data in the flash "ready to go".
To display a frame (after initting the display to a black screen) just
set up the flash to read from the first word of the first frame (known
location) and set up the display to begin loading data.
The flash read pin is tied directly to the display write pin, and the
avrs I/O pin. The 16 data bits are tied straight across from the
flash to the display, and the AVR pins that tie to those pins are set
up as inputs.
So, each time I take the one pin low, the flash outputs a word of data
and is ready to output the next one without further intervention from
me. When I take the pin high, the display writes whatever is on the
bus into it's memory, and also increments it's internal address.
Toggle that pin a bunch of times real fast, and you transfer a bunch
of 16 bit data without having to actually read it in and write it out.
On the first 16 operations, I take the pin low, read the bytes,
stuff them into ram, and then carry on with the rest without reading.
Once I'm done with that operation, I start the frame delay timer, and
start looking for keypresses, and if I get one, I do what the control
information said to do. If I don't get a keypress, then when the
frame delay timer expires, I go to whatever frame the control
information said to.
Note: there is no sound! We could have done that too, but the client
didn't want sound.