drv_timer0.c

来自「CC1000 Rf modem C codes for philips sLpc」· C语言 代码 · 共 70 行

C
70
字号
#include "config_GD61.h"
#include "include_GD61.h"
#include <stdio.h>
#include <math.h>


/////////////////////////////////////////////////////////////////////////////	
volatile uint16 mSecondTick;		// for delay function

void DelayMS_(uint16 dly);
void __irq IRQ_Timer0 (void);
void TimerInitialize(void);

/****************************************************************************
** 函数名称 :DelayMS()		 ;delay 1 mil second 
** 函数功能 :长软件延时
** 入口参数 :dly	延时参数,值越大,延时越久
** 出口参数 :无
****************************************************************************/
void DelayMS_(uint16 dly)
{
	mSecondTick=(dly+1);		//resolution is 1 mS
	while(mSecondTick>1);	
}

/****************************************************************************
** 函数名称 :IRQ_Timer0()
** 函数功能 :定时器0中断服务程序,取反LED9控制口。
** 入口参数 :无
** 出口参数 :无
*****************************************************************************/
void __irq IRQ_Timer0(void)
{


	if(mSecondTick!=0){
		mSecondTick--;						// ms running, for delay function
	}
	
	
////
	T0IR = 0x01;			/* 清除中断标志*/
	VICVectAddr = 0x00;		/* 通知VIC中断处理结束*/
}

////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
void TimerInitialize(void)
{
/* 定时器0初始化 */
	T0TC   = 0;				/* 定时器设置为0							*/
	T0PR   = 0;				/* 时钟不分频								*/
	T0MCR  = 0x03;			/* 设置T0MR0匹配后复位T0TC,并产生中断标志	*/
	T0MR0  = LPC_FPCLK /1000;	/* 1/1000秒钟定时							*/
	T0TCR  = 0x01;			/* 启动定时器								*/
	
/* 设置定时器0中断IRQ */
//	VICIntSelect = 0x00000000;			/* 所有中断通道设置为IRQ中断*/
	VICVectCntl5 = 0x20|INT_TIMER0;		/* 设置定时器0中断通道分配最高优先级*/
	VICVectAddr5 = (uint32)IRQ_Timer0;	/* 设置中断服务程序地址*/
	VICIntEnable = 1<<INT_TIMER0;		/* 使能定时器0中断*/
}


//////////////////////////////////////////////////////////////////////////
// end of file //

⌨️ 快捷键说明

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