📄 time.c
字号:
//文件名:Time.c
//功能: 定时器Timer0的初始化以及定时器中断函数和延时函数
//更多内容,敬请访问www.icdev.com.cn/bbs
#include <LPC210x.H>
#include "Timer.h"
long timeval; //延时用的全局变量
/************************************************************/
/* 函数名称 : tc0 */
/* 函数功能 : 定时器中断函数,每进入一次中断,timeval加1 */
/* 参数 : 无 */
/* 返回值 : 无 */
/*----------------------------------------------------------*/
void tc0 (void) __irq
{
++timeval;
T0IR = 1; // 清除中断标志
VICVectAddr = 0; // 对VICVectAddr执行写操作,通知VIC中断处理结束
}
/**********************************************************************/
/* 函数名称 : init_timer */
/* 函数功能 : 定时器timer0的初始化,包括计数初值,设置中断优先级等 */
/* 参数 : 无 */
/* 返回值 : 无 */
/*--------------------------------------------------------------------*/
void init_timer (void)
{
T0MR0 = 13823;//1ms的计数初值,当前处理器的时钟频率为11.0592 * 5 = 55.296M,具体设置见startup.s
T0MCR = 3; // 设置T0MR0匹配后复位T0TC,并产生中断标志
T0TCR = 1; //启动定时器
VICVectAddr0 = (unsigned long)tc0;//设置中断服务程序的地址
VICVectCntl0 = 0x20 | 4;//分配timer0中断到中断向量0
VICIntEnable = 0x00000010;//timer0中断使能
}
/**********************************************************************/
/* 函数名称 : wait */
/* 函数功能 : 延时函数 */
/* 参数 : ms,单位ms(毫秒) */
/* 返回值 : 无 */
/*--------------------------------------------------------------------*/
void wait (unsigned int ms)
{
unsigned long i;
i = timeval;
while ((i + ms) != timeval);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -