[Kinetis] m0内核的滴答时钟

[复制链接]
704|0
 楼主| quray1985 发表于 2015-12-19 19:45 | 显示全部楼层 |阅读模式
心血来潮,想用一下m0内核自带的滴答时钟,按照之前的经验,配置CSR、RVR寄存器,选择system core clk 作为滴答的时钟源,设定1秒钟中断一次,但是运行后,滴答定时器周期远小于1秒钟,查阅systick寄存器资料,原来RVR只有24位,单次最多计数为16777216,系统时钟为48M,延时1秒的话RVR=48000000>16777216,因此定时周期小于1秒,所以选用system core clk 不合适。按照滴答时钟寄存器说明,选用其2分频为时钟源,结果仍然不行。莫非不能直接使用滴答定时器吗?后来查阅KL26 datasheet,发现滴答CSR寄存器时钟源位为零时,滴答时钟为系统时钟的16分频,也就是说,RVR=3000000时就可以完成1秒定时。实验确实如此,不说了,传图。

main.png(10.26 KB, 下载次数: 0)

main函数


systick.png(18.58 KB, 下载次数: 0)

映射滴答中断函数


systick_deal1.png(2.83 KB, 下载次数: 0)

中断处理


run.png(19.11 KB, 下载次数: 0)

串口输出




                    
您需要登录后才可以回帖 登录 | 注册

本版积分规则

156

主题

1488

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部