运动控制程序可以写在中断里面吗

运动控制程序可以写在中断里面吗,第1张

首先可以肯定,中断服务函数可以写在其他文件中,并不一定要放在main.c中。

中断服务函数如果有特定的关键字修饰,比如keilc51用interrupt,不仅可以放在任意文件中,甚至可以用static把中断函数定义成局部的函数都没问题。

其他的,一般需要自己定顷察义入口调用,比如某系统的定时中断入口放在0x0008地址,则在0x0008地址放一条长跳转指令,或者直接把函数的地址放在0x0008地址,这个根据系统不同,可能有不同的要求。

另外,有的c把引导程雀闭茄序会有一个默认的中态宏断服务地址表,用户只需要根据系统的要求,按照一定的格式、名称定义好中断服务程序,系统就会自动调用。

你还没有理解数码管的动态的显示

为什么4位数码管能够同时显示不同的数

是因为 你在对它不断的刷新

比如说

给数字8的段码

第一位数码管显示5MS 也就是延时

然后给数字4的段码

第二位数码管尘扰显示5MS

给数字6的段链森码

第三位数码管显示5MS

然后给数字5的段码

第四位数码管显示5MS

人肉眼能够识别的速度是20ms左右 一旦刷新速度过快 人棚兄亩就无法识别 速度过慢就不是动态显示了

光这么执行一遍 还不够 你必须得无限循环

这样四位数码管就显示8465四个数

你把数码管显示的程序放在中断中 中断的间隔时间太长 势必无法持续刷新 就造成显示成一位了

这个问题很泛哦

把上电后只做一次的任务写到主函数里, 比如基本的初始化

把需要不断槐派循环做悄明雀的任务放到while(1)里,比如轮询,启早IO状态查询

把不知道什么时间会发生(比如外部中断,按键中断等)以及需要保证准时发生的任务(比如定时器时间到)放到中断里


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12344144.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存