现在我是通过端口1中断来操作电机的停止,但是有时候电机会出现跑过头的情况,从感应到脱离感应大概需要200ms时间,中断响应时间会达到那么长吗?
Kevin Qiu1:
如果没有更高优先级的中断发生,MCU会立即响应中断函数
user5994340:
回复 Kevin Qiu1:
所以如果被占用了,中断响应时间会达到那么长吗?那么长的话连接都断开了吧?
Kevin Qiu1:
回复 user5994340:
被占用了要等到占用结束了才能响应,要看占用的具体是什么任务
YiKai Chen:
你是在中斷ISR裡面去操作电机的停止嗎?還是發送一個應用程序事件到應用程序處理?
user5994340:
回复 YiKai Chen:
采用微动开关,到位则发起中断,停止电机。但是好像会停的不及时,导致电机又远离微动开关了。
PORT_INTERRUPT_FUNCTION(P1_ISR, P1INT_VECTOR)
{
if(P1IFG & (1 << 3))
{
if(VM_STATU_LOCKED())
{
MOTOR_OFF();
}
P1IFG &= ~(1 << 3);
}
P1IF = 0; }
YiKai Chen:
回复 user5994340:
基本上我沒看過會延時到200ms的,建議你在PORT_INTERRUPT_FUNCTION(P1_ISR, P1INT_VECTOR)一開頭去找個腳位做GPO toggle,然用運作的時候用scope去量測實際延時