本文采用 Systick 滴答定时器来作精确延时的方式进一步认识它, 通过操控 LED2(红灯)亮 500ms,灭 500ms来直观的显示。NVF32100x 的内部时钟为 f1=48MHZ=BUS_CLK_HZ,而控制及状态寄存器 SysTick_CTRL 中的 CLKSOURCE标志位默认为 0
则 Systick 的时钟源为内部时钟除以 16 即 f2=BUS_CLK_HZ/16,所以说每个周期为
T=16/f2=16/BUS_CLK_HZ S,
得到 1S 的计数值 LOAD 为 1/T=BUS_CLK_HZ/16
得到 1MS 的计数值 LOAD 为 1/T/1000=BUS_CLK_HZ/(1000*16)
得到 1US 的计数值 LOAD 为 1/T/1000000=BUS_CLK_HZ/(1000000*16)
|