单片机解密定时器Timer0的初始化以及定时器中断函数和延时函数
- 单片机解密//文件名:Time.c
- 单片机解密//功能: 定时器Timer0的初始化以及定时器中断函数和延时函数
- #include <LPC214X.H>
- #include "type.h"
- unsigned long volatile timeval; //延时用的全局变量
- /************************************************************/
- /* 函数名称 : Tick */
- /* 函数功能 : 定时器中断函数,每进入一次中断,timeval加1 */
- /* 参数 : 无 */
- /* 返回值 : 无 */
- /*----------------------------------------------------------*/
- void Tick (void) __irq
- {
- ++timeval;
- T0IR = 1; // 清除中断标志
- VICVectAddr = 0; // 对VICVectAddr执行写操作,通知VIC中断处理结束
- }
- /**********************************************************************/
- /* 函数名称 : init_timer */
- /* 函数功能 : 定时器timer0的初始化,包括计数初值,设置中断优先级等 */
- /* 参数 : 无 */
- /* 返回值 : 无 */
- /*--------------------------------------------------------------------*/
- void init_timer (void)
- {
- T0MR0 = 15000;//1ms的计数初值,当前处理器的时钟频率为12 * 5 = 60M,具体设置见startup.s
- T0MCR = 3; // 设置T0MR0匹配后复位T0TC,并产生中断标志
- T0TCR = 1; //启动定时器
- VICVectAddr0 = (INT32U)Tick;//设置中断服务程序的地址
- VICVectCntl0 = 0x20 | 4;//分配timer0中断到中断向量0
- VICIntEnable |= 1 << 0x00000004;//timer0中断使能
- }

芯片解密