恭喜,你发布的帖子
发布于 2023-03-18 08:44:03
11楼
楼主
我是咽不下这个问题,一定要问问你。
你说:“本子程序要在定时中断程序内运行”。
试问,100个pid要挤在同一个瞬间撑开定时中断的执行时间。本来50微秒的中断程序突然变成50毫秒。是一种什么体验?
作为天花板的你,不是没考虑这事情吧?
要是我,我就使用Bitime的尺度,自己感知上次执行到现在的时间流逝数量。然后即时用于作为采样时间计算积分和微分。随便在主扫描中调用,喜欢50毫秒执行一次也行,喜欢400毫秒执行一次也型,上次48毫秒前执行过,现在就52毫秒了,执行一次吧。或者不忙的时候5毫秒执行一次,忙的时候但是又不重要的话就1000毫秒左右执行一次吧。甚至这100个pid排队执行吧,排到什么时候就什么时候,100毫秒也好200毫秒也好,自己看着办。
不知道是不是有99%的人都认为编程软件提供的pid就一定要恒定间隔执行呢?所以连你的程序都要定时执行。
说个不贴切的例子:路上开车多长时间看一次后视镜?教练说10秒。(可以)。限速120我都开到120了我看后视镜干嘛?(可以看灰啊)倒车入库了,我看两边后视镜都没有时间看前面了,我看前面干嘛?(可以看风啊)
这就是采样周期。采样了就执行一次,只要采样间隔不影响执行反应速度,选大选小看情况,能变的。
看管水龙头放水到水池那个小明,看见放水可能15分钟都不会放满的,他选择1分钟间隔往窗外瞅一次行不行?快满了的时候就可能要每隔15秒看一次了。
我不支持固定时间,而且还是很多路pid。
怎么你写程序都不关心扫描时间的?排序那个也是,这个也是。小型机嘛,你以为大型机高性能机啊。
我没看你程序,是我看你描述猜的,要是我说错了,直接联系我,我删了此帖。
芳工,你可以选择让PID不在中断程序里运行,我相信你有这样的本事来实现。但我要考虑的是大多数人的应用,简单,实用。程序在资源有限的情况下突破8回路的PID限制才是本帖的意义,
请填写推广理由:
分享
只看
楼主