etrobocon2018 feat.KatLab  770af34cce41ae9c30c41303275e1add2daae0c3 (with uncommitted changes)
 全て クラス 名前空間 ファイル 関数 変数 列挙型 列挙値 フレンド マクロ定義 ページ
Motor.cpp
[詳解]
1 //
2 // Motor.cpp
3 //
4 // Copyright (c) 2015-2016 Embedded Technology Software Design Robot Contest
5 //
6 
7 #include "Motor.h"
8 using namespace ev3api;
9 
10 //=============================================================================
11 // Constructor
12 Motor::Motor(ePortM port, bool brake, motor_type_t type)
13 :mPort(static_cast<motor_port_t>(port)),
14  mBrake(brake),
15  mType(type),
16  mPWM(0),
17  mOffset(0)
18 {
19  ev3_motor_config(getPort(), type);
20 }
21 
22 //=============================================================================
23 // Destructor
25 {
26  ev3_motor_stop(mPort, true); // set brake to stop the motor immidiately
27 }
28 
29 //=============================================================================
30 // set motor PWM ratio: PWM_MAX to PWM_MIN
31 void Motor::setPWM(int pwm)
32 {
33  mPWM = (pwm>PWM_MAX)? PWM_MAX:((pwm<PWM_MIN)? PWM_MIN:pwm);
34 
35  if (mBrake == true && pwm == 0)
36  {
37  ev3_motor_stop(mPort, true);
38  }
39  else
40  {
41  ev3_motor_set_power(mPort, mPWM);
42  }
43 }
44 
45 //=============================================================================
46 // set brake (true:brake/false:float)
47 void Motor::setBrake(bool brake)
48 {
49  mBrake = brake;
50  setPWM(mPWM);
51 }
52 
void setPWM(int pwm)
Definition: Motor.cpp:31
motor_port_t getPort(void) const
Definition: Motor.h:105
void setBrake(bool brake)
Definition: Motor.cpp:47
ePortM
Definition: Port.h:29
~Motor(void)
Definition: Motor.cpp:24
static const int PWM_MIN
Definition: Motor.h:30
Motor(ePortM port, bool brake=true, motor_type_t type=LARGE_MOTOR)
Definition: Motor.cpp:12
static const int PWM_MAX
Definition: Motor.h:25