rainbow

Dependencies:   mbed FastPWM

Committer:
Lightvalve
Date:
Mon Jun 13 08:48:55 2022 +0000
Revision:
243:30896263bd8b
Parent:
241:27eca07c9591
Child:
244:e9c5ec04e378
220613

Who changed what in which revision?

UserRevisionLine numberNew contents of line
GiJeongKim 0:51c43836c1d7 1 #include "mbed.h"
GiJeongKim 0:51c43836c1d7 2 #include "FastPWM.h"
GiJeongKim 0:51c43836c1d7 3
GiJeongKim 0:51c43836c1d7 4 // pwm
Lightvalve 243:30896263bd8b 5 //#define PIN_V PB_4
Lightvalve 243:30896263bd8b 6 //#define PIN_W PB_5
Lightvalve 243:30896263bd8b 7 //#define PIN_V PC_6
Lightvalve 243:30896263bd8b 8 //#define PIN_W PC_7
Lightvalve 243:30896263bd8b 9 #define PIN_V PA_8
Lightvalve 243:30896263bd8b 10 #define PIN_W PA_7
Lightvalve 243:30896263bd8b 11 //#define PIN_V PB_6
Lightvalve 243:30896263bd8b 12 //#define PIN_W PB_7
Lightvalve 224:985dba42f261 13 //#define PWM_ARR 0x465 // loop 80k, pwm 40k
jobuuu 2:a1c0a37df760 14 //#define PWM_ARR 0x8CA // loop 40k, pwm 20k
Lightvalve 240:fb5b57e3f157 15 #define PWM_ARR 0x1194 // loop 20k, pwm 10k 원래이거
Lightvalve 224:985dba42f261 16 //#define PWM_ARR 0x2328 // loop 10k, pwm 5k
Lightvalve 240:fb5b57e3f157 17 //#define PWM_ARR 0xAFC8 // loop 2 k, pwm 1k
Lightvalve 240:fb5b57e3f157 18
Lightvalve 243:30896263bd8b 19 //#define TMR3_COUNT 0xAFC8 // loop 2 k, pwm 1k
Lightvalve 243:30896263bd8b 20 #define TMR3_COUNT 0x1194
Lightvalve 240:fb5b57e3f157 21 //#define TMR2_COUNT 0x2710 // loop 500hz with prescale 18
Lightvalve 240:fb5b57e3f157 22 #define TMR2_COUNT 0x4650 // loop 5 k
Lightvalve 243:30896263bd8b 23 #define TMR1_COUNT 0x1194
jobuuu 2:a1c0a37df760 24
Lightvalve 30:8d561f16383b 25 #define FREQ_500 500.0f
Lightvalve 30:8d561f16383b 26 #define FREQ_1k 1000.0f
Lightvalve 30:8d561f16383b 27 #define FREQ_5k 5000.0f
Lightvalve 30:8d561f16383b 28 #define FREQ_10k 10000.0f
Lightvalve 30:8d561f16383b 29 #define FREQ_20k 20000.0f
Lightvalve 30:8d561f16383b 30 #define FREQ_40k 40000.0f
Lightvalve 30:8d561f16383b 31 #define DT_500 0.002f
jobuuu 230:2c3e5ecbe7e1 32 #define DT_1k 0.001f
Lightvalve 30:8d561f16383b 33 #define DT_5k 0.0002f
Lightvalve 30:8d561f16383b 34 #define DT_10k 0.0001f
Lightvalve 30:8d561f16383b 35 #define DT_20k 0.00005f
Lightvalve 30:8d561f16383b 36 #define DT_40k 0.000025f
jobuuu 5:a4319f79457b 37
jobuuu 230:2c3e5ecbe7e1 38 //#define TMR_FREQ_10k 10000
jobuuu 230:2c3e5ecbe7e1 39 #define TMR_FREQ_5k 5000
Lightvalve 241:27eca07c9591 40 #define TMR_FREQ_1k 1000
jobuuu 230:2c3e5ecbe7e1 41
jobuuu 7:e9086c72bb22 42 extern AnalogOut dac_1;
jobuuu 7:e9086c72bb22 43 extern AnalogOut dac_2;
jobuuu 7:e9086c72bb22 44
Lightvalve 30:8d561f16383b 45 extern float dtc_v;
Lightvalve 30:8d561f16383b 46 extern float dtc_w;
GiJeongKim 0:51c43836c1d7 47
GiJeongKim 0:51c43836c1d7 48 // SPI
Lightvalve 170:42c938a40313 49 extern SPI eeprom; //(SPI_MOSI, SPI_MISO, SPI_SCK);
Lightvalve 170:42c938a40313 50 extern DigitalOut eeprom_cs;
GiJeongKim 0:51c43836c1d7 51 extern SPI enc;
GiJeongKim 0:51c43836c1d7 52 extern DigitalOut enc_cs;
GiJeongKim 0:51c43836c1d7 53
GiJeongKim 0:51c43836c1d7 54 // UART
jobuuu 7:e9086c72bb22 55 extern Serial pc; //Serial pc(PA_9,PA_10); _ UART
jobuuu 7:e9086c72bb22 56
jobuuu 7:e9086c72bb22 57 // CAN
jobuuu 7:e9086c72bb22 58 extern CAN can;
jobuuu 7:e9086c72bb22 59 extern CANMessage msg;
jobuuu 7:e9086c72bb22 60
jobuuu 7:e9086c72bb22 61 // Board Information
jobuuu 7:e9086c72bb22 62
jobuuu 7:e9086c72bb22 63
jobuuu 7:e9086c72bb22 64 // User Function
jobuuu 7:e9086c72bb22 65 void CurrentControl();
jobuuu 7:e9086c72bb22 66 void ValveControl(unsigned int ControlMode);
Lightvalve 11:82d8768d7351 67
Lightvalve 11:82d8768d7351 68
Lightvalve 11:82d8768d7351 69 /*******************************************************************************
Lightvalve 11:82d8768d7351 70 * COMMON Settings
Lightvalve 11:82d8768d7351 71 ******************************************************************************/
Lightvalve 11:82d8768d7351 72 #define LATEST_VERSION 19032
Lightvalve 11:82d8768d7351 73
Lightvalve 11:82d8768d7351 74
Lightvalve 11:82d8768d7351 75 /*******************************************************************************
Lightvalve 11:82d8768d7351 76 * COMMON CONSTANTS
Lightvalve 11:82d8768d7351 77 ******************************************************************************/
Lightvalve 30:8d561f16383b 78 #define RAD_30 0.523598775598299f
Lightvalve 30:8d561f16383b 79 #define RAD_60 1.047197551196598f
Lightvalve 30:8d561f16383b 80 #define RAD_120 2.094395102393195f
Lightvalve 30:8d561f16383b 81 #define RAD_180 3.141592653589793f
Lightvalve 30:8d561f16383b 82 #define RAD_240 4.188790204786391f
Lightvalve 30:8d561f16383b 83 #define RAD_300 5.235987755982989f
Lightvalve 30:8d561f16383b 84 #define RAD_360 6.283185307179586f
Lightvalve 11:82d8768d7351 85
Lightvalve 11:82d8768d7351 86 #define SYSFREQ 200000000
Lightvalve 11:82d8768d7351 87 #define PBCLK 100000000
Lightvalve 11:82d8768d7351 88
Lightvalve 11:82d8768d7351 89 #define FALSE 0
Lightvalve 11:82d8768d7351 90 #define TRUE 1
Lightvalve 11:82d8768d7351 91 #define OUTPUT 0
Lightvalve 11:82d8768d7351 92 #define INPUT 1
Lightvalve 11:82d8768d7351 93 #define LOW 0
Lightvalve 11:82d8768d7351 94 #define HIGH 1
Lightvalve 11:82d8768d7351 95 #define DIGITAL 0
Lightvalve 11:82d8768d7351 96 #define ANALOG 1
Lightvalve 11:82d8768d7351 97
Lightvalve 30:8d561f16383b 98 #define PI 3.141592653589793f
Lightvalve 30:8d561f16383b 99 #define D2R 0.017453292519943f
Lightvalve 30:8d561f16383b 100 #define R2D 57.295779513082323f
Lightvalve 11:82d8768d7351 101
Lightvalve 11:82d8768d7351 102
Lightvalve 11:82d8768d7351 103 /*******************************************************************************
Lightvalve 11:82d8768d7351 104 * HEADER INCLUDE
Lightvalve 11:82d8768d7351 105 ******************************************************************************/
Lightvalve 11:82d8768d7351 106
Lightvalve 11:82d8768d7351 107 /*******************************************************************************
Lightvalve 11:82d8768d7351 108 * VARIABLE
Lightvalve 11:82d8768d7351 109 ******************************************************************************/
Lightvalve 11:82d8768d7351 110
Lightvalve 11:82d8768d7351 111 // Board Information
Lightvalve 11:82d8768d7351 112 extern uint8_t BNO;
Lightvalve 11:82d8768d7351 113 extern uint8_t CONTROL_MODE;
Lightvalve 11:82d8768d7351 114 extern uint8_t OPERATING_MODE;
Lightvalve 52:8ea76864368a 115 extern uint8_t SENSING_MODE;
jobuuu 230:2c3e5ecbe7e1 116 extern uint8_t SUPPLY_PRESSURE_UPDATE;
jobuuu 230:2c3e5ecbe7e1 117
Lightvalve 57:f4819de54e7a 118 extern uint8_t CONTROL_UTILITY_MODE;
Lightvalve 52:8ea76864368a 119 extern uint8_t CURRENT_CONTROL_MODE;
Lightvalve 52:8ea76864368a 120 extern uint8_t FLAG_VALVE_DEADZONE;
Lightvalve 11:82d8768d7351 121 extern uint8_t REFERENCE_MODE;
Lightvalve 54:647072f5307a 122 extern int16_t CAN_FREQ;
Lightvalve 17:1865016ca2e7 123 extern int16_t DIR_JOINT_ENC;
Lightvalve 17:1865016ca2e7 124 extern int16_t DIR_VALVE;
Lightvalve 17:1865016ca2e7 125 extern int16_t DIR_VALVE_ENC;
Lightvalve 11:82d8768d7351 126
Lightvalve 30:8d561f16383b 127 extern float SUPPLY_VOLTAGE;
Lightvalve 30:8d561f16383b 128 extern float VALVE_VOLTAGE_LIMIT;
Lightvalve 11:82d8768d7351 129
Lightvalve 30:8d561f16383b 130 extern float P_GAIN_VALVE_POSITION;
Lightvalve 30:8d561f16383b 131 extern float I_GAIN_VALVE_POSITION;
Lightvalve 30:8d561f16383b 132 extern float D_GAIN_VALVE_POSITION;
Lightvalve 30:8d561f16383b 133 extern float P_GAIN_JOINT_POSITION;
Lightvalve 30:8d561f16383b 134 extern float I_GAIN_JOINT_POSITION;
Lightvalve 30:8d561f16383b 135 extern float D_GAIN_JOINT_POSITION;
Lightvalve 30:8d561f16383b 136 extern float P_GAIN_JOINT_TORQUE;
Lightvalve 30:8d561f16383b 137 extern float I_GAIN_JOINT_TORQUE;
Lightvalve 30:8d561f16383b 138 extern float D_GAIN_JOINT_TORQUE;
Lightvalve 72:3436ce769b1e 139 extern float P_GAIN_JOINT_TORQUE_FF;
Lightvalve 72:3436ce769b1e 140 extern float I_GAIN_JOINT_TORQUE_FF;
Lightvalve 72:3436ce769b1e 141 extern float D_GAIN_JOINT_TORQUE_FF;
Lightvalve 11:82d8768d7351 142
Lightvalve 46:2694daea349b 143 extern int16_t K_SPRING;
Lightvalve 46:2694daea349b 144 extern int16_t D_DAMPER;
Lightvalve 46:2694daea349b 145
Lightvalve 54:647072f5307a 146 extern int16_t flag_delay_test;
Lightvalve 54:647072f5307a 147
Lightvalve 36:a46e63505ed8 148 //extern float P_GAIN_VALVE_POSITION_OPP;
Lightvalve 36:a46e63505ed8 149 //extern float I_GAIN_VALVE_POSITION_OPP;
Lightvalve 36:a46e63505ed8 150 //extern float D_GAIN_VALVE_POSITION_OPP;
Lightvalve 36:a46e63505ed8 151 //extern float P_GAIN_JOINT_POSITION_OPP;
Lightvalve 36:a46e63505ed8 152 //extern float I_GAIN_JOINT_POSITION_OPP;
Lightvalve 36:a46e63505ed8 153 //extern float D_GAIN_JOINT_POSITION_OPP;
Lightvalve 36:a46e63505ed8 154 //extern float P_GAIN_JOINT_TORQUE_OPP;
Lightvalve 36:a46e63505ed8 155 //extern float I_GAIN_JOINT_TORQUE_OPP;
Lightvalve 36:a46e63505ed8 156 //extern float D_GAIN_JOINT_TORQUE_OPP;
Lightvalve 36:a46e63505ed8 157
hyhoon 226:82a3ca333004 158 extern int16_t VALVE_DEADZONE_PLUS;
hyhoon 226:82a3ca333004 159 extern int16_t VALVE_DEADZONE_MINUS;
Lightvalve 11:82d8768d7351 160
Lightvalve 11:82d8768d7351 161 extern int16_t VELOCITY_COMP_GAIN;
Lightvalve 238:4e660aa77eb7 162 //extern int16_t COMPLIANCE_GAIN;
Lightvalve 11:82d8768d7351 163
Lightvalve 11:82d8768d7351 164 extern int16_t VALVE_CENTER;
Lightvalve 11:82d8768d7351 165
Lightvalve 11:82d8768d7351 166 extern int16_t VALVE_FF;
Lightvalve 11:82d8768d7351 167
Lightvalve 11:82d8768d7351 168 extern int16_t BULK_MODULUS;
Lightvalve 11:82d8768d7351 169
Lightvalve 11:82d8768d7351 170 extern int16_t CHAMBER_VOLUME_A;
Lightvalve 11:82d8768d7351 171 extern int16_t CHAMBER_VOLUME_B;
Lightvalve 11:82d8768d7351 172
Lightvalve 11:82d8768d7351 173 extern int16_t PISTON_AREA_A;
Lightvalve 11:82d8768d7351 174 extern int16_t PISTON_AREA_B;
Lightvalve 30:8d561f16383b 175 extern float PISTON_AREA_alpha;
Lightvalve 57:f4819de54e7a 176 extern float alpha3;
Lightvalve 11:82d8768d7351 177
jobuuu 230:2c3e5ecbe7e1 178 extern float PRES_SUPPLY_NOM;
jobuuu 230:2c3e5ecbe7e1 179 extern float PRES_SUPPLY;
Lightvalve 11:82d8768d7351 180
Lightvalve 11:82d8768d7351 181 extern int16_t ENC_LIMIT_PLUS;
Lightvalve 11:82d8768d7351 182 extern int16_t ENC_LIMIT_MINUS;
Lightvalve 11:82d8768d7351 183
Lightvalve 11:82d8768d7351 184 extern int16_t STROKE;
Lightvalve 11:82d8768d7351 185
Lightvalve 133:22ab22818e01 186 extern float Amm;
Lightvalve 133:22ab22818e01 187 extern float beta;
Lightvalve 133:22ab22818e01 188 extern float Ps;
Lightvalve 133:22ab22818e01 189 extern float Pt;
Lightvalve 133:22ab22818e01 190 extern float gamma_hat;
Lightvalve 218:066030f7951f 191 extern float a_hat;
Lightvalve 170:42c938a40313 192 extern float V_adapt;
Lightvalve 133:22ab22818e01 193 extern float x_4_des_old;
Lightvalve 133:22ab22818e01 194
Lightvalve 57:f4819de54e7a 195 //extern int16_t VALVE_LIMIT_PLUS;
Lightvalve 57:f4819de54e7a 196 //extern int16_t VALVE_LIMIT_MINUS;
Lightvalve 11:82d8768d7351 197
Lightvalve 48:889798ff9329 198 extern float ENC_PULSE_PER_POSITION;
Lightvalve 48:889798ff9329 199 extern float TORQUE_SENSOR_PULSE_PER_TORQUE;
Lightvalve 48:889798ff9329 200
Lightvalve 30:8d561f16383b 201 extern float PRES_SENSOR_A_PULSE_PER_BAR;
Lightvalve 30:8d561f16383b 202 extern float PRES_SENSOR_B_PULSE_PER_BAR;
Lightvalve 11:82d8768d7351 203
hyhoon 226:82a3ca333004 204 extern int16_t HOMEPOS_OFFSET;
Lightvalve 11:82d8768d7351 205 extern int HOMEPOS_VALVE_OPENING;
Lightvalve 11:82d8768d7351 206
Lightvalve 30:8d561f16383b 207 extern float FRICTION;
Lightvalve 30:8d561f16383b 208 extern float REF_PERIOD;
Lightvalve 30:8d561f16383b 209 extern float REF_MAG;
Lightvalve 11:82d8768d7351 210 extern int REF_NUM;
Lightvalve 11:82d8768d7351 211
Lightvalve 11:82d8768d7351 212
Lightvalve 30:8d561f16383b 213 extern float DAC_REF;
Lightvalve 30:8d561f16383b 214 extern float DAC_RESOL;
Lightvalve 11:82d8768d7351 215
jobuuu 230:2c3e5ecbe7e1 216 extern float REF_FORCE;
jobuuu 230:2c3e5ecbe7e1 217 extern float REF_TORQUE;
hyhoon 227:699c3e572283 218 extern float REF_POSITION;
hyhoon 227:699c3e572283 219 extern float REF_VELOCITY;
jobuuu 230:2c3e5ecbe7e1 220
jobuuu 230:2c3e5ecbe7e1 221 extern float REF_POSITION_FINDHOME;
jobuuu 230:2c3e5ecbe7e1 222
Lightvalve 11:82d8768d7351 223 extern int16_t REF_PWM;
Lightvalve 11:82d8768d7351 224 extern int16_t REF_VALVE_POSITION;
Lightvalve 14:8e7590227d22 225 extern int16_t REF_CURRENT;
Lightvalve 11:82d8768d7351 226
Lightvalve 11:82d8768d7351 227 extern int REF_MOVE_TIME_5k;
Lightvalve 11:82d8768d7351 228 extern int INIT_REF_PWM;
Lightvalve 11:82d8768d7351 229 extern int INIT_REF_VALVE_POS;
Lightvalve 11:82d8768d7351 230 extern int INIT_REF_VEL;
Lightvalve 11:82d8768d7351 231 extern int INIT_REF_TORQUE;
Lightvalve 11:82d8768d7351 232 extern int INIT_REF_PRES_DIFF;
Lightvalve 14:8e7590227d22 233 extern int INIT_REF_CURRENT;
Lightvalve 11:82d8768d7351 234
Lightvalve 11:82d8768d7351 235 extern unsigned int TMR2_COUNT_LED1;
Lightvalve 11:82d8768d7351 236 extern unsigned int TMR2_COUNT_LED2;
Lightvalve 11:82d8768d7351 237 extern unsigned int TMR2_COUNT_CAN_TX;
Lightvalve 54:647072f5307a 238 extern unsigned int TMR3_COUNT_TEST;
Lightvalve 11:82d8768d7351 239
Lightvalve 11:82d8768d7351 240 extern int num_err;
Lightvalve 11:82d8768d7351 241 extern int flag_err[8];
Lightvalve 11:82d8768d7351 242 extern int flag_err_old[8];
Lightvalve 11:82d8768d7351 243 extern int flag_err_rt;
Lightvalve 11:82d8768d7351 244
Lightvalve 11:82d8768d7351 245 extern int flag_ref_enable;
Lightvalve 11:82d8768d7351 246
Lightvalve 11:82d8768d7351 247 extern int flag_data_request[5];
Lightvalve 11:82d8768d7351 248
Lightvalve 45:35fa6884d0c6 249 extern int MODE_POS_FT_TRANS;
Lightvalve 66:a8e6799dbce3 250 extern int NN_Control_Flag;
Lightvalve 45:35fa6884d0c6 251
Lightvalve 169:645207e160ca 252 extern int cnt_buffer;
Lightvalve 169:645207e160ca 253
Lightvalve 57:f4819de54e7a 254 extern float CUR_CURRENT_mA;
Lightvalve 30:8d561f16383b 255 extern float CUR_TORQUE_NM;
Lightvalve 30:8d561f16383b 256 extern float CUR_TORQUE_NM_PRESS;
Lightvalve 11:82d8768d7351 257
jobuuu 230:2c3e5ecbe7e1 258 extern float FORCE_VREF;
Lightvalve 30:8d561f16383b 259 extern float PRES_A_VREF;
Lightvalve 30:8d561f16383b 260 extern float PRES_B_VREF;
Lightvalve 11:82d8768d7351 261
Lightvalve 30:8d561f16383b 262 extern float VALVE_PWM_RAW_FB;
Lightvalve 30:8d561f16383b 263 extern float VALVE_PWM_RAW_FF;
Lightvalve 57:f4819de54e7a 264 extern float VALVE_PWM_RAW;
Lightvalve 11:82d8768d7351 265 extern int VALVE_PWM_VALVE_DZ;
Lightvalve 11:82d8768d7351 266
Lightvalve 30:8d561f16383b 267 extern float VALVE_GAIN_LPM_PER_V[10];
Lightvalve 30:8d561f16383b 268 extern float VALVE_POS_VS_PWM[25];
Lightvalve 11:82d8768d7351 269 extern long JOINT_VEL[100];
Lightvalve 11:82d8768d7351 270
Lightvalve 11:82d8768d7351 271 extern int VALVE_MAX_POS;
Lightvalve 11:82d8768d7351 272 extern int VALVE_MIN_POS;
Lightvalve 237:c2cfe349f5c1 273 extern int VALVE_ELECTRIC_CENTER;
Lightvalve 11:82d8768d7351 274 extern int VALVE_POS_NUM;
Lightvalve 32:4b8c0fedaf2c 275 extern float VALVE_CENTER_OFFSET;
Lightvalve 33:91b17819ec30 276 extern float VALVE_DZ_MINUS_OFFSET;
Lightvalve 33:91b17819ec30 277 extern float VALVE_DZ_PLUS_OFFSET;
Lightvalve 11:82d8768d7351 278
Lightvalve 14:8e7590227d22 279 extern int TMR3_COUNT_FINDHOME;
Lightvalve 14:8e7590227d22 280 extern int TMR3_COUNT_FLOWRATE;
Lightvalve 14:8e7590227d22 281 extern int TMR3_COUNT_DEADZONE;
Lightvalve 14:8e7590227d22 282 extern int TMR3_COUNT_PRES_NULL;
Lightvalve 14:8e7590227d22 283 extern int TMR3_COUNT_TORQUE_NULL;
Lightvalve 14:8e7590227d22 284 extern int TMR3_COUNT_PRES_CALIB;
Lightvalve 14:8e7590227d22 285 extern int TMR3_COUNT_REFERENCE;
Lightvalve 14:8e7590227d22 286 extern int TMR3_COUNT_JOINT;
Lightvalve 14:8e7590227d22 287 extern int TMR3_COUNT_ROTARY_FRIC_TUNE;
Lightvalve 11:82d8768d7351 288
Lightvalve 30:8d561f16383b 289 extern float TUNING_TIME;
Lightvalve 11:82d8768d7351 290
Lightvalve 30:8d561f16383b 291 extern float REFERENCE_FREQ;
Lightvalve 30:8d561f16383b 292 extern float REFERENCE_MAG;
Lightvalve 11:82d8768d7351 293
Lightvalve 11:82d8768d7351 294 extern bool FLAG_FIND_HOME;
Lightvalve 11:82d8768d7351 295
Lightvalve 11:82d8768d7351 296 extern int MODE_JUMP_STATUS;
Lightvalve 11:82d8768d7351 297
Lightvalve 30:8d561f16383b 298 extern float CUR_PRES_DIFF_BAR;
Lightvalve 30:8d561f16383b 299 extern float CUR_PRES_A_sum;
Lightvalve 30:8d561f16383b 300 extern float CUR_PRES_B_sum;
Lightvalve 30:8d561f16383b 301 extern float CUR_PRES_A_mean;
Lightvalve 30:8d561f16383b 302 extern float CUR_PRES_B_mean;
jobuuu 230:2c3e5ecbe7e1 303 extern float PRES_A_NULL_pulse;
jobuuu 230:2c3e5ecbe7e1 304 extern float PRES_B_NULL_pulse;
jobuuu 230:2c3e5ecbe7e1 305 extern float FORCE_NULL_pulse;
Lightvalve 13:747daba9cf59 306
Lightvalve 30:8d561f16383b 307 extern float Ref_Valve_Pos_Old;
Lightvalve 13:747daba9cf59 308
Lightvalve 13:747daba9cf59 309 extern int VALVE_ID_timer;
Lightvalve 13:747daba9cf59 310 extern int VALVE_DZ_timer;
Lightvalve 13:747daba9cf59 311 extern int VALVE_FR_timer;
Lightvalve 35:34ce7b0347b8 312 extern int VALVE_HPL_timer;
Lightvalve 13:747daba9cf59 313 extern int VALVE_POS_TMP;
Lightvalve 13:747daba9cf59 314 extern int JOINT_VEL_TMP;
Lightvalve 13:747daba9cf59 315 extern int DDV_POS_AVG ;
Lightvalve 19:23b7c1ad8683 316 extern int VALVE_POS_AVG[50];
Lightvalve 13:747daba9cf59 317 extern int VALVE_POS_AVG_OLD;
Lightvalve 13:747daba9cf59 318 extern int data_num;
Lightvalve 13:747daba9cf59 319 extern int ID_index;
Lightvalve 13:747daba9cf59 320 extern int DZ_index;
Lightvalve 19:23b7c1ad8683 321 extern int ID_index_array[50];
Lightvalve 13:747daba9cf59 322 extern int first_check;
Lightvalve 30:8d561f16383b 323 extern float init_time;
Lightvalve 13:747daba9cf59 324 extern int DZ_case;
Lightvalve 13:747daba9cf59 325 extern int START_POS;
Lightvalve 13:747daba9cf59 326 extern int FINAL_POS;
Lightvalve 13:747daba9cf59 327 extern int DZ_DIRECTION;
Lightvalve 13:747daba9cf59 328 extern int FIRST_DZ;
Lightvalve 13:747daba9cf59 329 extern int SECOND_DZ;
Lightvalve 13:747daba9cf59 330 extern int DZ_NUM;
Lightvalve 13:747daba9cf59 331 extern int one_period_end;
Lightvalve 30:8d561f16383b 332 extern float Ref_Vel_Test;
Lightvalve 19:23b7c1ad8683 333 //extern int velcount;
Lightvalve 13:747daba9cf59 334 extern char max_check;
Lightvalve 13:747daba9cf59 335 extern char min_check;
Lightvalve 13:747daba9cf59 336
Lightvalve 30:8d561f16383b 337 extern float valve_pos_err, valve_pos_err_old, valve_pos_err_diff, valve_pos_err_sum;
Lightvalve 30:8d561f16383b 338 extern float joint_pos_err, joint_pos_err_old, joint_pos_err_diff, joint_pos_err_diff_fil, joint_pos_err_sum;
Lightvalve 30:8d561f16383b 339 extern float joint_torq_err, joint_torq_err_old, joint_torq_err_diff, joint_torq_err_sum;
Lightvalve 30:8d561f16383b 340 extern float VALVE_PWM_RAW_POS, VALVE_PWM_RAW_TORQ;
Lightvalve 239:8ac5c6162bc1 341 extern float force_ref_filter;
Lightvalve 13:747daba9cf59 342
Lightvalve 30:8d561f16383b 343 extern float CUR_FLOWRATE;
Lightvalve 30:8d561f16383b 344 extern float VALVE_FF_VOLTAGE;
Lightvalve 13:747daba9cf59 345
Lightvalve 13:747daba9cf59 346 extern int pos_plus_end;
Lightvalve 13:747daba9cf59 347 extern int pos_minus_end;
Lightvalve 13:747daba9cf59 348
Lightvalve 13:747daba9cf59 349 extern bool need_enc_init;
Lightvalve 13:747daba9cf59 350
Lightvalve 13:747daba9cf59 351 extern int temp_time;
Lightvalve 13:747daba9cf59 352
Lightvalve 30:8d561f16383b 353 extern float CUR_VELOCITY_sum;
Lightvalve 30:8d561f16383b 354 extern float temp_vel_sum;
Lightvalve 13:747daba9cf59 355
Lightvalve 13:747daba9cf59 356 extern int DZ_dir;
Lightvalve 13:747daba9cf59 357 extern int DZ_temp_cnt;
Lightvalve 13:747daba9cf59 358 extern int DZ_temp_cnt2;
Lightvalve 13:747daba9cf59 359 extern int DZ_end;
Lightvalve 13:747daba9cf59 360 extern int flag_flowrate;
Lightvalve 13:747daba9cf59 361 extern int fl_temp_cnt;
Lightvalve 13:747daba9cf59 362 extern int fl_temp_cnt2;
Lightvalve 13:747daba9cf59 363 extern int cur_vel_sum;
Lightvalve 13:747daba9cf59 364
hyhoon 227:699c3e572283 365 extern int cnt_finddz;
hyhoon 227:699c3e572283 366 extern int cnt_vel_finddz;
hyhoon 227:699c3e572283 367 extern int flag_finddz;
hyhoon 227:699c3e572283 368 extern int FINDDZ_VELOCITY;
hyhoon 227:699c3e572283 369 extern int FINDDZ_VELOCITY_OLD;
hyhoon 227:699c3e572283 370 extern int FINDDZ_POSITION;
hyhoon 227:699c3e572283 371 extern int FINDDZ_POSITION_OLD;
hyhoon 227:699c3e572283 372
hyhoon 227:699c3e572283 373 extern double temp_VALVE_DEADZONE_PLUS;
hyhoon 227:699c3e572283 374 extern double temp_VALVE_DEADZONE_MINUS;
hyhoon 227:699c3e572283 375 extern float temp_pos_ref;
hyhoon 227:699c3e572283 376 extern float temp_pos_ref_offset;
hyhoon 227:699c3e572283 377
Lightvalve 13:747daba9cf59 378 // valve gain
Lightvalve 13:747daba9cf59 379 extern int check_vel_pos_init;
Lightvalve 13:747daba9cf59 380 extern int check_vel_pos_fin;
Lightvalve 13:747daba9cf59 381 extern int check_vel_pos_interv;
Lightvalve 13:747daba9cf59 382 extern int valve_gain_repeat_cnt;
Lightvalve 30:8d561f16383b 383 extern float VALVE_VOLTAGE;
Lightvalve 13:747daba9cf59 384
Lightvalve 30:8d561f16383b 385 extern float freq_fric_tune;
Lightvalve 13:747daba9cf59 386
Lightvalve 14:8e7590227d22 387 extern uint32_t TMR3_COUNT_CAN_TX;
Lightvalve 14:8e7590227d22 388
Lightvalve 57:f4819de54e7a 389 // Current Control Variables
Lightvalve 57:f4819de54e7a 390 extern double I_REF;
Lightvalve 57:f4819de54e7a 391 extern double I_REF_fil;
hyhoon 226:82a3ca333004 392 extern double I_REF_fil_DZ;
Lightvalve 57:f4819de54e7a 393 extern double I_ERR;
Lightvalve 57:f4819de54e7a 394 extern double I_ERR_INT;
Lightvalve 57:f4819de54e7a 395 extern double I_REF_fil_old;
Lightvalve 57:f4819de54e7a 396 extern double I_REF_fil_diff;
Lightvalve 57:f4819de54e7a 397
Lightvalve 57:f4819de54e7a 398 // system id
Lightvalve 57:f4819de54e7a 399 extern int cnt_sysid;
Lightvalve 57:f4819de54e7a 400 extern double freq_sysid_Iref;
Lightvalve 57:f4819de54e7a 401
Lightvalve 169:645207e160ca 402 extern int cnt_freq_test;
Lightvalve 169:645207e160ca 403 extern int cnt_step_test;
Lightvalve 169:645207e160ca 404 extern int buffer_data_size;
Lightvalve 169:645207e160ca 405 extern int cnt_send_buffer;
Lightvalve 169:645207e160ca 406 extern float freq_test_valve_ref;
Lightvalve 169:645207e160ca 407 extern float ref_array[10000];
Lightvalve 169:645207e160ca 408 extern int pos_array[10000];
Lightvalve 192:637092202815 409 extern int flag_every_reference;
Lightvalve 169:645207e160ca 410
Lightvalve 14:8e7590227d22 411 extern int TMR3_COUNT_IREF;
Lightvalve 30:8d561f16383b 412 extern float CUR_CURRENT;
Lightvalve 30:8d561f16383b 413 extern float u_CUR[3];
Lightvalve 19:23b7c1ad8683 414
Lightvalve 29:69f3f5445d6d 415 extern int FINDHOME_STAGE;
Lightvalve 29:69f3f5445d6d 416 extern int FINDHOME_INIT;
Lightvalve 29:69f3f5445d6d 417 extern int FINDHOME_GOTOLIMIT;
Lightvalve 29:69f3f5445d6d 418 extern int FINDHOME_ZEROPOSE;
Lightvalve 29:69f3f5445d6d 419
hyhoon 227:699c3e572283 420 extern int FINDDZ_STAGE;
hyhoon 227:699c3e572283 421 extern int FINDDZ_INIT;
hyhoon 227:699c3e572283 422 extern int FINDDZ_START1;
hyhoon 227:699c3e572283 423 extern int FINDDZ_START2;
hyhoon 227:699c3e572283 424 extern int FINDDZ_STOP;
hyhoon 227:699c3e572283 425
Lightvalve 45:35fa6884d0c6 426 extern float alpha_trans;
Lightvalve 45:35fa6884d0c6 427
Lightvalve 57:f4819de54e7a 428
Lightvalve 57:f4819de54e7a 429 extern float V_out;
Lightvalve 57:f4819de54e7a 430 extern float V_rem;
Lightvalve 57:f4819de54e7a 431 extern float V_MAX;
Lightvalve 57:f4819de54e7a 432
Lightvalve 57:f4819de54e7a 433 extern float PWM_out;
Lightvalve 57:f4819de54e7a 434
Lightvalve 57:f4819de54e7a 435 extern double K_v;
jobuuu 230:2c3e5ecbe7e1 436 extern double C_d;
Lightvalve 57:f4819de54e7a 437 extern double mV_PER_mA;
Lightvalve 57:f4819de54e7a 438 extern double mV_PER_pulse;
Lightvalve 57:f4819de54e7a 439 extern double mA_PER_pulse;
Lightvalve 57:f4819de54e7a 440
Lightvalve 57:f4819de54e7a 441 extern int timer_while;
Lightvalve 57:f4819de54e7a 442 extern int while_index;
Lightvalve 170:42c938a40313 443 extern int RL_timer;
Lightvalve 23:59218d4a256d 444
Lightvalve 67:c2812cf26c38 445 extern float K_LPF;
Lightvalve 67:c2812cf26c38 446 extern float D_LPF;
Lightvalve 67:c2812cf26c38 447
Lightvalve 224:985dba42f261 448 extern float torq_sen_past;
Lightvalve 207:c70c5a9f17dd 449 extern float torq_ref_past;
Lightvalve 99:7bbcb3c0fb06 450 extern float output_normalized;
Lightvalve 72:3436ce769b1e 451
Lightvalve 66:a8e6799dbce3 452
Lightvalve 32:4b8c0fedaf2c 453
Lightvalve 35:34ce7b0347b8 454
Lightvalve 36:a46e63505ed8 455
Lightvalve 45:35fa6884d0c6 456
Lightvalve 45:35fa6884d0c6 457
Lightvalve 48:889798ff9329 458
Lightvalve 49:e7bcfc244d40 459
Lightvalve 50:3c630b5eba9f 460
Lightvalve 52:8ea76864368a 461
Lightvalve 54:647072f5307a 462