📄 wdt.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 + -