forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

jinlicong
2024-05-30 a1810b89e66f184c62a0588ae7d57c91d0c376e8
Function/LCD/lcd.c
@@ -16,7 +16,9 @@
#include "gpio.h"
#include "string.h"
#include "system_general_para.h"
#include "sizhu_ctrl_word.h"
#include "system_mem_para.h"
#include "linked_list.h"
uint8_t LCD_DRIVE_MODE_14_13[1] = {0};    //   1/4duty  1/3bias
uint8_t LCD_DRIVE_MODE_14_14[1] = {1};    //   1/4duty  1/4bias
@@ -26,9 +28,14 @@
uint8_t LCD_SYSTEM_MODE_ON_OFF[1] = {2};  //  ÄÚ²¿ÏµÍ³Õñµ´Æ÷ON£¬LCDÏÔʾOFF
uint8_t LCD_SYSTEM_MODE_ON_ON[1] = {3};   //  ÄÚ²¿ÏµÍ³Õñµ´Æ÷ON£¬LCDÏÔʾON
uint8_t lcd_wake_up_flag_g = 0;
FlagStatus lcd_wake_up_flag_g = RESET;  //ΪÁ˰´¼üÏÔʾûÓÐÑÓ³Ù¸Ð
FlagStatus lcd_first_wake_up_flag_g = SET; //³õʼҪΪSET£¬ÆÁÁÁ
SYS_DISPLAY_PAPA_T sys_display_para_g ={      \
   .sys_and_display_mode = NORMAL_MODE,                         \
   .display_page_status.normal_page_status = TOTAL_SC_BALANCE,  \
   .display_page_status.para_page_status = METER_NUM,               \
};
// LCD³õʼ»¯
void Lcd_Init(void)
@@ -42,7 +49,7 @@
{
//  LCD_ALL_DISPLAY;
  Lcd_Write(LCD_SYSTEM_MODE_COMMAND_ADDR, LCD_SYSTEM_MODE_OFF_OFF, 1);
   LCD_BACKLIGHT_OFF;
//   LCD_BACKLIGHT_OFF;
  LCD_PWR_OFF;
}
/**************************************
@@ -58,7 +65,7 @@
  delay_ms(1);
  // LCD_ALL_CLEAR;
  Lcd_Init();
   lcd_wake_up_flag_g = 1;
//   lcd_wake_up_flag_g = 1;
}
/****************************************
Ãû³Æ£ºLcd_Display_AllTest(void)
@@ -141,51 +148,51 @@
  LCD_DISPLAY_SEG(_LCD_YUAN_2_23A);
  LCD_DISPLAY_SEG(_LCD_YUAN_M3_23A);
  LCD_DISPLAY_SEG(_LCD_POINT1_23A);
  LCD_DISPLAY_SEG(_LCD_POINT2_23A);
  LCD_DISPLAY_SEG(_LCD_POINT3_23A);
  LCD_DISPLAY_SEG(_LCD_POINT4_23A);
  LCD_DISPLAY_SEG(_LCD_POINT5_23A);
  LCD_DISPLAY_SEG(_LCD_POINT6_23A);
  LCD_DISPLAY_SEG(_LCD_POINT7_23A);
  LCD_DISPLAY_SEG(_LCD_POINT8_23A);
  LCD_DISPLAY_SEG(_LCD_POINT9_23A);
  LCD_DISPLAY_SEG(_LCD_POINT10_23A);
  LCD_DISPLAY_SEG(_LCD_POINT11_23A);
  LCD_DISPLAY_SEG(_LCD_POINT12_23A);
  LCD_DISPLAY_SEG(_LCD_POINT13_23A);
  LCD_DISPLAY_SEG(_LCD_POINT14_23A);
  LCD_DISPLAY_SEG(_LCD_POINT15_23A);
  LCD_DISPLAY_SEG(_LCD_POINT16_23A);
  LCD_DISPLAY_SEG(_LCD_POINT17_23A);
  LCD_DISPLAY_SEG(_LCD_POINT18_23A);
  LCD_DISPLAY_SEG(_LCD_POINT19_23A);
  LCD_DISPLAY_SEG(_LCD_POINT20_23A);
  LCD_DISPLAY_SEG(_LCD_POINT21_23A);
  LCD_DISPLAY_SEG(_LCD_POINT22_23A);
  LCD_DISPLAY_SEG(_LCD_POINT23_23A);
  LCD_DISPLAY_SEG(_LCD_POINT24_23A);
  LCD_DISPLAY_SEG(_LCD_POINT25_23A);
  LCD_DISPLAY_SEG(_LCD_POINT26_23A);
//  LCD_DISPLAY_SEG(_LCD_POINT1_23A);
//  LCD_DISPLAY_SEG(_LCD_POINT2_23A);
//  LCD_DISPLAY_SEG(_LCD_POINT3_23A);
//  LCD_DISPLAY_SEG(_LCD_POINT4_23A);
//  LCD_DISPLAY_SEG(_LCD_POINT5_23A);
//  LCD_DISPLAY_SEG(_LCD_POINT6_23A);
//  LCD_DISPLAY_SEG(_LCD_POINT7_23A);
//  LCD_DISPLAY_SEG(_LCD_POINT8_23A);
//  LCD_DISPLAY_SEG(_LCD_POINT9_23A);
//  LCD_DISPLAY_SEG(_LCD_POINT10_23A);
//  LCD_DISPLAY_SEG(_LCD_POINT11_23A);
//  LCD_DISPLAY_SEG(_LCD_POINT12_23A);
//  LCD_DISPLAY_SEG(_LCD_POINT13_23A);
//  LCD_DISPLAY_SEG(_LCD_POINT14_23A);
//  LCD_DISPLAY_SEG(_LCD_POINT15_23A);
//  LCD_DISPLAY_SEG(_LCD_POINT16_23A);
//  LCD_DISPLAY_SEG(_LCD_POINT17_23A);
//  LCD_DISPLAY_SEG(_LCD_POINT18_23A);
//  LCD_DISPLAY_SEG(_LCD_POINT19_23A);
//  LCD_DISPLAY_SEG(_LCD_POINT20_23A);
//  LCD_DISPLAY_SEG(_LCD_POINT21_23A);
//  LCD_DISPLAY_SEG(_LCD_POINT22_23A);
//  LCD_DISPLAY_SEG(_LCD_POINT23_23A);
//  LCD_DISPLAY_SEG(_LCD_POINT24_23A);
//  LCD_DISPLAY_SEG(_LCD_POINT25_23A);
//  LCD_DISPLAY_SEG(_LCD_POINT26_23A);
  Lcd_DisplayDigit_23A(1 + i, 8);
  Lcd_DisplayDigit_23A(2 + i, 8);
  Lcd_DisplayDigit_23A(3 + i, 8);
  Lcd_DisplayDigit_23A(4 + i, 8);
  Lcd_DisplayDigit_23A(5 + i, 8);
  Lcd_DisplayDigit_23A(6 + i, 8);
  Lcd_DisplayDigit_23A(7 + i, 8);
  Lcd_DisplayDigit_23A(8 + i, 8);
  Lcd_DisplayDigit_23A(9 + i, 8);
  Lcd_DisplayDigit_23A(10 + i, 8);
  Lcd_DisplayDigit_23A(11 + i, 8);
  Lcd_DisplayDigit_23A(12 + i, 8);
  Lcd_DisplayDigit_23A(13 + i, 8);
  Lcd_DisplayDigit_23A(14 + i, 8);
  Lcd_DisplayDigit_23A(15 + i, 8);
  Lcd_DisplayDigit_23A(16 + i, 8);
  Lcd_DisplayDigit_23A(17 + i, 8);
  Lcd_DisplayDigit_23A(18 + i, 8);
//  Lcd_DisplayDigit_23A(1 + i, 8);
//  Lcd_DisplayDigit_23A(2 + i, 8);
//  Lcd_DisplayDigit_23A(3 + i, 8);
//  Lcd_DisplayDigit_23A(4 + i, 8);
//  Lcd_DisplayDigit_23A(5 + i, 8);
//  Lcd_DisplayDigit_23A(6 + i, 8);
//  Lcd_DisplayDigit_23A(7 + i, 8);
//  Lcd_DisplayDigit_23A(8 + i, 8);
//  Lcd_DisplayDigit_23A(9 + i, 8);
//  Lcd_DisplayDigit_23A(10 + i, 8);
//  Lcd_DisplayDigit_23A(11 + i, 8);
//  Lcd_DisplayDigit_23A(12 + i, 8);
//  Lcd_DisplayDigit_23A(13 + i, 8);
//  Lcd_DisplayDigit_23A(14 + i, 8);
//  Lcd_DisplayDigit_23A(15 + i, 8);
//  Lcd_DisplayDigit_23A(16 + i, 8);
//  Lcd_DisplayDigit_23A(17 + i, 8);
//  Lcd_DisplayDigit_23A(18 + i, 8);
  LCD_ALL_DISPLAY;
}
@@ -402,29 +409,27 @@
  }
}
void Lcd_Show_MenuProcess(void)
void Lcd_Show_MenuProcess(void)//? ÐèÒªÍêÉÆ
{
  lcd_wake_up_flag_g = 0;
   /*ʼÖÕÐèÒªµÄÏÔʾÄÚÈÝ£¨¹«Ë¾LOGO µç³ØµçÁ¿ Ë®Æ½Ïߣ©*/
