leakage
This commit is contained in:
@@ -0,0 +1,145 @@
|
||||
#include "app.h"
|
||||
#include "os_timer.h"
|
||||
#include "stdio.h"
|
||||
#include "string.h"
|
||||
|
||||
#include "bsp_Uart.h"
|
||||
#include "bsp_Wdg.h"
|
||||
#include "bsp_Led.h"
|
||||
#include "bsp_74HC4067.h"
|
||||
#include "bsp_Flash.h"
|
||||
#include "tjc_usart_hmi.h"
|
||||
|
||||
#include "proto_modbus_master_tdlas.h"
|
||||
#include "proto_modbus_slave_ex.h"
|
||||
|
||||
const char *HwVersion = "V1.0";
|
||||
char SwVersion[24] = "V0.001.0";
|
||||
void TASK_Idle(void);
|
||||
void Task_10ms(void);
|
||||
void Task_50ms(void);
|
||||
void Task_100ms(void);
|
||||
void Task_200ms(void);
|
||||
void Task_500ms(void);
|
||||
void Task_1s(void);
|
||||
void Task_2s(void);
|
||||
|
||||
/******************************************
|
||||
* 函数: AppInit
|
||||
* 功能: 初始化
|
||||
* 参数: 无
|
||||
* 返回: 无
|
||||
* 描述: 无
|
||||
******************************************/
|
||||
void App_Init(void)
|
||||
{
|
||||
Usr_Flash.Init();
|
||||
|
||||
COM_Uart1.Init(&COM_Uart1);
|
||||
COM_Uart2.Init(&COM_Uart2);
|
||||
COM_Uart4.Init(&COM_Uart4);
|
||||
Led.Init();
|
||||
UartCH_Config.init();
|
||||
|
||||
|
||||
|
||||
tdlas.init();
|
||||
modbus_slave_ex.init();
|
||||
TJC_Init(&COM_Uart2);
|
||||
initRingBuffer();
|
||||
char init_msg[] = "系统初始化...\r\n";
|
||||
HAL_UART_Transmit(COM_Uart2.Uart, (uint8_t*)init_msg, strlen(init_msg), 100);
|
||||
//Wdg.Init();
|
||||
}
|
||||
|
||||
/******************************************
|
||||
* 函数: App_Task
|
||||
* 功能: 分时复用
|
||||
* 参数: 无
|
||||
* 返回: 无
|
||||
* 描述: 主循环中调用
|
||||
******************************************/
|
||||
void App_Task(void)
|
||||
{
|
||||
if (TIME_TRUE == OsTimer_CheckTimeOut(OsTimeTick_10ms, osTime_MSecTick, 10))
|
||||
{
|
||||
OsTimeTick_10ms = osTime_MSecTick;
|
||||
Task_10ms();
|
||||
}
|
||||
if (TIME_TRUE == OsTimer_CheckTimeOut(OsTimeTick_50ms, osTime_MSecTick, 50))
|
||||
{
|
||||
OsTimeTick_50ms = osTime_MSecTick;
|
||||
Task_50ms();
|
||||
}
|
||||
if (TIME_TRUE == OsTimer_CheckTimeOut(OsTimeTick_100ms, osTime_MSecTick, 100))
|
||||
{
|
||||
OsTimeTick_100ms = osTime_MSecTick;
|
||||
Task_100ms();
|
||||
}
|
||||
if (TIME_TRUE == OsTimer_CheckTimeOut(OsTimeTick_200ms, osTime_MSecTick, 200))
|
||||
{
|
||||
OsTimeTick_200ms = osTime_MSecTick;
|
||||
Task_200ms();
|
||||
}
|
||||
if (TIME_TRUE == OsTimer_CheckTimeOut(OsTimeTick_500ms, osTime_MSecTick, 500))
|
||||
{
|
||||
OsTimeTick_500ms = osTime_MSecTick;
|
||||
Task_500ms();
|
||||
}
|
||||
if (TIME_TRUE == OsTimer_CheckTimeOut(OsTimeTick_1s, osTime_MSecTick, 1000))
|
||||
{
|
||||
OsTimeTick_1s = osTime_MSecTick;
|
||||
Task_1s();
|
||||
}
|
||||
if (TIME_TRUE == OsTimer_CheckTimeOut(OsTimeTick_2s, osTime_MSecTick, 2000))
|
||||
{
|
||||
OsTimeTick_2s = osTime_MSecTick;
|
||||
Task_2s();
|
||||
}
|
||||
TASK_Idle();
|
||||
}
|
||||
/*空闲执行的函数*/
|
||||
void TASK_Idle(void)
|
||||
{
|
||||
COM_Uart1.Rx_Task(&COM_Uart1);
|
||||
COM_Uart2.Rx_Task(&COM_Uart2);
|
||||
COM_Uart4.Rx_Task(&COM_Uart4);
|
||||
}
|
||||
|
||||
void Task_10ms(void)
|
||||
{
|
||||
}
|
||||
|
||||
void Task_50ms(void)
|
||||
{
|
||||
// tdlas.tx_task();
|
||||
}
|
||||
|
||||
void Task_100ms(void)
|
||||
{
|
||||
// tdlas.tx_task();
|
||||
}
|
||||
|
||||
void Task_200ms(void)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void Task_500ms(void)
|
||||
{
|
||||
// UartCH_Config.ch_set(ch);
|
||||
// tdlas.tx_task();
|
||||
Led.Flash();
|
||||
}
|
||||
|
||||
|
||||
void Task_1s(void)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void Task_2s(void)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
#ifndef _APP_H_
|
||||
#define _APP_H_
|
||||
|
||||
extern const char *HwVersion;
|
||||
extern char SwVersion[24];
|
||||
|
||||
void App_Init(void);
|
||||
void App_Task(void);
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,4 @@
|
||||
#include "gas_data.h"
|
||||
|
||||
gas_data_t gas_data[SENSOR_NUM];
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
#ifndef _GAS_DATA_H__
|
||||
#define _GAS_DATA_H__
|
||||
|
||||
#include "main.h"
|
||||
|
||||
#define SENSOR_NUM 16
|
||||
|
||||
typedef struct
|
||||
{
|
||||
u8 ver[20]; /*软件版本号*/
|
||||
u8 sn[20]; /*SN号*/
|
||||
u16 range; /*量程*/
|
||||
s16 value; /*浓度*/
|
||||
u16 pp_ad; /*峰峰值*/
|
||||
u16 r_pp_ad; /*原始峰峰值*/
|
||||
u16 pp_pix; /*峰峰值坐标*/
|
||||
u16 light_ad; /*光功率*/
|
||||
u16 tec_set_value; /*tec设定值*/
|
||||
u16 tec_temp; /*tec温度*/
|
||||
s16 temp; /*环境温度*/
|
||||
u16 light_ad_max; /*波形最大值*/
|
||||
u16 light_ad_min; /*波形最小值*/
|
||||
u16 state_code; /*状态码*/
|
||||
u16 dc_offset; /*直流偏置*/
|
||||
//u16 ad_befor_multiple; /*AD前放大倍数*/
|
||||
u16 demod_multiple; /*锁相放大倍数*/
|
||||
//u16 mode; /*模式状态*/
|
||||
s16 calib_temp; /*标定时的温度*/
|
||||
u16 calib_press; /*标定时的压力*/
|
||||
u16 calib_humidity; /*标定时的湿度*/
|
||||
u16 fac_calib_code_h;
|
||||
u16 fac_calib_code_l; /*厂家标定时的状态码*/
|
||||
u16 reserve[1]; /*预留*/
|
||||
}gas_data_t;
|
||||
|
||||
extern gas_data_t gas_data[SENSOR_NUM];
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,121 @@
|
||||
#include "os_timer.h"
|
||||
|
||||
unsigned short osTime_MSecTick = 0; /*滴答时钟*/
|
||||
unsigned short osTime_SecTick = 0;
|
||||
unsigned short osTime_10SecTick = 0; /*10s记一次 用于自动调零周期时间记录*/
|
||||
|
||||
static unsigned short osTimer_MSec1 = 0;
|
||||
static unsigned short osTimer_MSec2 = 0;
|
||||
|
||||
unsigned short OsTimeTick_10ms;
|
||||
unsigned short OsTimeTick_50ms;
|
||||
unsigned short OsTimeTick_100ms;
|
||||
unsigned short OsTimeTick_200ms;
|
||||
unsigned short OsTimeTick_500ms;
|
||||
unsigned short OsTimeTick_1s;
|
||||
unsigned short OsTimeTick_2s;
|
||||
|
||||
/****************************************************************************
|
||||
* NAME: OsTimer_Init
|
||||
* CALLED BY: Application
|
||||
* PRECONDITIONS:
|
||||
* INPUT PARAMETERS: None
|
||||
* RETURN VALUES: None
|
||||
* DESCRIPTION: OsTimer initialization
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
void OsTimer_Init(void)
|
||||
{
|
||||
osTimer_MSec1 = 0;
|
||||
osTimer_MSec2 = 0;
|
||||
osTime_SecTick = 0;
|
||||
osTime_MSecTick = 0;
|
||||
|
||||
OsTimeTick_10ms = osTime_MSecTick;
|
||||
OsTimeTick_50ms = osTime_MSecTick;
|
||||
OsTimeTick_100ms = osTime_MSecTick;
|
||||
OsTimeTick_200ms = osTime_MSecTick;
|
||||
OsTimeTick_500ms = osTime_MSecTick;
|
||||
OsTimeTick_1s = osTime_MSecTick;
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* NAME: OsTimer_Increment
|
||||
* CALLED BY: ISR
|
||||
* PRECONDITIONS:
|
||||
* INPUT PARAMETERS: msec - millisecond to increase
|
||||
* RETURN VALUES: None
|
||||
* DESCRIPTION: Increase the Timer
|
||||
*
|
||||
****************************************************************************/
|
||||
void OsTimer_Increment(unsigned short msec)
|
||||
{
|
||||
osTime_MSecTick += msec;
|
||||
osTimer_MSec1 += msec;
|
||||
osTimer_MSec2 += msec;
|
||||
if (osTimer_MSec1 >= 1000U) /*1s*/
|
||||
{
|
||||
osTimer_MSec1 = 0U;
|
||||
osTime_SecTick++;
|
||||
}
|
||||
if (osTimer_MSec2 >= 10000U) /*10s*/
|
||||
{
|
||||
osTimer_MSec2 = 0U;
|
||||
osTime_10SecTick++;
|
||||
}
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* NAME: OsTimer_CheckTimeOut
|
||||
* CALLED BY: Application
|
||||
* PRECONDITIONS:
|
||||
* INPUT PARAMETERS: timeStart - start tick
|
||||
* timeNow - current tick
|
||||
* timeOut - expired tick
|
||||
* RETURN VALUES: whether timer is expired
|
||||
* DESCRIPTION: check if specified time is expired
|
||||
*
|
||||
****************************************************************************/
|
||||
unsigned char OsTimer_CheckTimeOut(unsigned short timeStart, unsigned short timeNow, unsigned short timeOut)
|
||||
{
|
||||
unsigned short timerActivateVal;
|
||||
timerActivateVal = timeOut + timeStart;
|
||||
|
||||
if (timerActivateVal > timeStart)
|
||||
{
|
||||
if ((timeNow >= timerActivateVal) || (timeNow < timeStart))
|
||||
{
|
||||
return TIME_TRUE;
|
||||
}
|
||||
}
|
||||
else if ((timeNow >= timerActivateVal) && (timeNow < timeStart))
|
||||
{
|
||||
return TIME_TRUE;
|
||||
}
|
||||
return TIME_FALSE;
|
||||
}
|
||||
|
||||
/*
|
||||
离结束运行还有多少时间 配合OsTimer_CheckTimeOut函数使用
|
||||
*/
|
||||
unsigned short OsTimer_CheckRunTime(unsigned short timeStart, unsigned short timeNow, unsigned short timeOut)
|
||||
{
|
||||
unsigned short timerActivateVal;
|
||||
timerActivateVal = timeOut + timeStart;
|
||||
|
||||
if (timerActivateVal > timeStart)
|
||||
{
|
||||
return (timerActivateVal - timeNow);
|
||||
}
|
||||
else
|
||||
{
|
||||
return (65535U - timeNow + timerActivateVal);
|
||||
}
|
||||
}
|
||||
|
||||
/*阻塞式延时*/
|
||||
void Delay_ms(unsigned short delay)
|
||||
{
|
||||
HAL_Delay(delay);
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
#ifndef _OSTIMER_H_
|
||||
#define _OSTIMER_H_
|
||||
|
||||
#include "main.h"
|
||||
|
||||
#define TIME_TRUE 1U
|
||||
#define TIME_FALSE 0U
|
||||
|
||||
|
||||
extern unsigned short osTime_MSecTick;
|
||||
extern unsigned short osTime_SecTick;
|
||||
extern unsigned short osTime_10SecTick; // 10s记一次 用于自动调零周期时间记录
|
||||
|
||||
extern unsigned short OsTimeTick_10ms;
|
||||
extern unsigned short OsTimeTick_50ms;
|
||||
extern unsigned short OsTimeTick_100ms;
|
||||
extern unsigned short OsTimeTick_200ms;
|
||||
extern unsigned short OsTimeTick_500ms;
|
||||
extern unsigned short OsTimeTick_1s;
|
||||
extern unsigned short OsTimeTick_2s;
|
||||
|
||||
void OsTimer_Init(void);
|
||||
void OsTimer_Increment(unsigned short msec);
|
||||
unsigned char OsTimer_CheckTimeOut(unsigned short timeStart, unsigned short timeNow, unsigned short timeOut);
|
||||
unsigned short OsTimer_CheckRunTime(unsigned short timeStart, unsigned short timeNow, unsigned short timeOut);
|
||||
|
||||
void Delay_ms(unsigned short delay);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user