robot

Dependencies:   FastPWM3 mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers prefs.h Source File

prefs.h

00001 #ifndef __CONFIG_H
00002 #define __CONFIG_H
00003 
00004 #include "mbed.h"
00005 
00006 /*---programming flag---*/
00007 #define _PREFS_VALID __int_reg[0]
00008 
00009 /*---driving---*/
00010 #define _TORQUE_MODE     __int_reg[1]
00011 #define _MAX_TQPCT_PLUS  __float_reg[0]
00012 #define _MAX_TQPCT_MINUS __float_reg[1]
00013 #define _TORQUE_MAX      __float_reg[2]
00014 #define _W_MAX           __float_reg[3]
00015 
00016 /*---inverter---*/
00017 #define _BUS_VOLTAGE     __float_reg[4]
00018 #define _F_SW            __float_reg[5]
00019 
00020 /*---loop---*/
00021 #define _K_LOOP_D        __float_reg[6]
00022 #define _KI_BASE_D       __float_reg[7]
00023 
00024 #define _K_LOOP_Q        __float_reg[8]
00025 #define _KI_BASE_Q       __float_reg[9]
00026 
00027 #define _F_SLOW_LOOP     __float_reg[10]
00028 
00029 #define _INTEGRAL_MAX    __float_reg[11]
00030 
00031 #define _W_FILTER_WINDOW         __int_reg[2]
00032 #define _DQ_FILTER_STRENGTH        __float_reg[12]
00033 #define _THROTTLE_FILTER_WINDOW  __int_reg[3]
00034 
00035 /*---motor---*/
00036 #define _POLE_PAIRS      __float_reg[13]
00037 #define _POS_OFFSET      __float_reg[14]
00038 #define _RESOLVER_LOBES  __float_reg[15]
00039 #define _CPR             __int_reg[4]
00040 #define _Ld              __float_reg[16]
00041 #define _Lq              __float_reg[17]
00042 #define _FLUX_LINKAGE    __float_reg[18]
00043 #define _Rs              __float_reg[19]
00044 #define _KT              __float_reg[20]
00045 #define _W_SAFE          __float_reg[21]
00046 #define _W_CRAZY         __float_reg[22]
00047 
00048 /*---rc_throttle---*/
00049 #define _TH_LIMIT_LOW    __int_reg[5]
00050 #define _TH_LIMIT_HIGH   __int_reg[6]
00051 
00052 /*---table---*/
00053 #define _W_STEP          __float_reg[23]
00054 
00055 /*---data logging---*/
00056 #define _ENABLE_LOGGING  __int_reg[7]
00057 #define _LOG_PAGE_SIZE   __int_reg[8]
00058 #define _LOG_HEADER_SIZE __int_reg[9]
00059 #define _LOG_PACKET_SIZE __int_reg[10]
00060 #define _LOG_BAUD_RATE   __int_reg[11]
00061 
00062 /*---operating mode---*/
00063 
00064 #define BREMS_mode             __int_reg[12]
00065 #define BREMS_src              __int_reg[13]
00066 #define BREMS_op               __int_reg[14]
00067 
00068 /*---error handling---*/
00069 #define ERR_ignores            __int_reg[15]
00070 
00071 /*---commutation tweaks---*/
00072 #define _OVERMODULATION_FACTOR __float_reg[24]
00073 #define _V_PHASE_SWIZZLE       __float_reg[25]
00074 
00075 /*---speed loop---*/
00076 #define _K_LOOP_W __float_reg[26]
00077 #define _KI_BASE_W __float_reg[27]
00078 #define _W_SETPOINT_MAX __float_reg[28]
00079 #define _W_LOOP_MAX_TQ __float_reg[29]
00080 
00081 /*internal variables and macros*/
00082 
00083 extern float __float_reg[];
00084 extern int __int_reg[];
00085 
00086 #define DEFAULT(a) _##a = a
00087 #define FPRINT(a) pc->printf("%s: %f\n", #a, _##a)
00088 #define DPRINT(a) pc->printf("%s: %d\n", #a, _##a)
00089 #define FPRINT2(a) pc->printf("%s: %f\n", #a, a);
00090 #define DPRINT2(a) pc->printf("%s: %d\n", #a, a)
00091 
00092 #define NUM_MODES 4
00093 enum {
00094     MODE_RUN,
00095     MODE_CFG,
00096     MODE_ZERO,
00097     MODE_CHR,
00098 };
00099 
00100 #define NUM_OPS 4
00101 enum {
00102     OP_TORQUE,
00103     OP_DRIVING,
00104     OP_SPEED,
00105     OP_POSITION,
00106 };
00107 
00108 #define NUM_SRCS 6
00109 enum {
00110     CMD_SRC_RC,
00111     CMD_SRC_ANALOG,
00112     CMD_SRC_TERMINAL,
00113     CMD_SRC_SERIAL,
00114     CMD_SRC_CAN,
00115     CMD_SRC_INTERNAL
00116 };
00117 
00118 #endif