motorCtrl.c File Reference

モータ制御 More...

#include "motorCtrl.h"
#include "encCtrl.h"
#include <7040S.H>
#include "tRunCtrl.h"

Include dependency graph for motorCtrl.c:

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)
 モータの目標回転速度を設定する


Detailed Description

モータ制御

Author:
Satofumi KAMIMURA
$Id$

Definition in file motorCtrl.c.


Function Documentation

void set_pwm ( const unsigned char  id,
const int  duty 
)

指定モータ の PWM 出力を設定

id で指定されるモータデバイスからの PWM出力を duty に設定する。duty は [0, 255] の範囲で指定し、duty == 255 のときは常に H 出力。duty == 0 の時に常に L 出力となる。

Parameters:
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)を指定する。

Parameters:
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 
)

モータ制御パラメータの初期化

モータ制御用の構造体のメンバ変数を初期化する。

Parameters:
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  ) 

モータをサーボフリー状態にする

この関数は、外部レイヤーからモータの制御モードを直接サーボフリーにするために存在している。

Parameters:
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比と回転方向をモータデバイスに対して設定する。

Parameters:
ref_cnt [i] エンコーダにおける目標回転数
cnt_diff [i] エンコーダの回転数
mtr [i/o] モータ制御用の構造体
Return values:
設定した 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.


Generated on Mon Apr 13 22:52:05 2009 by  doxygen 1.5.7.1