I am using an Arduino Mega and a 12864ZW LCD with the u8glib library and the following code to draw to the LCD:
U8GLIB_ST7920_128X64 Display(LCD_E_PIN, LCD_RW_PIN, LCD_RS_PIN, U8G_PIN_NONE);
void loop(){
Draw();
}
void Draw(){
Display.firstPage();
do{
Display.setPrintPos(10, 10);
Display.print("This is a test");
}while(Display.nextPage());
}
The problem is that the display is constantly redrawing itself. When I used LCD displays in the past, they usually only required to write to the LCD once unless you wipe the display. When I adjusted the code to:
U8GLIB_ST7920_128X64 Display(LCD_E_PIN, LCD_RW_PIN, LCD_RS_PIN, U8G_PIN_NONE);
bool needsUpdate = true;
void loop(){
Draw();
}
void Draw(){
if (needsUpdate){
Display.firstPage();
do{
Display.setPrintPos(10, 10);
Display.print("This is a test");
}while(Display.nextPage());
needsUpdate = false;
}
}
I do not get anything drawn on the LCD. Is there a parameter that needs to be set so I only have to redraw the LCD if something changes? Am I using an outdated library? Is there a better library I should be using?
EDIT
I think the main problem I have with using this library is does the Draw loop need to be executed continuously to display on the LCD or is there a way to only draw the screen once until it is needed to be drawn again?