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.
MotorModule/MotorModule.h@2:36a254d3dbf3, 2019-08-08 (annotated)
- Committer:
- benkatz
- Date:
- Thu Aug 08 17:03:30 2019 +0000
- Revision:
- 2:36a254d3dbf3
- Child:
- 3:f0d054d896f9
Working example
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
benkatz | 2:36a254d3dbf3 | 1 | #ifndef CAN_COM_H |
benkatz | 2:36a254d3dbf3 | 2 | #define CAN_COM_H |
benkatz | 2:36a254d3dbf3 | 3 | |
benkatz | 2:36a254d3dbf3 | 4 | #include "mbed.h" |
benkatz | 2:36a254d3dbf3 | 5 | #include "../math_ops.h" |
benkatz | 2:36a254d3dbf3 | 6 | |
benkatz | 2:36a254d3dbf3 | 7 | /// Value Limits /// |
benkatz | 2:36a254d3dbf3 | 8 | #define P_MIN -12.5f |
benkatz | 2:36a254d3dbf3 | 9 | #define P_MAX 12.5f |
benkatz | 2:36a254d3dbf3 | 10 | #define V_MIN -45.0f |
benkatz | 2:36a254d3dbf3 | 11 | #define V_MAX 45.0f |
benkatz | 2:36a254d3dbf3 | 12 | #define KP_MIN 0.0f |
benkatz | 2:36a254d3dbf3 | 13 | #define KP_MAX 500.0f |
benkatz | 2:36a254d3dbf3 | 14 | #define KD_MIN 0.0f |
benkatz | 2:36a254d3dbf3 | 15 | #define KD_MAX 5.0f |
benkatz | 2:36a254d3dbf3 | 16 | #define I_MIN -18.0f |
benkatz | 2:36a254d3dbf3 | 17 | #define I_MAX 18.0f |
benkatz | 2:36a254d3dbf3 | 18 | |
benkatz | 2:36a254d3dbf3 | 19 | |
benkatz | 2:36a254d3dbf3 | 20 | /// Structs for organizing commands and data /// |
benkatz | 2:36a254d3dbf3 | 21 | typedef struct |
benkatz | 2:36a254d3dbf3 | 22 | { |
benkatz | 2:36a254d3dbf3 | 23 | int id; |
benkatz | 2:36a254d3dbf3 | 24 | float position, velocity, current; |
benkatz | 2:36a254d3dbf3 | 25 | } StateStruct; |
benkatz | 2:36a254d3dbf3 | 26 | |
benkatz | 2:36a254d3dbf3 | 27 | |
benkatz | 2:36a254d3dbf3 | 28 | typedef struct |
benkatz | 2:36a254d3dbf3 | 29 | { |
benkatz | 2:36a254d3dbf3 | 30 | int id; |
benkatz | 2:36a254d3dbf3 | 31 | float i_ff, p_des, kp, v_des, kd; |
benkatz | 2:36a254d3dbf3 | 32 | }ControlStruct; |
benkatz | 2:36a254d3dbf3 | 33 | |
benkatz | 2:36a254d3dbf3 | 34 | typedef struct |
benkatz | 2:36a254d3dbf3 | 35 | { |
benkatz | 2:36a254d3dbf3 | 36 | StateStruct state; |
benkatz | 2:36a254d3dbf3 | 37 | ControlStruct control; |
benkatz | 2:36a254d3dbf3 | 38 | CANMessage rxMsg; |
benkatz | 2:36a254d3dbf3 | 39 | CANMessage txMsg; |
benkatz | 2:36a254d3dbf3 | 40 | }MotorStruct; |
benkatz | 2:36a254d3dbf3 | 41 | |
benkatz | 2:36a254d3dbf3 | 42 | void pack_cmd(MotorStruct * motor); |
benkatz | 2:36a254d3dbf3 | 43 | void unpack_reply(MotorStruct * motor); |
benkatz | 2:36a254d3dbf3 | 44 | void enable_motor(MotorStruct * motor, CAN * can); |
benkatz | 2:36a254d3dbf3 | 45 | void disable_motor(MotorStruct * motor, CAN * can); |
benkatz | 2:36a254d3dbf3 | 46 | |
benkatz | 2:36a254d3dbf3 | 47 | |
benkatz | 2:36a254d3dbf3 | 48 | #endif |