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

📄 wdt.cpp

📁 湖北水文黄石试点集中器代码
💻 CPP
字号:
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright (C), 2005, Emtronix Tech. Co., Ltd.
* File name:       RS232X3.CPP
* Module name:     ETR232i模块的看门狗系列函数
* Author/Date:     Emtronix  06/02/14 
* Version:         Ver 1.0
* Description:     ETR232i模块的看门狗系列函数的.CPP文件
* Others:          如有改动,请在下面的历史记录登记,谢谢合作!

------------------History-----------------------------
* Modifier/Date:    //修订人及修订日期
* Modify Reason:    //修订原因
* Modification:     //修订的内容和位置的简要说明
------------------------------------------------------
* Modifier/Date:    //修订人及修订日期
* Modify Reason:    //修订原因
* Modification:     //修订的内容和位置的简要说明
------------------------------------------------------
 
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
#include <stdio.h>
#include <dos.h>
#include <time.h>
#include "etr232i.h"

#define INTR 0x1c

#ifdef __cplusplus
    #define __CPPARGS ...
#else
    #define __CPPARGS
#endif

void interrupt (*oldhandler)(__CPPARGS);
void interrupt newhandler( __CPPARGS );

unsigned int WDTLongCnt=0;
unsigned int MaxWDTLongCnt=0;

int SetWDTLong( float seconds )
{
   if( seconds > 300.0 )    seconds = 300.0;
   if( seconds < 2.0   )    seconds = 2.0;

   MaxWDTLongCnt = (seconds-1.3)*CLK_TCK;
   SetWDT( 26 );
   asm cli
   oldhandler = getvect(INTR);
   setvect(INTR, newhandler);
   asm sti

   return 0;
}

int Release( )
{
   asm cli
   setvect(INTR, oldhandler);
   asm sti
   return 0;
}

int ReloadWDTLong( )
{
   WDTLongCnt = 0;
   return 0;
}

void interrupt newhandler( __CPPARGS )
{
   WDTLongCnt++;
   if( WDTLongCnt<MaxWDTLongCnt )
      ReloadWDT( );
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -