コード例 #1
0
ファイル: qifa.c プロジェクト: httpftpli/appdriver
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
}
コード例 #2
0
ファイル: cancmd.c プロジェクト: layeka/sw_stm_can
//度目电机执行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);
    }
}