本帖最后由 wbeast 于 2019-4-19 11:06 编辑
LPC1768有4个定时器,定时器可以用作时间间隔定时器、外部捕获输入、自由运行的定时器。4个定时器最少有2路个设置为捕获和匹配输出,其中定时器2可以设置4个通道匹配输出。
- /************************************************************************************************
- 函数名: void TIMER0_IRQHandler (void)
- 函数功能:定时器中断服务函数
- 参数:无
- 返回值:无
- *************************************************************************************************/
- void TIMER0_IRQHandler (void)
- {
-
- if(Chip_TIMER_MatchPending(LPC_TIMER0,0)){//判断定时器0 MR0中断
- Chip_TIMER_ClearMatch(LPC_TIMER0,0);//清除定时0,MR0中断标志
-
- LPC_GPIO2->PIN ^= 0xff;
- printf("定时器一秒中断");
- }
-
- }
- /********************************************************************************************
- 函数名称:TIMR_init()
- 函数功能:定时器初始化
- 参数:定时器时间(单位s)
- 返回值:无
- *********************************************************************************************/
- void Time_Init(uint32_t psc)
- {
- // 第一步 设置外设功率时钟
- Chip_TIMER_Init(LPC_TIMER0);//设置外设功率
-
- // 第二步 复位定时器0
- Chip_TIMER_Reset(LPC_TIMER0);//复位定时器0
- //第三步 设置匹配值0 的值
- Chip_TIMER_SetMatch(LPC_TIMER0,0,(100000000/4)*psc-1);//设置匹配值
- // 第四步 设置 定时器0,MR0中断
- Chip_TIMER_MatchEnableInt(LPC_TIMER0,0);//设置and定时器中断
- //第五步 设置定时器0 mR0匹配时复位
- Chip_TIMER_ResetOnMatchEnable(LPC_TIMER0,0);//设置定时器MR0复位
- //第六步 使能定时器0
- Chip_TIMER_Enable(LPC_TIMER0);//使能TIMER0
- //第七步 使能定时器0中断
- NVIC_EnableIRQ(TIMER0_IRQn);//使能中断
- }
复制代码
【08】LPC1768_定时器实验.rar
(252.28 KB, 下载次数: 81)
|