心血来潮,想用一下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函数
映射滴答中断函数
中断处理
串口输出
|