added lcdInvert

added possibility to output the display buffer inverted
This commit is contained in:
bsx 2011-05-22 17:48:02 +02:00
parent 4618351462
commit f9cb3d0992
3 changed files with 21 additions and 4 deletions

View File

@ -30,6 +30,7 @@ void delayms(uint32_t ms)
/**************************************************************************/
uint8_t lcdBuffer[RESX*RESY_B];
int inverted = 0;
/*
//TODO FIXME why doenst that work ?
@ -160,7 +161,16 @@ void lcdDisplay(uint32_t shift)
uint16_t i,page;
for(page=0; page<RESY_B;page++) {
for(i=0; i<RESX; i++) {
lcdWrite(1,lcdBuffer[page*RESX+((i+shift)%RESX)]);
if (inverted) {
lcdWrite(1,~lcdBuffer[page*RESX+((i+shift)%RESX)]);
} else {
lcdWrite(1,lcdBuffer[page*RESX+((i+shift)%RESX)]);
}
}
}
}
void lcdInvert(void) {
inverted = ~inverted;
}

View File

@ -22,5 +22,6 @@ void lcdRead(uint8_t data);
void lcdInit(void);
void lcdFill(char f);
void lcdDisplay(uint32_t shift);
void lcdInvert(void);
#endif

View File

@ -32,20 +32,25 @@ void module_bsx(void) {
brightness++;
if (brightness > 100) brightness = 100;
backlightSetBrightness(brightness);
};
}
if(gpioGetValue(RB_BTN0)==0){
brightness--;
if (brightness > 100) brightness = 0;
backlightSetBrightness(brightness);
};
}
if (gpioGetValue(RB_BTN3) == 0) {
while(gpioGetValue(RB_BTN3)==0);
lcdInvert();
}
if (gpioGetValue(RB_BTN4)==0) {
while(gpioGetValue(RB_BTN4)==0);
DoString(0,8,"Enter ISP!");
lcdDisplay(0);
ReinvokeISP();
};
}
dx = DoString(0, yctr, "Bright:");
dx = DoInt(dx, yctr, brightness);
@ -72,3 +77,4 @@ void module_bsx(void) {
return;
}