//   if(__SYS_FUNC_CFG_BYTES_GET(logo_display_set) == 0)
//      LCD_DISPLAY_SEG(_LCD_SIZHULOG_23A);
//   LCD_DISPLAY_SEG(_LCD_HORIZONTALLINE_1_23A);
//   LCD_DISPLAY_SEG(_LCD_HORIZONTALLINE_2_23A);
//   Lcd_Battery(pwr_vol_g.alka_vcc, pwr_vol_g.lith_vcc);
//  lcd_wake_up_flag_g = RESET;
   /*ʼÖÕÐèÒªµÄÏÔʾÄÚÈÝ£¨¹«Ë¾LOGO µç³ØµçÁ¿µÈµÈ£©*/
   if(__SYS_FUNC_CFG_BYTES_GET(no_show_logo) == RESET)
      LCD_DISPLAY_SEG(_LCD_SIZHULOG_23A);
   LCD_DISPLAY_SEG(_LCD_HORIZONTALLINE_1_23A);
   LCD_DISPLAY_SEG(_LCD_HORIZONTALLINE_2_23A);
   Lcd_Battery(pwr_vol_g);
   if(__SYS_STATUS_BYTES_GET(power_state) == SET)
      LCD_DISPLAY_SEG(_LCD_CHARGE_23A);
