diff --git a/Firmware/backlight.cpp b/Firmware/backlight.cpp index 64a0e0c17..72850d2ca 100644 --- a/Firmware/backlight.cpp +++ b/Firmware/backlight.cpp @@ -12,6 +12,7 @@ #ifdef LCD_BL_PIN +bool backlightSupport = 0; int16_t backlightLevel = 0; int16_t backlightLevel_old = 0; unsigned long backlightTimer_period = 10000ul; @@ -21,7 +22,7 @@ LongTimer backlightTimer; static void backlightDim() { // if (backlightIsDimmed) return; - backlightLevel /= 4; //make the display half as bright. + backlightLevel /= 4; //make the display dimmer. backlightIsDimmed = true; } @@ -40,6 +41,7 @@ void backlightTimer_reset() //used for resetting the timer and waking the displa void backlight_update() { + if (!backlightSupport) return; if (backlightTimer.expired(backlightTimer_period)) backlightDim(); if (backlightLevel != backlightLevel_old) //update pwm duty cycle @@ -53,6 +55,14 @@ void backlight_update() 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); WRITE(LCD_BL_PIN,0); backlightTimer_reset(); //initializes eeprom data and starts backlightTimer diff --git a/Firmware/backlight.h b/Firmware/backlight.h index ee656f884..84a2a17e6 100644 --- a/Firmware/backlight.h +++ b/Firmware/backlight.h @@ -5,6 +5,7 @@ #include extern int16_t backlightLevel; +extern bool backlightSupport; extern void backlight_update(); extern void backlight_init(); diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 6fa63c7c7..715719ca6 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -5774,7 +5774,10 @@ static void lcd_settings_menu() SETTINGS_SOUND; #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 if (farm_mode)