|
本帖最后由 jxcrg_t35 于 2025-5-24 17:55 编辑
定义一个全局变量uint16_t sys_tick ,在10ms定时器内sys_tick ++,通过函数获取当前sys_tick计数
uint16 get_sys_tick(void)
{
return sys_tick;
}
在主循环程序:
uintdata = get_sys_ticks();
uint16_t uintll
while(1)
{
uintll = get_sys_ticks();
if((uintll - uintdata) >= 50u){uart0_dbg("\r\n[%u,%u]", uintdata, uintll); uintdata = uintll;}
}
现在软件仿真现象为
随机为获取到了sys_tick出现错误.如:
[0,50]
[50,100]
[100,150]
[150,200]
[200,250]
[250,0]
[0,256]
[256,306]
[306,356]
[1856,1906]
[1906,1956]
[1956,2006]
[2006,1792]
[1792,2049]
[2049,2099]
[3749,3799]
[3799,3584]
[3584,3841]
[3841,3891]
如果这样处理就不会.
if((uint8_t)(uintll - uintdata) >= 50u){uart0_dbg("\r\n[%u,%u]", uintdata, uintll); uintdata = uintll;}
请教各位
|
|