[技术支持] 芯圣 8051 内核 MCU,多定时器同时工作出现计时不准现象

[复制链接]
127|18
o88ne 发表于 2026-6-9 15:11 | 显示全部楼层 |阅读模式
芯圣 8051 内核 MCU,多定时器同时工作出现计时不准现象
进入猫次元 发表于 2026-6-10 14:46 | 显示全部楼层
多个定时器同时跑的时候,中断优先级没设好会导致高优先级的把低优先级的打断,时间就乱了。
duo点 发表于 2026-6-10 15:18 | 显示全部楼层
用软件方式重装初值比用自动重装准,但8051只有定时器2支持自动重装,别的得自己算。
甜心puppy 发表于 2026-6-10 16:46 | 显示全部楼层
8051的定时器是16位的,但重装初值要两条指令,中间如果被中断插进来就会多计一个数。
flycamelaaa 发表于 2026-6-10 18:11 | 显示全部楼层
多个定时器中断同时到来时,CPU只能一个一个处理,先处理的准,后处理的就偏了。
solty 发表于 2026-6-10 19:26 | 显示全部楼层
定时器0和定时器1共用一个CPU,同时开的时候本质上是在抢时间片,不可能完全独立。
onlycook 发表于 2026-6-10 20:20 | 显示全部楼层
定时器溢出中断里别写太长的代码,执行时间一长就会影响下一次计时的准确性。
jcky001 发表于 2026-6-10 21:18 | 显示全部楼层
主频不准的话所有定时器都跟着不准,先拿示波器量一下晶振频率再说。
classroom 发表于 2026-6-10 21:47 | 显示全部楼层
波特率发生器用的是定时器1,这时候再开定时器0,两个互相影响很正常。
cr315 发表于 2026-6-10 22:40 | 显示全部楼层
中断响应本身有延迟,大概3到8个机器周期,这个误差在快速计时的场景下很明显。
t61000 发表于 2026-6-11 19:52 | 显示全部楼层
我之前用芯圣8051也碰到过多定时器不准的问题,后来发现是中断优先级没设好,高优先级定时器中断把低优先级的打断了,导致计时偏差。你可以试试把精度要求高的定时器设为高优先级,或者在中断里尽量少做处理,只标记事件就退出。
grfqq325 发表于 2026-6-11 20:46 | 显示全部楼层
8051内核的定时器计时不准,大概率是这几个原因:
中断服务函数执行时间太长,占用了定时器计数;
多个定时器互相抢占中断,导致计数丢失;
系统时钟源不稳定或者分频配置不对。
建议先单开一个定时器测试,再逐步增加其他定时器,定位问题点。
caoyunhj2301 发表于 2026-6-11 21:53 | 显示全部楼层
可以试试这几个解决办法:
把所有定时器中断都设为同一优先级,用软件标志位做分时处理;
中断服务函数里只做计数累加和标志位设置,复杂逻辑放到主循环执行;
如果用的是自动重装模式,检查重装值是否计算正确,避免溢出误差。
烟雨蒙蒙520 发表于 2026-6-12 10:53 | 显示全部楼层
有没有可能是芯圣8051内核的定时器没有预分频缓冲?多个定时器同时计数时,总线冲突会导致计数延迟。可以试试用一个基础定时器做时基,其他功能用软件分频实现,减少同时运行的硬件定时器数量。
xixi2017 发表于 2026-7-31 12:12 | 显示全部楼层
芯圣兼容传统 8051,标配 T0、T1,多数型号额外带 T2/T3/T4,多定时器一起出错绝大多数是中断抢占、重装方式错误、时钟共用、ISR 臃肿、芯圣特有寄存器坑叠加导致,单定时器正常、多定时器互相拖慢 / 抖动是典型特征。
antusheng 发表于 2026-8-15 21:37 | 显示全部楼层
芯圣 HC89F 系列是增强型 8051 内核,T0/T1 兼容传统 8051,部分型号支持 T2/T3/T4/T5。多定时器一起跑出现计时漂移、时快时慢、周期不准,绝大多数不是硬件 bug,是 8051 内核固有机制 + 软件配置问题
班杰明 发表于 2026-8-16 11:17 | 显示全部楼层
你的问题我遇到过,记得检查晶振稳定性和中断服务程序长度。
xixi2017 发表于 2026-8-19 12:22 | 显示全部楼层
芯圣大部分 8051 内核 MCU(HC89F/HC89S):T0/T1 兼容传统 8051,同时扩展 T2/T3/T4/T5/T6;硬件计数器本身独立计数,不会互相干扰;计时不准基本都是中断抢占、软件重载误差、时钟源、ISR 代码过长、寄存器操作时序导致
您需要登录后才可以回帖 登录 | 注册

本版积分规则

108

主题

472

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部
0