📄 interruptservice.c
字号:
/*############################################################
文件名: InterruptService.c
功能: 所有中断服务函数实现
单位: 浙江工商大学-信电学院
创建日期:2004-09-24
创建人: Houseivan
修改人: Houseivan
修改日期:2005-03-11
############################################################*/
#include"Includes.h"
/*检查是否需要提供系统中断服务*/
#if _SYS_INTERRUPT>0
extern uchar data MeasureTimer; //测量用定时器1s=50x20ms
extern uchar data SampleTimer; //系统数据刷新定时器1min=60x1s
extern uchar data StoreTimer; //存储采样定时器1Hour=60x1min
/*------------------中断函数声明地址区---------------------------------*/
#if _DETECT_TASK>0
extern uint data HumiCounter; //湿度计数器
extern uint data TempCounter; //温度计数器
/*############################################################
名称: HumidityCounter()
功能: 外部中断0用于代替counter1计数湿度脉冲
注意: 必须设置成边沿触发方式
############################################################*/
void HumidityCounter() interrupt 0
{
HumiCounter++;
}
#endif
/*############################################################
名称: TemperatureCounter()
功能: 计数器0对温度频率进行计数
注意: 结果存放到TempCounter
void Temperature_Counter() interrupt 1 {}
############################################################*/
/*############################################################
名称: Extern1Service()
功能: 保留外部中断1
注意:
void Extern1Service() interrupt 2 {}
############################################################*/
//sbit Wdog=P2^5;
//#define ClearWatchDog() {Wdog=1; ; ; ; ; Wdog=0;}
/*############################################################
名称: Timer20ms()
功能: 20ms定时功能
注意: 1000ms=40 x 25 ms
最大定时时间:42666.666666666666666666666666667us=43ms
40ms fosc=18.432M 0x112c /12MHZ 0x63c0
############################################################*/
void Timer20ms() interrupt 3
{
//EnterCritical();
MeasureTimer++;
if(MeasureTimer>_MEASURE_ALARM) //==50这个值要被使用
{
MeasureTimer=0;
SampleTimer++; //一分钟定时器
if(SampleTimer>_SAMPLE_ALARM) //==60这个值要被使用
{
SampleTimer=0;
StoreTimer++; //一个小时定时器
if(StoreTimer>_STORE_ALARM)
StoreTimer=0;
}
}
ClearWatchDog();
TH1=_TIMER1_H;
TL1=_TIMER1_L;
//ExitCritical();
}
/*############################################################
名称: ScomService()
功能: 串行中断服务函数
注意:
void ScomService() interrupt 4
############################################################*/
/*############################################################
名称: BaudSetupTimer2()
功能: 串行中断服务函数
注意: 该设备在本系统中作为波特率发生器使用
############################################################*/
/*###########################################################
void BaudSetupTimer2() interrupt 5
{}
############################################################*/
/*----------------------------------------------------------------------*/
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -