TI中文支持网
TI专业的中文技术问题搜集分享网站

直线电机控制,当动子驶出定子时触发关电开关,此时想将程序恢复至最开始的状态,等待新的动子进入触发程序运行

目前在做直线电机驱动,一个定子两端都有光电开关,当动子进入时,检测到光电开关,程序自动上电开始驱动;当退出时又检测到端部的光电开关,此时想实现程序恢复至最初始的状态,等待新动子进入触发光电开关,再次上电驱动,重复之前的驱动过程。想实现这样的循环驱动,应该如何让用到的寄存器都恢复初始设置呢,需要一个个设置吗,还是直接将程序初始化回到最开始的main,等待新动子进入?

Green Deng:你好,我觉得如果要全部恢复初始的话,可以简单点,将转子退出时的信号做到复位引脚上,这样每次退出都可以复位芯片。当然,这样的话其他的模块也会同时复位。

目前在做直线电机驱动,一个定子两端都有光电开关,当动子进入时,检测到光电开关,程序自动上电开始驱动;当退出时又检测到端部的光电开关,此时想实现程序恢复至最初始的状态,等待新动子进入触发光电开关,再次上电驱动,重复之前的驱动过程。想实现这样的循环驱动,应该如何让用到的寄存器都恢复初始设置呢,需要一个个设置吗,还是直接将程序初始化回到最开始的main,等待新动子进入?

user5288687:

回复 Green Deng:

您好,这样的话,那是不是又得重新debug才能重新驱动了,还是说这样处理是回到了程序的最开始?然后检测到有新动子进入又自动执行?

目前在做直线电机驱动,一个定子两端都有光电开关,当动子进入时,检测到光电开关,程序自动上电开始驱动;当退出时又检测到端部的光电开关,此时想实现程序恢复至最初始的状态,等待新动子进入触发光电开关,再次上电驱动,重复之前的驱动过程。想实现这样的循环驱动,应该如何让用到的寄存器都恢复初始设置呢,需要一个个设置吗,还是直接将程序初始化回到最开始的main,等待新动子进入?

Green Deng:

回复 user5288687:

不用debug,就是复位了一下芯片。等于每次转子退出后都给芯片复位一次

目前在做直线电机驱动,一个定子两端都有光电开关,当动子进入时,检测到光电开关,程序自动上电开始驱动;当退出时又检测到端部的光电开关,此时想实现程序恢复至最初始的状态,等待新动子进入触发光电开关,再次上电驱动,重复之前的驱动过程。想实现这样的循环驱动,应该如何让用到的寄存器都恢复初始设置呢,需要一个个设置吗,还是直接将程序初始化回到最开始的main,等待新动子进入?

user5288687:

回复 Green Deng:

如果是在线调试的话,意思是不是就是回到了程序的入口地址,一旦程序被触发就会重新开始运行?

目前在做直线电机驱动,一个定子两端都有光电开关,当动子进入时,检测到光电开关,程序自动上电开始驱动;当退出时又检测到端部的光电开关,此时想实现程序恢复至最初始的状态,等待新动子进入触发光电开关,再次上电驱动,重复之前的驱动过程。想实现这样的循环驱动,应该如何让用到的寄存器都恢复初始设置呢,需要一个个设置吗,还是直接将程序初始化回到最开始的main,等待新动子进入?

Green Deng:

回复 user5288687:

是的,这样的话在线调试就会比较麻烦,只是逻辑比较简单

目前在做直线电机驱动,一个定子两端都有光电开关,当动子进入时,检测到光电开关,程序自动上电开始驱动;当退出时又检测到端部的光电开关,此时想实现程序恢复至最初始的状态,等待新动子进入触发光电开关,再次上电驱动,重复之前的驱动过程。想实现这样的循环驱动,应该如何让用到的寄存器都恢复初始设置呢,需要一个个设置吗,还是直接将程序初始化回到最开始的main,等待新动子进入?

user5288687:

回复 Green Deng:

那如果我把电机控制的程序烧进flash,上电启动,理论上按一下板子上的复位按钮肯定也可以实现程序重新运行;那当检测到转子退出的光电开关信号时,能不能从软件上使能复位按钮的功能呢,也就是不通过手动按复位键?

目前在做直线电机驱动,一个定子两端都有光电开关,当动子进入时,检测到光电开关,程序自动上电开始驱动;当退出时又检测到端部的光电开关,此时想实现程序恢复至最初始的状态,等待新动子进入触发光电开关,再次上电驱动,重复之前的驱动过程。想实现这样的循环驱动,应该如何让用到的寄存器都恢复初始设置呢,需要一个个设置吗,还是直接将程序初始化回到最开始的main,等待新动子进入?

Green Deng:

回复 user5288687:

软件复位的话可以用看门狗,通过WDCR.WDCHK写非101的值,则会产生一个软件的复位。

目前在做直线电机驱动,一个定子两端都有光电开关,当动子进入时,检测到光电开关,程序自动上电开始驱动;当退出时又检测到端部的光电开关,此时想实现程序恢复至最初始的状态,等待新动子进入触发光电开关,再次上电驱动,重复之前的驱动过程。想实现这样的循环驱动,应该如何让用到的寄存器都恢复初始设置呢,需要一个个设置吗,还是直接将程序初始化回到最开始的main,等待新动子进入?

user5288687:

回复 Green Deng:

那这个复位的效果也是让程序回到入口地址,重新运行程序吧,那我是不是可以通过退出时的光电信号,来让看门口复位,让程序重新运行。

目前在做直线电机驱动,一个定子两端都有光电开关,当动子进入时,检测到光电开关,程序自动上电开始驱动;当退出时又检测到端部的光电开关,此时想实现程序恢复至最初始的状态,等待新动子进入触发光电开关,再次上电驱动,重复之前的驱动过程。想实现这样的循环驱动,应该如何让用到的寄存器都恢复初始设置呢,需要一个个设置吗,还是直接将程序初始化回到最开始的main,等待新动子进入?

Yazhou Zhao:使用看门狗重新设置一下

目前在做直线电机驱动,一个定子两端都有光电开关,当动子进入时,检测到光电开关,程序自动上电开始驱动;当退出时又检测到端部的光电开关,此时想实现程序恢复至最初始的状态,等待新动子进入触发光电开关,再次上电驱动,重复之前的驱动过程。想实现这样的循环驱动,应该如何让用到的寄存器都恢复初始设置呢,需要一个个设置吗,还是直接将程序初始化回到最开始的main,等待新动子进入?

user4827220:支持

赞(0)
未经允许不得转载:TI中文支持网 » 直线电机控制,当动子驶出定子时触发关电开关,此时想将程序恢复至最开始的状态,等待新的动子进入触发程序运行
分享到: 更多 (0)