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

📄 time.c

📁 飞利浦ARM7 LPC2103 示例程序
💻 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 + -