Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 
 
 

108 rindas
1.8 KiB

  1. //#include <proc/p32mx440f256h.h>
  2. #include "LCDCtrl.h"
  3. #include "BoardCfg.h"
  4. #include "timer.h"
  5. #include "hd44780.h"
  6. #include "BatteryMonitor.h"
  7. unsigned int mIsLCDON;
  8. unsigned int mPinStateToggle;
  9. void InitLCDCtrl()
  10. {
  11. mIsLCDON = 0;
  12. mPinStateToggle = 0;
  13. LCD_RS_PIN = 0;
  14. LCD_RW_PIN = 0;
  15. LCD_E_PIN = 0;
  16. LCD_DB4_PIN = 0;
  17. LCD_DB5_PIN = 0;
  18. LCD_DB6_PIN = 0;
  19. LCD_DB7_PIN = 0;
  20. // HD44780_Init();
  21. //
  22. // HD44780_DisplayClear();
  23. // HD44780_PositionXY(0, 0);
  24. // // send char
  25. // HD44780_DrawString("Le Chalet");
  26. // HD44780_PositionXY(0, 1);
  27. // HD44780_DrawString("Ile aux chevres");
  28. // display clear
  29. //HD44780_DisplayOn();
  30. TimerStart(LCD_CTRL_TIMER,LCD_REFRESH_TIMEOUT);
  31. }
  32. void TickLCDCtrl()
  33. {
  34. if(LCD_SCROLL_BTN_PIN == 0)
  35. {
  36. if(mPinStateToggle == 0)
  37. {
  38. mPinStateToggle = 1;
  39. if(mIsLCDON == 1)
  40. {
  41. mIsLCDON = 0;
  42. HD44780_DisplayClear();
  43. LCD_RS_PIN = 0;
  44. LCD_RW_PIN = 0;
  45. LCD_E_PIN = 0;
  46. LCD_DB4_PIN = 0;
  47. LCD_DB5_PIN = 0;
  48. LCD_DB6_PIN = 0;
  49. LCD_DB7_PIN = 0;
  50. }
  51. else
  52. {
  53. mIsLCDON = 1;
  54. HD44780_Init();
  55. HD44780_DisplayClear();
  56. HD44780_DisplayOn();
  57. }
  58. }
  59. }
  60. else
  61. {
  62. if(mPinStateToggle == 1)
  63. {
  64. mPinStateToggle = 0;
  65. }
  66. }
  67. if(IsTimerExpired(LCD_CTRL_TIMER))
  68. {
  69. if(mIsLCDON == 1)
  70. {
  71. float VBat = GetBatteryVoltage(0);
  72. float ISolar = GetConvertedSolarPanelCurrent();
  73. char line1[16], line2[16];
  74. snprintf(line1,16,"VBat: %.2fV ",VBat);
  75. if(ISolar < (float)0.1)
  76. {
  77. ISolar *= 1000;
  78. snprintf(line2,16,"ISol: %.2fmA ",ISolar);
  79. }
  80. else
  81. {
  82. snprintf(line2,16,"ISol: %.5fA ",ISolar);
  83. }
  84. //
  85. // HD44780_Init();
  86. // HD44780_DisplayClear();
  87. HD44780_PositionXY(0, 0);
  88. HD44780_DrawString(line1);
  89. HD44780_PositionXY(0, 1);
  90. HD44780_DrawString(line2);
  91. }
  92. TimerStart(LCD_CTRL_TIMER,LCD_REFRESH_TIMEOUT);
  93. }
  94. }