ZHCUBZ5A September 2021 – April 2024
在按下按钮时,读取按钮以使电机运行、停止或只是更改全局变量的状态通常很有用。例如,用户可将 GPIO23 连接到用以启动/停止电机的按钮。为此,请在工程构建属性中启用预定义符号 CMD_SWITCH_EN,如图 3-19 所示。GPIO 状态将分配给 motorVars_M1.flagEnableRunAndIdentify。详细步骤如下。
#define MTR1_CMD_SWITCH_GPIO 23// GPIO23->Command Switch Button
GPIO_setPinConfig(GPIO_23_GPIO23);
GPIO_setDirectionMode(23, GPIO_DIR_MODE_IN);
GPIO_setPadConfig(23, GPIO_PIN_TYPE_PULLUP);
GPIO_setQualificationMode(23, GPIO_QUAL_3SAMPLE);
GPIO_setQualificationPeriod(23, 4);if(GPIO_readPin(MTR1_CMD_SWITCH_GPIO) == 0)
{
objMtr->cmdSwtich.lowTimeCnt++;
if(objMtr->cmdSwtich.lowTimeCnt > objMtr->cmdSwtich.delayTimeSet)
{
objMtr->cmdSwtich.flagCmdRun = true;
}
if(objMtr->cmdSwtich.highTimeCnt > 0)
{
objMtr->cmdSwtich.highTimeCnt--;
}
}
else
{
objMtr->cmdSwtich.highTimeCnt++;
if(objMtr->cmdSwtich.highTimeCnt > objMtr->cmdSwtich.delayTimeSet)
{
objMtr->cmdSwtich.flagCmdRun = false;
}
if(objMtr->cmdSwtich.lowTimeCnt > 0)
{
objMtr->cmdSwtich.lowTimeCnt--;
}
}if((objMtr->cmdSwtich.flagEnablCmd == true) && (objMtr->faultMtrUse.all == 0))
{
objMtr->flagEnableRunAndIdentify = objMtr->cmdSwtich.flagCmdRun;
}