//   /*Ìõ¼þÅжϵÄÏÔʾÄÚÈÝ£¨·§¿Ø ±¨¾¯ Ô¶´« ÆøÌå½éÖÊ ÏÔʾģʽ ¼Æ·Ñģʽ ÄæÁ÷ ¿ª»§±êÖ¾ É豸/ºǫ́½áËãģʽ£©*/
////   sys_admin_g.sys_admin.state_bytes.media_status = AIR;
//   Lcd_MediumShow((MEDIA_STATUS)sys_admin_g.sys_admin.state_bytes.media_status);
//   Lcd_BacksetShow(sys_admin_g.sys_admin.state_bytes.flow_direction);
//   Lcd_ValveShow((VALVE_STATE_T)sys_admin_g.sys_admin.state_bytes.valve_state, op_cl_valve_cause_id,
//                        sys_admin_g.sys_admin.state_bytes.valve_lock);
//   Lcd_WaringShow_New(alarm_list_cnt,calendar_g.Second);
////   Lcd_WarningShow(&sys_show_state_bytes_id_g, &sys_clear_state_bytes_id_g);
//   Lcd_GprsShow(sys_admin_g.sys_admin.state_bytes.gprs_status, NB_OR_4G_FLAG, gprs_protocol_head_tail_g.gprs_protocol_normal_data_head.signal_intensity);
//   Lcd_BillingShow(sys_admin_g.sys_admin.state_bytes.billing_type, 1, ladder_price_cfg_para_true_g.set_price_type_mode);
//   Lcd_ModeFlagActiveShow(&sys_some_flag_g);
//   if (sys_admin_g.sys_admin.state_bytes.account_state)
//      LCD_DISPLAY_SEG(_LCD_ACCOUNT_23A);
   Lcd_ValveShow(save_valve_para_g.valve_status, save_valve_para_g.valve_close_ID, save_valve_para_g.valve_lock_state);
   Lcd_WrcShow(sys_fun_run_ctrl_g.wrc_ctrl_flag.running_flag,wrc_ctrl_para_g.wrc_result_flag,link_info_g.SIM_Type,link_info_g.net_signal_intensity);
   Lcd_WaringShow(alarm_list_cnt,sys_clockBCD_g.sec);
   Lcd_BillingShow(__SYS_FUNC_CFG_BYTES_GET(billing_type), save_realtime_data_g.realtime_billing_data_s.ladder_now);
   if (__SYS_STATUS_BYTES_GET(account_state)==SET)
      LCD_DISPLAY_SEG(_LCD_ACCOUNT_23A);
//   /*²»Í¬Ò³ÃæµÄÏÔʾÄÚÈÝ*/
@@ -546,10 +551,15 @@
void lcdDisplayPro(void)
{
   if(__SYS_DELAY_SEC_TIME_GET_(sys_active_time) >0)
   static uint8_t only_trigger_once_flag = 0;
   lcd_wake_up_flag_g = RESET;
   if((__SYS_DELAY_SEC_TIME_GET_(sys_active_time) >0)||(__SYS_STATUS_BYTES_GET(lcd_mode) == LDM_ALWAYS_AWAKEN)||(__SYS_STATUS_BYTES_GET(power_state) == SET))
   {
      if(LCD_PWR_IO_READ==Bit_RESET)
      if(lcd_first_wake_up_flag_g == SET)
      {
         lcd_first_wake_up_flag_g = RESET;
         //Ê×´ÎÉϵç³õʼ»¯
         Lcd_Sys_Init();
      }else
@@ -557,10 +567,15 @@
         //Ö»¸üÐÂÏÔʾÄÚÈÝ
      }
      Lcd_Show_MenuProcess();
      only_trigger_once_flag =0;
      
   }else
   {
      Lcd_DeInit();
      if(only_trigger_once_flag == 0){
         only_trigger_once_flag =1;
         Lcd_DeInit();
      }
   }
   
}