#include "systaskinit.h"
|
|
#include "1ValveControl.h"
|
#include "devicegpioinit.h"
|
#include "1lcd.h"
|
#include "para.h"
|
#include "1gprs.h"
|
#include "menu.h"
|
#include "ReadDeviceData.h"
|
#include "ex_rtc.h"
|
#include "1billing.h"
|
#include "e2p.h"
|
#include "1lcd_new.h"
|
#include "RW_VERIFICATION.h"
|
#include "RS232.h"
|
#include "gpio.h"
|
|
#if 0
|
///*ÒÔÏÂÊÇÖжϷþÎñº¯ÊýµÄÅäÖÃ*/
|
void GPIO_IRQHandler()
|
{
|
u8 HWID0_state;
|
|
if (GPIO_EXTI_EXTIISR_ChkEx(HWID0_PIN_GROUP, HWID0_PIN_NUM) == SET)
|
{
|
GPIO_EXTI_EXTIISR_ClrEx(HWID0_PIN_GROUP, HWID0_PIN_NUM);
|
All_init();
|
|
delay_ms(100);
|
HWID0_state = HWID0_READ;
|
if (HWID0_state == 0) // ÓÐÍâµç
|
{
|
if (gprs_protocol_header.Power_type == 1)
|
{
|
system_alarm.alarm_EXPowerIN = 1;
|
system_alarm.alarm_EXPowerRemove = 0;
|
gprs_protocol_header.Power_type = 2;
|
|
UTR_init();
|
}
|
}
|
else if (HWID0_state == 1)
|
{
|
if (gprs_protocol_header.Power_type == 2)
|
{
|
system_alarm.alarm_EXPowerIN = 0;
|
system_alarm.alarm_EXPowerRemove = 1;
|
gprs_protocol_header.Power_type = 1;
|
}
|
}
|
}
|
|
if (GPIO_EXTI_EXTIISR_ChkEx(LOW_PWR_INT_PIN_GROUP, LOW_PWR_INT_PIN_NUM) == SET)
|
{
|
GPIO_EXTI_EXTIISR_ClrEx(LOW_PWR_INT_PIN_GROUP, LOW_PWR_INT_PIN_NUM);
|
|
All_init();
|
if ((parmAccess.u8LowPowerAlarmLine & 0x01) == 0x01)
|
{
|
if (LOW_PWR_READ == 0)
|
{
|
delay_ms(30);
|
if (LOW_PWR_READ == 0)
|
{
|
system_alarm.alarm_FlowPowerLOW = 1;
|
system_alarm.alarm_FlowPowerLOW_FLAG = 1;
|
}
|
}
|
}
|
}
|
|
if (GPIO_EXTI_EXTIISR_ChkEx(ALARM_LINE_PIN_GROUP, ALARM_LINE_PIN_NUM) == SET)
|
{
|
GPIO_EXTI_EXTIISR_ClrEx(ALARM_LINE_PIN_GROUP, ALARM_LINE_PIN_NUM);
|
|
All_init();
|
if ((parmAccess.u8LowPowerAlarmLine & 0x04) == 0x04)
|
{
|
delay_ms(10);
|
if (ALARM_LINE_READ == 0)
|
{
|
delay_ms(10);
|
if (ALARM_LINE_READ == 0)
|
{
|
|
if ((device_Parm.AccountStatus == 0x01) || (device_Parm.TestStatus == 1)) // ¿ª»§×´Ì¬Ï¼ì²â¶Ô½ÓÉ豸Ƿѹ£¬Ôò¹Ø·§
|
{
|
if (((OpenValveAuthorizeFLAG & 0x0f) == 0x01) && ((OpenValveAuthorizeFLAG >> 4) < 9) && ((OpenValveAuthorizeFLAG >> 4) > 0)) // Ç¿ÖÆ¿ª·§£¬Ò쳣״̬ÏÂÒ²²»¹Ø·§
|
{
|
}
|
else
|
{
|
if (gprs_protocol_header.Valve_Status != 2) // ·§ÃÅ״̬²»ÊÇΪ¹Ø
|
{
|
Valve_close();
|
}
|
}
|
}
|
|
system_alarm.alarm_Gas_Leak = 1;
|
|
system_alarm.alarm_Gas_Leak_LCDFLAG = 1;
|
}
|
}
|
}
|
}
|
|
if (GPIO_EXTI_EXTIISR_ChkEx(KEY1_PIN_GROUP, KEY1_PIN_NUM) == SET)
|
{
|
GPIO_EXTI_EXTIISR_ClrEx(KEY1_PIN_GROUP, KEY1_PIN_NUM);
|
|
All_init();
|
if ((LCD_sleepTime) || (LCD_flag == 1))
|
{
|
if (Time_For_wakeup < LCD_WAKEUP_TIME + 2) // ÐÝÃß»½ÐÑʱ¼äÒª±ÈLCDÁÁµÄʱ¼ä³¤Ò»µã
|
{
|
Time_For_wakeup = LCD_WAKEUP_TIME + 3;
|
}
|
LCD_sleepTime = LCD_WAKEUP_TIME;
|
if ((KEY1_PRESS == 0) && (KEY2_PRESS == 0))
|
{
|
awaken_flag = Key_awaken;
|
gprs_protocol_header.Send_type = 2;
|
}
|
else
|
{
|
LCD_Menu_Level--;
|
}
|
}
|
}
|
|
if (GPIO_EXTI_EXTIISR_ChkEx(RTC_INT_PIN_GROUP, RTC_INT_PIN_NUM) == SET)
|
{
|
GPIO_EXTI_EXTIISR_ClrEx(RTC_INT_PIN_GROUP, RTC_INT_PIN_NUM);
|
|
All_init();
|
Get_Time(); // »ñÈ¡µ±Ç°Ê±¼ä
|
|
Power_ON_cnt += 20; // Éϵçʱ¼ä
|
if (Power_ON_cnt == 60)
|
{
|
Power_ON_flag = 1;
|
}
|
|
if (device_Parm.Sample_Min_Time >= 20)
|
{
|
device_Parm.Sample_Min_Time -= 20;
|
}
|
else
|
{
|
device_Parm.Sample_Min_Time = 0;
|
}
|
|
if (OpenValveAuthorizeTimeCnt >= 20) // Ç¿ÖÆ¿ª·§Ê±ÏÞ¿ØÖÆÓã¬Ã¿´ÎÄÖÖÓ¼õ20Ãë
|
{
|
OpenValveAuthorizeTimeCnt -= 20;
|
if ((OpenValveAuthorizeTimeCnt % 300) == 0) // ΪÁ˼õÉÙE2µÄ´æ´¢´ÎÊý£¬Ã¿300Ãë²Å´æÒ»´Î
|
{
|
FM25V02_data_write_uint32(OPEN_VALVE_AUTHORIZE_TIME_CNT_ADDRA, OpenValveAuthorizeTimeCnt);
|
}
|
}
|
else
|
{
|
if (((OpenValveAuthorizeFLAG & 0x0f) == 0x01) && ((OpenValveAuthorizeFLAG >> 4) < 8) && ((OpenValveAuthorizeFLAG >> 4) > 0)) // Ç¿ÖÆ¿ª·§£¬Ò쳣״̬ÏÂÒ²²»¹Ø·§£¬ÓÐʱ¼äÏÞÖÆ¿ª·§Ê±¼äµ½»áÈ¡Ïû£¬ÎÞʱ¼äÏÞÖÆ¿ª·§Ã»ÓмÆÊ±
|
{
|
OpenValveAuthorizeFLAG = 0;
|
FM25V02_data_write(OpenValveAuthorizeFLAG, OPEN_VALVE_AUTHORIZE_FLAG_ADDR);
|
}
|
}
|
|
if (gprs_protocol_header.Valve_Status == 2)
|
{
|
Valve_control_parm.ValveHaveClosedTime += 20;
|
}
|
else
|
{
|
Valve_control_parm.ValveHaveClosedTime = 0;
|
}
|
}
|
|
if (GPIO_EXTI_EXTIISR_ChkEx(LITH_BAT_LOW_PWR_PIN_GROUP, LITH_BAT_LOW_PWR_PIN_NUM) == SET)
|
{
|
GPIO_EXTI_EXTIISR_ClrEx(LITH_BAT_LOW_PWR_PIN_GROUP, LITH_BAT_LOW_PWR_PIN_NUM);
|
|
All_init();
|
delay_ms(10);
|
if (LITH_BAT_LOW_PWR_PIN_READ == 0)
|
{
|
if (HWID0_READ == 1)
|
{
|
if ((device_Parm.AccountStatus == 0x01) || (device_Parm.TestStatus == 1)) // ¿ª»§×´Ì¬Ï¼ì²âµ½ï®µç¶Ïµç£¬Ôò¹Ø·§
|
{
|
Valve_close();
|
}
|
}
|
Bat_Lith_status = 1;
|
system_alarm.alarm_LithPowerDOWN = 1;
|
}
|
else
|
{
|
}
|
}
|
|
if (GPIO_EXTI_EXTIISR_ChkEx(FORCE_OPEN_INT_PIN_GROUP, FORCE_OPEN_INT_PIN_NUM) == SET)
|
{
|
GPIO_EXTI_EXTIISR_ClrEx(FORCE_OPEN_INT_PIN_GROUP, FORCE_OPEN_INT_PIN_NUM);
|
|
All_init();
|
delay_ms(10);
|
if (FORCE_OPEN_INT_READ == 1)
|
{
|
delay_ms(30);
|
if (FORCE_OPEN_INT_READ == 1)
|
{
|
system_alarm.alarm_Valve_Force_Open = 1;
|
if (Valve_control_parm.Valve_Type != SZV102_VALVE)
|
{
|
Valve_Force_Open_Time_Judge();
|
Valve_Force_Open_Flag = 1;
|
}
|
else
|
{
|
Valve_Force_Open_Flag = 0;
|
system_alarm.alarm_Valve_open = 1;
|
gprs_protocol_header.Valve_Status = 1;
|
Valve_control_parm.ValveHaveClosedTime = 0;
|
FM25V02_data_write(gprs_protocol_header.Valve_Status, VALVE_STATE_ADDR);
|
}
|
}
|
}
|
else
|
{
|
}
|
}
|
|
if (GPIO_EXTI_EXTIISR_ChkEx(Motor_OP_PIN_GROUP, Motor_OP_PIN_NUM) == SET)
|
{
|
GPIO_EXTI_EXTIISR_ClrEx(Motor_OP_PIN_GROUP, Motor_OP_PIN_NUM);
|
|
All_init();
|
if (Valve_control_parm.Valve_Type == SZV102_VALVE)
|
{
|
delay_ms(1);
|
if (Motor_OP_PIN_READ == 0)
|
{
|
if (Valve_control_parm.OpenValveTime > 3) // ºöÂÔ3ÃëÄÚµÄÖжϣ¬ÒòΪ·§ÃÅÆô¶¯Ë²¼äµçÁ÷½Ï´ó»á½øÈëÖжÏ
|
{
|
if (OpenValveFLAG == 1 || Valve_Force_Open_Flag == 1)
|
{
|
Motor_A_EN_L;
|
Motor_B_EN_L;
|
OpenValveFLAG = 0;
|
Valve_Force_Open_Flag = 0;
|
system_alarm.alarm_Valve_open = 1;
|
gprs_protocol_header.Valve_Status = 1;
|
Valve_control_parm.ValveHaveClosedTime = 0;
|
FM25V02_data_write(gprs_protocol_header.Valve_Status, VALVE_STATE_ADDR);
|
Time_For_valve_open = 0; // Óе½Î»Öжϣ¬³¬Ê±µ½¼ÆÊ±ÇåÁ㣬²»¼ÆÁË
|
Valve_control_parm.OpenValveTime = 0;
|
Valve_control_parm.CloseValveTime = 0;
|
}
|
}
|
}
|
}
|
else if (Valve_control_parm.Valve_Type == SZV103_VALVE)
|
{
|
if (Valve_control_parm.OpenValveTime > 3)
|
{
|
if (OpenValveFLAG == 1 || Valve_Force_Open_Flag == 1)
|
{
|
Motor_A_EN_L;
|
Motor_B_EN_L;
|
OpenValveFLAG = 0;
|
Valve_Force_Open_Flag = 0;
|
system_alarm.alarm_Valve_open = 1;
|
gprs_protocol_header.Valve_Status = 1;
|
Valve_control_parm.ValveHaveClosedTime = 0;
|
Time_For_valve_open = 0; // Óе½Î»Öжϣ¬³¬Ê±µ½¼ÆÊ±ÇåÁ㣬²»¼ÆÁË
|
Valve_control_parm.OpenValveTime = 0;
|
Valve_control_parm.CloseValveTime = 0;
|
}
|
}
|
}
|
else
|
{
|
if (OpenValveFLAG == 1 || Valve_Force_Open_Flag == 1)
|
{
|
Motor_A_EN_L;
|
Motor_B_EN_L;
|
OpenValveFLAG = 0;
|
Valve_Force_Open_Flag = 0;
|
system_alarm.alarm_Valve_open = 1;
|
gprs_protocol_header.Valve_Status = 1;
|
Valve_control_parm.ValveHaveClosedTime = 0;
|
Time_For_valve_open = 0; // Óе½Î»Öжϣ¬³¬Ê±µ½¼ÆÊ±ÇåÁ㣬²»¼ÆÁË
|
}
|
}
|
}
|
|
if (GPIO_EXTI_EXTIISR_ChkEx(Motor_CL_PIN_GROUP, Motor_CL_PIN_NUM) == SET)
|
{
|
GPIO_EXTI_EXTIISR_ClrEx(Motor_CL_PIN_GROUP, Motor_CL_PIN_NUM);
|
|
All_init();
|
if (Valve_control_parm.Valve_Type == SZV102_VALVE)
|
{
|
delay_ms(1);
|
if (Motor_CL_PIN_READ == 0)
|
{
|
if (Valve_control_parm.CloseValveTime > 3) // ºöÂÔ3ÃëÄÚµÄÖжϣ¬ÒòΪ·§ÃÅÆô¶¯Ë²¼äµçÁ÷½Ï´ó»á½øÈëÖжÏ
|
{
|
if (OpenValveFLAG == 2)
|
{
|
Motor_A_EN_L;
|
Motor_B_EN_L;
|
OpenValveFLAG = 0;
|
system_alarm.alarm_Valve_close = 1;
|
gprs_protocol_header.Valve_Status = 2;
|
Valve_control_parm.ValveHaveClosedTime = 1;
|
FM25V02_data_write(gprs_protocol_header.Valve_Status, VALVE_STATE_ADDR);
|
Time_For_valve_open = 0; // Óе½Î»Öжϣ¬³¬Ê±µ½¼ÆÊ±ÇåÁ㣬²»¼ÆÁË
|
Valve_control_parm.OpenValveTime = 0;
|
Valve_control_parm.CloseValveTime = 0;
|
}
|
}
|
}
|
}
|
else if (Valve_control_parm.Valve_Type == SZV103_VALVE)
|
{
|
if (Valve_control_parm.CloseValveTime > 3) // ºöÂÔ3ÃëÄÚµÄÖжϣ¬ÒòΪ·§ÃÅÆô¶¯Ë²¼äµçÁ÷½Ï´ó»á½øÈëÖжÏ
|
{
|
if (OpenValveFLAG == 2)
|
{
|
Motor_A_EN_L;
|
Motor_B_EN_L;
|
OpenValveFLAG = 0;
|
system_alarm.alarm_Valve_close = 1;
|
gprs_protocol_header.Valve_Status = 2;
|
Valve_control_parm.ValveHaveClosedTime = 1;
|
Time_For_valve_open = 0; // Óе½Î»Öжϣ¬³¬Ê±µ½¼ÆÊ±ÇåÁ㣬²»¼ÆÁË
|
Valve_control_parm.OpenValveTime = 0;
|
Valve_control_parm.CloseValveTime = 0;
|
}
|
}
|
}
|
else
|
{
|
}
|
}
|
|
if (GPIO_EXTI_EXTIISR_ChkEx(KEY2_PIN_GROUP, KEY2_PIN_NUM) == SET)
|
{
|
GPIO_EXTI_EXTIISR_ClrEx(KEY2_PIN_GROUP, KEY2_PIN_NUM);
|
|
All_init();
|
if ((LCD_sleepTime) || (LCD_flag == 1))
|
{
|
if (Time_For_wakeup < LCD_WAKEUP_TIME + 2) // ÐÝÃß»½ÐÑʱ¼äÒª±ÈLCDÁÁµÄʱ¼ä³¤Ò»µã
|
{
|
Time_For_wakeup = LCD_WAKEUP_TIME + 3;
|
}
|
LCD_sleepTime = LCD_WAKEUP_TIME;
|
LCD_Menu_Level++;
|
}
|
}
|
|
if (GPIO_EXTI_EXTIISR_ChkEx(UNCAP_INT_PIN_GROUP, UNCAP_INT_PIN_NUM) == SET)
|
{
|
GPIO_EXTI_EXTIISR_ClrEx(UNCAP_INT_PIN_GROUP, UNCAP_INT_PIN_NUM);
|
|
All_init();
|
if (UNCAP_INT_READ == 1)
|
{
|
delay_ms(30);
|
if (UNCAP_INT_READ == 1)
|
{
|
if (system_alarm.alarm_Cap_OPEN_LCDFALG == 0)
|
{
|
system_alarm.alarm_Cap_OPEN = 1;
|
system_alarm.alarm_Cap_OPEN_LCDFALG = 1;
|
}
|
}
|
}
|
else if (UNCAP_INT_READ == 0)
|
{
|
delay_ms(30);
|
if (UNCAP_INT_READ == 0)
|
{
|
system_alarm.alarm_Cap_OPEN_LCDFALG = 0;
|
}
|
}
|
}
|
|
if (GPIO_EXTI_EXTIISR_ChkEx(UNDER_PWR_INT_PIN_GROUP, UNDER_PWR_INT_PIN_NUM) == SET)
|
{
|
GPIO_EXTI_EXTIISR_ClrEx(UNDER_PWR_INT_PIN_GROUP, UNDER_PWR_INT_PIN_NUM);
|
|
All_init();
|
if ((parmAccess.u8LowPowerAlarmLine & 0x02) == 0x02)
|
{
|
if (UNDER_PWR_READ == 0)
|
{
|
delay_ms(30);
|
if (UNDER_PWR_READ == 0)
|
{
|
if ((device_Parm.AccountStatus == 0x01) || (device_Parm.TestStatus == 1)) // ¿ª»§×´Ì¬Ï¼ì²â¶Ô½ÓÉ豸Ƿѹ£¬Ôò¹Ø·§
|
{
|
if (((OpenValveAuthorizeFLAG & 0x0f) == 0x01) && ((OpenValveAuthorizeFLAG >> 4) < 9) && ((OpenValveAuthorizeFLAG >> 4) > 0)) // Ç¿ÖÆ¿ª·§£¬Ò쳣״̬ÏÂÒ²²»¹Ø·§
|
{
|
}
|
else
|
{
|
if (gprs_protocol_header.Valve_Status != 2) // ·§ÃÅ״̬²»ÊÇΪ¹Ø
|
{
|
Valve_close();
|
}
|
}
|
}
|
system_alarm.alarm_FlowUnderPower = 1;
|
}
|
}
|
}
|
}
|
|
if (GPIO_EXTI_EXTIISR_ChkEx(KEY3_PIN_GROUP, KEY3_PIN_NUM) == SET)
|
{
|
GPIO_EXTI_EXTIISR_ClrEx(KEY3_PIN_GROUP, KEY3_PIN_NUM);
|
|
All_init();
|
if (Time_For_wakeup < LCD_WAKEUP_TIME + 2) // ÐÝÃß»½ÐÑʱ¼äÒª±ÈLCDÁÁµÄʱ¼ä³¤Ò»µã
|
{
|
Time_For_wakeup = LCD_WAKEUP_TIME + 3;
|
}
|
|
if ((KEY1_PRESS == 0) && (KEY3_PRESS == 0))
|
{
|
if (device_Parm.AccountStatus != 0x01)
|
{
|
Valve_open();
|
}
|
else if (device_Parm.AccountStatus == 0x01)
|
{
|
if (Settlement_Para.fBalance >= (-parameter_bil.fCredits))
|
{
|
if (OpenValveAuthorizeFLAG == 0x01) // ¿ª·§ÊÚȨ±êÖ¾
|
{
|
PulseLine_Detection();
|
if ((system_alarm.alarm_Pulse_Broken_LCDFLAG == 0) && (system_alarm.alarm_Gas_Leak_LCDFLAG == 0))
|
{
|
Valve_open();
|
}
|
else
|
{
|
}
|
OpenValveAuthorizeFLAG = 0x00;
|
FM25V02_data_write(OpenValveAuthorizeFLAG, OPEN_VALVE_AUTHORIZE_FLAG_ADDR);
|
}
|
else if (((OpenValveAuthorizeFLAG & 0x0f) == 0x01) && ((OpenValveAuthorizeFLAG >> 4) < 9) && ((OpenValveAuthorizeFLAG >> 4) > 0)) // Ç¿ÖÆ¿ª·§£¬Ò쳣״̬ÏÂÒ²²»¹Ø·§
|
{
|
Valve_open();
|
}
|
}
|
else
|
{
|
}
|
}
|
}
|
else if ((KEY2_PRESS == 0) && (KEY3_PRESS == 0))
|
{
|
Valve_close();
|
}
|
else
|
{
|
UTR_init();
|
LeakAlarmLine_Detection();
|
PulseLine_Detection();
|
device_Parm.Key_Power_Det = 1;
|
|
LCD_Power_Init();
|
|
/**
|
ÕâÀïÊǾÉÒº¾§²¿·Ö
|
*/
|
if (LCD_TYPE_FLAG == 0)
|
{
|
lcd_init();
|
LCD_DisplayAll();
|
}
|
else
|
/*ÕâÀïÊÇÐÂÒº¾§²¿·Ö*/
|
{
|
lcd_init_new();
|
LCD_DisplayAll_New1();
|
}
|
LCD_sleepTime = LCD_WAKEUP_TIME;
|
}
|
}
|
}
|
#endif
|
// void BSTIM_IRQHandler(void)
|
// {
|
|
// if(BSTIM_ISR_UIF_Chk()!=RESET) //¿ª/¹Ø·§Ê±¼ä
|
// {
|
// BSTIM_ISR_UIF_Clr();
|
|
// if(VariaDlg.RestartTime)
|
// {
|
// VariaDlg.RestartTime -- ;
|
// }
|
|
// // if(ModbusDlg.RepeadTime)
|
// // {
|
// // ModbusDlg.RepeadTime -- ;
|
// // }
|
|
// if(Time_For_wakeup)
|
// {
|
// Time_For_wakeup --;
|
// }
|
// }
|
|
// if(Valve_control_parm.Valve_Type == SZV102_VALVE)
|
// {
|
// if(Time_For_valve_open)
|
// {
|
// if(Time_For_valve_open == 1)
|
// {
|
// Motor_A_EN_L;
|
// Motor_B_EN_L;
|
//
|
// gprs_protocol_header.Valve_Status = 0x03;
|
// FM25V02_data_write(gprs_protocol_header.Valve_Status,VALVE_STATE_ADDR);
|
// system_alarm.alarm_Valve_Abnormal_time ++;
|
// if(system_alarm.alarm_Valve_Abnormal_time>=250)
|
// {
|
// system_alarm.alarm_Valve_Abnormal_time = 250;
|
// }
|
// if(system_alarm.alarm_Valve_Abnormal_time<=2) //ÿÌìÖ»±¨2´Î¡£
|
// {
|
// system_alarm.alarm_Valve_Abnormal = 1;
|
// }
|
// Valve_Force_Open_Flag = 0;
|
// OpenValveFLAG = 0;
|
// }
|
// Time_For_valve_open --;
|
|
// Valve_control_parm.OpenValveTime ++;
|
// Valve_control_parm.CloseValveTime ++;
|
//
|
// if(Valve_control_parm.OpenValveTime>3) //ºöÂÔ3ÃëÄÚµÄÖжϣ¬ÒòΪ·§ÃÅÆô¶¯Ë²¼äµçÁ÷½Ï´ó»á½øÈëÖжÏ
|
// {
|
// if(OpenValveFLAG==1 || Valve_Force_Open_Flag == 1)
|
// {
|
// if(Motor_OP_PIN_READ==0)
|
// {
|
// Valve_control_parm.CurrentState0Time++;
|
// if(Valve_control_parm.CurrentState0Time>1)
|
// {
|
// Motor_A_EN_L;
|
// Motor_B_EN_L;
|
// OpenValveFLAG = 0;
|
// system_alarm.alarm_Valve_open = 1;
|
// gprs_protocol_header.Valve_Status = 1;
|
// Valve_control_parm.ValveHaveClosedTime = 0;
|
// FM25V02_data_write(gprs_protocol_header.Valve_Status,VALVE_STATE_ADDR);
|
// Time_For_valve_open = 0; //Óе½Î»Öжϣ¬³¬Ê±µ½¼ÆÊ±ÇåÁ㣬²»¼ÆÁË
|
// Valve_Force_Open_Flag = 0;
|
// Valve_control_parm.CurrentState0Time = 0;
|
//
|
// Valve_control_parm.OpenValveTime = 0;
|
// Valve_control_parm.CloseValveTime = 0;
|
// }
|
// }
|
// }
|
// }
|
//
|
// if(Valve_control_parm.CloseValveTime>3)//ºöÂÔ3ÃëÄÚµÄÖжϣ¬ÒòΪ·§ÃÅÆô¶¯Ë²¼äµçÁ÷½Ï´ó»á½øÈëÖжÏ
|
// {
|
// if(OpenValveFLAG==2)
|
// {
|
// if(Motor_CL_PIN_READ==0)
|
// {
|
// Valve_control_parm.CurrentState0Time++;
|
// if(Valve_control_parm.CurrentState0Time>1)
|
// {
|
// Motor_A_EN_L;
|
// Motor_B_EN_L;
|
// OpenValveFLAG = 0;
|
// system_alarm.alarm_Valve_close = 1;
|
// gprs_protocol_header.Valve_Status = 2;
|
// Valve_control_parm.ValveHaveClosedTime = 1;
|
// FM25V02_data_write(gprs_protocol_header.Valve_Status,VALVE_STATE_ADDR);
|
// Time_For_valve_open = 0; //Óе½Î»Öжϣ¬³¬Ê±µ½¼ÆÊ±ÇåÁ㣬²»¼ÆÁË
|
// Valve_control_parm.CurrentState0Time = 0;
|
|
// Valve_control_parm.OpenValveTime = 0;
|
// Valve_control_parm.CloseValveTime = 0;
|
// }
|
// }
|
// }
|
// }
|
// }
|
// }
|
// else if(Valve_control_parm.Valve_Type == SZV103_VALVE)
|
// {
|
// if(Time_For_valve_open)
|
// {
|
// if(Time_For_valve_open == 1)
|
// {
|
// Motor_A_EN_L;
|
// Motor_B_EN_L;
|
//
|
// gprs_protocol_header.Valve_Status = 0x03;
|
// system_alarm.alarm_Valve_Abnormal_time ++;
|
// if(system_alarm.alarm_Valve_Abnormal_time>=250)
|
// {
|
// system_alarm.alarm_Valve_Abnormal_time = 250;
|
// }
|
// if(system_alarm.alarm_Valve_Abnormal_time<=2) //ÿÌìÖ»±¨2´Î¡£
|
// {
|
// system_alarm.alarm_Valve_Abnormal = 1;
|
// }
|
//
|
// OpenValveFLAG = 0;
|
// Valve_Force_Open_Flag = 0;
|
// }
|
// Time_For_valve_open --;
|
// Valve_control_parm.OpenValveTime ++;
|
// Valve_control_parm.CloseValveTime ++;
|
|
// if(OpenValveFLAG==1 || Valve_Force_Open_Flag == 1)
|
// {
|
// if(Motor_OP_PIN_READ==0)
|
// {
|
// Valve_control_parm.CurrentState0Time++;
|
// if(Valve_control_parm.CurrentState0Time>1)
|
// {
|
// Motor_A_EN_L;
|
// Motor_B_EN_L;
|
// OpenValveFLAG = 0;
|
// system_alarm.alarm_Valve_open = 1;
|
// gprs_protocol_header.Valve_Status = 1;
|
// Valve_control_parm.ValveHaveClosedTime = 0;
|
// Time_For_valve_open = 0; //Óе½Î»Öжϣ¬³¬Ê±µ½¼ÆÊ±ÇåÁ㣬²»¼ÆÁË
|
// Valve_Force_Open_Flag = 0;
|
|
// Valve_control_parm.CurrentState0Time = 0;
|
// Valve_control_parm.OpenValveTime = 0;
|
// Valve_control_parm.CloseValveTime = 0;
|
// }
|
// }
|
// }
|
|
//
|
// if(OpenValveFLAG==2)
|
// {
|
// if(Motor_CL_PIN_READ==0)
|
// {
|
// Valve_control_parm.CurrentState0Time++;
|
// if(Valve_control_parm.CurrentState0Time>1)
|
// {
|
// Motor_A_EN_L;
|
// Motor_B_EN_L;
|
// OpenValveFLAG = 0;
|
// system_alarm.alarm_Valve_close = 1;
|
// gprs_protocol_header.Valve_Status = 2;
|
// Valve_control_parm.ValveHaveClosedTime = 1;
|
// Time_For_valve_open = 0; //Óе½Î»Öжϣ¬³¬Ê±µ½¼ÆÊ±ÇåÁ㣬²»¼ÆÁË
|
//
|
// Valve_control_parm.CurrentState0Time = 0;
|
// Valve_control_parm.OpenValveTime = 0;
|
// Valve_control_parm.CloseValveTime = 0;
|
// }
|
// }
|
// }
|
//
|
// }
|
// }
|
// else
|
// {
|
// if(Time_For_valve_open)
|
// {
|
// if(Time_For_valve_open == 1)
|
// {
|
// Motor_A_EN_L;
|
// Motor_B_EN_L;
|
//
|
// if((gprs_protocol_header.Valve_Status == 2)&&(OpenValveFLAG==1)) //Èç¹ûÈÔ´¦ÓÚ¿ª·§±êÖ¾£¬Î´¿ªµ½Î»£¬Ò²Ã»Óйط§£¬Ôò±íʾ·§ÃÅÒì³££¬ÒѾ¿ª·§¿ª²»µ½Î»ÁË¡£
|
// {
|
// gprs_protocol_header.Valve_Status = 0x03;
|
// system_alarm.alarm_Valve_Abnormal_time ++;
|
// if(system_alarm.alarm_Valve_Abnormal_time>=250)
|
// {
|
// system_alarm.alarm_Valve_Abnormal_time = 250;
|
// }
|
// if(system_alarm.alarm_Valve_Abnormal_time<=2) //ÿÌìÖ»±¨2´Î¡£
|
// {
|
// system_alarm.alarm_Valve_Abnormal = 1;
|
// }
|
// }
|
// OpenValveFLAG = 0;
|
// Valve_Force_Open_Flag = 0;
|
// }
|
// Time_For_valve_open --;
|
// }
|
// }
|
// if(!RTC_Setting_Flag)
|
// {
|
// if(LCD_TYPE_FLAG ==0)
|
// {
|
// if(LCD_sleepTime)
|
// {
|
// LCD_sleepTime --;
|
// LCD_DisplayAll();
|
// }
|
// else
|
// {
|
// if( LCD_flag == 1)
|
// {
|
// LCD_sleepTime = LCD_WAKEUP_TIME;
|
// LCD_DisplayAll();
|
// }
|
// else
|
// {
|
// LCD_Power_Init();
|
// LCD_Clear();
|
// LCD_Power_OFF;
|
//
|
// }
|
// }
|
// }
|
// else
|
// {
|
// if(LCD_sleepTime)
|
// {
|
// LCD_sleepTime --;
|
// LCD_DisplayAll_New1();
|
// }
|
// else
|
// {
|
// if( LCD_flag == 1)
|
// {
|
// LCD_sleepTime = LCD_WAKEUP_TIME;
|
// LCD_DisplayAll_New1();
|
// }
|
// else
|
// {
|
// LCD_Power_Init();
|
// LCD_Clear_NEW();
|
// LCD_driver_0FF_NEW();
|
// LCD_Power_OFF;
|
|
// }
|
// }
|
// }
|
// }
|
//
|
// }
|
//}
|
|
/////========ÒÔÏÂÊÇÖжϵÄÅäÖÃ========================================================================================================
|
void ex_rtc_nv_config()
|
{
|
CMU_OPCCR1_EXTICKSEL_Set(CMU_OPCCR1_EXTICKSEL_LSCLK); // EXTIÖжϲÉÑùʱÖÓÑ¡Ôñ
|
CMU_OPCCR1_EXTICKE_Setable(ENABLE); // EXTI¹¤×÷ʱÖÓʹÄÜ
|
|
GPIO_EXTI_Init(RTC_INT_PIN_GROUP, RTC_INT_PIN_NUM, EXTI_FALLING, ENABLE);
|
|
/*NVICÖжÏÅäÖÃ*/
|
NVIC_DisableIRQ(GPIO_IRQn);
|
NVIC_SetPriority(GPIO_IRQn, 2); // ÖжÏÓÅÏȼ¶ÅäÖÃ
|
NVIC_EnableIRQ(GPIO_IRQn);
|
}
|
|
void ex_rtc_nv_config_disable()
|
{
|
CMU_OPCCR1_EXTICKSEL_Set(CMU_OPCCR1_EXTICKSEL_LSCLK); // EXTIÖжϲÉÑùʱÖÓÑ¡Ôñ
|
CMU_OPCCR1_EXTICKE_Setable(ENABLE); // EXTI¹¤×÷ʱÖÓʹÄÜ
|
|
GPIO_EXTI_Init(RTC_INT_PIN_GROUP, RTC_INT_PIN_NUM, EXTI_FALLING, DISABLE);
|
|
/*NVICÖжÏÅäÖÃ*/
|
NVIC_DisableIRQ(GPIO_IRQn);
|
NVIC_SetPriority(GPIO_IRQn, 2); // ÖжÏÓÅÏȼ¶ÅäÖÃ
|
NVIC_EnableIRQ(GPIO_IRQn);
|
}
|
|
void Key_config(void)
|
{
|
CMU_OPCCR1_EXTICKSEL_Set(CMU_OPCCR1_EXTICKSEL_LSCLK); // EXTIÖжϲÉÑùʱÖÓÑ¡Ôñ
|
CMU_OPCCR1_EXTICKE_Setable(ENABLE); // EXTI¹¤×÷ʱÖÓʹÄÜ
|
|
GPIO_EXTI_Init(KEY1_PIN_GROUP, KEY1_PIN_NUM, EXTI_FALLING, ENABLE);
|
GPIO_EXTI_Init(KEY2_PIN_GROUP, KEY2_PIN_NUM, EXTI_FALLING, ENABLE);
|
GPIO_EXTI_Init(KEY3_PIN_GROUP, KEY3_PIN_NUM, EXTI_FALLING, ENABLE);
|
|
/*NVICÖжÏÅäÖÃ*/
|
NVIC_DisableIRQ(GPIO_IRQn);
|
NVIC_SetPriority(GPIO_IRQn, 2); // ÖжÏÓÅÏȼ¶ÅäÖÃ
|
NVIC_EnableIRQ(GPIO_IRQn);
|
}
|
|
void LOW_PULSE_config(void)
|
{
|
CMU_OPCCR1_EXTICKSEL_Set(CMU_OPCCR1_EXTICKSEL_LSCLK); // EXTIÖжϲÉÑùʱÖÓÑ¡Ôñ
|
CMU_OPCCR1_EXTICKE_Setable(ENABLE); // EXTI¹¤×÷ʱÖÓʹÄÜ
|
GPIO_EXTI_Init(LOWPLUSE_PIN_GROUP, LOWPLUSE_PIN_NUM, EXTI_FALLING, ENABLE);
|
}
|
|
void LOW_PULSE_Rising_config(void)
|
{
|
CMU_OPCCR1_EXTICKSEL_Set(CMU_OPCCR1_EXTICKSEL_LSCLK); // EXTIÖжϲÉÑùʱÖÓÑ¡Ôñ
|
CMU_OPCCR1_EXTICKE_Setable(ENABLE); // EXTI¹¤×÷ʱÖÓʹÄÜ
|
|
GPIO_EXTI_Init(LOWPLUSE_PIN_GROUP, LOWPLUSE_PIN_NUM, EXTI_RISING, ENABLE);
|
|
/*NVICÖжÏÅäÖÃ*/
|
NVIC_DisableIRQ(GPIO_IRQn);
|
NVIC_SetPriority(GPIO_IRQn, 2); // ÖжÏÓÅÏȼ¶ÅäÖÃ
|
NVIC_EnableIRQ(GPIO_IRQn);
|
}
|
|
void LOW_PULSE_Rising_disconfig(void)
|
{
|
CMU_OPCCR1_EXTICKSEL_Set(CMU_OPCCR1_EXTICKSEL_LSCLK); // EXTIÖжϲÉÑùʱÖÓÑ¡Ôñ
|
CMU_OPCCR1_EXTICKE_Setable(ENABLE); // EXTI¹¤×÷ʱÖÓʹÄÜ
|
|
GPIO_EXTI_Init(LOWPLUSE_PIN_GROUP, LOWPLUSE_PIN_NUM, EXTI_RISING, DISABLE);
|
|
/*NVICÖжÏÅäÖÃ*/
|
NVIC_DisableIRQ(GPIO_IRQn);
|
NVIC_SetPriority(GPIO_IRQn, 2); // ÖжÏÓÅÏȼ¶ÅäÖÃ
|
NVIC_EnableIRQ(GPIO_IRQn);
|
}
|
|
// void BAT_io_dec_config(void)
|
//{
|
// CMU_OPCCR1_EXTICKSEL_Set(CMU_OPCCR1_EXTICKSEL_LSCLK);//EXTIÖжϲÉÑùʱÖÓÑ¡Ôñ
|
// CMU_OPCCR1_EXTICKE_Setable(ENABLE); //EXTI¹¤×÷ʱÖÓʹÄÜ
|
|
// GPIO_EXTI_Init( LOW_PWR_INT_PIN_GROUP, LOW_PWR_INT_PIN_NUM, EXTI_FALLING, ENABLE);
|
// GPIO_EXTI_Init( UNDER_PWR_INT_PIN_GROUP, UNDER_PWR_INT_PIN_NUM, EXTI_FALLING, ENABLE);
|
// GPIO_EXTI_Init( ALKA_BAT_M_PIN_GROUP, ALKA_BAT_M_PIN_NUM, EXTI_FALLING, ENABLE);
|
// GPIO_EXTI_Init( LITH_BAT_LOW_PWR_PIN_GROUP, LITH_BAT_LOW_PWR_PIN_NUM, EXTI_FALLING, ENABLE);
|
//
|
// /*NVICÖжÏÅäÖÃ*/
|
// NVIC_DisableIRQ(GPIO_IRQn);
|
// NVIC_SetPriority(GPIO_IRQn,2);//ÖжÏÓÅÏȼ¶ÅäÖÃ
|
// NVIC_EnableIRQ(GPIO_IRQn);
|
//
|
//}
|
|
void Alka_Falling_config(void)
|
{
|
CMU_OPCCR1_EXTICKSEL_Set(CMU_OPCCR1_EXTICKSEL_LSCLK); // EXTIÖжϲÉÑùʱÖÓÑ¡Ôñ
|
CMU_OPCCR1_EXTICKE_Setable(ENABLE); // EXTI¹¤×÷ʱÖÓʹÄÜ
|
|
GPIO_EXTI_Init(ALKA_BAT_M_PIN_GROUP, ALKA_BAT_M_PIN_NUM, EXTI_FALLING, ENABLE);
|
|
/*NVICÖжÏÅäÖÃ*/
|
NVIC_DisableIRQ(GPIO_IRQn);
|
NVIC_SetPriority(GPIO_IRQn, 2); // ÖжÏÓÅÏȼ¶ÅäÖÃ
|
NVIC_EnableIRQ(GPIO_IRQn);
|
}
|
|
void Alka_Falling_Disconfig(void)
|
{
|
CMU_OPCCR1_EXTICKSEL_Set(CMU_OPCCR1_EXTICKSEL_LSCLK); // EXTIÖжϲÉÑùʱÖÓÑ¡Ôñ
|
CMU_OPCCR1_EXTICKE_Setable(ENABLE); // EXTI¹¤×÷ʱÖÓʹÄÜ
|
|
GPIO_EXTI_Init(ALKA_BAT_M_PIN_GROUP, ALKA_BAT_M_PIN_NUM, EXTI_FALLING, DISABLE);
|
|
/*NVICÖжÏÅäÖÃ*/
|
NVIC_DisableIRQ(GPIO_IRQn);
|
NVIC_SetPriority(GPIO_IRQn, 2); // ÖжÏÓÅÏȼ¶ÅäÖÃ
|
NVIC_EnableIRQ(GPIO_IRQn);
|
}
|
|
// void AlarmLine_config(void)
|
//{
|
// CMU_OPCCR1_EXTICKSEL_Set(CMU_OPCCR1_EXTICKSEL_LSCLK);//EXTIÖжϲÉÑùʱÖÓÑ¡Ôñ
|
// CMU_OPCCR1_EXTICKE_Setable(ENABLE); //EXTI¹¤×÷ʱÖÓʹÄÜ
|
|
// GPIO_EXTI_Init( ALARM_LINE_PIN_GROUP, ALARM_LINE_PIN_NUM, EXTI_FALLING, ENABLE);
|
//
|
// /*NVICÖжÏÅäÖÃ*/
|
// NVIC_DisableIRQ(GPIO_IRQn);
|
// NVIC_SetPriority(GPIO_IRQn,2);//ÖжÏÓÅÏȼ¶ÅäÖÃ
|
// NVIC_EnableIRQ(GPIO_IRQn);
|
//
|
//}
|
|
// void HWID0_config(void)
|
//{
|
// CMU_OPCCR1_EXTICKSEL_Set(CMU_OPCCR1_EXTICKSEL_LSCLK);//EXTIÖжϲÉÑùʱÖÓÑ¡Ôñ
|
// CMU_OPCCR1_EXTICKE_Setable(ENABLE); //EXTI¹¤×÷ʱÖÓʹÄÜ
|
|
// GPIO_EXTI_Init( HWID0_PIN_GROUP, HWID0_PIN_NUM, EXTI_FALLING, ENABLE);
|
//
|
// /*NVICÖжÏÅäÖÃ*/
|
// NVIC_DisableIRQ(GPIO_IRQn);
|
// NVIC_SetPriority(GPIO_IRQn,2);//ÖжÏÓÅÏȼ¶ÅäÖÃ
|
// NVIC_EnableIRQ(GPIO_IRQn);
|
//
|
//}
|
|
// void LIMIT_TRIG_config(void)
|
//{
|
// CMU_OPCCR1_EXTICKSEL_Set(CMU_OPCCR1_EXTICKSEL_LSCLK);//EXTIÖжϲÉÑùʱÖÓÑ¡Ôñ
|
// CMU_OPCCR1_EXTICKE_Setable(ENABLE); //EXTI¹¤×÷ʱÖÓʹÄÜ
|
|
// GPIO_EXTI_Init( LIMIT_TRIG_PIN_GROUP, LIMIT_TRIG_PIN_NUM, EXTI_FALLING, ENABLE);
|
//
|
// /*NVICÖжÏÅäÖÃ*/
|
// NVIC_DisableIRQ(GPIO_IRQn);
|
// NVIC_SetPriority(GPIO_IRQn,2);//ÖжÏÓÅÏȼ¶ÅäÖÃ
|
// NVIC_EnableIRQ(GPIO_IRQn);
|
//
|
//}
|
|
/******************************************
|
* func: EX_Motor_op_cl_config
|
* desc: External motor drive interrupt configuration
|
* input: none
|
* output: none
|
* return: none
|
*****************************************/
|
void EX_Motor_op_cl_config()
|
{
|
CMU_OPCCR1_EXTICKSEL_Set(CMU_OPCCR1_EXTICKSEL_LSCLK); // EXTIÖжϲÉÑùʱÖÓÑ¡Ôñ
|
CMU_OPCCR1_EXTICKE_Setable(ENABLE); // EXTI¹¤×÷ʱÖÓʹÄÜ
|
|
GPIO_EXTI_Init(Motor_OP_PIN_GROUP, Motor_OP_PIN_NUM, EXTI_FALLING, ENABLE);
|
GPIO_EXTI_Init(Motor_CL_PIN_GROUP, Motor_CL_PIN_NUM, EXTI_FALLING, ENABLE);
|
|
/*NVICÖжÏÅäÖÃ*/
|
NVIC_DisableIRQ(GPIO_IRQn);
|
NVIC_SetPriority(GPIO_IRQn, 2); // ÖжÏÓÅÏȼ¶ÅäÖÃ
|
NVIC_EnableIRQ(GPIO_IRQn);
|
}
|
|
/******************************************
|
* func: EX_Motor_op_cl_config
|
* desc: External motor drive interrupt configuration
|
* input: none
|
* output: none
|
* return: none
|
*****************************************/
|
void EX_Motor_op_cl_disable(void)
|
{
|
CMU_OPCCR1_EXTICKSEL_Set(CMU_OPCCR1_EXTICKSEL_LSCLK); // EXTIÖжϲÉÑùʱÖÓÑ¡Ôñ
|
CMU_OPCCR1_EXTICKE_Setable(ENABLE); // EXTI¹¤×÷ʱÖÓʹÄÜ
|
|
GPIO_EXTI_Init(Motor_OP_PIN_GROUP, Motor_OP_PIN_NUM, EXTI_FALLING, DISABLE);
|
GPIO_EXTI_Init(Motor_CL_PIN_GROUP, Motor_CL_PIN_NUM, EXTI_FALLING, DISABLE);
|
|
/*NVICÖжÏÅäÖÃ*/
|
NVIC_DisableIRQ(GPIO_IRQn);
|
NVIC_SetPriority(GPIO_IRQn, 2); // ÖжÏÓÅÏȼ¶ÅäÖÃ
|
NVIC_EnableIRQ(GPIO_IRQn);
|
}
|
|
/******************************************
|
* func: UNCAP_Config
|
* desc: External motor drive interrupt configuration
|
* input: none
|
* output: none
|
* return: none
|
*****************************************/
|
void UNCAP_Config(void)
|
{
|
CMU_OPCCR1_EXTICKSEL_Set(CMU_OPCCR1_EXTICKSEL_LSCLK); // EXTIÖжϲÉÑùʱÖÓÑ¡Ôñ
|
CMU_OPCCR1_EXTICKE_Setable(ENABLE); // EXTI¹¤×÷ʱÖÓʹÄÜ
|
|
GPIO_EXTI_Init(UNCAP_INT_PIN_GROUP, UNCAP_INT_PIN_NUM, EXTI_FALLING, ENABLE);
|
|
/*NVICÖжÏÅäÖÃ*/
|
NVIC_DisableIRQ(GPIO_IRQn);
|
NVIC_SetPriority(GPIO_IRQn, 2); // ÖжÏÓÅÏȼ¶ÅäÖÃ
|
NVIC_EnableIRQ(GPIO_IRQn);
|
}
|
/******************************************
|
* func: Force_Open_Config
|
* desc: External motor drive interrupt configuration
|
* input: none
|
* output: none
|
* return: none
|
*****************************************/
|
void Force_Open_Config(void)
|
{
|
CMU_OPCCR1_EXTICKSEL_Set(CMU_OPCCR1_EXTICKSEL_LSCLK); // EXTIÖжϲÉÑùʱÖÓÑ¡Ôñ
|
CMU_OPCCR1_EXTICKE_Setable(ENABLE); // EXTI¹¤×÷ʱÖÓʹÄÜ
|
|
GPIO_EXTI_Init(FORCE_OPEN_INT_PIN_GROUP, FORCE_OPEN_INT_PIN_NUM, EXTI_RISING, ENABLE);
|
|
/*NVICÖжÏÅäÖÃ*/
|
NVIC_DisableIRQ(GPIO_IRQn);
|
NVIC_SetPriority(GPIO_IRQn, 2); // ÖжÏÓÅÏȼ¶ÅäÖÃ
|
NVIC_EnableIRQ(GPIO_IRQn);
|
}
|
|
//========ÒÔÏÂÊdzõʼ»¯µÄ²Ù×÷===========================================================================================================================
|
void BSTimer_Init(uint16_t Psc, uint32_t Arr)
|
{
|
CMU_PERCLK_SetableEx(BSTIMCLK, ENABLE); // ÍâÉè×ÜÏßʱÖÓʹÄÜ
|
CMU_OPCCR2_BSTCKS_Set(CMU_OPCCR2_BSTCKS_SYSCLK); // Ñ¡Ôñ¹¤×÷ʱÖÓÔ´
|
CMU_OPCCR2_BSTCKE_Setable(ENABLE); // ¹¤×÷ʱÖÓԴʹÄÜ
|
|
BSTIM_CR1_ARPE_Setable(ENABLE); // Ô¤×°ÔØÊ¹ÄÜ
|
// BSTIM_CR1_OPM_Set(BSTIM_CR1_OPM_STOP); //Update Event·¢Éúʱ¼ÆÊýÆ÷Í£Ö¹£¨×Ô¶¯ÇåÁãCEN£©
|
BSTIM_CR1_OPM_Set(BSTIM_CR1_OPM_CONTINUE); // UE²úÉúʱ¼ÆÊýÆ÷²»Í£Ö¹
|
|
BSTIM_PSCR_Write(Psc - 1);
|
BSTIM_ARR_Write(Arr - 1);
|
|
NVIC_DisableIRQ(BSTIM_IRQn);
|
NVIC_SetPriority(BSTIM_IRQn, 2); // ÖжÏÓÅÏȼ¶ÅäÖÃ
|
NVIC_EnableIRQ(BSTIM_IRQn);
|
|
/*½â¾ö¿ªÆô¶¨Ê±Æ÷»áÖ±½Ó½øÈëÒ»´ÎÖжϵÄÎÊÌâ*/
|
BSTIM_IER_UIE_Setable(ENABLE); // UpdateÖжÏʹÄÜ
|
|
BSTIM_CR1_CEN_Setable(ENABLE); // ¼ÆÊýÆ÷ʹÄÜ
|
BSTIM_ISR_UIF_Clr();
|
}
|
|
/******************************************
|
* func: work_mode_sys_init
|
* desc: ³õʼ»¯ÏµÍ³£¬ÅäÖö¨Ê±Æ÷ ºÍ GPIOÒÔ¼°Ïà¹ØµÄÍâÉè¡£
|
* input: none
|
* output: none
|
* return: none
|
*****************************************/
|
void work_mode_sys_init()
|
{
|
|
BSTimer_Init(12000, 1000);
|
|
// /*ÅäÖÃÄÚ²¿µÄRTCʱÖÓ*/
|
// ex_rtc_nv_config();
|
// /* Motor external interrupt*/
|
// EX_Motor_op_cl_config();
|
//
|
// /* key interrupt*/
|
// Key_config();
|
//
|
// /* LF PULSE interrupt*/
|
// LOW_PULSE_config();
|
//
|
// BAT_io_dec_config();
|
//
|
// HWID0_config();
|
//
|
// UNCAP_Config();
|
//
|
// Force_Open_Config();
|
//
|
// AlarmLine_config();
|
|
CMU_OPCCR1_EXTICKSEL_Set(CMU_OPCCR1_EXTICKSEL_LSCLK); // EXTIÖжϲÉÑùʱÖÓÑ¡Ôñ
|
CMU_OPCCR1_EXTICKE_Setable(ENABLE); // EXTI¹¤×÷ʱÖÓʹÄÜ
|
|
GPIO_EXTI_Init(RTC_INT_PIN_GROUP, RTC_INT_PIN_NUM, EXTI_FALLING, ENABLE);
|
|
GPIO_EXTI_Init(Motor_OP_PIN_GROUP, Motor_OP_PIN_NUM, EXTI_FALLING, ENABLE);
|
GPIO_EXTI_Init(Motor_CL_PIN_GROUP, Motor_CL_PIN_NUM, EXTI_FALLING, ENABLE);
|
|
GPIO_EXTI_Init(KEY1_PIN_GROUP, KEY1_PIN_NUM, EXTI_FALLING, ENABLE);
|
GPIO_EXTI_Init(KEY2_PIN_GROUP, KEY2_PIN_NUM, EXTI_FALLING, ENABLE);
|
GPIO_EXTI_Init(KEY3_PIN_GROUP, KEY3_PIN_NUM, EXTI_FALLING, ENABLE);
|
|
// GPIO_EXTI_Init( LOWPLUSE_PIN_GROUP, LOWPLUSE_PIN_NUM, EXTI_FALLING, ENABLE);
|
|
GPIO_EXTI_Init(LOW_PWR_INT_PIN_GROUP, LOW_PWR_INT_PIN_NUM, EXTI_FALLING, ENABLE);
|
GPIO_EXTI_Init(UNDER_PWR_INT_PIN_GROUP, UNDER_PWR_INT_PIN_NUM, EXTI_FALLING, ENABLE);
|
// GPIO_EXTI_Init( ALKA_BAT_M_PIN_GROUP, ALKA_BAT_M_PIN_NUM, EXTI_FALLING, ENABLE);
|
GPIO_EXTI_Init(LITH_BAT_LOW_PWR_PIN_GROUP, LITH_BAT_LOW_PWR_PIN_NUM, EXTI_FALLING, ENABLE);
|
|
GPIO_EXTI_Init(HWID0_PIN_GROUP, HWID0_PIN_NUM, EXTI_FALLING, ENABLE);
|
|
GPIO_EXTI_Init(UNCAP_INT_PIN_GROUP, UNCAP_INT_PIN_NUM, EXTI_FALLING, ENABLE);
|
|
GPIO_EXTI_Init(FORCE_OPEN_INT_PIN_GROUP, FORCE_OPEN_INT_PIN_NUM, EXTI_RISING, ENABLE);
|
|
GPIO_EXTI_Init(ALARM_LINE_PIN_GROUP, ALARM_LINE_PIN_NUM, EXTI_FALLING, ENABLE);
|
|
GPIO_EXTI_Init(HWID0_PIN_GROUP, HWID0_PIN_NUM, EXTI_FALLING, ENABLE);
|
|
GPIO_EXTI_Init(LIMIT_TRIG_PIN_GROUP, LIMIT_TRIG_PIN_NUM, EXTI_FALLING, ENABLE);
|
|
/*NVICÖжÏÅäÖÃ*/
|
NVIC_DisableIRQ(GPIO_IRQn);
|
NVIC_SetPriority(GPIO_IRQn, 2); // ÖжÏÓÅÏȼ¶ÅäÖÃ
|
NVIC_EnableIRQ(GPIO_IRQn);
|
}
|
|
/******************************************
|
* func: gpio_init
|
* desc: ³õʼ»¯ÏµÍ³¶Ë¿ÚIO;
|
* input: none
|
* output: none
|
* return: none
|
*****************************************/
|
void GPIO_All_Init(void)
|
{
|
|
/*³õʼ»¯flashºÍÌúµçÄ£¿é*/
|
Fram_Flash_GPIO_Init();
|
|
/*³õʼ»¯RTC¹Ü½Å*/
|
RTCINT_GPIO_Init();
|
|
Low_Pluse_GPIO_Init();
|
/*³õʼ»¯°´¼ü*/
|
Key_GPIO_Init();
|
|
/*BAT_io*/
|
BAT_io_dec_init();
|
// ±¨¾¯ÏßÊäÈ룬ÔÏÈÔ¤Áô£¬ÏÖÔÚ×ö³É±¨¾¯¹Ø·§ÐźÅÏß
|
Alarm_IO_init();
|
/*switch io*/
|
SWITCH_GPIO_Init();
|
|
/**/
|
POWER_EX_GPIO_Init();
|
|
OUTPUT_EN_GPIO_Init();
|
|
Motor_GPIO_Init();
|
/*Ñ¡ÅäÆ÷¼þ*/
|
|
UNCAP_GPIO_Init();
|
|
Force_Open_GPIO_Init();
|
|
POWER_3V8_Init();
|
Upper_RS232_GPIO_Init();
|
GPRS_RS232_GPIO_Init();
|
RS485_GPIO_Init();
|
All_NO_USE_GPIO_sleep_mode();
|
}
|
|
void All_SPI_Init(void)
|
{
|
CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý
|
|
AltFunIO(Fram_Flash_SPI_SCL_GROUP, Fram_Flash_SPI_SCL_PIN_NUM, ALTFUN_NORMAL); // SCK
|
AltFunIO(Fram_Flash_SPI_MOSI_PIN_GROUP, Fram_Flash_SPI_MISO_PIN_NUM, ALTFUN_NORMAL); // MISO
|
AltFunIO(Fram_Flash_SPI_MISO_PIN_GROUP, Fram_Flash_SPI_MOSI_PIN_NUM, ALTFUN_NORMAL); // MOSI
|
|
CMU_PERCLK_SetableEx(SPI3CLK, ENABLE); // ¿ªÆôSPI3×ÜÏßʱÖÓ
|
|
SPIx_CR1_IOSWAP_Set(SPI3, SPIx_CR1_IOSWAP_DEFAULT); // MISO¡¢MOSIĬÈÏÒý½Å ²»½»»»
|
SPIx_CR1_MM_Set(SPI3, SPIx_CR1_MM_MASTER); // masterģʽ
|
SPIx_CR1_WAIT_Set(SPI3, SPIx_CR1_WAIT_1WAIT); // ÿ·¢ËÍÍêÒ»Ö¡ºó²åÈëÒ»¸öCLK
|
SPIx_CR1_BAUD_Set(SPI3, SPIx_CR1_BAUD_DIV4); // ²¨ÌØÂÊÉèÖÃΪÍâÉèʱÖÓ2·ÖƵ
|
SPIx_CR1_LSBF_Set(SPI3, SPIx_CR1_LSBF_MSB); // Ö¡¸ñʽÏÈ·¢ËÍMSB
|
SPIx_CR1_CPHOL_Set(SPI3, SPIx_CR1_CPHOL_LOW); // CLKÍ£Ö¹ÔÚµÍµçÆ½
|
SPIx_CR1_CPHA_Set(SPI3, SPIx_CR1_CPHA_1CLOCK); // µÚÒ»¸öʱÖÓ±ßÑØ²¶×½
|
SPIx_CR2_SSNSEN_Setable(SPI3, DISABLE); // SSNÓÉÓ²¼þ¿ØÖÆ
|
|
SPIx_CR2_RXO_Setable(SPI3, DISABLE); // SPIÉèÖÃΪȫ˫¹¤
|
SPIx_CR2_DLEN_Set(SPI3, SPIx_CR2_DLEN_8BIT); // ͨÐÅÊý¾Ý×Ö³¤8bit
|
SPIx_CR2_HALFDUPLEX_Set(SPI3, SPIx_CR2_HALFDUPLEX_SPI); // SPIÉèÖÃΪ±ê×¼SPIģʽ
|
SPIx_CR2_SSNM_Set(SPI3, SPIx_CR2_SSNM_LOW); // ÿ´Î·¢Íêmasterºóssn±£³ÖµÍ
|
SPIx_CR2_TXO_AC_Setable(SPI3, DISABLE); // ¹Ø±ÕTXONLY×Ô¶¯Çå0
|
SPIx_CR2_TXO_Setable(SPI3, DISABLE); // ¹Ø±ÕTXONLYģʽ
|
|
SPIx_CR3_SERRC_Clr(SPI3); // Çå³ý´Ó»ú´íÎó±êÖ¾
|
SPIx_CR3_MERRC_Clr(SPI3); // Çå³ýÖ÷»ú´íÎó±êÖ¾
|
SPIx_CR3_RXBFC_Clr(SPI3); // Çå³ýRXBUF
|
SPIx_CR3_TXBFC_Clr(SPI3); // Çå³ýTXBUF
|
|
SPIx_CR2_SPIEN_Setable(SPI3, ENABLE); // ʹÄÜSPI3
|
}
|
|
void UTR_init(void)
|
{
|
// ÉÏλ»úUART
|
UTR_Uart_Init(115200);
|
Upper_RS232_GPIO_Init();
|
}
|
|
void All_init(void)
|
{
|
GPIO_InitTypeDef GPIO_InitStructure;
|
|
// /*³õʼ»¯flashºÍÌúµçÄ£¿é*/
|
Fram_Flash_GPIO_Init();
|
|
RTC_GPIO_Init();
|
|
All_NO_USE_GPIO_sleep_mode();
|
|
All_SPI_Init();
|
}
|