Backlight detection
This commit is contained in:
parent
5a662413e6
commit
3b005ae38f
3 changed files with 16 additions and 2 deletions
|
@ -12,6 +12,7 @@
|
||||||
|
|
||||||
#ifdef LCD_BL_PIN
|
#ifdef LCD_BL_PIN
|
||||||
|
|
||||||
|
bool backlightSupport = 0;
|
||||||
int16_t backlightLevel = 0;
|
int16_t backlightLevel = 0;
|
||||||
int16_t backlightLevel_old = 0;
|
int16_t backlightLevel_old = 0;
|
||||||
unsigned long backlightTimer_period = 10000ul;
|
unsigned long backlightTimer_period = 10000ul;
|
||||||
|
@ -21,7 +22,7 @@ LongTimer backlightTimer;
|
||||||
static void backlightDim()
|
static void backlightDim()
|
||||||
{
|
{
|
||||||
// if (backlightIsDimmed) return;
|
// if (backlightIsDimmed) return;
|
||||||
backlightLevel /= 4; //make the display half as bright.
|
backlightLevel /= 4; //make the display dimmer.
|
||||||
backlightIsDimmed = true;
|
backlightIsDimmed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,6 +41,7 @@ void backlightTimer_reset() //used for resetting the timer and waking the displa
|
||||||
|
|
||||||
void backlight_update()
|
void backlight_update()
|
||||||
{
|
{
|
||||||
|
if (!backlightSupport) return;
|
||||||
if (backlightTimer.expired(backlightTimer_period)) backlightDim();
|
if (backlightTimer.expired(backlightTimer_period)) backlightDim();
|
||||||
|
|
||||||
if (backlightLevel != backlightLevel_old) //update pwm duty cycle
|
if (backlightLevel != backlightLevel_old) //update pwm duty cycle
|
||||||
|
@ -53,6 +55,14 @@ void backlight_update()
|
||||||
|
|
||||||
void backlight_init()
|
void backlight_init()
|
||||||
{
|
{
|
||||||
|
//check for backlight support on lcd
|
||||||
|
SET_INPUT(LCD_BL_PIN);
|
||||||
|
WRITE(LCD_BL_PIN,HIGH);
|
||||||
|
_delay(10);
|
||||||
|
backlightSupport = !READ(LCD_BL_PIN);
|
||||||
|
if (backlightSupport == 0) return;
|
||||||
|
|
||||||
|
//initialize backlight pin
|
||||||
SET_OUTPUT(LCD_BL_PIN);
|
SET_OUTPUT(LCD_BL_PIN);
|
||||||
WRITE(LCD_BL_PIN,0);
|
WRITE(LCD_BL_PIN,0);
|
||||||
backlightTimer_reset(); //initializes eeprom data and starts backlightTimer
|
backlightTimer_reset(); //initializes eeprom data and starts backlightTimer
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
|
|
||||||
extern int16_t backlightLevel;
|
extern int16_t backlightLevel;
|
||||||
|
extern bool backlightSupport;
|
||||||
|
|
||||||
extern void backlight_update();
|
extern void backlight_update();
|
||||||
extern void backlight_init();
|
extern void backlight_init();
|
||||||
|
|
|
@ -5774,7 +5774,10 @@ static void lcd_settings_menu()
|
||||||
SETTINGS_SOUND;
|
SETTINGS_SOUND;
|
||||||
|
|
||||||
#ifdef LCD_BL_PIN
|
#ifdef LCD_BL_PIN
|
||||||
MENU_ITEM_EDIT_int3_P(_i("Backlight"), &backlightLevel, 0, 255);
|
if (backlightSupport)
|
||||||
|
{
|
||||||
|
MENU_ITEM_EDIT_int3_P(_i("Backlight"), &backlightLevel, 0, 255);
|
||||||
|
}
|
||||||
#endif //LCD_BL_PIN
|
#endif //LCD_BL_PIN
|
||||||
|
|
||||||
if (farm_mode)
|
if (farm_mode)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue