📄 time.c
字号:
#include "SM89516A.h"
#include "scan.h"
#include "time.h"
#include "common.h"
#include "process.h"
#include "save_rf.h"
#include "i2c.h"
uint xdata rfcd_time[11];
uint xdata rfcd_1min=0;
uint xdata save_time=0;
uint r_time;
uint l_time;
uint rain_1min;
uint level_1min;
uchar wdt_time=0;
uchar svrf_flg=0;
uint xdata rain_1s=0;
uint xdata water_1s=0;
uint xdata process_1s=0;
/************************************************************/
/*函数名:time_svr2
/*描述:定时2中断,20ms为一个时隙
/*输入:
/*输出:无
/************************************************************/
void time_svr2(void) interrupt 5
{
static unsigned int i,j;
TF2=0; // 溢出标志必须由软件清零
EXF2=0; // 捕获标志必须由软件清零
i++;
j++;
rain_1min++;
level_1min++;
rain_1s++;
water_1s++;
process_1s++;
if(j>=25)
{
lamp=!lamp;
j=0;
}
if(rain_1min>=3000)
{
rain_1min=0;
r_time++;
}
if(level_1min>=3000)
{
level_1min=0;
l_time++;
}
if(i>=scan_ltime)
{
i=0;
Scan_Level();
Level_Process();
WaterLevel_Process();
}
}
/************************************************************/
/*函数名:time_svr0
/*描述:定时0中断,定时1ms
/*输入:
/*输出:无
/************************************************************/
void time_svr0(void) interrupt 1
{
unsigned char i;
TH0=0xfc;
TL0=0x66;
wdt_time++;
rfcd_1min++;
Scan_Rain();
Rain_Process();
if(rfcd_1min>=60000)
{
rfcd_1min=0;
save_time++;
if(save_time>=MIN_5TIME)
{
save_time=0;
Save_rainfall();
svrf_flg=1;
}
for(i=0;i<11;i++)
rfcd_time[i]++;
}
}
/************************************************************/
/*函数名:void WatchDog(void)
/*描述:加载看门狗
/*输入:
/*输出:无
/************************************************************/
void WatchDog(void)
{
if(wdt_time>=10)
{
wdt_time=0;
WDTKEY=0x1E;
WDTKEY=0xE1;
WDTC|=0x20;
WDTKEY=0xE1;
WDTKEY=0x1E;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -