From d352b1982dc9b4fb2135c64cd909bb9cecc62139 Mon Sep 17 00:00:00 2001
From: jinlicong <493886250@qq.com>
Date: Fri, 14 Jun 2024 15:58:03 +0800
Subject: [PATCH] 添加.gitignore
---
Function/FLOW_METER_DATA_COLLECT/pulse_and_alarm_line.c | 371 +++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 363 insertions(+), 8 deletions(-)
diff --git a/Function/FLOW_METER_DATA_COLLECT/pulse_and_alarm_line.c b/Function/FLOW_METER_DATA_COLLECT/pulse_and_alarm_line.c
index ae8fbd2..468bf02 100644
--- a/Function/FLOW_METER_DATA_COLLECT/pulse_and_alarm_line.c
+++ b/Function/FLOW_METER_DATA_COLLECT/pulse_and_alarm_line.c
@@ -1,33 +1,41 @@
#include "pulse_and_alarm_line.h"
#include "system_mem_para.h"
#include "gpio.h"
+#include "sizhu_ctrl_word.h"
+#include "tim.h"
+#include "linked_list.h"
+#include "sizhu_alarm_record.h"
+
+__IO int16_t pulse_count =0; //�����������һ������+1,���ս��㵽�ۻ�����,����֮������
+__IO FlagStatus pulse_exti_flag = RESET;
+__IO uint32_t pulse_check_delay_ms_cnt = 0;
void LP_lose_check_GPIO_Clk_Init(void)
{
CMU_PERCLK_SetableEx(PADCLK, ENABLE); //PADʱ�ӣ�GPIO��ʹ�ܺ���
OutputIO(LP_LOSE_CHECK_EN_PORT,LP_LOSE_CHECK_EN_PIN,OUT_PUSHPULL);
- LP_LOSE_CHECK_DISENABLE;
+ LP_LOSE_CHECK_DISABLE;
}
void LV_lose_check_GPIO_Clk_Init(void)
{
CMU_PERCLK_SetableEx(PADCLK, ENABLE); //PADʱ�ӣ�GPIO��ʹ�ܺ���
OutputIO(LV_LOSE_CHECK_EN_PORT,LV_LOSE_CHECK_EN_PIN,OUT_PUSHPULL);
- LV_LOSE_CHECK_DISENABLE;
+ LV_LOSE_CHECK_DISABLE;
}
void UV_lose_check_GPIO_Clk_Init(void)
{
CMU_PERCLK_SetableEx(PADCLK, ENABLE); //PADʱ�ӣ�GPIO��ʹ�ܺ���
OutputIO(UV_LOSE_CHECK_EN_PORT,UV_LOSE_CHECK_EN_PIN,OUT_PUSHPULL);
- UV_LOSE_CHECK_DISENABLE;
+ UV_LOSE_CHECK_DISABLE;
}
void CV_lose_check_GPIO_Clk_Init(void)
{
CMU_PERCLK_SetableEx(PADCLK, ENABLE); //PADʱ�ӣ�GPIO��ʹ�ܺ���
OutputIO(CV_LOSE_CHECK_EN_PORT,CV_LOSE_CHECK_EN_PIN,OUT_PUSHPULL);
- CV_LOSE_CHECK_DISENABLE;
+ CV_LOSE_CHECK_DISABLE;
}
void LF_PULSE_INT_GPIO_Clk_Init(void)
@@ -94,21 +102,368 @@
}
+
+
+
+
+
+
+
//�����ߺͱ����߳�ʼ��
void PulseAndAlarmLineInit(void)
{
-
+ /*������*/
if((flow_meter_para_g.broken_line_multiplex & BROKEN_LINE_MUTIPLEX_PULSE)==BROKEN_LINE_MUTIPLEX_PULSE){
//���ȸ���
LP_lose_check_GPIO_Clk_Init();
- LF_PULSE_INT_GPIO_Clk_Init();
+ if(__SYS_ALARM_CTL_BYTES_GET(broken_line) == SET){
+ LF_PULSE_INT_GPIO_Clk_Init();
+ LP_LOSE_CHECK_ENABLE;
+ delay_ms(1);
+
+ if(IO_JitterEliminationCheck(LF_PULSE_INT_PORT,LF_PULSE_INT_PIN,1,Bit_SET)==SET){
+ __SYS_STATUS_BYTES_STATUS(broken_line,SET,ALARM_ID_BROKEN_LINE);
+ }else{
+ __SYS_STATUS_BYTES_STATUS(broken_line,RESET,ALARM_ID_BROKEN_LINE);
+ }
+
+ }else{
+ LF_PULSE_INT_GPIO_Clk_sleep();
+ }
+ LP_LOSE_CHECK_DISABLE;
}else if((flow_meter_para_g.flow_meter_conn_type==FLOW_METER_CONN_PULSE)||(flow_meter_para_g.flow_meter_conn_type==FLOW_METER_CONN_RS485_AND_PULSE)){
//�������������
- }else{
+ LP_lose_check_GPIO_Clk_Init();
+ LF_PULSE_INT_GPIO_Clk_Init();
+ LP_LOSE_CHECK_ENABLE;
+ //���û�����������߸��ã����������ź�ֱ���ж϶���״̬
+ if((flow_meter_para_g.broken_line_multiplex& 0xf0) ==BROKEN_LINE_MUTIPLEX_NONE){
+
+ if((flow_meter_para_g.flow_meter_code !=ASMODBUS)&&(flow_meter_para_g.flow_meter_code !=AS100MODBUS)&&(flow_meter_para_g.flow_meter_code !=SIARGO_MODBUS)){
+ if(IO_JitterEliminationCheck(LF_PULSE_INT_PORT,LF_PULSE_INT_PIN,501,Bit_RESET)==SET){
+ __SYS_STATUS_BYTES_STATUS(broken_line,SET,ALARM_ID_BROKEN_LINE);
+ }else{
+ __SYS_STATUS_BYTES_STATUS(broken_line,RESET,ALARM_ID_BROKEN_LINE);
+ }
+ }else{
+ __SYS_STATUS_BYTES_STATUS(broken_line,RESET,ALARM_ID_BROKEN_LINE);
+ }
+ }
+
+ BasicTimer16_Init(BT1,240,PULSE_CHECK_DELAY_MS*(SYSCLOCK_U/240/1000)); //PULSE_CHECK_DELAY_MS ��ʱ�������������ʱ��⣬�����������PULSE_CHECK_DELAY_MS��Ч��ȥ��
+
+ }else{
+ //����������
+ LP_lose_check_GPIO_Clk_Init();
+ LF_PULSE_INT_GPIO_Clk_sleep();
+ LP_LOSE_CHECK_DISABLE;
+ }
+
+
+ /*Ƿѹ������*/
+ if(((flow_meter_para_g.broken_line_multiplex & 0xf0)==BROKEN_LINE_MUTIPLEX_DOWN_PWR)&&(__SYS_ALARM_CTL_BYTES_GET(broken_line) == SET)){
+ //���ȸ���
+ UV_lose_check_GPIO_Clk_Init();
+ Under_Pwr_INT_GPIO_Clk_Init();
+ UV_LOSE_CHECK_ENABLE;
+ delay_ms(1);
+
+ if(IO_JitterEliminationCheck(UNDER_PWR_INT_PORT,UNDER_PWR_INT_PIN,1,Bit_SET)==SET){
+ __SYS_STATUS_BYTES_STATUS(broken_line,SET,ALARM_ID_BROKEN_LINE);
+ }else{
+ __SYS_STATUS_BYTES_STATUS(broken_line,RESET,ALARM_ID_BROKEN_LINE);
+ }
+
+ UV_LOSE_CHECK_DISABLE;
+
+ }else if(__SYS_ALARM_CTL_BYTES_GET(flow_meter_under_pwr) == SET){
+ //����������ⲿǷѹ����
+ UV_lose_check_GPIO_Clk_Init();
+ Under_Pwr_INT_GPIO_Clk_Init();
+ UV_LOSE_CHECK_ENABLE;
+ delay_ms(1);
+
+ if(IO_JitterEliminationCheck(UNDER_PWR_INT_PORT,UNDER_PWR_INT_PIN,1,Bit_RESET)==SET){
+ __SYS_STATUS_BYTES_GET(flow_meter_under_pwr) = SET ;
+ }else{
+ __SYS_STATUS_BYTES_GET(flow_meter_under_pwr) = RESET ;
+ }
+
+ UV_LOSE_CHECK_DISABLE;
+
+ }else{
+ //����������
+ UV_lose_check_GPIO_Clk_Init();
+ Under_Pwr_INT_GPIO_Clk_sleep();
+ UV_LOSE_CHECK_DISABLE;
+ }
+
+
+ /*�͵籨����*/
+ if(((flow_meter_para_g.broken_line_multiplex & 0xf0)==BROKEN_LINE_MUTIPLEX_LOW_PWR)&&(__SYS_ALARM_CTL_BYTES_GET(broken_line) == SET)){
+ //���ȸ���
+ LV_lose_check_GPIO_Clk_Init();
+ Low_Pwr_INT_GPIO_Clk_Init();
+ LV_LOSE_CHECK_ENABLE;
+ delay_ms(1);
+
+ if(IO_JitterEliminationCheck(LOW_PWR_INT_PORT,LOW_PWR_INT_PIN,1,Bit_SET)==SET){
+ __SYS_STATUS_BYTES_STATUS(broken_line,SET,ALARM_ID_BROKEN_LINE);
+ }else{
+ __SYS_STATUS_BYTES_STATUS(broken_line,RESET,ALARM_ID_BROKEN_LINE);
+ }
+
+ LV_LOSE_CHECK_DISABLE;
+
+ }else if(__SYS_ALARM_CTL_BYTES_GET(flow_meter_low_pwr) == SET){
+ //����������ⲿǷѹ����
+ LV_lose_check_GPIO_Clk_Init();
+ Low_Pwr_INT_GPIO_Clk_Init();
+ LV_LOSE_CHECK_ENABLE;
+ delay_ms(1);
+
+ if(IO_JitterEliminationCheck(LOW_PWR_INT_PORT,LOW_PWR_INT_PIN,1,Bit_RESET)==SET){
+ __SYS_STATUS_BYTES_GET(flow_meter_low_pwr) = SET ;
+ }else{
+ __SYS_STATUS_BYTES_GET(flow_meter_low_pwr) = RESET ;
+ }
+
+ UV_LOSE_CHECK_DISABLE;
+
+ }else{
+ //����������
+ LV_lose_check_GPIO_Clk_Init();
+ Low_Pwr_INT_GPIO_Clk_sleep();
+ LV_LOSE_CHECK_DISABLE;
+ }
+
+ /*�ط�������*/
+ //��Ϊ��Ҫ�����ط��������ö��߹����������жϣ�����ط���������ѭ�����洦��
+ if(((flow_meter_para_g.broken_line_multiplex & 0xf0)==BROKEN_LINE_MUTIPLEX_CLOSE_VALVE)&&(__SYS_ALARM_CTL_BYTES_GET(broken_line) == SET)){
+ //���ȸ���
+ CV_lose_check_GPIO_Clk_Init();
+ Close_Valve_Alarm_Line_GPIO_Clk_Init();
+ CV_LOSE_CHECK_ENABLE;
+ delay_ms(1);
+
+ if(IO_JitterEliminationCheck(CV_ALM_A_PORT,CV_ALM_A_PIN,1,Bit_SET)==SET){
+ __SYS_STATUS_BYTES_STATUS(broken_line,SET,ALARM_ID_BROKEN_LINE);
+ }else{
+ __SYS_STATUS_BYTES_STATUS(broken_line,RESET,ALARM_ID_BROKEN_LINE);
+ }
+
+ CV_LOSE_CHECK_DISABLE;
+
+ }else{
+ CV_lose_check_GPIO_Clk_Init();
+ Close_Valve_Alarm_Line_GPIO_Clk_sleep();
+ CV_LOSE_CHECK_DISABLE;
+ }
+}
+
+
+#define ALARM_LINE_CONTINUE_TIMES 3 //���ܳ���250��������״̬����ALARM_LINE_CONTINUE_TIMES��ʱ��Ϊ��Ч
+
+void PulseAndAlarmLineCheck(void)
+{
+ static uint8_t broken_line_cnt=0;
+ static uint8_t low_pwr_line_cnt=0;
+ static uint8_t under_pwr_line_cnt=0;
+ static uint8_t close_valve_line_cnt=0;
+
+
+ /*������*/
+ if((flow_meter_para_g.broken_line_multiplex & BROKEN_LINE_MUTIPLEX_PULSE)==BROKEN_LINE_MUTIPLEX_PULSE){
+ //���ȸ���
+ LP_lose_check_GPIO_Clk_Init();
+ if(__SYS_ALARM_CTL_BYTES_GET(broken_line) == SET){
+ LF_PULSE_INT_GPIO_Clk_Init();
+ LP_LOSE_CHECK_ENABLE;
+ delay_ms(1);
+
+ if(IO_JitterEliminationCheck(LF_PULSE_INT_PORT,LF_PULSE_INT_PIN,1,Bit_SET)==SET){
+ if(broken_line_cnt < 250) broken_line_cnt ++ ;
+ }else{
+ broken_line_cnt = 0 ;
+ }
+
+ }else{
+ LF_PULSE_INT_GPIO_Clk_sleep();
+ }
+
+ LP_LOSE_CHECK_DISABLE;
+ }else if((flow_meter_para_g.flow_meter_conn_type==FLOW_METER_CONN_PULSE)||(flow_meter_para_g.flow_meter_conn_type==FLOW_METER_CONN_RS485_AND_PULSE)){
+ //�������������
+ LP_lose_check_GPIO_Clk_Init();
+ LF_PULSE_INT_GPIO_Clk_Init();
+ LP_LOSE_CHECK_ENABLE;
+
+ //���û�����������߸��ã����������ź�ֱ���ж϶���״̬
+ if((flow_meter_para_g.broken_line_multiplex& 0xf0) ==BROKEN_LINE_MUTIPLEX_NONE){
+
+ if((flow_meter_para_g.flow_meter_code !=ASMODBUS)&&(flow_meter_para_g.flow_meter_code !=AS100MODBUS)&&(flow_meter_para_g.flow_meter_code !=SIARGO_MODBUS)){
+ if(IO_JitterEliminationCheck(LF_PULSE_INT_PORT,LF_PULSE_INT_PIN,1,Bit_RESET)==SET){
+ if(broken_line_cnt < 250) broken_line_cnt ++ ;
+ }else{
+ broken_line_cnt = 0 ;
+ }
+ }else{
+ broken_line_cnt = 0 ;
+ }
+ }
+
+ }else{
+ //����������
+ LP_lose_check_GPIO_Clk_Init();
+ LF_PULSE_INT_GPIO_Clk_sleep();
+ LP_LOSE_CHECK_DISABLE;
+ }
+
+
+ /*Ƿѹ������*/
+ if(((flow_meter_para_g.broken_line_multiplex & 0xf0)==BROKEN_LINE_MUTIPLEX_DOWN_PWR)&&(__SYS_ALARM_CTL_BYTES_GET(broken_line) == SET)){
+ //���ȸ���
+ UV_lose_check_GPIO_Clk_Init();
+ Under_Pwr_INT_GPIO_Clk_Init();
+ UV_LOSE_CHECK_ENABLE;
+ delay_ms(1);
+
+ if(IO_JitterEliminationCheck(UNDER_PWR_INT_PORT,UNDER_PWR_INT_PIN,1,Bit_SET)==SET){
+ if(broken_line_cnt < 250) broken_line_cnt ++ ;
+ }else{
+ broken_line_cnt = 0 ;
+ }
+
+ UV_LOSE_CHECK_DISABLE;
+
+ }else if(__SYS_ALARM_CTL_BYTES_GET(flow_meter_under_pwr) == SET){
+ //����������ⲿǷѹ����
+ UV_lose_check_GPIO_Clk_Init();
+ Under_Pwr_INT_GPIO_Clk_Init();
+ UV_LOSE_CHECK_ENABLE;
+ delay_ms(1);
+
+ if(IO_JitterEliminationCheck(UNDER_PWR_INT_PORT,UNDER_PWR_INT_PIN,1,Bit_RESET)==SET){
+ if(under_pwr_line_cnt < 250) under_pwr_line_cnt ++;
+ }else{
+ under_pwr_line_cnt = 0;
+ }
+
+ UV_LOSE_CHECK_DISABLE;
+
+ }else{
+ //����������
+ UV_lose_check_GPIO_Clk_Init();
+ Under_Pwr_INT_GPIO_Clk_sleep();
+ UV_LOSE_CHECK_DISABLE;
+ }
+
+ //Ƿѹ��������
+ if(under_pwr_line_cnt >= ALARM_LINE_CONTINUE_TIMES){
+ __SYS_STATUS_ALARM_BYTES_SET(flow_meter_under_pwr,ALARM_ID_FLOW_BAT_DOWN);
+ }
+
+
+ /*�͵籨����*/
+ if(((flow_meter_para_g.broken_line_multiplex & 0xf0)==BROKEN_LINE_MUTIPLEX_LOW_PWR)&&(__SYS_ALARM_CTL_BYTES_GET(broken_line) == SET)){
+ //���ȸ���
+ LV_lose_check_GPIO_Clk_Init();
+ Low_Pwr_INT_GPIO_Clk_Init();
+ LV_LOSE_CHECK_ENABLE;
+ delay_ms(1);
+
+ if(IO_JitterEliminationCheck(LOW_PWR_INT_PORT,LOW_PWR_INT_PIN,1,Bit_SET)==SET){
+ if(broken_line_cnt < 250) broken_line_cnt ++ ;
+ }else{
+ broken_line_cnt = 0 ;
+ }
+
+ LV_LOSE_CHECK_DISABLE;
+
+ }else if(__SYS_ALARM_CTL_BYTES_GET(flow_meter_low_pwr) == SET){
+ //����������ⲿǷѹ����
+ LV_lose_check_GPIO_Clk_Init();
+ Low_Pwr_INT_GPIO_Clk_Init();
+ LV_LOSE_CHECK_ENABLE;
+ delay_ms(1);
+
+ if(IO_JitterEliminationCheck(LOW_PWR_INT_PORT,LOW_PWR_INT_PIN,1,Bit_RESET)==SET){
+ if(low_pwr_line_cnt < 250) low_pwr_line_cnt ++;
+ }else{
+ low_pwr_line_cnt = 0;
+ }
+
+ UV_LOSE_CHECK_DISABLE;
+
+ }else{
+ //����������
+ LV_lose_check_GPIO_Clk_Init();
+ Low_Pwr_INT_GPIO_Clk_sleep();
+ LV_LOSE_CHECK_DISABLE;
+ }
+
+ //�͵籨������
+ if(low_pwr_line_cnt >= ALARM_LINE_CONTINUE_TIMES){
+ __SYS_STATUS_ALARM_BYTES_SET(flow_meter_low_pwr,ALARM_ID_FLOW_BAT_LOW);
+ }
+
+ /*�ط�������*/
+ //��Ϊ��Ҫ�����ط�����ʼ���Բ����жϣ�����ѭ�����洦��
+ if(((flow_meter_para_g.broken_line_multiplex & 0xf0)==BROKEN_LINE_MUTIPLEX_CLOSE_VALVE)&&(__SYS_ALARM_CTL_BYTES_GET(broken_line) == SET)){
+ //���ȸ���
+ CV_lose_check_GPIO_Clk_Init();
+ Close_Valve_Alarm_Line_GPIO_Clk_Init();
+ CV_LOSE_CHECK_ENABLE;
+ delay_ms(1);
+
+ if(IO_JitterEliminationCheck(CV_ALM_A_PORT,CV_ALM_A_PIN,1,Bit_SET)==SET){
+ if(broken_line_cnt < 250) broken_line_cnt ++ ;
+ }else{
+ broken_line_cnt = 0 ;
+ }
+
+ CV_LOSE_CHECK_DISABLE;
+
+ }else if(__SYS_ALARM_CTL_BYTES_GET(ex_trigger_close_valve) == SET){
+ CV_lose_check_GPIO_Clk_Init();
+ Close_Valve_Alarm_Line_GPIO_Clk_Init();
+ CV_LOSE_CHECK_ENABLE;
+ delay_ms(1);
+
+ if(IO_JitterEliminationCheck(CV_ALM_A_PORT,CV_ALM_A_PIN,1,Bit_RESET)==SET){
+ if(close_valve_line_cnt < 250) close_valve_line_cnt ++ ;
+ }else{
+ close_valve_line_cnt = 0 ;
+ }
+
+ CV_LOSE_CHECK_DISABLE;
+
+ }else{
+ CV_lose_check_GPIO_Clk_Init();
+ Close_Valve_Alarm_Line_GPIO_Clk_sleep();
+ CV_LOSE_CHECK_DISABLE;
+ }
+
+ //�ⲿ�����ط���������
+ if(close_valve_line_cnt >= ALARM_LINE_CONTINUE_TIMES){
+ __SYS_STATUS_ALARM_BYTES_SET(ex_trigger_close_valve,ALARM_ID_EX_TRIGGER_CLOSE_VALVE);
}
-}
\ No newline at end of file
+ //���߱����� ��Ϊ�ܶ��߶����Ը��ö��ߣ����Զ��߷�������ж�
+ if(broken_line_cnt >= ALARM_LINE_CONTINUE_TIMES){
+ __SYS_STATUS_ALARM_BYTES_SET(broken_line,ALARM_ID_BROKEN_LINE);
+ }else{
+ __SYS_STATUS_BYTES_STATUS(broken_line,RESET,ALARM_ID_BROKEN_LINE);
+ }
+
+
+}
+
+
+
+
+
--
Gitblit v1.9.3