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

📄 wdt.c

📁 iar公司的s3c44b0x评估板的源程序
💻 C
字号:
/*
*******************************************************************************
*   HEADER FILES
*******************************************************************************
*/

#include "44b0.h"
#include "dm.h"

WDTContextT wdt;

static void StartTimer (WDTContextT *ctxP, UINT16 count)
{
	volatile WDTRegsT *wdtP = (WDTRegsT *)ctxP->regsP;
	wdtP->WTCNT = 0xffff;
	wdtP->WTDAT = 0xffff;
	wdtP->WTCON |= (1<<5);      // start
	return;
}

static UINT16 StopTimer (WDTContextT *ctxP)
{
	volatile WDTRegsT *wdtP = (WDTRegsT *)ctxP->regsP;
	wdtP->WTCON &= ~(1<<5);     // stop
	return wdtP->WTCNT;
}

static void WaitTimer (WDTContextT *ctxP, UINT16 ticks)
{
	volatile WDTRegsT *wdtP = (WDTRegsT *)ctxP->regsP;
	wdtP->WTCNT = 0xffff;
	wdtP->WTDAT = 0xffff;
	wdtP->WTCON |= (1<<5);      // start
	while (ticks > (0xffff - wdtP->WTCNT));
	wdtP->WTCON &= ~(1<<5);     // stop
	return;
}

static void SetupTimer (WDTContextT *ctxP, UINT8 prescale, UINT8 divider)
{
	volatile WDTRegsT *wdtP = (WDTRegsT *)ctxP->regsP;
	wdtP->WTCON = 0x0000;
	wdtP->WTCON = (prescale << 8) | (divider << 3);     // disable reset, disable interrupt
	return;
}

/*
*******************************************************************************
*   GLOBAL FUNCTIONS
*******************************************************************************
*/

void WDTSWInit (void)
{
    WDTContextT *ctxP = &wdt;

    ctxP->regsP     = (WDTRegsT *)WDTREG_BASE;
    ctxP->setup_fnp = (WDTSetup_T)SetupTimer;
    ctxP->start_fnp = (WDTStart_T)StartTimer;
    ctxP->stop_fnp  = (WDTStop_T)StopTimer;
    ctxP->wait_fnp  = (WDTWait_T)WaitTimer;

    return;
}

⌨️ 快捷键说明

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