2018.08.06
common.h
- Committer:
- sayzyas
- Date:
- 2018-08-06
- Revision:
- 3:4a7dea2da5b5
- Parent:
- 2:aeff576d5013
File content as of revision 3:4a7dea2da5b5:
/*
* mbed LPC824-Max header
*
*/
#define __IIC_COMAMND_SEND__
/* Information */
#define LatestUpDate "2016.06.06"
#define ProgramRevision "Rev 2.1"
#define Author "Y.Saito(zinsor)"
#define Company "Revast Co.,Ltd."
#define ProgramCode "RVM-X0F0A"
#define __DEBUG_L0__
#define __DEBUG_L1__
//#define __DEBUG_L2__
#define __DEBUG_L3__
//#define __DEBUG_L4__
#define __DEBUG_DSPMCNT__ // Display motor current percentage value
#ifdef __DEBUG_L0__
#define DEBUG_PRINT_L0(...) pc.printf(__VA_ARGS__)
#else
#define DEBUG_PRINT_L0(...)
#endif
#ifdef __DEBUG_L1__
#define DEBUG_PRINT_L1(...) pc.printf(__VA_ARGS__)
#else
#define DEBUG_PRINT_L1(...)
#endif
#ifdef __DEBUG_L2__
#define DEBUG_PRINT_L2(...) pc.printf(__VA_ARGS__)
#else
#define DEBUG_PRINT_L2(...)
#endif
#ifdef __DEBUG_L3__
#define DEBUG_PRINT_L3(...) pc.printf(__VA_ARGS__)
#else
#define DEBUG_PRINT_L3(...)
#endif
#ifdef __DEBUG_L4__
#define DEBUG_PRINT_L4(...) pc.printf(__VA_ARGS__)
#else
#define DEBUG_PRINT_L4(...)
#endif
#ifdef __DEBUG_DSPMCNT__
#define DEBUG_DSPMCNT(...) pc.printf(__VA_ARGS__)
#else
#define DEBUG_DSPMCNT(...)
#endif
/* Motor Controller I2C address definition */
#define I2C_ADDRESS_HANDY 0x20
#define I2C_ADDRESS_WINCH 0x10
#define I2C_ADDRESS_TRANSFORM 0x08
#define I2C_ADDRESS_CRAWLER 0x04
#define I2C_ADDRESS_RESOLVER 0x02
/* Command definition */
//#define I2C_TFM_RF_K '6'
//#define I2C_TFM_RF_I '8'
//#define I2C_TFM_LB_K '7'
//#define I2C_TFM_LB_I '5'
//#define I2C_TFM_PAN_CW '2'
//#define I2C_TFM_PAN_CCW '4'
//#define I2C_TFM_TILT_UP '1'
//#define I2C_TFM_TILT_DWN '3'
/* Command definition */
#define MOTOR_1 '1'
#define MOTOR_2 '2'
#define MOTOR_FWD 'F' /* Forward Rotation */
#define MOTOR_RVS 'R' /* Reverse Rotation */
#define MOTOR_STP 'S' /* Stop */
#define HELLO_PACKET 'A'
#define READ_MCURRENT_PACKET 'C'
#define MOTOR_ON '0'
#define MOTOR_OFF '1'
#define LED_ON 0
#define LED_OFF 1
#define FLG_MOTOR1 1
#define FLG_MOTOR2 2
#define FLG_MOTOR_ON 1
#define FLG_MOTOR_OFF 0
enum {
FLG_MOTOR_DIR_FWD,
FLG_MOTOR_DIR_RVS,
FLG_MOTOR_DIR_NONE
};
/* I2C Command packet to motor controller */
/* For motor controller */
enum{
I2C_CP_PREAMBLE, // Preamble of command packet
I2C_CP_COMMAND, // instruction command
I2C_CP_M1_DIR, // motor1 rotation direction
I2C_CP_M1_SPEED, // motor1 rotation speed
I2C_CP_M1_FWD_CNTTH_U, // motor1 current limit detection threshold upper byte
I2C_CP_M1_FWD_CNTTH_L, // motor1 current limit detection threshold lower byte
I2C_CP_M1_RVS_CNTTH_U, // motor1 current limit detection threshold upper byte
I2C_CP_M1_RVS_CNTTH_L, // motor1 current limit detection threshold lower byte
I2C_CP_M2_DIR, // motor2 rotation direction
I2C_CP_M2_SPEED, // motor2 rotation speed
I2C_CP_M2_FWD_CNTTH_U, // motor2 current limit detection threshold upper byte
I2C_CP_M2_FWD_CNTTH_L, // motor2 current limit detection threshold lower byte
I2C_CP_M2_RVS_CNTTH_U, // motor2 current limit detection threshold upper byte
I2C_CP_M2_RVS_CNTTH_L, // motor2 current limit detection threshold lower byte
};
#define MC_UPPER_LIMIT 95.0f
#define MC_LOWER_LIMIT 5.0f
#define MC_LOCK_COUNT 5
#define NumberOfPcCommand 11
#define NumberOfI2CCommand 14
#define ROTATE_PER_RESOLUTION 24