//#include #include "LCDCtrl.h" #include "BoardCfg.h" #include "timer.h" #include "hd44780.h" #include "BatteryMonitor.h" unsigned int mIsLCDON; unsigned int mPinStateToggle; void InitLCDCtrl() { mIsLCDON = 0; mPinStateToggle = 0; LCD_RS_PIN = 0; LCD_RW_PIN = 0; LCD_E_PIN = 0; LCD_DB4_PIN = 0; LCD_DB5_PIN = 0; LCD_DB6_PIN = 0; LCD_DB7_PIN = 0; // HD44780_Init(); // // HD44780_DisplayClear(); // HD44780_PositionXY(0, 0); // // send char // HD44780_DrawString("Le Chalet"); // HD44780_PositionXY(0, 1); // HD44780_DrawString("Ile aux chevres"); // display clear //HD44780_DisplayOn(); TimerStart(LCD_CTRL_TIMER,LCD_REFRESH_TIMEOUT); } void TickLCDCtrl() { if(LCD_SCROLL_BTN_PIN == 0) { if(mPinStateToggle == 0) { mPinStateToggle = 1; if(mIsLCDON == 1) { mIsLCDON = 0; HD44780_DisplayClear(); LCD_RS_PIN = 0; LCD_RW_PIN = 0; LCD_E_PIN = 0; LCD_DB4_PIN = 0; LCD_DB5_PIN = 0; LCD_DB6_PIN = 0; LCD_DB7_PIN = 0; } else { mIsLCDON = 1; HD44780_Init(); HD44780_DisplayClear(); HD44780_DisplayOn(); } } } else { if(mPinStateToggle == 1) { mPinStateToggle = 0; } } if(IsTimerExpired(LCD_CTRL_TIMER)) { if(mIsLCDON == 1) { float VBat = GetBatteryVoltage(0); float ISolar = GetConvertedSolarPanelCurrent(); char line1[16], line2[16]; snprintf(line1,16,"VBat: %.2fV ",VBat); if(ISolar < (float)0.1) { ISolar *= 1000; snprintf(line2,16,"ISol: %.2fmA ",ISolar); } else { snprintf(line2,16,"ISol: %.5fA ",ISolar); } // // HD44780_Init(); // HD44780_DisplayClear(); HD44780_PositionXY(0, 0); HD44780_DrawString(line1); HD44780_PositionXY(0, 1); HD44780_DrawString(line2); } TimerStart(LCD_CTRL_TIMER,LCD_REFRESH_TIMEOUT); } }