#include "motorCtrl.h"
#include "encCtrl.h"
#include <7040S.H>
#include "tRunCtrl.h"
Go to the source code of this file.
Defines | |
#define | SMP_USEC 1000 |
Functions | |
void | set_pwm (const unsigned char id, const int duty) |
指定モータ の PWM 出力を設定 | |
void | set_mode (const unsigned char id, const int mode) |
指定モータの制御モードを設定 | |
void | setDirectMotorMode (unsigned char id, int mode) |
void | setDirectMotorPwm (unsigned char id, int duty) |
void | initMotor (void) |
モータデバイスの初期化 | |
void | initMotorInfo (const unsigned char id, motorInfo_t *mtr) |
モータ制御パラメータの初期化 | |
void | setMotorFree (motorInfo_t *mtr) |
モータをサーボフリー状態にする | |
int | setMotorRevolution (const int ref_cnt, const int cnt_diff, motorInfo_t *mtr) |
モータの目標回転速度を設定する |
$Id$
Definition in file motorCtrl.c.
void set_pwm | ( | const unsigned char | id, | |
const int | duty | |||
) |
指定モータ の PWM 出力を設定
id で指定されるモータデバイスからの PWM出力を duty に設定する。duty は [0, 255] の範囲で指定し、duty == 255 のときは常に H 出力。duty == 0 の時に常に L 出力となる。
id | [i] モータデバイスID | |
duty | [i] 出力する PWM 比。(デューティ比) = duty / 255.0; となる。 |
Definition at line 33 of file motorCtrl.c.
Referenced by initMotor(), and setMotorRevolution().
void set_mode | ( | const unsigned char | id, | |
const int | mode | |||
) |
指定モータの制御モードを設定
モータの制御モード(MotorMode)を指定する。
id | [i] モータデバイスID | |
mode | [i] 制御モード |
Definition at line 65 of file motorCtrl.c.
References MTR_MODE_CCW_BREAK, and MTR_MODE_CW_BREAK.
Referenced by initMotor(), setMotorFree(), and setMotorRevolution().
void initMotor | ( | void | ) |
モータデバイスの初期化
モータ制御に用いる出力端子を初期化する。
Definition at line 108 of file motorCtrl.c.
References MTR_MODE_FREE, set_mode(), and set_pwm().
void initMotorInfo | ( | const unsigned char | id, | |
motorInfo_t * | mtr | |||
) |
モータ制御パラメータの初期化
モータ制御用の構造体のメンバ変数を初期化する。
id | [i] モータデバイスID | |
mtr | [o] モータ制御用の構造体 |
Definition at line 142 of file motorCtrl.c.
References ENC_PULSE, motorInfo_t::gain_i, motorInfo_t::gain_p, motorInfo_t::i_value, motorInfo_t::id, motorInfo_t::ke_per_v, MTR_GAIN_I, MTR_GAIN_P, MTR_I_BIT_WIDTH, MTR_OHM, MTR_POWER, MTR_RPM_PER_V, and motorInfo_t::r_per_v.
void setMotorFree | ( | motorInfo_t * | mtr | ) |
モータをサーボフリー状態にする
この関数は、外部レイヤーからモータの制御モードを直接サーボフリーにするために存在している。
mtr | [o] モータ制御用の構造体 |
Definition at line 226 of file motorCtrl.c.
References motorInfo_t::id, MTR_MODE_FREE, and set_mode().
int setMotorRevolution | ( | const int | ref_cnt, | |
const int | cnt_diff, | |||
motorInfo_t * | mtr | |||
) |
モータの目標回転速度を設定する
モータの目標回転速度を、制御周期あたりのエンコーダの回転数にて指定する。結果として、指定された目標回転速度を実現する PWM比と回転方向をモータデバイスに対して設定する。
ref_cnt | [i] エンコーダにおける目標回転数 | |
cnt_diff | [i] エンコーダの回転数 | |
mtr | [i/o] モータ制御用の構造体 |
設定した | PWM比 [-255, 255] |
Definition at line 242 of file motorCtrl.c.
References motorInfo_t::id, MTR_MODE_CCW_BREAK, MTR_MODE_CW_BREAK, set_mode(), set_pwm(), WHL_DIAMETER_RIGHT, and WHL_GEAR_RATIO.