Hi,
Another weird proposition.
LCDOUT is a blocking command if I am not wrong and it would be great if a task/que scheduler like app could be designed. During command delay it wastes 2 ms. I believe a whole LCD update/refresh within 200ms should be acceptable.
So the idea is keeping a buffer equal to the total number of LCD character and updating the LCD from it character by character at 2ms interval, through an ISR. So a LCDOUT $FE, 1 just clears the buffer and LCDOUT puts the character in buffer rather than sending it directly to LCD I/Os. Making the timebase 1ms maybe through a compare module may couple other functions as well. RTC for example, non-blocking interrupt compatible delays, MUX options on the LCD lines etc. Use of 2 dimensional arrays makes it possible to have different LCD display screens ready to called just by a pointer may be automatically, sequentially, unattended.....
Hey I am not drunk ........I did it a couple of years back in a hard way. LCD being handled entirely in ASM and not compatible with LCDOUT.
Can't afford 2ms delays in my sinewave inverter (Work in Progress for a PBP WiKi)
Bookmarks