rainbow

Dependencies:   mbed FastPWM

Committer:
Lightvalve
Date:
Thu Mar 31 02:39:48 2022 +0000
Revision:
257:c93d3eabff75
Parent:
239:8ac5c6162bc1
LVDT

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