#ifndef __MYLCD_H #define __MYLCD_H #undef PROGMEM #define PROGMEM #include class MyLCD : public LCD_ILI9325D { /* 2.8" ILI9325 based LCD 320x240x16bpp*/ public: uint8_t column, line; MyLCD() { LCD_ILI9325D::setFontSize(FONT_SIZE_SMALL); this->clear(); } byte getLines() { return 30; } byte getCols() { return 53; } void setCursor(uint8_t column, uint8_t line) { /* column and line as in a terminal, start at line 1, col 1. each column is one character wide*/ this->column = (column==0)?1:column; this->line = (column==0)?1:line; LCD_ILI9325D::setCursor((column-1)*6, line-1); } void clear() { LCD_ILI9325D::clear(); this->setCursor(1, 1); } size_t println() { if ( this->line < this->getLines() ) { this->setCursor(1, this->line+1); } else { this->clear(); } } void moveRight(size_t len) { if ( this->column+len <= this->getCols() ) { this->setCursor(this->column+len, this->line); } else { this->println(); } } size_t println(const String &s) { size_t len = LCD_ILI9325D::print(s); this->println(); return len; } size_t print(const String &s) { size_t len = LCD_ILI9325D::print(s); this->moveRight(len); return len; } }; #endif