【定时器】CTIMER Match 中断的配置与使用—以NXP5516 为例

一、概述

笔者在制作键盘方案的过程中,需要用到定时器每隔一段时间判断是否通过 USB 向主机发送数据,其中的定时器笔者使用到 CTIMER 的 Match 中断。下面则以 NXP5516 中的 simple_match_interrupt 例程讲解如何配置和使用 CTIMER Match Interrupt。

二、配置讲解

1. 首先在 SDK 按以下路径打开 simple_match_interrupt 例程,进入 simple_match_interrupt.c 文件。

...\SDK_2_12_0_LPC5516\boards\lpcxpresso55s16\driver_examples\ctimer\simple_match_interrupt\mdk



2. 例程中使用的定时器为 CTIMER2,使用 Match 通道 1、2。例程在宏定义中将定时器和通道分别重新命名为 CTIMER、CTIMER_MAT0_OUT、CTIMER_MAT1_OUT。

 

3. 首先使用 CLOCK_AttachClk() 为 CTIMER2 分配 96MHz 的时钟源。



4. 接着获取 CTIMER 的默认配置至定义的 config 参数,使用获取的config 参数对 CTIMER2 进行初始化。

 

默认的 config 参数如下,设置 mode 为定时器模式;当为定时器模式时,input 的参数可以忽略;prescale 参数为 0。

 

5. 接着在定义的全局变量 matchConfig0、matchConfig1 中设置 match 的参数。设定的参数具体意义如下,

enableCounterReset  :为 ture 时,当计数值达到设定的 matchValue 则重置定时器数值。若为 false,则计数值达到 matchValue 后不会重置定时器数值,而是直到计数到 0xFFFF FFFF,才会置为 0。

enableCounterStop :   为 true 时,当计数值达到 matchValue 后停止定时器计数。若为 false,则计数值达到 matchValue 后不会停止定时器计数。

matchValue :匹配值,定时器计数值不断与匹配值比较,当两个值相等时,执行相应的动作。定时器定时的时间则在这里设置,在例程中,定时器的时钟频率为 96MHz,设置匹配值为 96 000 000/2,定时为 0.5 s。若设匹配值为 96,则定时为 1us。

outControl :时器计数值达到 matchValue 后,对应的定时器通道的引脚执行输出电平翻转,或无动作、输出为高电平、输出低电平等动作。

outPinInitState :设置对应的定时器通道的引脚初始电平,true 则初始为高电平,false 则初始为低电平。

enableInterrupt :为 true 时,使能定时器中断。若为 false,则不使能定时器中断。





6. 使用 CTIMER_RegisterCallBack() 可以设置定时器的回调函数,当产生定时器中断时,程序将执行回调函数内动作。一个定时器可同时设置 4 个 match 回调和 4 个 capture 回调,分别对应 4 个 match 通道和 4 个 capture 通道。

定义好定时器 match 通道的回调函数 ctimer_match0_callback()、ctimer_match1_callback() 后,放置在定义的 ctimer_callback_table[ ] 数组中,调用 CTIMER_RegisterCallBack()设置定时器的回调函数。

 

 

7. 最后调用 CTIMER_SetupMatch(),设定 match 参数。调用 CTIMER_StartTimer(),开启定时器。

三、烧录测试

烧录程序,由于例程在 match1、match2 的回调函数中不断频繁改变定时器的匹配值,从而使引脚输出方波的频率增加,在开发板上可看见,由 CTIMER2_MAT1、CTIMER2_MAT2 控制的 RGB 灯 D4 的红灯、绿灯,闪烁频率加快。




可以在 LPC5516 开发板上看到 RGB 灯 D4 红灯、绿灯交叉闪烁,且频率逐渐加快。



四、总结

 本文以 NXP5516 SDK 中的 simple_match_interrupt 例程为例,讲解如何配置 CTIMER 的定时器中断,以及介绍相关参数。


参考文档:

1、 LPC55S1x/LPC551x User manual.pdf

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论