??? 09/06/09 17:04 Read: times |
#168758 - Two questions .. Responding to: ???'s previous message |
What's the hurry? 1.6 ms is not a long time for screen update. CRT's typically do that at nominally 60 Hz (16.67 ms/frame), though some go faster. Nobody can read it that fast.
Why not unroll the loop? If you unroll the loop, say, with a callable 256-instruction macro containing single MOVX instruction, then test the DPH afterward, you'll be going pretty fast using a DS89C4x0. You don't have to use the full-up DS89C450 if the '430 will do. If your display will tolerate the fast bus cycle, then you can operate it at 33 MHz, giving you a <30 ns cycle. The '4x0's allow you to adjust the external memory cycle length so you can operate at the peak rate the display will allow. You can even make the adjustment on-the-fly, if it is helpful, so other external devices don't have to slow down for the display bus cycle. Whether you use the method Erik suggests, namely controlling the high bus via P2 or controlling it via DPH doesn't matter, since either MOVX takes 2 cycles with the DS89C4x0. Of course, you could unroll the loop into a single pass of 1K MOVX instructions, it wouldn't be terribly efficient of code space, but I don't see how it could be any faster, since you then don't even have to check the content of DPH or P2. Keep in mind, that the instructions that don't use the external bus aren't extended when the external bus cycle is extended to suit peripherals, so it veritably flies. RE |
Topic | Author | Date |
Fastest way to fill buffer | 01/01/70 00:00 | |
something like this | 01/01/70 00:00 | |
when software hits limits... | 01/01/70 00:00 | |
auto-increment | 01/01/70 00:00 | |
Two questions .. | 01/01/70 00:00 | |
But Gonzallo unrolled it already isn't it? | 01/01/70 00:00 | |
Yes, but not with the hardware increment | 01/01/70 00:00 | |
be specific | 01/01/70 00:00 | |
Don't forget about the Maxim/Dallas parts! | 01/01/70 00:00 | |
what to unroll | 01/01/70 00:00 | |
Well, what you CAN do ...![]() | 01/01/70 00:00 |