找回密码
 立即注册
楼主: tzz1983

全网悬赏500元感谢费找BUG! uC/OS-II@STC32G_No_PendSv新移植版

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2024-4-5 18:03:36 | 显示全部楼层
经测试, 没问题,

谢谢 楼上 几位帮我纠正记忆错误.

点评

, 你都好几次提过这个问题了, 差点倒逼老姚把定时器改成CCP/PCA模块了, 这下总算弄明白了  详情 回复 发表于 2024-4-5 18:28
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2025-04-30 07:46:22

33

主题

1079

回帖

2319

积分

荣誉版主

积分
2319
发表于 2024-4-5 18:28:04 | 显示全部楼层
LAO*** 发表于 2024-4-5 18:03
经测试, 没问题,

谢谢 楼上 几位帮我纠正记忆错误.

, 你都好几次提过这个问题了, 差点倒逼老姚把定时器改成CCP/PCA模块了, 这下总算弄明白了

点评

没人回答帮忙纠错  详情 回复 发表于 2024-4-5 23:43
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15630
发表于 2024-4-5 19:13:10 | 显示全部楼层
STC15/STC8/STC32的 【定时器n】 的模式0,
都是支持16位硬件自动重装载,这样无误差,
都可以工作在最低优先级

STC15/STC8/STC32的定时器0的模式0,
支持16位硬件自动重装载,这样无误差,
可以工作在最低优先级

STC15/STC8/STC32的定时器0的模式3,
支持16位硬件自动重装载,这样无误差,
定时器0的模式3,打开并允许工作后,
不可屏蔽,就是最高优先级 !
还不可关闭,但你 TR0 = 0, 他也没辙/没时钟

部分还有 8位预分频,那就是24位的定时器,
其中16位重装载

点评

STC15/STC8/STC32的 【定时器n】 的模式0, 都是支持16位硬件自动重装载,这样无误差, 都可以工作在最低优先级 是不是可以这样理解:假设时钟主频是24MHz,定时器n中断设置在低优先级,每毫秒产生1次中断 (1)  详情 回复 发表于 2024-4-5 20:02
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15630
发表于 2024-4-5 19:17:09 | 显示全部楼层
Cos*** 发表于 2024-4-5 16:04
这个世界上,凡事都是辩证的,没有什么是绝对的真理,每一项技术在发挥它优势的同时也必然存在着劣势。
正 ...

中断会被挂起等待响应,但同一个中断,第一次产生,还没去响应,又第二次来了,肯定就会丢1次中断

点评

是的,中断丢失响应指的就是这种情况  发表于 2024-4-5 19:40
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:433
  • 最近打卡:2025-05-02 20:23:18

5

主题

1127

回帖

4267

积分

荣誉版主

积分
4267
发表于 2024-4-5 19:38:11 | 显示全部楼层
CosyOS-II 专业版测试程序 在 STC32G 上的测试结论

TASK_0 每秒钟 printf 输出一次任务计数,用的是软件定时器,uDelay_s(1);
误差通常在1ms左右波动(1ms为一个滴答周期),而且是在多个高优先级中断频繁打断的情况下,
尤其是任务管理器专用的串口中断,115200bps,每86多us打断一次,每包发出460个bytes。
{5F42F67A-9263-415f-B1A0-3B4A10D77AD3}.png

{4AFE86F3-3A80-4c78-8AC0-7B5C37DBBE00}.png



可见,即使系统滴答中断为最低优先级,只要处理得当,软件定时器仍可满足一般的精度要求。

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-04-30 08:41:32

105

主题

1215

回帖

1万

积分

荣誉版主

积分
12882
发表于 2024-4-5 20:02:23 | 显示全部楼层
神*** 发表于 2024-4-5 19:13
STC15/STC8/STC32的 【定时器n】 的模式0,
都是支持16位硬件自动重装载,这样无误差,
都可以工作在最低优 ...

STC15/STC8/STC32的 【定时器n】 的模式0,
都是支持16位硬件自动重装载,这样无误差,
都可以工作在最低优先级


是不是可以这样理解:
假设时钟主频是24MHz,定时器n中断设置在低优先级,每毫秒产生1次中断
(1)假如定时器n计数器溢出到0,产生了中断请求,
        然后不管中断请求是否得到响应,不管是否进入到中断服务程序
        因为优先级低,被高优先级的中断阻塞了),
        这时在主频1个时钟周期内,定时器n计数器就被硬件立即自动重装到初始值,
        并且在下个主频时钟周期开始时,就继续重新计数了
        如果这样,自然就在主频时钟周期的量级上没有误差了
(2)如果是这样,只要定时器n中断被阻塞的时间小于1毫秒,就不会丢节拍了。
        比如这个周期被阻塞了0.5毫秒才执行ISR
        但是下次只再需0.5毫秒定时器n计数器就会溢出到0,产生中断请求
       这样1毫秒的节拍误差不会累计下去。

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

718

主题

1万

回帖

1万

积分

管理员

积分
15630
发表于 2024-4-5 20:06:50 | 显示全部楼层
是,16位硬件自动重装,无误差
截图202404052006418843.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-04-30 08:41:32

105

主题

1215

回帖

1万

积分

荣誉版主

积分
12882
发表于 2024-4-5 20:16:20 | 显示全部楼层
看来焦虑症不分“产前”和“产后”,弄得大家都跟着焦虑了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:312
  • 最近打卡:2025-03-11 13:20:13

54

主题

1327

回帖

5395

积分

荣誉版主

积分
5395
发表于 2024-4-5 23:43:08 | 显示全部楼层
tzz1*** 发表于 2024-4-5 18:28
, 你都好几次提过这个问题了, 差点倒逼老姚把定时器改成CCP/PCA模块了, 这下总算弄明白了 ...

没人回答帮忙纠错

点评

因为大家被你带领去和风车打架了呀!回想整个过程: (1)指风车为魔鬼:目前 滴答时钟 不准的原因:STC51 只有进入中断后, 才自动重装 定时器, 处于最低中断优先级 的 滴答时钟,被更高的优先级阻障并延迟触发中断很  详情 回复 发表于 2024-4-6 13:50
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-04-30 08:41:32

105

主题

1215

回帖

1万

积分

荣誉版主

积分
12882
发表于 2024-4-6 13:50:28 | 显示全部楼层
本帖最后由 杨为民 于 2024-4-12 07:35 编辑
LAO*** 发表于 2024-4-5 23:43
没人回答帮忙纠错

因为大家被你带领去和风车打架了呀!回想整个过程:

(1)指风车为魔鬼:目前 滴答时钟 不准的原因:STC51 只有进入中断后, 才自动重装 定时器, 处于最低中断优先级 的 滴答时钟,被更高的优先级阻障并延迟触发中断很正常, 这是 目前 造成 滴答时钟 不准的根本原因.
(2)魔鬼好可怕:当系统 中断凭繁时 ,  滴答时钟 拖长现像非常明显
(3)照着魔鬼就是一刀:这一点 STC51 和 标准 51 不兼容, 只有 自动重装 改成这样,  装入常数 + 定时器当前值 ---->定时器,自动修正装载时的延时误差,  那么一切问题都不存在了.
(4)结果有点尴尬,根本就是个正常的风车:


STC15/STC8/STC32的 【定时器n】 的模式0,
都是支持16位硬件自动重装载,这样无误差,
都可以工作在最低优先级


回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 21:01 , Processed in 0.120209 second(s), 103 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表