现对电机进行限位控制。
方案:
硬件:使用电磁开关(一种感应铁的传感器)
软件:
1、使用单片机的中断处理限位信号。
2、使用单片机的主函数循环扫描,检测限位信号,进行限位动作的处理
问题:
1、使用单片机中断和主循环扫描处理限位信号,各有什么优势?
单片机 限位 中断 主循环
分享到:
------解决方案--------------------
中断方式节省你的资源,或者说你有更多时间干别的;缺点是进入中断服务本身是需要耗费几个时钟周期的,如果你的实时性要求很高,就会有一点延迟要考虑。
轮询方式代码结构简单,响应迅速,但占用了较多的系统时间。如果是单任务系统,可以选这种方式。
------解决方案--------------------
引用:
Quote: 引用:
中断方式节省你的资源,或者说你有更多时间干别的;缺点是进入中断服务本身是需要耗费几个时钟周期的,如果你的实时性要求很高,就会有一点延迟要考虑。
轮询方式代码结构简单,响应迅速,但占用了较多的系统时间。如果是单任务系统,可以选这种方式。
扫描会比中断还快吗?我写过一个程序,也是扫描传感器信号,一个用中断,一个用循环扫描,但还是中断响应快一些。是什么因素影响了吗?
2楼可能以为你的流程是这样的
操作A-->启动电机-->等待电机到达限位位置-->其他操作
还是建议在中断中进行限位操作但仅仅是刹车动作,设一个全局的电机状态变量(前进,后退,刹车等)这动作简单一般不会去调用其他复杂函数导致重复调用警告,而且执行时间也短,刹车后置一个电机状态位然后在主循环中处理(比如带车什么的)