robot

Dependencies:   FastPWM3 mbed

Committer:
bwang
Date:
Fri Feb 09 03:49:31 2018 +0000
Revision:
181:d3510c8beab6
Child:
184:633119bb0b77
02/08/2018 22:48 - integrated CommandProcessor and PreferenceWriter (but code does not use dynamic config variables or set error flags yet)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bwang 181:d3510c8beab6 1 #ifndef __CONFIG_H
bwang 181:d3510c8beab6 2 #define __CONFIG_H
bwang 181:d3510c8beab6 3
bwang 181:d3510c8beab6 4 #include "mbed.h"
bwang 181:d3510c8beab6 5
bwang 181:d3510c8beab6 6 /*---programming flag---*/
bwang 181:d3510c8beab6 7 #define _PREFS_VALID __int_reg[0]
bwang 181:d3510c8beab6 8
bwang 181:d3510c8beab6 9 /*---driving---*/
bwang 181:d3510c8beab6 10 #define _TORQUE_MODE __int_reg[1]
bwang 181:d3510c8beab6 11 #define _MAX_TQPCT_PLUS __float_reg[0]
bwang 181:d3510c8beab6 12 #define _MAX_TQPCT_MINUS __float_reg[1]
bwang 181:d3510c8beab6 13 #define _TORQUE_MAX __float_reg[2]
bwang 181:d3510c8beab6 14 #define _W_MAX __float_reg[3]
bwang 181:d3510c8beab6 15
bwang 181:d3510c8beab6 16 /*---inverter---*/
bwang 181:d3510c8beab6 17 #define _BUS_VOLTAGE __float_reg[4]
bwang 181:d3510c8beab6 18 #define _F_SW __float_reg[5]
bwang 181:d3510c8beab6 19
bwang 181:d3510c8beab6 20 /*---logging---*/
bwang 181:d3510c8beab6 21 #define _ENABLE_LOGGING __int_reg[2]
bwang 181:d3510c8beab6 22 #define _LOG_FREQUENCY __float_reg[6]
bwang 181:d3510c8beab6 23
bwang 181:d3510c8beab6 24 /*---loop---*/
bwang 181:d3510c8beab6 25 #define _K_LOOP_D __float_reg[7]
bwang 181:d3510c8beab6 26 #define _KI_BASE_D __float_reg[8]
bwang 181:d3510c8beab6 27
bwang 181:d3510c8beab6 28 #define _K_LOOP_Q __float_reg[9]
bwang 181:d3510c8beab6 29 #define _KI_BASE_Q __float_reg[10]
bwang 181:d3510c8beab6 30
bwang 181:d3510c8beab6 31 #define _F_SLOW_LOOP __float_reg[11]
bwang 181:d3510c8beab6 32
bwang 181:d3510c8beab6 33 #define _INTEGRAL_MAX __float_reg[12]
bwang 181:d3510c8beab6 34
bwang 181:d3510c8beab6 35 #define _W_FILTER_WINDOW __int_reg[3]
bwang 181:d3510c8beab6 36 #define _DQ_FILTER_STRENGTH __float_reg[13]
bwang 181:d3510c8beab6 37 #define _THROTTLE_FILTER_WINDOW __int_reg[4]
bwang 181:d3510c8beab6 38
bwang 181:d3510c8beab6 39 #define _KP_D __float_reg[14]
bwang 181:d3510c8beab6 40 #define _KI_D __float_reg[15]
bwang 181:d3510c8beab6 41
bwang 181:d3510c8beab6 42 #define _KP_Q __float_reg[16]
bwang 181:d3510c8beab6 43 #define _KI_Q __float_reg[17]
bwang 181:d3510c8beab6 44
bwang 181:d3510c8beab6 45 #define _SLOW_LOOP_COUNTER __float_reg[18]
bwang 181:d3510c8beab6 46
bwang 181:d3510c8beab6 47 /*---motor---*/
bwang 181:d3510c8beab6 48 #define _POLE_PAIRS __float_reg[19]
bwang 181:d3510c8beab6 49 #define _POS_OFFSET __float_reg[20]
bwang 181:d3510c8beab6 50 #define _RESOLVER_LOBES __float_reg[21]
bwang 181:d3510c8beab6 51 #define _CPR __int_reg[5]
bwang 181:d3510c8beab6 52 #define _Ld __float_reg[22]
bwang 181:d3510c8beab6 53 #define _Lq __float_reg[23]
bwang 181:d3510c8beab6 54 #define _FLUX_LINKAGE __float_reg[24]
bwang 181:d3510c8beab6 55 #define _Rs __float_reg[25]
bwang 181:d3510c8beab6 56 #define _KT __float_reg[26]
bwang 181:d3510c8beab6 57 #define _W_SAFE __float_reg[27]
bwang 181:d3510c8beab6 58 #define _W_CRAZY __float_reg[28]
bwang 181:d3510c8beab6 59
bwang 181:d3510c8beab6 60 /*---rc_throttle---*/
bwang 181:d3510c8beab6 61 #define _TH_LIMIT_LOW __int_reg[6]
bwang 181:d3510c8beab6 62 #define _TH_LIMIT_HIGH __int_reg[7]
bwang 181:d3510c8beab6 63
bwang 181:d3510c8beab6 64 /*---table---*/
bwang 181:d3510c8beab6 65 #define _ROWS __int_reg[8]
bwang 181:d3510c8beab6 66 #define _COLUMNS __int_reg[9]
bwang 181:d3510c8beab6 67 #define _W_STEP __float_reg[29]
bwang 181:d3510c8beab6 68
bwang 181:d3510c8beab6 69 /*---operating mode---*/
bwang 181:d3510c8beab6 70
bwang 181:d3510c8beab6 71 #define BREMS_mode __int_reg[10]
bwang 181:d3510c8beab6 72 #define BREMS_src __int_reg[11]
bwang 181:d3510c8beab6 73 #define BREMS_op __int_reg[12]
bwang 181:d3510c8beab6 74
bwang 181:d3510c8beab6 75 /*---error handling---*/
bwang 181:d3510c8beab6 76 #define ERR_ignores __int_reg[13]
bwang 181:d3510c8beab6 77
bwang 181:d3510c8beab6 78 /*internal variables and macros*/
bwang 181:d3510c8beab6 79
bwang 181:d3510c8beab6 80 extern float __float_reg[];
bwang 181:d3510c8beab6 81 extern int __int_reg[];
bwang 181:d3510c8beab6 82
bwang 181:d3510c8beab6 83 #define DEFAULT(a) _##a = a
bwang 181:d3510c8beab6 84 #define FPRINT(a) pc->printf("%s: %f\n", #a, _##a)
bwang 181:d3510c8beab6 85 #define DPRINT(a) pc->printf("%s: %d\n", #a, _##a)
bwang 181:d3510c8beab6 86
bwang 181:d3510c8beab6 87 #define NUM_MODES 4
bwang 181:d3510c8beab6 88 enum {
bwang 181:d3510c8beab6 89 MODE_RUN,
bwang 181:d3510c8beab6 90 MODE_CFG,
bwang 181:d3510c8beab6 91 MODE_ZERO,
bwang 181:d3510c8beab6 92 MODE_CHR,
bwang 181:d3510c8beab6 93 };
bwang 181:d3510c8beab6 94
bwang 181:d3510c8beab6 95 #define NUM_OPS 4
bwang 181:d3510c8beab6 96 enum {
bwang 181:d3510c8beab6 97 OP_TORQUE,
bwang 181:d3510c8beab6 98 OP_DRIVING,
bwang 181:d3510c8beab6 99 OP_SPEED,
bwang 181:d3510c8beab6 100 OP_POSITION,
bwang 181:d3510c8beab6 101 };
bwang 181:d3510c8beab6 102
bwang 181:d3510c8beab6 103 #define NUM_SRCS 6
bwang 181:d3510c8beab6 104 enum {
bwang 181:d3510c8beab6 105 CMD_SRC_RC,
bwang 181:d3510c8beab6 106 CMD_SRC_ANALOG,
bwang 181:d3510c8beab6 107 CMD_SRC_TERMINAL,
bwang 181:d3510c8beab6 108 CMD_SRC_SERIAL,
bwang 181:d3510c8beab6 109 CMD_SRC_CAN,
bwang 181:d3510c8beab6 110 CMD_SRC_INTERNAL
bwang 181:d3510c8beab6 111 };
bwang 181:d3510c8beab6 112
bwang 181:d3510c8beab6 113 #endif