前面说过TC1使用的是外部32K的时钟源,因为这个晶振没有焊接,无法测试,所以我们这里选择的测试时钟为TC2。
本MCU一共有9个定时器,TC1-TC9,都是16位的。先来看看时钟内部框图,TC外设使用的是PBCLK3,频率是100MHZ
打开MHC,选择Harmony Framework Configuration》Drivers》Timer进行设置,下面大体介绍下每个设置的含义
1,Driver Implementation:这个有动态和静态的可以,我们这里选择动态的,具体的区别在下一篇中介绍
2,中断模式选择使能,这里打钩,表示使能中断。
3,Timer Module ID:选择ID2,就是使用的TC2,这里可以选择1-9,但1的时钟源没有,所以只能选择2-9,我们选择2来测试
4,Interrupt Priority和Interrupt Sub-priority这两项是选择中断优先级。每个向量有7个用户可选的优先级,每个优先级内有4个用户可选的次优先级。
5,Clock Source:选择时钟源。外部的为TxCK引脚的外部时钟,内部的为外设时钟PBCLK3
6,Prescale:分频选择,可以选择1-256。我们选择256,就是PBCLK3的100M进行256分频,得到390625HZ。若是要求较短间隔(us),最好使用32位模式,因为分频后的频率数值若是超过计数器长度,则无法正常使用,并且没有提示,你会看到定时器没有起作用。
7,Operation Mode:模式选择,可以选16位或32位模式。Timer2与Timer3组合、Timer4与Timer5组合、Timer6与Timer7组合以及Timer8与Timer9组合可提供4个32位同步定时器。当工作在32位模式下时,该位对奇编号定时器(Timer1、Timer3、Timer5、Timer7和Timer9)没有影响。所有定时器功能通过偶编号定时器设置。
8,Power State:用来选择TC可以运行在哪些节能模式下,这里选择FULL表示所有模式下都可以运行。
MHC中,选择Harmony FrameworkConfiguration》System Services》Timer进行设置,这里配置中断的频率也就是中断的时间等设置,这里的频率1000就表示1S产生1000次中断,也就是说定时时间为1MS
为了方面参数的定义等,把中断函数直接移到APP.C下面,这样编写写程序比较方便,个人习惯这样
在APP.H中定义计数器的几个变量,方便以后使用
在中断函数里增加程序,因为是1ms定时的,累加1000次正好是1S,1S刷新下显示数据
显示效果
-
mcu
+关注
关注
146文章
16848浏览量
349788 -
定时器
+关注
关注
23文章
3229浏览量
114288
发布评论请先 登录
相关推荐
评论