[问题] micropython 执行时间不连续

楼主: kanggy ((我还在,只是热情不再))   2020-01-14 15:32:40
不好意思,没找到 micropython 的版
不知道这边有没有人在使用这东西
去年入手 micropython 小板子,可以简单的做一些在线修改控制动作
使用 CAN (50Kbps)或是 UART (115200 bps)跑通讯
使用timer每 10ms 设立旗标,在循环中侦测到后送出一笔资料,
收完资料后透过连电脑的USB打印出来
以 utime.ticks_us() 纪录运作时间
发现
CAN 每运行 几十ms会出现一次 1x ms 的空窗
UART 则是约 500ms 会出现一次 1x ms 的空窗
在示波器上也能观察到这段空窗
想不透跑 168MHz 的单芯片,大部分操作都能在几十 us内完成
为什么会每隔一段时间就出现十几 ms 无动作的状态
作者: s860134 (s860134)   2020-01-15 20:58:00
听起来怎么比较像 os 层以下的问题?
作者: MasterChang (我爱ASM)   2020-01-15 23:58:00
用HAL无压力,你说呢?
楼主: kanggy ((我还在,只是热情不再))   2020-01-16 15:41:00
刚测试,只发送不接收就没这状况,对这硬件掌握度太低Orz
作者: jimmytzeng (jimmytseng)   2020-01-19 20:22:00
你用那一块板子?microbit吗
楼主: kanggy ((我还在,只是热情不再))   2020-01-28 21:06:00
用pyb v1.1; 后来用uart中断做接收, 就没有这问题了CAN bus 还没试过能不能用中断做接收

Links booklink

Contact Us: admin [ a t ] ucptt.com