void qifaSet(QIFA *qifa, uint32 val) { if (qifa == NULL || qifa->flag != QIFA_FLAG) { return; } QIFA_VAL qifa_val; qifa_val.qifa = qifa; qifa_val.val = !!val; while (!ringBufPush(&qifaringbuf, &qifa_val)); #if QIFA_USE_MAILBOX == 1 uint32 mbaddr = modulelist[MODULE_ID_MB].baseAddr; MBsendMessage(mbaddr, 0, 0x55555555); #endif }
//度目电机执行CAN命令 void CanCmd_DumuMotoGo(CAN_WP *wp) { MOTOR_CMD motor_cmd; uint32 moto = wp->data[0]; if (wp->dlc != 8) { return; } if (moto >= 4) { return; } CMD_MOTORGO *cmd; cmd = (CMD_MOTORGO *)wp->data; motor_cmd.flag = cmd->flag; motor_cmd.puls = cmd->puls; motor_cmd.speedHz = cmd->speedHz; motor_cmd.cmdcode = cmd->cmdcode; motor_cmd.stat = MOTOR_CMD_STAT_WAITE; motor_cmd.stopData = cmd->stopData; if ((cmd->speedHz >= DUMUMOTOSTOPHZ) && (cmd->puls <= 15000)) { ringBufPush(&motorcmdbuf[moto], &motor_cmd); } }