2018.08.03 1st commit of demo main res ctrl

Dependencies:   QEI mbed

Committer:
sayzyas
Date:
Fri Aug 03 02:28:22 2018 +0000
Revision:
1:85e8e2c8f283
Parent:
0:f8373bf202a6
2018.08.03

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sayzyas 0:f8373bf202a6 1 /*
sayzyas 0:f8373bf202a6 2 * mbed LPC824-Max header
sayzyas 0:f8373bf202a6 3 *
sayzyas 0:f8373bf202a6 4 */
sayzyas 0:f8373bf202a6 5
sayzyas 0:f8373bf202a6 6 // If you use moving type winch , then should comment out followings !!
sayzyas 0:f8373bf202a6 7 // #define FFWinchPhaseSetting // Valid if Fix falling winch system is using.
sayzyas 0:f8373bf202a6 8
sayzyas 0:f8373bf202a6 9 #define __DEBUG__
sayzyas 0:f8373bf202a6 10 #ifdef __DEBUG__
sayzyas 0:f8373bf202a6 11 #define DEBUG_PRINT(...) pc.printf(__VA_ARGS__)
sayzyas 0:f8373bf202a6 12 #else
sayzyas 0:f8373bf202a6 13 #define DEBUG_PRINT(...) ;
sayzyas 0:f8373bf202a6 14 //#define DEBUG_PRINT(...) 1 ? (void)0 : pc.printf(__VA_ARGS__)
sayzyas 0:f8373bf202a6 15 #endif
sayzyas 0:f8373bf202a6 16 /* Information */
sayzyas 0:f8373bf202a6 17 #define LatestUpDate "2016.09.27"
sayzyas 0:f8373bf202a6 18 #define ProgramRevision "Rev 2.30"
sayzyas 0:f8373bf202a6 19 #define Author "Y.Saito(zinsor)"
sayzyas 0:f8373bf202a6 20 #define Company "Revast Co.,Ltd"
sayzyas 0:f8373bf202a6 21
sayzyas 0:f8373bf202a6 22
sayzyas 0:f8373bf202a6 23 /* Debug macro */
sayzyas 0:f8373bf202a6 24 #define __DEBUG_L0__
sayzyas 0:f8373bf202a6 25 #define __DEBUG_L1__
sayzyas 0:f8373bf202a6 26 //#define __DEBUG_L2__
sayzyas 0:f8373bf202a6 27 //#define __DEBUG_L3__
sayzyas 0:f8373bf202a6 28 //#define __DEBUG_L4__
sayzyas 0:f8373bf202a6 29
sayzyas 0:f8373bf202a6 30 #ifdef __DEBUG_L0__
sayzyas 0:f8373bf202a6 31 #define DEBUG_PRINT_L0(...) pc.printf(__VA_ARGS__)
sayzyas 0:f8373bf202a6 32 #else
sayzyas 0:f8373bf202a6 33 #define DEBUG_PRINT_L0(...)
sayzyas 0:f8373bf202a6 34 #endif
sayzyas 0:f8373bf202a6 35 #ifdef __DEBUG_L1__
sayzyas 0:f8373bf202a6 36 #define DEBUG_PRINT_L1(...) pc.printf(__VA_ARGS__)
sayzyas 0:f8373bf202a6 37 #else
sayzyas 0:f8373bf202a6 38 #define DEBUG_PRINT_L1(...)
sayzyas 0:f8373bf202a6 39 #endif
sayzyas 0:f8373bf202a6 40 #ifdef __DEBUG_L2__
sayzyas 0:f8373bf202a6 41 #define DEBUG_PRINT_L2(...) pc.printf(__VA_ARGS__)
sayzyas 0:f8373bf202a6 42 #else
sayzyas 0:f8373bf202a6 43 #define DEBUG_PRINT_L2(...)
sayzyas 0:f8373bf202a6 44 #endif
sayzyas 0:f8373bf202a6 45 #ifdef __DEBUG_L3__
sayzyas 0:f8373bf202a6 46 #define DEBUG_PRINT_L3(...) pc.printf(__VA_ARGS__)
sayzyas 0:f8373bf202a6 47 #else
sayzyas 0:f8373bf202a6 48 #define DEBUG_PRINT_L3(...)
sayzyas 0:f8373bf202a6 49 #endif
sayzyas 0:f8373bf202a6 50 #ifdef __DEBUG_L4__
sayzyas 0:f8373bf202a6 51 #define DEBUG_PRINT_L4(...) pc.printf(__VA_ARGS__)
sayzyas 0:f8373bf202a6 52 #else
sayzyas 0:f8373bf202a6 53 #define DEBUG_PRINT_L4(...)
sayzyas 0:f8373bf202a6 54 #endif
sayzyas 0:f8373bf202a6 55
sayzyas 0:f8373bf202a6 56 enum{
sayzyas 0:f8373bf202a6 57 MOTOR_RFCRW, // RF crawler
sayzyas 0:f8373bf202a6 58 MOTOR_LBCRW, // LB crawler
sayzyas 0:f8373bf202a6 59 MOTOR_RFTFM, // RF Transform
sayzyas 0:f8373bf202a6 60 MOTOR_LBTFM, // LB transform
sayzyas 0:f8373bf202a6 61 MOTOR_WINCH, // Winch
sayzyas 0:f8373bf202a6 62 MOTOR_CMPAN, // Pan/Tilt
sayzyas 0:f8373bf202a6 63 MOTOR_CTILT
sayzyas 0:f8373bf202a6 64 };
sayzyas 0:f8373bf202a6 65
sayzyas 0:f8373bf202a6 66 enum{
sayzyas 0:f8373bf202a6 67 MOTOR_DIR_FWD, // Motor forwaed rotation
sayzyas 0:f8373bf202a6 68 MOTOR_DIR_RVS, // Motor reverse rotation
sayzyas 0:f8373bf202a6 69 MOTOR_DIR_STP // Motor stop
sayzyas 0:f8373bf202a6 70 };
sayzyas 0:f8373bf202a6 71
sayzyas 0:f8373bf202a6 72 #define NumberOfI2CCommand 12
sayzyas 0:f8373bf202a6 73 enum{
sayzyas 0:f8373bf202a6 74 I2C_CP_COMMAND, // instruction command
sayzyas 0:f8373bf202a6 75 I2C_CP_MOTORNO, // motor number
sayzyas 0:f8373bf202a6 76 I2C_CP_M_DIR, // motor rotation direction
sayzyas 0:f8373bf202a6 77 I2C_CP_M_CNTTH_U, // motor current limit detection threshold upper byte
sayzyas 0:f8373bf202a6 78 I2C_CP_M_CNTTH_L, // motor current limit detection threshold lower byte
sayzyas 0:f8373bf202a6 79 I2C_CP_WDRAM_DIA_UPPER, // winch dram motor diameter upper
sayzyas 0:f8373bf202a6 80 I2C_CP_WDRAM_DIA_LOWER, // winch dram motor diameter lower
sayzyas 0:f8373bf202a6 81 I2C_CP_CCABLE_DIA_UPPER, // cable diameter upper byte
sayzyas 0:f8373bf202a6 82 I2C_CP_CCABLE_DIA_LOWER, // cable diameter lower byte
sayzyas 0:f8373bf202a6 83 I2C_CP_RESOLVER_RESO, // resolver resolution (bit)
sayzyas 0:f8373bf202a6 84 I2C_CP_PRESET_CPOS_UPPER, // preset position upper
sayzyas 0:f8373bf202a6 85 I2C_CP_PRESET_CPOS_LOWER, // preset position lower
sayzyas 0:f8373bf202a6 86 };
sayzyas 0:f8373bf202a6 87
sayzyas 0:f8373bf202a6 88
sayzyas 0:f8373bf202a6 89 #define ROTATE_PER_RESOLUTION 24
sayzyas 0:f8373bf202a6 90 #define REAL_THREAD_DIAMETER 63 // 60+3
sayzyas 0:f8373bf202a6 91 //#define ROTATION_DISTANCE 197.82f // (60+3)*3.14
sayzyas 0:f8373bf202a6 92 #define ROTATION_PULSE_PER_1ROUND 16384 // 2^12(bit) * 4
sayzyas 0:f8373bf202a6 93 #define PAI 3.14159265359
sayzyas 0:f8373bf202a6 94
sayzyas 0:f8373bf202a6 95 /* ***************** */
sayzyas 0:f8373bf202a6 96 /* Target definition */
sayzyas 0:f8373bf202a6 97 /* ***************** */
sayzyas 0:f8373bf202a6 98 #define I2C_ADDRESS_RESOLVER 0x02
sayzyas 0:f8373bf202a6 99
sayzyas 0:f8373bf202a6 100 /* Command Packet */
sayzyas 0:f8373bf202a6 101 #define CLEAR_RESOLVER_POSITION 'X'
sayzyas 0:f8373bf202a6 102 #define HELLO_PACKET 'A'
sayzyas 0:f8373bf202a6 103
sayzyas 0:f8373bf202a6 104 #define LED_ON 0
sayzyas 0:f8373bf202a6 105 #define LED_OFF 1