Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: Motor/Motor.h
- Revision:
- 2:32d2cd7d744b
- Parent:
- 1:5b0303768126
- Child:
- 3:8790e69f8c59
diff -r 5b0303768126 -r 32d2cd7d744b Motor/Motor.h
--- a/Motor/Motor.h Tue Jan 21 11:10:33 2020 +0000
+++ b/Motor/Motor.h Thu Jan 23 09:16:38 2020 +0000
@@ -1,40 +1,76 @@
-#ifndef MOTOR_H_
-#define MOTOR_H_
+#ifndef MOTOR_H_
+#define MOTOR_H_
+
+#include <stdint.h>
-#include "mbed.h"
+//#define USE_MOTOR0_SENSOR
+namespace MOTOR
+{
+ #define FREE 0
+ #define BACK 1
+ #define FOR 2
+ #define BRAKE 3
+
+ #define MOUNTING_MOTOR_NUM 5
-typedef enum dire {
- FREE = 0,
- FOR = 1,
- BACK = 2,
- BRAKE = 3,
-}dire;
+ #define MOTOR0_D1 directions[0]
+ #define MOTOR0_D2 directions[1]
+ #define MOTOR1_D1 directions[2]
+ #define MOTOR1_D2 directions[3]
+ #define MOTOR2_D1 directions[4]
+ #define MOTOR2_D2 directions[5]
+ #define MOTOR3_D1 directions[6]
+ #define MOTOR3_D2 directions[7]
+ #define MOTOR4_D1 directions[8]
+ #define MOTOR4_D2 directions[9]
+
+ #define MOTOR0_D1_PIN D3
+ #define MOTOR0_D2_PIN D4
+ #define MOTOR1_D1_PIN D5
+ #define MOTOR1_D2_PIN D6
+ #define MOTOR2_D1_PIN D8
+ #define MOTOR2_D2_PIN D9
+ #define MOTOR3_D1_PIN D12
+ #define MOTOR3_D2_PIN A3
+ #define MOTOR4_D1_PIN A1
+ #define MOTOR4_D2_PIN A0
-class MOTOR {
- public:
- //
- MOTOR(PinName D1, PinName D2, PinName pwm);
- /* direction
- FREE
- FOR
- BACK
- BRAKE
- */
- /* pwm
- pwm is 0 ~ 255(%)
- */
- // durection and pwm set
- void Dir(dire mode, uint8_t pwm);
- // direction set
- void Dir(dire mode);
- // pwm set
- void PWM(uint8_t pwm);
-
- private:
- DigitalOut D1_;
- DigitalOut D2_;
- PwmOut pwm_;
-};
+ #define MOTOR0_PWM_PIN D2
+ #define MOTOR1_PWM_PIN D7
+ #define MOTOR2_PWM_PIN D10
+ #define MOTOR3_PWM_PIN D11
+ #define MOTOR4_PWM_PIN A2
+
+ #ifdef USE_MOTOR0_SENSOR
+ #define MOTOR_START_NUM 1
+ #else
+ #define MOTOR_START_NUM 0
+ #endif
-#endif //MOTOR_H_
+ typedef struct
+ {
+ union
+ {
+ struct
+ {
+ unsigned int d2 : 1;
+ unsigned int d1 : 1;
+ unsigned int : 6;
+ };
+ uint8_t dir;
+ };
+ float pwm;
+ }MotorStatus;
+ class Motor
+ {
+ public:
+ static void Initialize(void);
+ static void Update(MotorStatus *status);
+ static void SetDefault(void);
+ static int SetStatus(float pwm);
+ static float SetPWM(float pwm);
+ };
+}
+
+#endif