added portrait and landscape inverse mode

This commit is contained in:
Tectu 2012-05-29 02:04:04 +02:00
parent 83b373062b
commit d482576656
2 changed files with 12 additions and 8 deletions

16
glcd.c
View file

@ -68,19 +68,19 @@ static __inline uint16_t lcdReadReg(uint16_t lcdReg) {
static void lcdSetCursor(uint16_t x, uint16_t y) { static void lcdSetCursor(uint16_t x, uint16_t y) {
if(DeviceCode==0x8989) { if(DeviceCode==0x8989) {
if(orientation == portrait) { if(orientation == portrait || orientation == portraitInv) {
lcdWriteReg(0x004e, x); lcdWriteReg(0x004e, x);
lcdWriteReg(0x004f, y); lcdWriteReg(0x004f, y);
} else if(orientation == landscape) { } else if(orientation == landscape || orientation == landscapeInv) {
lcdWriteReg(0x004e, y); lcdWriteReg(0x004e, y);
lcdWriteReg(0x004f, x); lcdWriteReg(0x004f, x);
} }
} }
else if(DeviceCode==0x9919) { else if(DeviceCode==0x9919) {
if(orientation == portrait) { if(orientation == portrait || orientation == portraitInv) {
lcdWriteReg(0x004e, x); lcdWriteReg(0x004e, x);
lcdWriteReg(0x004f, y); lcdWriteReg(0x004f, y);
} else if(orientation == landscape) { } else if(orientation == landscape || orientation == landscapeInv) {
lcdWriteReg(0x004e, y); lcdWriteReg(0x004e, y);
lcdWriteReg(0x004f, x); lcdWriteReg(0x004f, x);
} }
@ -111,9 +111,13 @@ void lcdSetOrientation(uint8_t newOrientation) {
lcdWriteReg(0x0001, 0x293F); lcdWriteReg(0x0001, 0x293F);
lcdWriteReg(0x0011, 0x6078); lcdWriteReg(0x0011, 0x6078);
break; break;
case 2: case portraitInv:
lcdWriteReg(0x0001, 0x693F);
lcdWriteReg(0x0011, 0x6040);
break; break;
case 3: case landscapeInv:
lcdWriteReg(0x0001, 0x6B3F);
lcdWriteReg(0x0011, 0x6048);
break; break;
} }
} }

2
glcd.h
View file

@ -42,7 +42,7 @@
(( green >> 2 ) << 5 ) | \ (( green >> 2 ) << 5 ) | \
( blue >> 3 )) ( blue >> 3 ))
enum orientation {portrait = 0, landscape = 1}; enum orientation {portrait, landscape, portraitInv, landscapeInv};
void lcdInit(void); void lcdInit(void);
void lcdClear(uint16_t color); void lcdClear(uint16_t color);