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

📄 mng_tmr.c

📁 基于MSP430FG4618MCU的铭正同创LCD驱动程序。
💻 C
字号:
#include "sys_def.h"
#include "mng_tmr.h"

/*******************************************************************************
// 静态变量定义
*******************************************************************************/
static UINT uiTickCount;
//timer data
#define SIZE_TMR_QUEUE		20
static TimerNode_t aTimerBuffer[SIZE_TMR_QUEUE];
static TimerList_t	stTimerList;
/*******************************************************************************
// 外部函数定义
*******************************************************************************/
void TmrMngInit()
{
	//初始化软件
	uiTickCount = 0;
	for (int i = 0; i < SIZE_TMR_QUEUE-1; ++i){
		aTimerBuffer[i].next = &aTimerBuffer[i + 1];
		aTimerBuffer[i + 1].prev = &aTimerBuffer[i];
	}
	aTimerBuffer[SIZE_TMR_QUEUE-1].next = &stTimerList.stFreeHead;
	aTimerBuffer[0].prev = &stTimerList.stFreeHead;
	stTimerList.stFreeHead.next = &aTimerBuffer[0];
	stTimerList.stFreeHead.prev = &aTimerBuffer[SIZE_TMR_QUEUE-1];
	stTimerList.stTimerHead.next = &stTimerList.stTimerHead;
	stTimerList.stTimerHead.prev = &stTimerList.stTimerHead;
	
	//初始化硬件
	WDTCTL = WDTPW + WDTTMSEL + WDTSSEL + WDTCNTCL;			//Init WDT Timer
	IFG1 &= ~WDTIFG;
	IE1 |= WDTIE;
	FLL_CTL0 |= DCOPLUS + XCAP18PF;							//Init FLL Clock
	SCFI0 |= FN_4;
	SCFQCTL = 121;

	do{
		IFG1 &= ~OFIFG;
		Delay(1);
	}while ((IFG1 & OFIFG));
	
	return;
}

UINT GetTickCount()
{
	return uiTickCount;
}

__monitor int TimerProc()
{
	++uiTickCount;
	return OK;
}

/* 0xFFF4 Watchdog Timer */
#pragma vector=WDT_VECTOR
__interrupt void WDT(void)
{
	if (OK == TimerProc()){
		__bic_SR_register_on_exit(CPUOFF);
	}
	
	return;
}

⌨️ 快捷键说明

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