⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tmrisr.cpp

📁 湖北水文黄石试点集中器代码
💻 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 + -