First implementation

This commit is contained in:
leptun 2019-10-11 19:06:37 +03:00
parent 3aa380e348
commit 68491c9d4d
6 changed files with 54 additions and 6 deletions

View File

@ -989,10 +989,6 @@ void setup()
ultralcd_init(); ultralcd_init();
#if (LCD_BL_PIN != -1) && defined (LCD_BL_PIN)
analogWrite(LCD_BL_PIN, 255); //set full brightnes
#endif //(LCD_BL_PIN != -1) && defined (LCD_BL_PIN)
spi_init(); spi_init();
lcd_splash(); lcd_splash();

33
Firmware/backlight.cpp Normal file
View File

@ -0,0 +1,33 @@
//backlight.cpp
#include "backlight.h"
#include <avr/eeprom.h>
#include <Arduino.h>
#include "eeprom.h"
#include "Marlin.h"
#include "pins.h"
#include "fastio.h"
// #include "Timer.h"
// #include "Configuration.h"
int16_t backlightLevel = 0;
int16_t backlightLevel_old = 0;
// uint16_t backlightCounter = 0;
void backlight_update()
{
if (backlightLevel != backlightLevel_old) //update level
{
analogWrite(LCD_BL_PIN, backlightLevel);
backlightLevel_old = backlightLevel;
eeprom_update_byte((uint8_t *)EEPROM_BACKLIGHT_LEVEL, backlightLevel);
}
}
void backlight_init()
{
SET_OUTPUT(LCD_BL_PIN);
WRITE(LCD_BL_PIN,0);
backlightLevel = eeprom_read_byte((uint8_t *)EEPROM_BACKLIGHT_LEVEL);
backlight_update();
}

13
Firmware/backlight.h Normal file
View File

@ -0,0 +1,13 @@
//backlight.h
#ifndef _BACKLIGHT_H
#define _BACKLIGHT_H
#include <inttypes.h>
extern int16_t backlightLevel;
extern void backlight_update();
extern void backlight_init();
#endif //_BACKLIGHT_H

View File

@ -201,9 +201,10 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP
#define EEPROM_SHEETS_BASE (EEPROM_CHECK_GCODE - EEPROM_SHEETS_SIZEOF) // Sheets #define EEPROM_SHEETS_BASE (EEPROM_CHECK_GCODE - EEPROM_SHEETS_SIZEOF) // Sheets
static Sheets * const EEPROM_Sheets_base = (Sheets*)(EEPROM_SHEETS_BASE); static Sheets * const EEPROM_Sheets_base = (Sheets*)(EEPROM_SHEETS_BASE);
#define EEPROM_BACKLIGHT_LEVEL (EEPROM_SHEETS_BASE-1) // uint8
//This is supposed to point to last item to allow EEPROM overrun check. Please update when adding new items. //This is supposed to point to last item to allow EEPROM overrun check. Please update when adding new items.
#define EEPROM_LAST_ITEM EEPROM_SHEETS_BASE #define EEPROM_LAST_ITEM EEPROM_BACKLIGHT_LEVEL
// !!!!! // !!!!!
// !!!!! this is end of EEPROM section ... all updates MUST BE inserted before this mark !!!!! // !!!!! this is end of EEPROM section ... all updates MUST BE inserted before this mark !!!!!
// !!!!! // !!!!!

View File

@ -99,7 +99,7 @@
//#define KILL_PIN 32 //#define KILL_PIN 32
//#define LCD_BL_PIN 5 //backlight control pin #define LCD_BL_PIN 5 //backlight control pin
#define BEEPER 84 // Beeper on AUX-4 #define BEEPER 84 // Beeper on AUX-4
#define LCD_PINS_RS 82 #define LCD_PINS_RS 82
#define LCD_PINS_ENABLE 61 // !!! changed from 18 (EINY03) #define LCD_PINS_ENABLE 61 // !!! changed from 18 (EINY03)

View File

@ -18,6 +18,7 @@
#include "lcd.h" #include "lcd.h"
#include "menu.h" #include "menu.h"
#include "backlight.h"
#include "util.h" #include "util.h"
#include "mesh_bed_leveling.h" #include "mesh_bed_leveling.h"
@ -5768,6 +5769,8 @@ static void lcd_settings_menu()
SETTINGS_SD; SETTINGS_SD;
SETTINGS_SOUND; SETTINGS_SOUND;
MENU_ITEM_EDIT_int3_P(_i("Backlight"), &backlightLevel, 0, 255);
if (farm_mode) if (farm_mode)
{ {
@ -8567,6 +8570,7 @@ void ultralcd_init()
else lcd_autoDeplete = autoDepleteRaw; else lcd_autoDeplete = autoDepleteRaw;
} }
backlight_init();
lcd_init(); lcd_init();
lcd_refresh(); lcd_refresh();
lcd_longpress_func = menu_lcd_longpress_func; lcd_longpress_func = menu_lcd_longpress_func;
@ -8813,6 +8817,7 @@ void menu_lcd_lcdupdate_func(void)
} }
} }
#endif//CARDINSERTED #endif//CARDINSERTED
backlight_update();
if (lcd_next_update_millis < _millis()) if (lcd_next_update_millis < _millis())
{ {
if (abs(lcd_encoder_diff) >= ENCODER_PULSES_PER_STEP) if (abs(lcd_encoder_diff) >= ENCODER_PULSES_PER_STEP)