diff --git a/glcd.c b/glcd.c index 1c67841b..55c1dc7a 100755 --- a/glcd.c +++ b/glcd.c @@ -69,11 +69,17 @@ static __inline uint16_t lcdReadReg(uint16_t lcdReg) { } uint16_t lcdGetHeight(void) { - return lcd_height; + if(orientation == portrait || orientation == portraitInv) + return lcd_height; + else if(orientation == landscape || orientation == landscapeInv) + return lcd_width; } uint16_t lcdGetWidth(void) { - return lcd_width; + if(orientation == portrait || orientation == portraitInv) + return lcd_width; + else if(orientation == landscape || orientation == landscapeInv) + return lcd_height; } static void lcdSetCursor(uint16_t x, uint16_t y) { @@ -252,6 +258,12 @@ void lcdDrawLine(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t co } } +void lcdDrawArrow(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t color) { + lcdDrawLine(x0, y0, x1, y1, color); + lcdDrawLine(x1, y1, x1-5, y1+5, color); + lcdDrawLine(x1, y1, x1-5, y1-5, color); +} + void lcdDrawChar(uint16_t x, uint16_t y, unsigned char c, uint16_t charcolor, uint16_t bkcolor) { uint16_t i = 0; uint16_t j = 0; diff --git a/glcd.h b/glcd.h index f00039fc..fb9900fd 100755 --- a/glcd.h +++ b/glcd.h @@ -55,6 +55,7 @@ void lcdDrawLine(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t co void lcdDrawRect(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint8_t filled, uint16_t color); void lcdDrawRectString(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint8_t* str, uint16_t fontColor, uint16_t bkColor); void lcdDrawCircle(uint16_t x, uint16_t y, uint16_t radius, uint8_t filled, uint16_t color); +void lcdDrawArrow(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t color); void lcdDrawString(uint16_t x, uint16_t y, uint8_t *str,uint16_t color, uint16_t bkColor); void lcdDrawChar(uint16_t x, uint16_t y, unsigned char c, uint16_t charcolor, uint16_t bkColor); uint16_t lcdGetHeight(void);