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

📄 watchdog.c

📁 用于控制z1510芯片工作的程序代码
💻 C
字号:
#include <dos.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "watchdog.h"
void EnableWDT(void)
{
	unsigned int WchCon;		
	WchCon=(
		(inport(CTL_OFF+OFFS_WCHDOGCON)|WCHDOG_EN)
		&(~WCHDOG_WRST)
		&(~WCHDOG_NMIFLAG)
		&(~WCHDOG_RSTFLAG)
		);
	outport(CTL_OFF+OFFS_WCHDOGCON, WCHDOG_CMD1);
  	outport(CTL_OFF+OFFS_WCHDOGCON, WCHDOG_CMD2);
  	outport(CTL_OFF+OFFS_WCHDOGCON, WchCon);
	
}
void DisableWDT(void)
{
	outport(CTL_OFF+OFFS_WCHDOGCON, WCHDOG_CMD1);
  	outport(CTL_OFF+OFFS_WCHDOGCON, WCHDOG_CMD2);
  	outport(CTL_OFF+OFFS_WCHDOGCON, 0x0000);
}
void FeedWDT(void ) 
{	
     	outport(CTL_OFF+OFFS_WCHDOGCON, WCHDOG_RSTCMD1);
			outport(CTL_OFF+OFFS_WCHDOGCON, WCHDOG_RSTCMD2);
}

void SetWDT(char Idan)
{
	unsigned int watcon=1;
	unsigned char far*pFarUchar;
	pFarUchar = (unsigned char  far *)MK_FP(0,LONG_TIME_WDOG_COUNT_ADR);
	*pFarUchar=0;	
	if(Idan>7)
		Idan=7;
	watcon<<=Idan;
 	outport(CTL_OFF+OFFS_WCHDOGCON, WCHDOG_CMD1);
  	outport(CTL_OFF+OFFS_WCHDOGCON, WCHDOG_CMD2);
  	outport(CTL_OFF+OFFS_WCHDOGCON, watcon);
  	return;	
}

static unsigned char nCountStory=0;
void SetLongTimeWDT(unsigned char nCount)
{
	unsigned char far*pFarUchar;	
	SetWDT(7);
	nCountStory=nCount;	
	pFarUchar = (unsigned char  far *)MK_FP(0,LONG_TIME_WDOG_COUNT_ADR);
	*pFarUchar=nCount;
}

void FeedLongWDT(void ) 
{	
	unsigned char far*pFarUchar;
	pFarUchar = (unsigned char  far *)MK_FP(0,LONG_TIME_WDOG_COUNT_ADR);	
	*pFarUchar=nCountStory;
     	outport(CTL_OFF+OFFS_WCHDOGCON, WCHDOG_RSTCMD1);
	outport(CTL_OFF+OFFS_WCHDOGCON, WCHDOG_RSTCMD2);
}
void  ColdResetSystem(void)
{
  unsigned char far*pFarUchar;
  pFarUchar = (unsigned char  far *)MK_FP(0,LONG_TIME_WDOG_COUNT_ADR);
  *pFarUchar=0;	
  disable();
  outport(BIOS_PAGE_REG,0xff);
  outport(CTL_OFF+OFFS_WCHDOGCON, WCHDOG_CMD1);
  outport(CTL_OFF+OFFS_WCHDOGCON, WCHDOG_CMD2);
  outport(CTL_OFF+OFFS_WCHDOGCON, 0xC001);
  while(1);
  enable();
}

⌨️ 快捷键说明

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