2018.08.06
common.h@3:4a7dea2da5b5, 2018-08-06 (annotated)
- Committer:
- sayzyas
- Date:
- Mon Aug 06 08:29:14 2018 +0000
- Revision:
- 3:4a7dea2da5b5
- Parent:
- 2:aeff576d5013
2018.08.06;
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| sayzyas | 0:653609b2a5cf | 1 | /* |
| sayzyas | 0:653609b2a5cf | 2 | * mbed LPC824-Max header |
| sayzyas | 0:653609b2a5cf | 3 | * |
| sayzyas | 0:653609b2a5cf | 4 | */ |
| sayzyas | 0:653609b2a5cf | 5 | |
| sayzyas | 0:653609b2a5cf | 6 | #define __IIC_COMAMND_SEND__ |
| sayzyas | 0:653609b2a5cf | 7 | |
| sayzyas | 0:653609b2a5cf | 8 | /* Information */ |
| sayzyas | 2:aeff576d5013 | 9 | #define LatestUpDate "2016.06.06" |
| sayzyas | 2:aeff576d5013 | 10 | #define ProgramRevision "Rev 2.1" |
| sayzyas | 2:aeff576d5013 | 11 | #define Author "Y.Saito(zinsor)" |
| sayzyas | 2:aeff576d5013 | 12 | #define Company "Revast Co.,Ltd." |
| sayzyas | 0:653609b2a5cf | 13 | #define ProgramCode "RVM-X0F0A" |
| sayzyas | 0:653609b2a5cf | 14 | |
| sayzyas | 0:653609b2a5cf | 15 | #define __DEBUG_L0__ |
| sayzyas | 0:653609b2a5cf | 16 | #define __DEBUG_L1__ |
| sayzyas | 1:c3508bfe65b6 | 17 | //#define __DEBUG_L2__ |
| sayzyas | 2:aeff576d5013 | 18 | #define __DEBUG_L3__ |
| sayzyas | 0:653609b2a5cf | 19 | //#define __DEBUG_L4__ |
| sayzyas | 1:c3508bfe65b6 | 20 | #define __DEBUG_DSPMCNT__ // Display motor current percentage value |
| sayzyas | 0:653609b2a5cf | 21 | |
| sayzyas | 0:653609b2a5cf | 22 | #ifdef __DEBUG_L0__ |
| sayzyas | 0:653609b2a5cf | 23 | #define DEBUG_PRINT_L0(...) pc.printf(__VA_ARGS__) |
| sayzyas | 0:653609b2a5cf | 24 | #else |
| sayzyas | 0:653609b2a5cf | 25 | #define DEBUG_PRINT_L0(...) |
| sayzyas | 0:653609b2a5cf | 26 | #endif |
| sayzyas | 0:653609b2a5cf | 27 | #ifdef __DEBUG_L1__ |
| sayzyas | 0:653609b2a5cf | 28 | #define DEBUG_PRINT_L1(...) pc.printf(__VA_ARGS__) |
| sayzyas | 0:653609b2a5cf | 29 | #else |
| sayzyas | 0:653609b2a5cf | 30 | #define DEBUG_PRINT_L1(...) |
| sayzyas | 0:653609b2a5cf | 31 | #endif |
| sayzyas | 0:653609b2a5cf | 32 | #ifdef __DEBUG_L2__ |
| sayzyas | 0:653609b2a5cf | 33 | #define DEBUG_PRINT_L2(...) pc.printf(__VA_ARGS__) |
| sayzyas | 0:653609b2a5cf | 34 | #else |
| sayzyas | 0:653609b2a5cf | 35 | #define DEBUG_PRINT_L2(...) |
| sayzyas | 0:653609b2a5cf | 36 | #endif |
| sayzyas | 0:653609b2a5cf | 37 | #ifdef __DEBUG_L3__ |
| sayzyas | 0:653609b2a5cf | 38 | #define DEBUG_PRINT_L3(...) pc.printf(__VA_ARGS__) |
| sayzyas | 0:653609b2a5cf | 39 | #else |
| sayzyas | 0:653609b2a5cf | 40 | #define DEBUG_PRINT_L3(...) |
| sayzyas | 0:653609b2a5cf | 41 | #endif |
| sayzyas | 0:653609b2a5cf | 42 | #ifdef __DEBUG_L4__ |
| sayzyas | 0:653609b2a5cf | 43 | #define DEBUG_PRINT_L4(...) pc.printf(__VA_ARGS__) |
| sayzyas | 0:653609b2a5cf | 44 | #else |
| sayzyas | 0:653609b2a5cf | 45 | #define DEBUG_PRINT_L4(...) |
| sayzyas | 0:653609b2a5cf | 46 | #endif |
| sayzyas | 1:c3508bfe65b6 | 47 | #ifdef __DEBUG_DSPMCNT__ |
| sayzyas | 1:c3508bfe65b6 | 48 | #define DEBUG_DSPMCNT(...) pc.printf(__VA_ARGS__) |
| sayzyas | 1:c3508bfe65b6 | 49 | #else |
| sayzyas | 1:c3508bfe65b6 | 50 | #define DEBUG_DSPMCNT(...) |
| sayzyas | 1:c3508bfe65b6 | 51 | #endif |
| sayzyas | 0:653609b2a5cf | 52 | |
| sayzyas | 0:653609b2a5cf | 53 | /* Motor Controller I2C address definition */ |
| sayzyas | 0:653609b2a5cf | 54 | #define I2C_ADDRESS_HANDY 0x20 |
| sayzyas | 0:653609b2a5cf | 55 | #define I2C_ADDRESS_WINCH 0x10 |
| sayzyas | 0:653609b2a5cf | 56 | #define I2C_ADDRESS_TRANSFORM 0x08 |
| sayzyas | 0:653609b2a5cf | 57 | #define I2C_ADDRESS_CRAWLER 0x04 |
| sayzyas | 0:653609b2a5cf | 58 | #define I2C_ADDRESS_RESOLVER 0x02 |
| sayzyas | 0:653609b2a5cf | 59 | |
| sayzyas | 0:653609b2a5cf | 60 | |
| sayzyas | 0:653609b2a5cf | 61 | /* Command definition */ |
| sayzyas | 0:653609b2a5cf | 62 | //#define I2C_TFM_RF_K '6' |
| sayzyas | 0:653609b2a5cf | 63 | //#define I2C_TFM_RF_I '8' |
| sayzyas | 0:653609b2a5cf | 64 | //#define I2C_TFM_LB_K '7' |
| sayzyas | 0:653609b2a5cf | 65 | //#define I2C_TFM_LB_I '5' |
| sayzyas | 0:653609b2a5cf | 66 | //#define I2C_TFM_PAN_CW '2' |
| sayzyas | 0:653609b2a5cf | 67 | //#define I2C_TFM_PAN_CCW '4' |
| sayzyas | 0:653609b2a5cf | 68 | //#define I2C_TFM_TILT_UP '1' |
| sayzyas | 0:653609b2a5cf | 69 | //#define I2C_TFM_TILT_DWN '3' |
| sayzyas | 0:653609b2a5cf | 70 | |
| sayzyas | 0:653609b2a5cf | 71 | /* Command definition */ |
| sayzyas | 0:653609b2a5cf | 72 | #define MOTOR_1 '1' |
| sayzyas | 0:653609b2a5cf | 73 | #define MOTOR_2 '2' |
| sayzyas | 0:653609b2a5cf | 74 | |
| sayzyas | 0:653609b2a5cf | 75 | #define MOTOR_FWD 'F' /* Forward Rotation */ |
| sayzyas | 0:653609b2a5cf | 76 | #define MOTOR_RVS 'R' /* Reverse Rotation */ |
| sayzyas | 0:653609b2a5cf | 77 | #define MOTOR_STP 'S' /* Stop */ |
| sayzyas | 0:653609b2a5cf | 78 | |
| sayzyas | 0:653609b2a5cf | 79 | #define HELLO_PACKET 'A' |
| sayzyas | 0:653609b2a5cf | 80 | #define READ_MCURRENT_PACKET 'C' |
| sayzyas | 0:653609b2a5cf | 81 | |
| sayzyas | 0:653609b2a5cf | 82 | |
| sayzyas | 0:653609b2a5cf | 83 | #define MOTOR_ON '0' |
| sayzyas | 0:653609b2a5cf | 84 | #define MOTOR_OFF '1' |
| sayzyas | 0:653609b2a5cf | 85 | |
| sayzyas | 0:653609b2a5cf | 86 | #define LED_ON 0 |
| sayzyas | 0:653609b2a5cf | 87 | #define LED_OFF 1 |
| sayzyas | 0:653609b2a5cf | 88 | |
| sayzyas | 0:653609b2a5cf | 89 | #define FLG_MOTOR1 1 |
| sayzyas | 0:653609b2a5cf | 90 | #define FLG_MOTOR2 2 |
| sayzyas | 0:653609b2a5cf | 91 | #define FLG_MOTOR_ON 1 |
| sayzyas | 0:653609b2a5cf | 92 | #define FLG_MOTOR_OFF 0 |
| sayzyas | 0:653609b2a5cf | 93 | |
| sayzyas | 0:653609b2a5cf | 94 | enum { |
| sayzyas | 0:653609b2a5cf | 95 | FLG_MOTOR_DIR_FWD, |
| sayzyas | 0:653609b2a5cf | 96 | FLG_MOTOR_DIR_RVS, |
| sayzyas | 0:653609b2a5cf | 97 | FLG_MOTOR_DIR_NONE |
| sayzyas | 0:653609b2a5cf | 98 | }; |
| sayzyas | 0:653609b2a5cf | 99 | |
| sayzyas | 1:c3508bfe65b6 | 100 | /* I2C Command packet to motor controller */ |
| sayzyas | 1:c3508bfe65b6 | 101 | /* For motor controller */ |
| sayzyas | 1:c3508bfe65b6 | 102 | enum{ |
| sayzyas | 1:c3508bfe65b6 | 103 | I2C_CP_PREAMBLE, // Preamble of command packet |
| sayzyas | 1:c3508bfe65b6 | 104 | I2C_CP_COMMAND, // instruction command |
| sayzyas | 1:c3508bfe65b6 | 105 | I2C_CP_M1_DIR, // motor1 rotation direction |
| sayzyas | 1:c3508bfe65b6 | 106 | I2C_CP_M1_SPEED, // motor1 rotation speed |
| sayzyas | 1:c3508bfe65b6 | 107 | I2C_CP_M1_FWD_CNTTH_U, // motor1 current limit detection threshold upper byte |
| sayzyas | 1:c3508bfe65b6 | 108 | I2C_CP_M1_FWD_CNTTH_L, // motor1 current limit detection threshold lower byte |
| sayzyas | 1:c3508bfe65b6 | 109 | I2C_CP_M1_RVS_CNTTH_U, // motor1 current limit detection threshold upper byte |
| sayzyas | 1:c3508bfe65b6 | 110 | I2C_CP_M1_RVS_CNTTH_L, // motor1 current limit detection threshold lower byte |
| sayzyas | 1:c3508bfe65b6 | 111 | I2C_CP_M2_DIR, // motor2 rotation direction |
| sayzyas | 1:c3508bfe65b6 | 112 | I2C_CP_M2_SPEED, // motor2 rotation speed |
| sayzyas | 1:c3508bfe65b6 | 113 | I2C_CP_M2_FWD_CNTTH_U, // motor2 current limit detection threshold upper byte |
| sayzyas | 1:c3508bfe65b6 | 114 | I2C_CP_M2_FWD_CNTTH_L, // motor2 current limit detection threshold lower byte |
| sayzyas | 1:c3508bfe65b6 | 115 | I2C_CP_M2_RVS_CNTTH_U, // motor2 current limit detection threshold upper byte |
| sayzyas | 1:c3508bfe65b6 | 116 | I2C_CP_M2_RVS_CNTTH_L, // motor2 current limit detection threshold lower byte |
| sayzyas | 1:c3508bfe65b6 | 117 | }; |
| sayzyas | 0:653609b2a5cf | 118 | |
| sayzyas | 0:653609b2a5cf | 119 | #define MC_UPPER_LIMIT 95.0f |
| sayzyas | 0:653609b2a5cf | 120 | #define MC_LOWER_LIMIT 5.0f |
| sayzyas | 0:653609b2a5cf | 121 | #define MC_LOCK_COUNT 5 |
| sayzyas | 0:653609b2a5cf | 122 | |
| sayzyas | 0:653609b2a5cf | 123 | #define NumberOfPcCommand 11 |
| sayzyas | 1:c3508bfe65b6 | 124 | #define NumberOfI2CCommand 14 |
| sayzyas | 0:653609b2a5cf | 125 | |
| sayzyas | 0:653609b2a5cf | 126 | #define ROTATE_PER_RESOLUTION 24 |