定时节拍时长设置
1 | uint32 t systick_set_load (uint32 t timeus) |
| 参数名称 | 单位 | 参数说明 | 含义说明 |
|---|---|---|---|
| timeus | 微秒(μs) | 节拍定时时长,用于配置定时器多少us触发一次 | 48mhz工作模式最大可输入:349525 24mhz工作模式最大可输入:699050 |
| 返回值 | uint32_t | 配置成功或失败 | 0 表示设置成功 1 表示设置失败 |
硬件计数器是 24bit,硬件最大计数值固定:2^24= 16777216 个时钟脉冲;
timeus= [系统时钟频率(Hz)/计数值]×10^6
写入重载寄存器,相当于提前告诉定时器:计数归零后下次从几开始递减。
系统节拍定时器开启
1 | void systick_enable (void) |
系统节拍定时器关闭
1 | void systick_disable (void) |
系统节拍定时器中断回调函数初始化
1 | void systick_int_init (p_systick_int_cb systick_cb) |
| 参数名称 | 单位 | 参数说明 | 含义说明 |
|---|---|---|---|
| systick_cb | p_systick_int_cb | 设置中断触发的函数 | 回调函数 |
系统节拍定时器设置当前计数值
1 | void systick_set_count (uint32 ticks) |
| 参数名称 | 单位 | 参数说明 | 含义说明 |
|---|---|---|---|
| ticks | uint32 | 节拍定时时长,用于配置定时器多少us触发一次 | 单位是us |
直接修改当前正在递减的寄存器,写入参数后,倒计时立刻从ticks开始重新递减。
补充:
目前发现bug,uint32 ticks的设置值不能小于5us,否则单片机会卡死