#include "lcd.h" struct backlight backlight; void lcd_setup(void) { lcd.createChar(0, char_music); lcd.createChar(1, char_smile); lcd.begin(COLS, ROWS); lcd.blink(); pinMode(LCD_BL, OUTPUT); } void bl_tasks(void) { if (backlight.state == BL_FLASH) if (!--backlight.timer) backlight.state = BL_OFF; switch (backlight.state) { case BL_OFF: digitalWrite(LCD_BL, 0); break; case BL_FLASH: case BL_ON: digitalWrite(LCD_BL, 1); break; } } void bl_set(enum backlight_state state) { backlight.state = state; if (state == BL_FLASH) backlight.timer = (unsigned int) -1; }