📄 tmrisr.cpp
字号:
#include <dos.h>
#include <stdio.h>
#include "tmrisr.h"
#include "keyscan.h"
#ifdef __cplusplus
#define __CPPARGS ...
#else
#define __CPPARGS
#endif
unsigned int Timer10sCnt=0; //显示TCP是否正常的定时器计数
unsigned long Timer_RfIvtwakeupCnt=0; //雨量间隔时间上报定时器计数
unsigned long Timer_WlIvtwakeupCnt=0; //水位间隔时间上报定时器计数
unsigned char Timer_PPPLinkCntFlg = 0; //集中器上GPRS网络定时器开启标志
unsigned long Timer_PPPLinkCnt=0; //集中器上GPRS网络定时器计数
unsigned char Timer_TCPLinkCntFlg = 0; //集中器与中心建立TCP连接定时器开启标志
unsigned long Timer_TCPLinkCnt=0; //集中器与中心建立TCP连接定时器计数
////////////////////////////////////////////////////////////////////记录采集器对中心指令的响应时间
unsigned int Timer3sCnt_zcwl_flg=0; //召测水位定时器开启标志
unsigned int Timer3sCnt_zcwl=0; //召测水位定时器计数
unsigned int Timer3sCnt_pzrfsc_flg=0; //配置雨量发送条件定时器开启标志
unsigned int Timer3sCnt_pzrfsc=0; //配置雨量发送条件定时器计数
unsigned int Timer3sCnt_pzwlsc_flg=0; //配置水位发送条件定时器开启标志
unsigned int Timer3sCnt_pzwlsc=0; //配置水位发送条件定时器计数
unsigned int Timer3sCnt_pzrfivt_flg=0; //配置雨量采集间隔时间定时器开启标志
unsigned int Timer3sCnt_pzrfivt=0; //配置雨量采集间隔时间定时器计数
unsigned int Timer3sCnt_pzwlivt_flg=0; //配置水位采集间隔时间定时器开启标志
unsigned int Timer3sCnt_pzwlivt=0; //配置水位采集间隔时间定时器计数
unsigned long TimerCnt_Get485Data=0;
/////////////////////////////////////////////////////////////////////////////////////
unsigned long TimerCnt_485hasRFdata=0;
unsigned long TimerCnt_485hasWLdata=0;
void interrupt ( *oldIRQ12handler)(__CPPARGS);
void interrupt IRQ12_ISR(__CPPARGS);
void interrupt IRQ12_ISR(__CPPARGS)
{
enable( );
Timer10sCnt++;
Timer_RfIvtwakeupCnt++;
Timer_WlIvtwakeupCnt++;
if(Timer_PPPLinkCntFlg) Timer_PPPLinkCnt++;
if(Timer_TCPLinkCntFlg) Timer_TCPLinkCnt++;
if(Timer3sCnt_zcwl_flg) Timer3sCnt_zcwl++;
if(Timer3sCnt_pzrfsc_flg) Timer3sCnt_pzrfsc++;
if(Timer3sCnt_pzwlsc_flg) Timer3sCnt_pzwlsc++;
if(Timer3sCnt_pzrfivt_flg) Timer3sCnt_pzrfivt++;
if(Timer3sCnt_pzwlivt_flg) Timer3sCnt_pzwlivt++;
TimerCnt_485hasRFdata++;
TimerCnt_485hasWLdata++;
//TimerCnt_Get485Data++;
KeyScanTmrCnt( ); //for keyscan
outport( 0xff22, 0x08 );
}
/*///////////////////////////////////////////////
INPUT: intno => interrupt number in software
ISA NAME intno
------------------------------
IRQ12 | 0x62
///////////////////////////////////////////////*/
int InstallISR12( )
{
//outport( 0xff5e, 0x4007 ); //
//outport( 0xff5e, 0xc007 ); //
outport( 0xff5e, inport(0xff5e)&0xdfff); // disable irq12
oldIRQ12handler = getvect( 0x62 );
setvect( 0x62, IRQ12_ISR );
outport( 0xff5e, inport(0xff5e)|0xe000); // enable irq12
return 0;
}
int UninstallISR12( )
{
outport( 0xff5e, inport(0xff5e)&0xdfff);
setvect( 0x62, oldIRQ12handler );
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -