diff --git a/firmware/basic/menu.c b/firmware/basic/menu.c index e59eaed..64e9474 100644 --- a/firmware/basic/menu.c +++ b/firmware/basic/menu.c @@ -4,6 +4,7 @@ #include "lcd/fonts.h" #include "lcd/render.h" +#include "lcd/print.h" /**************************************************************************/ @@ -72,9 +73,9 @@ void handleMenu(const struct MENU *the_menu) { the_menu->entries[menuselection]->callback(); break; case BTN_ENTER: - lcdFill(0); - DoString(0,0,"Called...."); - lcdDisplay(0); + lcdClear(); + lcdPrintln("Called..."); + lcdRefresh(); if (the_menu->entries[menuselection]->callback!=NULL) the_menu->entries[menuselection]->callback(); lcdDisplay(0); diff --git a/firmware/lcd/Makefile b/firmware/lcd/Makefile index c5c2eb3..3069823 100644 --- a/firmware/lcd/Makefile +++ b/firmware/lcd/Makefile @@ -8,6 +8,7 @@ OBJS += display.o OBJS += render.o OBJS += decoder.o OBJS += backlight.o +OBJS += print.o FONTS = $(basename $(wildcard fonts/*.c)) diff --git a/firmware/lcd/display.c b/firmware/lcd/display.c index b6a3c83..c56c7a2 100644 --- a/firmware/lcd/display.c +++ b/firmware/lcd/display.c @@ -12,7 +12,8 @@ uint8_t lcdBuffer[RESX*RESY_B]; int lcd_layout = 0; -uint32_t intstatus; +uint32_t intstatus; // Caches USB interrupt state + // (need to disable MSC while displaying) #define TYPE_CMD 0 #define TYPE_DATA 1 diff --git a/firmware/lcd/print.c b/firmware/lcd/print.c new file mode 100644 index 0000000..669e210 --- /dev/null +++ b/firmware/lcd/print.c @@ -0,0 +1,36 @@ +#include +#include +#include + +int x=0; +int y=0; + +void lcdPrint(const char *string){ + x=DoString(x,y,string); +}; + +void lcdNl(void){ + x=0;y+=font->u8Height; +}; + +void lcdPrintln(const char *string){ + lcdPrint(string); + lcdNl(); +}; + +void lcdPrintInt(const int num){ + x=DoInt(x,y,num); +}; + +void lcdPrintIntHex(const int num){ + x=DoIntX(x,y,num); +}; + +void lcdClear(){ + x=0;y=0; + lcdFill(0); +}; + +void lcdRefresh(){ + lcdDisplay(0); +}; diff --git a/firmware/lcd/print.h b/firmware/lcd/print.h new file mode 100644 index 0000000..506563b --- /dev/null +++ b/firmware/lcd/print.h @@ -0,0 +1,7 @@ +void lcdPrint(const char *string); +void lcdNl(void); +void lcdPrintln(const char *string); +void lcdPrintInt(const int num); +void lcdPrintIntHex(const int num); +void lcdClear(); +void lcdRefresh();