Kim GiJeong
/
try8_spi_EEPROM_test
main.cpp@0:7c814979a859, 2020-07-17 (annotated)
- Committer:
- GiJeongKim
- Date:
- Fri Jul 17 05:34:38 2020 +0000
- Revision:
- 0:7c814979a859
EEPROM test;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
GiJeongKim | 0:7c814979a859 | 1 | #include "mbed.h" |
GiJeongKim | 0:7c814979a859 | 2 | // For EEPROM, 최대 16byte 씩 쓸 수 있음 |
GiJeongKim | 0:7c814979a859 | 3 | // M95128-WMN6P |
GiJeongKim | 0:7c814979a859 | 4 | |
GiJeongKim | 0:7c814979a859 | 5 | // Board Information |
GiJeongKim | 0:7c814979a859 | 6 | uint8_t BNO = 0; |
GiJeongKim | 0:7c814979a859 | 7 | uint8_t CONTROL_MODE = 0; |
GiJeongKim | 0:7c814979a859 | 8 | uint8_t OPERATING_MODE = 0; // (00 : Moog & Rot, 01 : Moog & Lin, 10 : KNR & Rot, 11 : KNR & Lin, 101 : SW & Lin) |
GiJeongKim | 0:7c814979a859 | 9 | uint8_t SENSING_MODE = 0; // (0 : torque, 1: pressure) |
GiJeongKim | 0:7c814979a859 | 10 | uint8_t CONTROL_UTILITY_MODE = 0; |
GiJeongKim | 0:7c814979a859 | 11 | uint8_t CURRENT_CONTROL_MODE = 0; // (0 : pwm, 1 : current control) |
GiJeongKim | 0:7c814979a859 | 12 | uint8_t FLAG_VALVE_DEADZONE = 0; |
GiJeongKim | 0:7c814979a859 | 13 | uint8_t REFERENCE_MODE = 0; |
GiJeongKim | 0:7c814979a859 | 14 | int16_t CAN_FREQ = 500; |
GiJeongKim | 0:7c814979a859 | 15 | int16_t DIR_JOINT_ENC = 0; |
GiJeongKim | 0:7c814979a859 | 16 | int16_t DIR_VALVE = 0; |
GiJeongKim | 0:7c814979a859 | 17 | int16_t DIR_VALVE_ENC = 0; |
GiJeongKim | 0:7c814979a859 | 18 | |
GiJeongKim | 0:7c814979a859 | 19 | float SUPPLY_VOLTAGE = 12.0f; |
GiJeongKim | 0:7c814979a859 | 20 | float VALVE_VOLTAGE_LIMIT = 12.0f; //v |
GiJeongKim | 0:7c814979a859 | 21 | |
GiJeongKim | 0:7c814979a859 | 22 | float P_GAIN_VALVE_POSITION = 0.0f; |
GiJeongKim | 0:7c814979a859 | 23 | float I_GAIN_VALVE_POSITION= 0.0f; |
GiJeongKim | 0:7c814979a859 | 24 | float D_GAIN_VALVE_POSITION= 0.0f; |
GiJeongKim | 0:7c814979a859 | 25 | float P_GAIN_JOINT_POSITION = 0.0f; |
GiJeongKim | 0:7c814979a859 | 26 | float I_GAIN_JOINT_POSITION = 0.0f; |
GiJeongKim | 0:7c814979a859 | 27 | float D_GAIN_JOINT_POSITION = 0.0f; |
GiJeongKim | 0:7c814979a859 | 28 | float P_GAIN_JOINT_TORQUE = 0.0f; |
GiJeongKim | 0:7c814979a859 | 29 | float I_GAIN_JOINT_TORQUE = 0.0; |
GiJeongKim | 0:7c814979a859 | 30 | float D_GAIN_JOINT_TORQUE = 0.0; |
GiJeongKim | 0:7c814979a859 | 31 | |
GiJeongKim | 0:7c814979a859 | 32 | int16_t K_SPRING = 0.0; |
GiJeongKim | 0:7c814979a859 | 33 | int16_t D_DAMPER = 12.0; |
GiJeongKim | 0:7c814979a859 | 34 | int16_t flag_delay_test = 0; |
GiJeongKim | 0:7c814979a859 | 35 | |
GiJeongKim | 0:7c814979a859 | 36 | //float P_GAIN_VALVE_POSITION_OPP = 0.0f; |
GiJeongKim | 0:7c814979a859 | 37 | //float I_GAIN_VALVE_POSITION_OPP= 0.0f; |
GiJeongKim | 0:7c814979a859 | 38 | //float D_GAIN_VALVE_POSITION_OPP= 0.0f; |
GiJeongKim | 0:7c814979a859 | 39 | //float P_GAIN_JOINT_POSITION_OPP = 0.0f; |
GiJeongKim | 0:7c814979a859 | 40 | //float I_GAIN_JOINT_POSITION_OPP = 0.0f; |
GiJeongKim | 0:7c814979a859 | 41 | //float D_GAIN_JOINT_POSITION_OPP = 0.0f; |
GiJeongKim | 0:7c814979a859 | 42 | //float P_GAIN_JOINT_TORQUE_OPP = 0.0f; |
GiJeongKim | 0:7c814979a859 | 43 | //float I_GAIN_JOINT_TORQUE_OPP = 0.0; |
GiJeongKim | 0:7c814979a859 | 44 | //float D_GAIN_JOINT_TORQUE_OPP = 0.0; |
GiJeongKim | 0:7c814979a859 | 45 | |
GiJeongKim | 0:7c814979a859 | 46 | float VALVE_DEADZONE_PLUS; |
GiJeongKim | 0:7c814979a859 | 47 | float VALVE_DEADZONE_MINUS; |
GiJeongKim | 0:7c814979a859 | 48 | |
GiJeongKim | 0:7c814979a859 | 49 | int16_t VELOCITY_COMP_GAIN; |
GiJeongKim | 0:7c814979a859 | 50 | int16_t COMPLIANCE_GAIN; |
GiJeongKim | 0:7c814979a859 | 51 | |
GiJeongKim | 0:7c814979a859 | 52 | int16_t VALVE_CENTER; |
GiJeongKim | 0:7c814979a859 | 53 | |
GiJeongKim | 0:7c814979a859 | 54 | int16_t VALVE_FF; |
GiJeongKim | 0:7c814979a859 | 55 | |
GiJeongKim | 0:7c814979a859 | 56 | int16_t BULK_MODULUS; |
GiJeongKim | 0:7c814979a859 | 57 | |
GiJeongKim | 0:7c814979a859 | 58 | int16_t CHAMBER_VOLUME_A; |
GiJeongKim | 0:7c814979a859 | 59 | int16_t CHAMBER_VOLUME_B; |
GiJeongKim | 0:7c814979a859 | 60 | |
GiJeongKim | 0:7c814979a859 | 61 | int16_t PISTON_AREA_A; |
GiJeongKim | 0:7c814979a859 | 62 | int16_t PISTON_AREA_B; |
GiJeongKim | 0:7c814979a859 | 63 | float PISTON_AREA_alpha; |
GiJeongKim | 0:7c814979a859 | 64 | float alpha3 = 1.0f; |
GiJeongKim | 0:7c814979a859 | 65 | |
GiJeongKim | 0:7c814979a859 | 66 | |
GiJeongKim | 0:7c814979a859 | 67 | int16_t PRES_SUPPLY; |
GiJeongKim | 0:7c814979a859 | 68 | int16_t PRES_RETURN; |
GiJeongKim | 0:7c814979a859 | 69 | |
GiJeongKim | 0:7c814979a859 | 70 | int16_t ENC_LIMIT_PLUS; |
GiJeongKim | 0:7c814979a859 | 71 | int16_t ENC_LIMIT_MINUS; |
GiJeongKim | 0:7c814979a859 | 72 | |
GiJeongKim | 0:7c814979a859 | 73 | int16_t STROKE; |
GiJeongKim | 0:7c814979a859 | 74 | |
GiJeongKim | 0:7c814979a859 | 75 | |
GiJeongKim | 0:7c814979a859 | 76 | //int16_t VALVE_LIMIT_PLUS; |
GiJeongKim | 0:7c814979a859 | 77 | //int16_t VALVE_LIMIT_MINUS; |
GiJeongKim | 0:7c814979a859 | 78 | |
GiJeongKim | 0:7c814979a859 | 79 | float ENC_PULSE_PER_POSITION; |
GiJeongKim | 0:7c814979a859 | 80 | float TORQUE_SENSOR_PULSE_PER_TORQUE; |
GiJeongKim | 0:7c814979a859 | 81 | float PRES_SENSOR_A_PULSE_PER_BAR = 4096.0f / 200.0f; |
GiJeongKim | 0:7c814979a859 | 82 | float PRES_SENSOR_B_PULSE_PER_BAR = 4096.0f / 200.0f; |
GiJeongKim | 0:7c814979a859 | 83 | |
GiJeongKim | 0:7c814979a859 | 84 | int HOMEPOS_OFFSET; |
GiJeongKim | 0:7c814979a859 | 85 | int HOMEPOS_VALVE_OPENING; |
GiJeongKim | 0:7c814979a859 | 86 | |
GiJeongKim | 0:7c814979a859 | 87 | float FRICTION; |
GiJeongKim | 0:7c814979a859 | 88 | float REF_PERIOD; |
GiJeongKim | 0:7c814979a859 | 89 | float REF_MAG; |
GiJeongKim | 0:7c814979a859 | 90 | int REF_NUM; |
GiJeongKim | 0:7c814979a859 | 91 | |
GiJeongKim | 0:7c814979a859 | 92 | |
GiJeongKim | 0:7c814979a859 | 93 | float DAC_REF; |
GiJeongKim | 0:7c814979a859 | 94 | float DAC_RESOL; |
GiJeongKim | 0:7c814979a859 | 95 | |
GiJeongKim | 0:7c814979a859 | 96 | int REF_POSITION; |
GiJeongKim | 0:7c814979a859 | 97 | int REF_VELOCITY; |
GiJeongKim | 0:7c814979a859 | 98 | int16_t REF_TORQUE; |
GiJeongKim | 0:7c814979a859 | 99 | int16_t REF_PRES_DIFF; |
GiJeongKim | 0:7c814979a859 | 100 | int16_t REF_PWM; |
GiJeongKim | 0:7c814979a859 | 101 | int16_t REF_VALVE_POSITION; |
GiJeongKim | 0:7c814979a859 | 102 | int16_t REF_CURRENT; |
GiJeongKim | 0:7c814979a859 | 103 | |
GiJeongKim | 0:7c814979a859 | 104 | int REF_MOVE_TIME_5k; |
GiJeongKim | 0:7c814979a859 | 105 | int INIT_REF_PWM; |
GiJeongKim | 0:7c814979a859 | 106 | int INIT_REF_VALVE_POS; |
GiJeongKim | 0:7c814979a859 | 107 | int INIT_REF_POS; |
GiJeongKim | 0:7c814979a859 | 108 | int INIT_REF_VEL; |
GiJeongKim | 0:7c814979a859 | 109 | int INIT_REF_TORQUE; |
GiJeongKim | 0:7c814979a859 | 110 | int INIT_REF_PRES_DIFF; |
GiJeongKim | 0:7c814979a859 | 111 | int INIT_REF_CURRENT; |
GiJeongKim | 0:7c814979a859 | 112 | |
GiJeongKim | 0:7c814979a859 | 113 | int CUR_POSITION; |
GiJeongKim | 0:7c814979a859 | 114 | int CUR_VELOCITY; |
GiJeongKim | 0:7c814979a859 | 115 | float CUR_TORQUE; |
GiJeongKim | 0:7c814979a859 | 116 | float CUR_PRES_A; |
GiJeongKim | 0:7c814979a859 | 117 | float CUR_PRES_B; |
GiJeongKim | 0:7c814979a859 | 118 | int CUR_VALVE_POSITION; |
GiJeongKim | 0:7c814979a859 | 119 | |
GiJeongKim | 0:7c814979a859 | 120 | unsigned int TMR2_COUNT_LED1; |
GiJeongKim | 0:7c814979a859 | 121 | unsigned int TMR2_COUNT_LED2; |
GiJeongKim | 0:7c814979a859 | 122 | unsigned int TMR2_COUNT_CAN_TX = 0; |
GiJeongKim | 0:7c814979a859 | 123 | unsigned int TMR3_COUNT_TEST = 0; |
GiJeongKim | 0:7c814979a859 | 124 | |
GiJeongKim | 0:7c814979a859 | 125 | int num_err; |
GiJeongKim | 0:7c814979a859 | 126 | int flag_err[8]; |
GiJeongKim | 0:7c814979a859 | 127 | int flag_err_old[8]; |
GiJeongKim | 0:7c814979a859 | 128 | int flag_err_rt; |
GiJeongKim | 0:7c814979a859 | 129 | |
GiJeongKim | 0:7c814979a859 | 130 | int flag_ref_enable; |
GiJeongKim | 0:7c814979a859 | 131 | |
GiJeongKim | 0:7c814979a859 | 132 | int flag_data_request[5]; |
GiJeongKim | 0:7c814979a859 | 133 | |
GiJeongKim | 0:7c814979a859 | 134 | int MODE_POS_FT_TRANS = 0; |
GiJeongKim | 0:7c814979a859 | 135 | |
GiJeongKim | 0:7c814979a859 | 136 | float CUR_CURRENT_mA = 0.0f; |
GiJeongKim | 0:7c814979a859 | 137 | float CUR_PRES_A_BAR = 0.0f; |
GiJeongKim | 0:7c814979a859 | 138 | float CUR_PRES_B_BAR = 0.0f; |
GiJeongKim | 0:7c814979a859 | 139 | float CUR_TORQUE_NM = 0.0f; |
GiJeongKim | 0:7c814979a859 | 140 | float CUR_TORQUE_NM_PRESS = 0.0f; |
GiJeongKim | 0:7c814979a859 | 141 | |
GiJeongKim | 0:7c814979a859 | 142 | float PRES_A_VREF = 0.0f; |
GiJeongKim | 0:7c814979a859 | 143 | float PRES_B_VREF = 0.0f; |
GiJeongKim | 0:7c814979a859 | 144 | float TORQUE_VREF = 0.0f; |
GiJeongKim | 0:7c814979a859 | 145 | |
GiJeongKim | 0:7c814979a859 | 146 | float VALVE_PWM_RAW_FB = 0.0f; |
GiJeongKim | 0:7c814979a859 | 147 | float VALVE_PWM_RAW_FF = 0.0f; |
GiJeongKim | 0:7c814979a859 | 148 | float VALVE_PWM_RAW = 0.0f; |
GiJeongKim | 0:7c814979a859 | 149 | int VALVE_PWM_VALVE_DZ = 0; |
GiJeongKim | 0:7c814979a859 | 150 | |
GiJeongKim | 0:7c814979a859 | 151 | float VALVE_GAIN_LPM_PER_V[10]; |
GiJeongKim | 0:7c814979a859 | 152 | float VALVE_POS_VS_PWM[25]; |
GiJeongKim | 0:7c814979a859 | 153 | long JOINT_VEL[100]; |
GiJeongKim | 0:7c814979a859 | 154 | |
GiJeongKim | 0:7c814979a859 | 155 | int VALVE_MAX_POS; |
GiJeongKim | 0:7c814979a859 | 156 | int VALVE_MIN_POS; |
GiJeongKim | 0:7c814979a859 | 157 | int VALVE_POS_NUM; |
GiJeongKim | 0:7c814979a859 | 158 | float VALVE_CENTER_OFFSET; |
GiJeongKim | 0:7c814979a859 | 159 | float VALVE_DZ_MINUS_OFFSET; |
GiJeongKim | 0:7c814979a859 | 160 | float VALVE_DZ_PLUS_OFFSET; |
GiJeongKim | 0:7c814979a859 | 161 | |
GiJeongKim | 0:7c814979a859 | 162 | |
GiJeongKim | 0:7c814979a859 | 163 | |
GiJeongKim | 0:7c814979a859 | 164 | //SPI device(PB_15, PB_14, PB_13); |
GiJeongKim | 0:7c814979a859 | 165 | //DigitalOut cs(PB_12); |
GiJeongKim | 0:7c814979a859 | 166 | SPI eeprom(PB_15, PB_14, PB_13); //MOSI, MISO, SCK |
GiJeongKim | 0:7c814979a859 | 167 | DigitalOut eeprom_cs(PB_12); // Chip select |
GiJeongKim | 0:7c814979a859 | 168 | //DigitalOut check(PA_10); |
GiJeongKim | 0:7c814979a859 | 169 | Serial pc(PA_9,PA_10); |
GiJeongKim | 0:7c814979a859 | 170 | int temp1, temp2; |
GiJeongKim | 0:7c814979a859 | 171 | void spi_eeprom_ready(void); |
GiJeongKim | 0:7c814979a859 | 172 | void spi_eeprom_write(unsigned int data); |
GiJeongKim | 0:7c814979a859 | 173 | void spi_eeprom_write_long(void); |
GiJeongKim | 0:7c814979a859 | 174 | void spi_eeprom_write_long_1(unsigned int add); |
GiJeongKim | 0:7c814979a859 | 175 | void spi_eeprom_write_long_2(unsigned int add); |
GiJeongKim | 0:7c814979a859 | 176 | void spi_eeprom_write_long_3(unsigned int add); |
GiJeongKim | 0:7c814979a859 | 177 | void spi_eeprom_write_long_4(unsigned int add); |
GiJeongKim | 0:7c814979a859 | 178 | void spi_eeprom_write_long_5(unsigned int add); |
GiJeongKim | 0:7c814979a859 | 179 | void spi_eeprom_write_long_6(unsigned int add); |
GiJeongKim | 0:7c814979a859 | 180 | void spi_eeprom_write_long_7(unsigned int add); |
GiJeongKim | 0:7c814979a859 | 181 | void spi_eeprom_write_long_8(unsigned int add); |
GiJeongKim | 0:7c814979a859 | 182 | void spi_eeprom_write_long_9(unsigned int add); |
GiJeongKim | 0:7c814979a859 | 183 | void spi_eeprom_write_long_10(unsigned int add); |
GiJeongKim | 0:7c814979a859 | 184 | void spi_eeprom_write_long_11(unsigned int add); |
GiJeongKim | 0:7c814979a859 | 185 | void spi_eeprom_write_long_12(unsigned int add); |
GiJeongKim | 0:7c814979a859 | 186 | void spi_eeprom_write_long_13(unsigned int add); |
GiJeongKim | 0:7c814979a859 | 187 | unsigned int spi_eeprom_read(void); |
GiJeongKim | 0:7c814979a859 | 188 | void spi_eeprom_read_long(void); |
GiJeongKim | 0:7c814979a859 | 189 | void spi_eeprom_read_long_1(unsigned int add); |
GiJeongKim | 0:7c814979a859 | 190 | void spi_eeprom_read_long_2(unsigned int add); |
GiJeongKim | 0:7c814979a859 | 191 | void spi_eeprom_read_long_3(unsigned int add); |
GiJeongKim | 0:7c814979a859 | 192 | void spi_eeprom_read_long_4(unsigned int add); |
GiJeongKim | 0:7c814979a859 | 193 | void spi_eeprom_read_long_5(unsigned int add); |
GiJeongKim | 0:7c814979a859 | 194 | void spi_eeprom_read_long_6(unsigned int add); |
GiJeongKim | 0:7c814979a859 | 195 | void spi_eeprom_read_long_7(unsigned int add); |
GiJeongKim | 0:7c814979a859 | 196 | void spi_eeprom_read_long_8(unsigned int add); |
GiJeongKim | 0:7c814979a859 | 197 | void spi_eeprom_read_long_9(unsigned int add); |
GiJeongKim | 0:7c814979a859 | 198 | void spi_eeprom_read_long_10(unsigned int add); |
GiJeongKim | 0:7c814979a859 | 199 | void spi_eeprom_read_long_11(unsigned int add); |
GiJeongKim | 0:7c814979a859 | 200 | void spi_eeprom_read_long_12(unsigned int add); |
GiJeongKim | 0:7c814979a859 | 201 | void spi_eeprom_read_long_13(unsigned int add); |
GiJeongKim | 0:7c814979a859 | 202 | int a=0x41233212; |
GiJeongKim | 0:7c814979a859 | 203 | int b=0x32222222; |
GiJeongKim | 0:7c814979a859 | 204 | int c=0x11112222; |
GiJeongKim | 0:7c814979a859 | 205 | int d=0x11111111; |
GiJeongKim | 0:7c814979a859 | 206 | int e=0x00002222; |
GiJeongKim | 0:7c814979a859 | 207 | |
GiJeongKim | 0:7c814979a859 | 208 | int main() { |
GiJeongKim | 0:7c814979a859 | 209 | eeprom.format(8,3); |
GiJeongKim | 0:7c814979a859 | 210 | eeprom.frequency(5000000); // max freq of eeprom |
GiJeongKim | 0:7c814979a859 | 211 | spi_eeprom_write_long(); |
GiJeongKim | 0:7c814979a859 | 212 | |
GiJeongKim | 0:7c814979a859 | 213 | |
GiJeongKim | 0:7c814979a859 | 214 | while(1){ |
GiJeongKim | 0:7c814979a859 | 215 | wait(3.0f); |
GiJeongKim | 0:7c814979a859 | 216 | spi_eeprom_read_long(); |
GiJeongKim | 0:7c814979a859 | 217 | pc.printf("right=%d, ans=%d\n",b,D_DAMPER); |
GiJeongKim | 0:7c814979a859 | 218 | for(int i=90; i<100; i++) { |
GiJeongKim | 0:7c814979a859 | 219 | pc.printf("%dth right=%d, ans=%d\n",i,b,JOINT_VEL[i]); |
GiJeongKim | 0:7c814979a859 | 220 | } |
GiJeongKim | 0:7c814979a859 | 221 | for(int i=0; i<15; i++) { |
GiJeongKim | 0:7c814979a859 | 222 | pc.printf("%dth right=%d, ans=%d\n",i,a,JOINT_VEL[i]); |
GiJeongKim | 0:7c814979a859 | 223 | } |
GiJeongKim | 0:7c814979a859 | 224 | wait(10.0f); |
GiJeongKim | 0:7c814979a859 | 225 | |
GiJeongKim | 0:7c814979a859 | 226 | /* |
GiJeongKim | 0:7c814979a859 | 227 | pc.printf("a right=%d, ans=%d\n",a,BNO); |
GiJeongKim | 0:7c814979a859 | 228 | pc.printf("a right=%d, ans=%f\n",a,P_GAIN_VALVE_POSITION); |
GiJeongKim | 0:7c814979a859 | 229 | pc.printf("a right=%d, ans=%f\n",a,D_GAIN_JOINT_TORQUE); |
GiJeongKim | 0:7c814979a859 | 230 | pc.printf("b right=%d, ans=%d\n",a,VALVE_FF); |
GiJeongKim | 0:7c814979a859 | 231 | */ |
GiJeongKim | 0:7c814979a859 | 232 | /* |
GiJeongKim | 0:7c814979a859 | 233 | pc.printf("c right=%d, ans=%f\n",c,VALVE_POS_VS_PWM[11]); |
GiJeongKim | 0:7c814979a859 | 234 | pc.printf("d right=%d, ans=%d\n",d,JOINT_VEL[99]); |
GiJeongKim | 0:7c814979a859 | 235 | pc.printf("e right=%d, ans=%d\n",e,D_DAMPER); |
GiJeongKim | 0:7c814979a859 | 236 | */ |
GiJeongKim | 0:7c814979a859 | 237 | } |
GiJeongKim | 0:7c814979a859 | 238 | } |
GiJeongKim | 0:7c814979a859 | 239 | |
GiJeongKim | 0:7c814979a859 | 240 | void spi_eeprom_ready(void){ |
GiJeongKim | 0:7c814979a859 | 241 | int temp1, temp2; |
GiJeongKim | 0:7c814979a859 | 242 | do{ |
GiJeongKim | 0:7c814979a859 | 243 | eeprom_cs=0; |
GiJeongKim | 0:7c814979a859 | 244 | eeprom.write(0x06); //write enable |
GiJeongKim | 0:7c814979a859 | 245 | eeprom_cs=1; |
GiJeongKim | 0:7c814979a859 | 246 | |
GiJeongKim | 0:7c814979a859 | 247 | eeprom_cs=0; |
GiJeongKim | 0:7c814979a859 | 248 | temp1 = eeprom.write(0x05); |
GiJeongKim | 0:7c814979a859 | 249 | temp2 = eeprom.write(0x00); |
GiJeongKim | 0:7c814979a859 | 250 | eeprom_cs=1; |
GiJeongKim | 0:7c814979a859 | 251 | temp2=(temp2&(0x03))!= 0x02; |
GiJeongKim | 0:7c814979a859 | 252 | } while(temp2); // before writing or reading |
GiJeongKim | 0:7c814979a859 | 253 | } |
GiJeongKim | 0:7c814979a859 | 254 | |
GiJeongKim | 0:7c814979a859 | 255 | void spi_eeprom_write(unsigned int data){ |
GiJeongKim | 0:7c814979a859 | 256 | eeprom.write(0xff&data); |
GiJeongKim | 0:7c814979a859 | 257 | eeprom.write(0xff&(data>>8)); |
GiJeongKim | 0:7c814979a859 | 258 | eeprom.write(0xff&(data>>16)); |
GiJeongKim | 0:7c814979a859 | 259 | eeprom.write(0xff&(data>>24)); |
GiJeongKim | 0:7c814979a859 | 260 | } |
GiJeongKim | 0:7c814979a859 | 261 | |
GiJeongKim | 0:7c814979a859 | 262 | void spi_eeprom_write_long(void){ |
GiJeongKim | 0:7c814979a859 | 263 | |
GiJeongKim | 0:7c814979a859 | 264 | spi_eeprom_write_long_1(0x0000); |
GiJeongKim | 0:7c814979a859 | 265 | spi_eeprom_write_long_2(0x0100); |
GiJeongKim | 0:7c814979a859 | 266 | spi_eeprom_write_long_3(0x0200); |
GiJeongKim | 0:7c814979a859 | 267 | spi_eeprom_write_long_4(0x0300); |
GiJeongKim | 0:7c814979a859 | 268 | spi_eeprom_write_long_5(0x0400); |
GiJeongKim | 0:7c814979a859 | 269 | spi_eeprom_write_long_6(0x0500); |
GiJeongKim | 0:7c814979a859 | 270 | spi_eeprom_write_long_7(0x0600); |
GiJeongKim | 0:7c814979a859 | 271 | spi_eeprom_write_long_8(0x0700); |
GiJeongKim | 0:7c814979a859 | 272 | spi_eeprom_write_long_9(0x0800); |
GiJeongKim | 0:7c814979a859 | 273 | spi_eeprom_write_long_10(0x0900); |
GiJeongKim | 0:7c814979a859 | 274 | spi_eeprom_write_long_11(0x1000); |
GiJeongKim | 0:7c814979a859 | 275 | spi_eeprom_write_long_12(0x1100); |
GiJeongKim | 0:7c814979a859 | 276 | spi_eeprom_write_long_13(0x1200); |
GiJeongKim | 0:7c814979a859 | 277 | } |
GiJeongKim | 0:7c814979a859 | 278 | |
GiJeongKim | 0:7c814979a859 | 279 | |
GiJeongKim | 0:7c814979a859 | 280 | void spi_eeprom_write_long_1(unsigned int add){ |
GiJeongKim | 0:7c814979a859 | 281 | |
GiJeongKim | 0:7c814979a859 | 282 | spi_eeprom_ready(); |
GiJeongKim | 0:7c814979a859 | 283 | eeprom_cs=0; |
GiJeongKim | 0:7c814979a859 | 284 | eeprom.write(0x02); |
GiJeongKim | 0:7c814979a859 | 285 | eeprom.write(0xff&(add>>8)); |
GiJeongKim | 0:7c814979a859 | 286 | eeprom.write(0xff&add); |
GiJeongKim | 0:7c814979a859 | 287 | |
GiJeongKim | 0:7c814979a859 | 288 | spi_eeprom_write((int) BNO); // write at address, 쓸때도 4byte씩 씀 |
GiJeongKim | 0:7c814979a859 | 289 | spi_eeprom_write((int) OPERATING_MODE); |
GiJeongKim | 0:7c814979a859 | 290 | spi_eeprom_write((int) SENSING_MODE); |
GiJeongKim | 0:7c814979a859 | 291 | spi_eeprom_write((int) CURRENT_CONTROL_MODE); |
GiJeongKim | 0:7c814979a859 | 292 | spi_eeprom_write((int) FLAG_VALVE_DEADZONE); |
GiJeongKim | 0:7c814979a859 | 293 | spi_eeprom_write((int) CAN_FREQ); |
GiJeongKim | 0:7c814979a859 | 294 | spi_eeprom_write((int) DIR_JOINT_ENC); |
GiJeongKim | 0:7c814979a859 | 295 | spi_eeprom_write((int) DIR_VALVE); |
GiJeongKim | 0:7c814979a859 | 296 | spi_eeprom_write((int) DIR_VALVE_ENC); |
GiJeongKim | 0:7c814979a859 | 297 | spi_eeprom_write((int) (SUPPLY_VOLTAGE * 10.0f)); |
GiJeongKim | 0:7c814979a859 | 298 | spi_eeprom_write((int) (VALVE_VOLTAGE_LIMIT * 10.0f)); |
GiJeongKim | 0:7c814979a859 | 299 | spi_eeprom_write((int) P_GAIN_VALVE_POSITION); |
GiJeongKim | 0:7c814979a859 | 300 | spi_eeprom_write((int) I_GAIN_VALVE_POSITION); |
GiJeongKim | 0:7c814979a859 | 301 | spi_eeprom_write((int) D_GAIN_VALVE_POSITION); |
GiJeongKim | 0:7c814979a859 | 302 | spi_eeprom_write((int) P_GAIN_JOINT_POSITION); |
GiJeongKim | 0:7c814979a859 | 303 | |
GiJeongKim | 0:7c814979a859 | 304 | eeprom_cs=1; |
GiJeongKim | 0:7c814979a859 | 305 | } |
GiJeongKim | 0:7c814979a859 | 306 | |
GiJeongKim | 0:7c814979a859 | 307 | void spi_eeprom_write_long_2(unsigned int add){ |
GiJeongKim | 0:7c814979a859 | 308 | |
GiJeongKim | 0:7c814979a859 | 309 | spi_eeprom_ready(); |
GiJeongKim | 0:7c814979a859 | 310 | eeprom_cs=0; |
GiJeongKim | 0:7c814979a859 | 311 | eeprom.write(0x02); |
GiJeongKim | 0:7c814979a859 | 312 | eeprom.write(0xff&(add>>8)); |
GiJeongKim | 0:7c814979a859 | 313 | eeprom.write(0xff&add); |
GiJeongKim | 0:7c814979a859 | 314 | |
GiJeongKim | 0:7c814979a859 | 315 | spi_eeprom_write((int) I_GAIN_JOINT_POSITION); |
GiJeongKim | 0:7c814979a859 | 316 | spi_eeprom_write((int) D_GAIN_JOINT_POSITION); |
GiJeongKim | 0:7c814979a859 | 317 | spi_eeprom_write((int) P_GAIN_JOINT_TORQUE); |
GiJeongKim | 0:7c814979a859 | 318 | spi_eeprom_write((int) I_GAIN_JOINT_TORQUE); |
GiJeongKim | 0:7c814979a859 | 319 | spi_eeprom_write((int) D_GAIN_JOINT_TORQUE); |
GiJeongKim | 0:7c814979a859 | 320 | spi_eeprom_write((int) (VALVE_DEADZONE_PLUS * 10.0f)); |
GiJeongKim | 0:7c814979a859 | 321 | spi_eeprom_write((int) (VALVE_DEADZONE_MINUS * 10.0f)); |
GiJeongKim | 0:7c814979a859 | 322 | spi_eeprom_write((int) VELOCITY_COMP_GAIN); |
GiJeongKim | 0:7c814979a859 | 323 | spi_eeprom_write((int) COMPLIANCE_GAIN); |
GiJeongKim | 0:7c814979a859 | 324 | spi_eeprom_write((int) VALVE_CENTER); |
GiJeongKim | 0:7c814979a859 | 325 | spi_eeprom_write((int) VALVE_FF); |
GiJeongKim | 0:7c814979a859 | 326 | spi_eeprom_write((int) BNO); |
GiJeongKim | 0:7c814979a859 | 327 | spi_eeprom_write((int) CHAMBER_VOLUME_A); |
GiJeongKim | 0:7c814979a859 | 328 | spi_eeprom_write((int) CHAMBER_VOLUME_B); |
GiJeongKim | 0:7c814979a859 | 329 | spi_eeprom_write((int) PISTON_AREA_A); |
GiJeongKim | 0:7c814979a859 | 330 | |
GiJeongKim | 0:7c814979a859 | 331 | eeprom_cs=1; |
GiJeongKim | 0:7c814979a859 | 332 | } |
GiJeongKim | 0:7c814979a859 | 333 | |
GiJeongKim | 0:7c814979a859 | 334 | void spi_eeprom_write_long_3(unsigned int add){ |
GiJeongKim | 0:7c814979a859 | 335 | |
GiJeongKim | 0:7c814979a859 | 336 | spi_eeprom_ready(); |
GiJeongKim | 0:7c814979a859 | 337 | eeprom_cs=0; |
GiJeongKim | 0:7c814979a859 | 338 | eeprom.write(0x02); |
GiJeongKim | 0:7c814979a859 | 339 | eeprom.write(0xff&(add>>8)); |
GiJeongKim | 0:7c814979a859 | 340 | eeprom.write(0xff&add); |
GiJeongKim | 0:7c814979a859 | 341 | |
GiJeongKim | 0:7c814979a859 | 342 | spi_eeprom_write((int) PISTON_AREA_B); |
GiJeongKim | 0:7c814979a859 | 343 | spi_eeprom_write((int) PRES_SUPPLY); |
GiJeongKim | 0:7c814979a859 | 344 | spi_eeprom_write((int) PRES_RETURN); |
GiJeongKim | 0:7c814979a859 | 345 | spi_eeprom_write((int) ENC_LIMIT_MINUS); |
GiJeongKim | 0:7c814979a859 | 346 | spi_eeprom_write((int) ENC_LIMIT_PLUS); |
GiJeongKim | 0:7c814979a859 | 347 | spi_eeprom_write((int) STROKE); |
GiJeongKim | 0:7c814979a859 | 348 | //writer.write(RID_VALVE_LIMIT_MINUS,(int) VALVE_LIMIT_MINUS); |
GiJeongKim | 0:7c814979a859 | 349 | //writer.write(RID_VALVE_LIMIT_PLUS,(int) VALVE_LIMIT_PLUS); |
GiJeongKim | 0:7c814979a859 | 350 | spi_eeprom_write((int) (ENC_PULSE_PER_POSITION*10.0f)); |
GiJeongKim | 0:7c814979a859 | 351 | spi_eeprom_write((int) (TORQUE_SENSOR_PULSE_PER_TORQUE * 10000.0f)); |
GiJeongKim | 0:7c814979a859 | 352 | spi_eeprom_write((int) (PRES_SENSOR_A_PULSE_PER_BAR * 100.0f)); |
GiJeongKim | 0:7c814979a859 | 353 | spi_eeprom_write((int) (PRES_SENSOR_B_PULSE_PER_BAR * 100.0f)); |
GiJeongKim | 0:7c814979a859 | 354 | spi_eeprom_write((int) (FRICTION * 10.0f)); |
GiJeongKim | 0:7c814979a859 | 355 | spi_eeprom_write((int) HOMEPOS_OFFSET); |
GiJeongKim | 0:7c814979a859 | 356 | spi_eeprom_write((int) HOMEPOS_VALVE_OPENING); |
GiJeongKim | 0:7c814979a859 | 357 | |
GiJeongKim | 0:7c814979a859 | 358 | eeprom_cs=1; |
GiJeongKim | 0:7c814979a859 | 359 | } |
GiJeongKim | 0:7c814979a859 | 360 | |
GiJeongKim | 0:7c814979a859 | 361 | void spi_eeprom_write_long_4(unsigned int add){ |
GiJeongKim | 0:7c814979a859 | 362 | |
GiJeongKim | 0:7c814979a859 | 363 | spi_eeprom_ready(); |
GiJeongKim | 0:7c814979a859 | 364 | eeprom_cs=0; |
GiJeongKim | 0:7c814979a859 | 365 | eeprom.write(0x02); |
GiJeongKim | 0:7c814979a859 | 366 | eeprom.write(0xff&(add>>8)); |
GiJeongKim | 0:7c814979a859 | 367 | eeprom.write(0xff&add); |
GiJeongKim | 0:7c814979a859 | 368 | |
GiJeongKim | 0:7c814979a859 | 369 | spi_eeprom_write((int) (TORQUE_VREF * 1000.0f)); |
GiJeongKim | 0:7c814979a859 | 370 | spi_eeprom_write( (int) (PRES_A_VREF * 1000.0f)); |
GiJeongKim | 0:7c814979a859 | 371 | spi_eeprom_write((int) (PRES_B_VREF * 1000.0f)); |
GiJeongKim | 0:7c814979a859 | 372 | spi_eeprom_write((int) (VALVE_GAIN_LPM_PER_V[0] * 100.0f)); |
GiJeongKim | 0:7c814979a859 | 373 | spi_eeprom_write((int) (VALVE_GAIN_LPM_PER_V[2] * 100.0f)); |
GiJeongKim | 0:7c814979a859 | 374 | spi_eeprom_write((int) (VALVE_GAIN_LPM_PER_V[4] * 100.0f)); |
GiJeongKim | 0:7c814979a859 | 375 | spi_eeprom_write((int) (VALVE_GAIN_LPM_PER_V[6] * 100.0f)); |
GiJeongKim | 0:7c814979a859 | 376 | spi_eeprom_write((int) (VALVE_GAIN_LPM_PER_V[8] * 100.0f)); |
GiJeongKim | 0:7c814979a859 | 377 | spi_eeprom_write((int) (VALVE_GAIN_LPM_PER_V[1] * 100.0f)); |
GiJeongKim | 0:7c814979a859 | 378 | spi_eeprom_write((int) (VALVE_GAIN_LPM_PER_V[3] * 100.0f)); |
GiJeongKim | 0:7c814979a859 | 379 | spi_eeprom_write((int) (VALVE_GAIN_LPM_PER_V[5] * 100.0f)); |
GiJeongKim | 0:7c814979a859 | 380 | spi_eeprom_write((int) (VALVE_GAIN_LPM_PER_V[7] * 100.0f)); |
GiJeongKim | 0:7c814979a859 | 381 | spi_eeprom_write((int) (VALVE_GAIN_LPM_PER_V[9] * 100.0f)); |
GiJeongKim | 0:7c814979a859 | 382 | |
GiJeongKim | 0:7c814979a859 | 383 | eeprom_cs=1; |
GiJeongKim | 0:7c814979a859 | 384 | } |
GiJeongKim | 0:7c814979a859 | 385 | |
GiJeongKim | 0:7c814979a859 | 386 | void spi_eeprom_write_long_5(unsigned int add){ |
GiJeongKim | 0:7c814979a859 | 387 | |
GiJeongKim | 0:7c814979a859 | 388 | spi_eeprom_ready(); |
GiJeongKim | 0:7c814979a859 | 389 | eeprom_cs=0; |
GiJeongKim | 0:7c814979a859 | 390 | eeprom.write(0x02); |
GiJeongKim | 0:7c814979a859 | 391 | eeprom.write(0xff&(add>>8)); |
GiJeongKim | 0:7c814979a859 | 392 | eeprom.write(0xff&add); |
GiJeongKim | 0:7c814979a859 | 393 | |
GiJeongKim | 0:7c814979a859 | 394 | for(int i=0; i<15; i++) { |
GiJeongKim | 0:7c814979a859 | 395 | spi_eeprom_write( (int) VALVE_POS_VS_PWM[i]); |
GiJeongKim | 0:7c814979a859 | 396 | } |
GiJeongKim | 0:7c814979a859 | 397 | |
GiJeongKim | 0:7c814979a859 | 398 | eeprom_cs=1; |
GiJeongKim | 0:7c814979a859 | 399 | } |
GiJeongKim | 0:7c814979a859 | 400 | |
GiJeongKim | 0:7c814979a859 | 401 | void spi_eeprom_write_long_6(unsigned int add){ |
GiJeongKim | 0:7c814979a859 | 402 | |
GiJeongKim | 0:7c814979a859 | 403 | spi_eeprom_ready(); |
GiJeongKim | 0:7c814979a859 | 404 | eeprom_cs=0; |
GiJeongKim | 0:7c814979a859 | 405 | eeprom.write(0x02); |
GiJeongKim | 0:7c814979a859 | 406 | eeprom.write(0xff&(add>>8)); |
GiJeongKim | 0:7c814979a859 | 407 | eeprom.write(0xff&add); |
GiJeongKim | 0:7c814979a859 | 408 | |
GiJeongKim | 0:7c814979a859 | 409 | for(int i=15; i<25; i++) { |
GiJeongKim | 0:7c814979a859 | 410 | spi_eeprom_write( (int) VALVE_POS_VS_PWM[i]); |
GiJeongKim | 0:7c814979a859 | 411 | } |
GiJeongKim | 0:7c814979a859 | 412 | |
GiJeongKim | 0:7c814979a859 | 413 | eeprom_cs=1; |
GiJeongKim | 0:7c814979a859 | 414 | } |
GiJeongKim | 0:7c814979a859 | 415 | |
GiJeongKim | 0:7c814979a859 | 416 | void spi_eeprom_write_long_7(unsigned int add){ |
GiJeongKim | 0:7c814979a859 | 417 | |
GiJeongKim | 0:7c814979a859 | 418 | spi_eeprom_ready(); |
GiJeongKim | 0:7c814979a859 | 419 | eeprom_cs=0; |
GiJeongKim | 0:7c814979a859 | 420 | eeprom.write(0x02); |
GiJeongKim | 0:7c814979a859 | 421 | eeprom.write(0xff&(add>>8)); |
GiJeongKim | 0:7c814979a859 | 422 | eeprom.write(0xff&add); |
GiJeongKim | 0:7c814979a859 | 423 | |
GiJeongKim | 0:7c814979a859 | 424 | for(int i=0; i<15; i++) { |
GiJeongKim | 0:7c814979a859 | 425 | spi_eeprom_write((int) (JOINT_VEL[i] & 0xFFFFFFFF)); |
GiJeongKim | 0:7c814979a859 | 426 | } |
GiJeongKim | 0:7c814979a859 | 427 | |
GiJeongKim | 0:7c814979a859 | 428 | eeprom_cs=1; |
GiJeongKim | 0:7c814979a859 | 429 | } |
GiJeongKim | 0:7c814979a859 | 430 | |
GiJeongKim | 0:7c814979a859 | 431 | void spi_eeprom_write_long_8(unsigned int add){ |
GiJeongKim | 0:7c814979a859 | 432 | |
GiJeongKim | 0:7c814979a859 | 433 | spi_eeprom_ready(); |
GiJeongKim | 0:7c814979a859 | 434 | eeprom_cs=0; |
GiJeongKim | 0:7c814979a859 | 435 | eeprom.write(0x02); |
GiJeongKim | 0:7c814979a859 | 436 | eeprom.write(0xff&(add>>8)); |
GiJeongKim | 0:7c814979a859 | 437 | eeprom.write(0xff&add); |
GiJeongKim | 0:7c814979a859 | 438 | |
GiJeongKim | 0:7c814979a859 | 439 | for(int i=15; i<30; i++) { |
GiJeongKim | 0:7c814979a859 | 440 | spi_eeprom_write((int) (JOINT_VEL[i] & 0xFFFFFFFF)); |
GiJeongKim | 0:7c814979a859 | 441 | } |
GiJeongKim | 0:7c814979a859 | 442 | |
GiJeongKim | 0:7c814979a859 | 443 | eeprom_cs=1; |
GiJeongKim | 0:7c814979a859 | 444 | } |
GiJeongKim | 0:7c814979a859 | 445 | void spi_eeprom_write_long_9(unsigned int add){ |
GiJeongKim | 0:7c814979a859 | 446 | |
GiJeongKim | 0:7c814979a859 | 447 | spi_eeprom_ready(); |
GiJeongKim | 0:7c814979a859 | 448 | eeprom_cs=0; |
GiJeongKim | 0:7c814979a859 | 449 | eeprom.write(0x02); |
GiJeongKim | 0:7c814979a859 | 450 | eeprom.write(0xff&(add>>8)); |
GiJeongKim | 0:7c814979a859 | 451 | eeprom.write(0xff&add); |
GiJeongKim | 0:7c814979a859 | 452 | |
GiJeongKim | 0:7c814979a859 | 453 | for(int i=30; i<45; i++) { |
GiJeongKim | 0:7c814979a859 | 454 | spi_eeprom_write((int) (JOINT_VEL[i] & 0xFFFFFFFF)); |
GiJeongKim | 0:7c814979a859 | 455 | } |
GiJeongKim | 0:7c814979a859 | 456 | |
GiJeongKim | 0:7c814979a859 | 457 | eeprom_cs=1; |
GiJeongKim | 0:7c814979a859 | 458 | } |
GiJeongKim | 0:7c814979a859 | 459 | |
GiJeongKim | 0:7c814979a859 | 460 | void spi_eeprom_write_long_10(unsigned int add){ |
GiJeongKim | 0:7c814979a859 | 461 | |
GiJeongKim | 0:7c814979a859 | 462 | spi_eeprom_ready(); |
GiJeongKim | 0:7c814979a859 | 463 | eeprom_cs=0; |
GiJeongKim | 0:7c814979a859 | 464 | eeprom.write(0x02); |
GiJeongKim | 0:7c814979a859 | 465 | eeprom.write(0xff&(add>>8)); |
GiJeongKim | 0:7c814979a859 | 466 | eeprom.write(0xff&add); |
GiJeongKim | 0:7c814979a859 | 467 | |
GiJeongKim | 0:7c814979a859 | 468 | for(int i=45; i<60; i++) { |
GiJeongKim | 0:7c814979a859 | 469 | spi_eeprom_write((int) (JOINT_VEL[i] & 0xFFFFFFFF)); |
GiJeongKim | 0:7c814979a859 | 470 | } |
GiJeongKim | 0:7c814979a859 | 471 | |
GiJeongKim | 0:7c814979a859 | 472 | eeprom_cs=1; |
GiJeongKim | 0:7c814979a859 | 473 | } |
GiJeongKim | 0:7c814979a859 | 474 | |
GiJeongKim | 0:7c814979a859 | 475 | void spi_eeprom_write_long_11(unsigned int add){ |
GiJeongKim | 0:7c814979a859 | 476 | |
GiJeongKim | 0:7c814979a859 | 477 | spi_eeprom_ready(); |
GiJeongKim | 0:7c814979a859 | 478 | eeprom_cs=0; |
GiJeongKim | 0:7c814979a859 | 479 | eeprom.write(0x02); |
GiJeongKim | 0:7c814979a859 | 480 | eeprom.write(0xff&(add>>8)); |
GiJeongKim | 0:7c814979a859 | 481 | eeprom.write(0xff&add); |
GiJeongKim | 0:7c814979a859 | 482 | |
GiJeongKim | 0:7c814979a859 | 483 | for(int i=60; i<75; i++) { |
GiJeongKim | 0:7c814979a859 | 484 | spi_eeprom_write((int) (JOINT_VEL[i] & 0xFFFFFFFF)); |
GiJeongKim | 0:7c814979a859 | 485 | } |
GiJeongKim | 0:7c814979a859 | 486 | |
GiJeongKim | 0:7c814979a859 | 487 | eeprom_cs=1; |
GiJeongKim | 0:7c814979a859 | 488 | } |
GiJeongKim | 0:7c814979a859 | 489 | |
GiJeongKim | 0:7c814979a859 | 490 | void spi_eeprom_write_long_12(unsigned int add){ |
GiJeongKim | 0:7c814979a859 | 491 | |
GiJeongKim | 0:7c814979a859 | 492 | spi_eeprom_ready(); |
GiJeongKim | 0:7c814979a859 | 493 | eeprom_cs=0; |
GiJeongKim | 0:7c814979a859 | 494 | eeprom.write(0x02); |
GiJeongKim | 0:7c814979a859 | 495 | eeprom.write(0xff&(add>>8)); |
GiJeongKim | 0:7c814979a859 | 496 | eeprom.write(0xff&add); |
GiJeongKim | 0:7c814979a859 | 497 | |
GiJeongKim | 0:7c814979a859 | 498 | for(int i=75; i<90; i++) { |
GiJeongKim | 0:7c814979a859 | 499 | spi_eeprom_write((int) (JOINT_VEL[i] & 0xFFFFFFFF)); |
GiJeongKim | 0:7c814979a859 | 500 | } |
GiJeongKim | 0:7c814979a859 | 501 | |
GiJeongKim | 0:7c814979a859 | 502 | eeprom_cs=1; |
GiJeongKim | 0:7c814979a859 | 503 | } |
GiJeongKim | 0:7c814979a859 | 504 | |
GiJeongKim | 0:7c814979a859 | 505 | void spi_eeprom_write_long_13(unsigned int add){ |
GiJeongKim | 0:7c814979a859 | 506 | |
GiJeongKim | 0:7c814979a859 | 507 | spi_eeprom_ready(); |
GiJeongKim | 0:7c814979a859 | 508 | eeprom_cs=0; |
GiJeongKim | 0:7c814979a859 | 509 | eeprom.write(0x02); |
GiJeongKim | 0:7c814979a859 | 510 | eeprom.write(0xff&(add>>8)); |
GiJeongKim | 0:7c814979a859 | 511 | eeprom.write(0xff&add); |
GiJeongKim | 0:7c814979a859 | 512 | |
GiJeongKim | 0:7c814979a859 | 513 | for(int i=90; i<100; i++) { |
GiJeongKim | 0:7c814979a859 | 514 | spi_eeprom_write((int) (JOINT_VEL[i] & 0xFFFFFFFF)); |
GiJeongKim | 0:7c814979a859 | 515 | } |
GiJeongKim | 0:7c814979a859 | 516 | |
GiJeongKim | 0:7c814979a859 | 517 | spi_eeprom_write((int) VALVE_MAX_POS); |
GiJeongKim | 0:7c814979a859 | 518 | spi_eeprom_write((int) VALVE_MIN_POS); |
GiJeongKim | 0:7c814979a859 | 519 | //writer.write(RID_DDV_CENTER, (int) (DDV_CENTER * 10.0f)); |
GiJeongKim | 0:7c814979a859 | 520 | spi_eeprom_write((int) VALVE_POS_NUM); |
GiJeongKim | 0:7c814979a859 | 521 | spi_eeprom_write((int) K_SPRING); |
GiJeongKim | 0:7c814979a859 | 522 | spi_eeprom_write((int) D_DAMPER); |
GiJeongKim | 0:7c814979a859 | 523 | |
GiJeongKim | 0:7c814979a859 | 524 | eeprom_cs=1; |
GiJeongKim | 0:7c814979a859 | 525 | } |
GiJeongKim | 0:7c814979a859 | 526 | |
GiJeongKim | 0:7c814979a859 | 527 | unsigned int spi_eeprom_read(void){ |
GiJeongKim | 0:7c814979a859 | 528 | int a1 = eeprom.write(0x00); |
GiJeongKim | 0:7c814979a859 | 529 | int a2 = eeprom.write(0x00); |
GiJeongKim | 0:7c814979a859 | 530 | int a3 = eeprom.write(0x00); |
GiJeongKim | 0:7c814979a859 | 531 | int a4 = eeprom.write(0x00); |
GiJeongKim | 0:7c814979a859 | 532 | unsigned int final = (a4<<24)+(a3<<16) + (a2<<8) + a1; |
GiJeongKim | 0:7c814979a859 | 533 | return final; |
GiJeongKim | 0:7c814979a859 | 534 | } |
GiJeongKim | 0:7c814979a859 | 535 | |
GiJeongKim | 0:7c814979a859 | 536 | void spi_eeprom_read_long(void){ |
GiJeongKim | 0:7c814979a859 | 537 | spi_eeprom_read_long_1(0x0000); |
GiJeongKim | 0:7c814979a859 | 538 | spi_eeprom_read_long_2(0x0100); |
GiJeongKim | 0:7c814979a859 | 539 | spi_eeprom_read_long_3(0x0200); |
GiJeongKim | 0:7c814979a859 | 540 | spi_eeprom_read_long_4(0x0300); |
GiJeongKim | 0:7c814979a859 | 541 | spi_eeprom_read_long_5(0x0400); |
GiJeongKim | 0:7c814979a859 | 542 | spi_eeprom_read_long_6(0x0500); |
GiJeongKim | 0:7c814979a859 | 543 | spi_eeprom_read_long_7(0x0600); |
GiJeongKim | 0:7c814979a859 | 544 | spi_eeprom_read_long_8(0x0700); |
GiJeongKim | 0:7c814979a859 | 545 | spi_eeprom_read_long_9(0x0800); |
GiJeongKim | 0:7c814979a859 | 546 | spi_eeprom_read_long_10(0x0900); |
GiJeongKim | 0:7c814979a859 | 547 | spi_eeprom_read_long_11(0x1000); |
GiJeongKim | 0:7c814979a859 | 548 | spi_eeprom_read_long_12(0x1100); |
GiJeongKim | 0:7c814979a859 | 549 | spi_eeprom_read_long_13(0x1200); |
GiJeongKim | 0:7c814979a859 | 550 | } |
GiJeongKim | 0:7c814979a859 | 551 | |
GiJeongKim | 0:7c814979a859 | 552 | void spi_eeprom_read_long_1(unsigned int add){ |
GiJeongKim | 0:7c814979a859 | 553 | eeprom_cs=0; |
GiJeongKim | 0:7c814979a859 | 554 | eeprom.write(0x03); |
GiJeongKim | 0:7c814979a859 | 555 | eeprom.write(0xff&((add)>>8)); |
GiJeongKim | 0:7c814979a859 | 556 | eeprom.write(0xff&(add)); |
GiJeongKim | 0:7c814979a859 | 557 | |
GiJeongKim | 0:7c814979a859 | 558 | BNO = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 559 | BNO = 1; |
GiJeongKim | 0:7c814979a859 | 560 | OPERATING_MODE = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 561 | SENSING_MODE = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 562 | CURRENT_CONTROL_MODE = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 563 | FLAG_VALVE_DEADZONE = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 564 | CAN_FREQ = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 565 | DIR_JOINT_ENC = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 566 | DIR_VALVE = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 567 | DIR_VALVE_ENC = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 568 | SUPPLY_VOLTAGE = (float) (spi_eeprom_read()) *0.1f; |
GiJeongKim | 0:7c814979a859 | 569 | VALVE_VOLTAGE_LIMIT = (float) (spi_eeprom_read()) * 0.1f; |
GiJeongKim | 0:7c814979a859 | 570 | P_GAIN_VALVE_POSITION = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 571 | I_GAIN_VALVE_POSITION = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 572 | D_GAIN_VALVE_POSITION = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 573 | P_GAIN_JOINT_POSITION = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 574 | |
GiJeongKim | 0:7c814979a859 | 575 | eeprom_cs=1; |
GiJeongKim | 0:7c814979a859 | 576 | } |
GiJeongKim | 0:7c814979a859 | 577 | |
GiJeongKim | 0:7c814979a859 | 578 | void spi_eeprom_read_long_2(unsigned int add){ |
GiJeongKim | 0:7c814979a859 | 579 | eeprom_cs=0; |
GiJeongKim | 0:7c814979a859 | 580 | eeprom.write(0x03); |
GiJeongKim | 0:7c814979a859 | 581 | eeprom.write(0xff&((add)>>8)); |
GiJeongKim | 0:7c814979a859 | 582 | eeprom.write(0xff&(add)); |
GiJeongKim | 0:7c814979a859 | 583 | |
GiJeongKim | 0:7c814979a859 | 584 | I_GAIN_JOINT_POSITION = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 585 | D_GAIN_JOINT_POSITION = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 586 | P_GAIN_JOINT_TORQUE = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 587 | I_GAIN_JOINT_TORQUE = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 588 | D_GAIN_JOINT_TORQUE = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 589 | VALVE_DEADZONE_PLUS = (float) (spi_eeprom_read()) * 0.1f; |
GiJeongKim | 0:7c814979a859 | 590 | VALVE_DEADZONE_MINUS = (float) (spi_eeprom_read()) * 0.1f; |
GiJeongKim | 0:7c814979a859 | 591 | VELOCITY_COMP_GAIN = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 592 | COMPLIANCE_GAIN = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 593 | VALVE_CENTER = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 594 | VALVE_FF = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 595 | BULK_MODULUS = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 596 | CHAMBER_VOLUME_A = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 597 | CHAMBER_VOLUME_B = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 598 | PISTON_AREA_A = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 599 | |
GiJeongKim | 0:7c814979a859 | 600 | eeprom_cs=1; |
GiJeongKim | 0:7c814979a859 | 601 | } |
GiJeongKim | 0:7c814979a859 | 602 | |
GiJeongKim | 0:7c814979a859 | 603 | void spi_eeprom_read_long_3(unsigned int add){ |
GiJeongKim | 0:7c814979a859 | 604 | eeprom_cs=0; |
GiJeongKim | 0:7c814979a859 | 605 | eeprom.write(0x03); |
GiJeongKim | 0:7c814979a859 | 606 | eeprom.write(0xff&((add)>>8)); |
GiJeongKim | 0:7c814979a859 | 607 | eeprom.write(0xff&(add)); |
GiJeongKim | 0:7c814979a859 | 608 | |
GiJeongKim | 0:7c814979a859 | 609 | PISTON_AREA_B = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 610 | PISTON_AREA_alpha = (float)PISTON_AREA_B/(float)PISTON_AREA_A; |
GiJeongKim | 0:7c814979a859 | 611 | alpha3 = PISTON_AREA_alpha * PISTON_AREA_alpha*PISTON_AREA_alpha; |
GiJeongKim | 0:7c814979a859 | 612 | PRES_SUPPLY = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 613 | PRES_RETURN = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 614 | ENC_LIMIT_MINUS = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 615 | ENC_LIMIT_PLUS = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 616 | STROKE = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 617 | //VALVE_LIMIT_MINUS = flashReadInt(Rom_Sector, RID_VALVE_LIMIT_MINUS); |
GiJeongKim | 0:7c814979a859 | 618 | //VALVE_LIMIT_PLUS = flashReadInt(Rom_Sector, RID_VALVE_LIMIT_PLUS); |
GiJeongKim | 0:7c814979a859 | 619 | ENC_PULSE_PER_POSITION = (float) (spi_eeprom_read()) * 0.1f; |
GiJeongKim | 0:7c814979a859 | 620 | // ENC_PULSE_PER_POSITION = (float) 1024.0f; |
GiJeongKim | 0:7c814979a859 | 621 | TORQUE_SENSOR_PULSE_PER_TORQUE = (float) (spi_eeprom_read()) * 0.0001f; |
GiJeongKim | 0:7c814979a859 | 622 | //TORQUE_SENSOR_PULSE_PER_TORQUE = (float) 0.41928f; //for ankle |
GiJeongKim | 0:7c814979a859 | 623 | // TORQUE_SENSOR_PULSE_PER_TORQUE = (float) 10000.0f/2048.0f; //for knee |
GiJeongKim | 0:7c814979a859 | 624 | PRES_SENSOR_A_PULSE_PER_BAR = (float) (spi_eeprom_read()) * 0.01f; |
GiJeongKim | 0:7c814979a859 | 625 | // PRES_SENSOR_A_PULSE_PER_BAR = 4096.0f / 200.0f; |
GiJeongKim | 0:7c814979a859 | 626 | PRES_SENSOR_B_PULSE_PER_BAR = (float) (spi_eeprom_read()) * 0.01f; |
GiJeongKim | 0:7c814979a859 | 627 | // PRES_SENSOR_B_PULSE_PER_BAR = 4096.0f / 200.0f; |
GiJeongKim | 0:7c814979a859 | 628 | FRICTION = (float) (spi_eeprom_read()) * 0.1f; |
GiJeongKim | 0:7c814979a859 | 629 | HOMEPOS_OFFSET = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 630 | HOMEPOS_VALVE_OPENING = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 631 | |
GiJeongKim | 0:7c814979a859 | 632 | eeprom_cs=1; |
GiJeongKim | 0:7c814979a859 | 633 | } |
GiJeongKim | 0:7c814979a859 | 634 | |
GiJeongKim | 0:7c814979a859 | 635 | void spi_eeprom_read_long_4(unsigned int add){ |
GiJeongKim | 0:7c814979a859 | 636 | eeprom_cs=0; |
GiJeongKim | 0:7c814979a859 | 637 | eeprom.write(0x03); |
GiJeongKim | 0:7c814979a859 | 638 | eeprom.write(0xff&((add)>>8)); |
GiJeongKim | 0:7c814979a859 | 639 | eeprom.write(0xff&(add)); |
GiJeongKim | 0:7c814979a859 | 640 | |
GiJeongKim | 0:7c814979a859 | 641 | TORQUE_VREF = (float) (spi_eeprom_read()) *0.001f; |
GiJeongKim | 0:7c814979a859 | 642 | PRES_A_VREF = (float) spi_eeprom_read() * 0.001f; |
GiJeongKim | 0:7c814979a859 | 643 | PRES_B_VREF = (float) spi_eeprom_read() * 0.001f; |
GiJeongKim | 0:7c814979a859 | 644 | VALVE_GAIN_LPM_PER_V[0] = (float) (spi_eeprom_read()) * 0.01f; |
GiJeongKim | 0:7c814979a859 | 645 | VALVE_GAIN_LPM_PER_V[2] = (float) (spi_eeprom_read()) * 0.01f; |
GiJeongKim | 0:7c814979a859 | 646 | VALVE_GAIN_LPM_PER_V[4] = (float) (spi_eeprom_read()) * 0.01f; |
GiJeongKim | 0:7c814979a859 | 647 | VALVE_GAIN_LPM_PER_V[6] = (float) (spi_eeprom_read()) * 0.01f; |
GiJeongKim | 0:7c814979a859 | 648 | VALVE_GAIN_LPM_PER_V[8] = (float) (spi_eeprom_read()) * 0.01f; |
GiJeongKim | 0:7c814979a859 | 649 | VALVE_GAIN_LPM_PER_V[1] = (float) (spi_eeprom_read()) * 0.01f; |
GiJeongKim | 0:7c814979a859 | 650 | VALVE_GAIN_LPM_PER_V[3] = (float) (spi_eeprom_read()) * 0.01f; |
GiJeongKim | 0:7c814979a859 | 651 | VALVE_GAIN_LPM_PER_V[5] = (float) (spi_eeprom_read()) * 0.01f; |
GiJeongKim | 0:7c814979a859 | 652 | VALVE_GAIN_LPM_PER_V[7] = (float) (spi_eeprom_read()) * 0.01f; |
GiJeongKim | 0:7c814979a859 | 653 | VALVE_GAIN_LPM_PER_V[9] = (float) (spi_eeprom_read()) * 0.01f; |
GiJeongKim | 0:7c814979a859 | 654 | |
GiJeongKim | 0:7c814979a859 | 655 | eeprom_cs=1; |
GiJeongKim | 0:7c814979a859 | 656 | } |
GiJeongKim | 0:7c814979a859 | 657 | |
GiJeongKim | 0:7c814979a859 | 658 | void spi_eeprom_read_long_5(unsigned int add){ |
GiJeongKim | 0:7c814979a859 | 659 | eeprom_cs=0; |
GiJeongKim | 0:7c814979a859 | 660 | eeprom.write(0x03); |
GiJeongKim | 0:7c814979a859 | 661 | eeprom.write(0xff&((add)>>8)); |
GiJeongKim | 0:7c814979a859 | 662 | eeprom.write(0xff&(add)); |
GiJeongKim | 0:7c814979a859 | 663 | |
GiJeongKim | 0:7c814979a859 | 664 | for(int i=0; i<15; i++) { |
GiJeongKim | 0:7c814979a859 | 665 | VALVE_POS_VS_PWM[i] = (float) (spi_eeprom_read()); |
GiJeongKim | 0:7c814979a859 | 666 | } |
GiJeongKim | 0:7c814979a859 | 667 | |
GiJeongKim | 0:7c814979a859 | 668 | eeprom_cs=1; |
GiJeongKim | 0:7c814979a859 | 669 | } |
GiJeongKim | 0:7c814979a859 | 670 | |
GiJeongKim | 0:7c814979a859 | 671 | void spi_eeprom_read_long_6(unsigned int add){ |
GiJeongKim | 0:7c814979a859 | 672 | eeprom_cs=0; |
GiJeongKim | 0:7c814979a859 | 673 | eeprom.write(0x03); |
GiJeongKim | 0:7c814979a859 | 674 | eeprom.write(0xff&((add)>>8)); |
GiJeongKim | 0:7c814979a859 | 675 | eeprom.write(0xff&(add)); |
GiJeongKim | 0:7c814979a859 | 676 | |
GiJeongKim | 0:7c814979a859 | 677 | for(int i=15; i<25; i++) { |
GiJeongKim | 0:7c814979a859 | 678 | VALVE_POS_VS_PWM[i] = (float) (spi_eeprom_read()); |
GiJeongKim | 0:7c814979a859 | 679 | } |
GiJeongKim | 0:7c814979a859 | 680 | |
GiJeongKim | 0:7c814979a859 | 681 | eeprom_cs=1; |
GiJeongKim | 0:7c814979a859 | 682 | } |
GiJeongKim | 0:7c814979a859 | 683 | |
GiJeongKim | 0:7c814979a859 | 684 | void spi_eeprom_read_long_7(unsigned int add){ |
GiJeongKim | 0:7c814979a859 | 685 | eeprom_cs=0; |
GiJeongKim | 0:7c814979a859 | 686 | eeprom.write(0x03); |
GiJeongKim | 0:7c814979a859 | 687 | eeprom.write(0xff&((add)>>8)); |
GiJeongKim | 0:7c814979a859 | 688 | eeprom.write(0xff&(add)); |
GiJeongKim | 0:7c814979a859 | 689 | |
GiJeongKim | 0:7c814979a859 | 690 | for(int i=0; i<15; i++) { |
GiJeongKim | 0:7c814979a859 | 691 | JOINT_VEL[i] = spi_eeprom_read() ; |
GiJeongKim | 0:7c814979a859 | 692 | } |
GiJeongKim | 0:7c814979a859 | 693 | |
GiJeongKim | 0:7c814979a859 | 694 | eeprom_cs=1; |
GiJeongKim | 0:7c814979a859 | 695 | } |
GiJeongKim | 0:7c814979a859 | 696 | |
GiJeongKim | 0:7c814979a859 | 697 | void spi_eeprom_read_long_8(unsigned int add){ |
GiJeongKim | 0:7c814979a859 | 698 | eeprom_cs=0; |
GiJeongKim | 0:7c814979a859 | 699 | eeprom.write(0x03); |
GiJeongKim | 0:7c814979a859 | 700 | eeprom.write(0xff&((add)>>8)); |
GiJeongKim | 0:7c814979a859 | 701 | eeprom.write(0xff&(add)); |
GiJeongKim | 0:7c814979a859 | 702 | |
GiJeongKim | 0:7c814979a859 | 703 | for(int i=15; i<30; i++) { |
GiJeongKim | 0:7c814979a859 | 704 | JOINT_VEL[i] = spi_eeprom_read() ; |
GiJeongKim | 0:7c814979a859 | 705 | } |
GiJeongKim | 0:7c814979a859 | 706 | |
GiJeongKim | 0:7c814979a859 | 707 | eeprom_cs=1; |
GiJeongKim | 0:7c814979a859 | 708 | } |
GiJeongKim | 0:7c814979a859 | 709 | |
GiJeongKim | 0:7c814979a859 | 710 | void spi_eeprom_read_long_9(unsigned int add){ |
GiJeongKim | 0:7c814979a859 | 711 | eeprom_cs=0; |
GiJeongKim | 0:7c814979a859 | 712 | eeprom.write(0x03); |
GiJeongKim | 0:7c814979a859 | 713 | eeprom.write(0xff&((add)>>8)); |
GiJeongKim | 0:7c814979a859 | 714 | eeprom.write(0xff&(add)); |
GiJeongKim | 0:7c814979a859 | 715 | |
GiJeongKim | 0:7c814979a859 | 716 | for(int i=30; i<45; i++) { |
GiJeongKim | 0:7c814979a859 | 717 | JOINT_VEL[i] = spi_eeprom_read() ; |
GiJeongKim | 0:7c814979a859 | 718 | } |
GiJeongKim | 0:7c814979a859 | 719 | |
GiJeongKim | 0:7c814979a859 | 720 | eeprom_cs=1; |
GiJeongKim | 0:7c814979a859 | 721 | } |
GiJeongKim | 0:7c814979a859 | 722 | |
GiJeongKim | 0:7c814979a859 | 723 | void spi_eeprom_read_long_10(unsigned int add){ |
GiJeongKim | 0:7c814979a859 | 724 | eeprom_cs=0; |
GiJeongKim | 0:7c814979a859 | 725 | eeprom.write(0x03); |
GiJeongKim | 0:7c814979a859 | 726 | eeprom.write(0xff&((add)>>8)); |
GiJeongKim | 0:7c814979a859 | 727 | eeprom.write(0xff&(add)); |
GiJeongKim | 0:7c814979a859 | 728 | |
GiJeongKim | 0:7c814979a859 | 729 | for(int i=45; i<60; i++) { |
GiJeongKim | 0:7c814979a859 | 730 | JOINT_VEL[i] = spi_eeprom_read() ; |
GiJeongKim | 0:7c814979a859 | 731 | } |
GiJeongKim | 0:7c814979a859 | 732 | |
GiJeongKim | 0:7c814979a859 | 733 | eeprom_cs=1; |
GiJeongKim | 0:7c814979a859 | 734 | } |
GiJeongKim | 0:7c814979a859 | 735 | |
GiJeongKim | 0:7c814979a859 | 736 | void spi_eeprom_read_long_11(unsigned int add){ |
GiJeongKim | 0:7c814979a859 | 737 | eeprom_cs=0; |
GiJeongKim | 0:7c814979a859 | 738 | eeprom.write(0x03); |
GiJeongKim | 0:7c814979a859 | 739 | eeprom.write(0xff&((add)>>8)); |
GiJeongKim | 0:7c814979a859 | 740 | eeprom.write(0xff&(add)); |
GiJeongKim | 0:7c814979a859 | 741 | |
GiJeongKim | 0:7c814979a859 | 742 | for(int i=60; i<75; i++) { |
GiJeongKim | 0:7c814979a859 | 743 | JOINT_VEL[i] = spi_eeprom_read() ; |
GiJeongKim | 0:7c814979a859 | 744 | } |
GiJeongKim | 0:7c814979a859 | 745 | |
GiJeongKim | 0:7c814979a859 | 746 | eeprom_cs=1; |
GiJeongKim | 0:7c814979a859 | 747 | } |
GiJeongKim | 0:7c814979a859 | 748 | |
GiJeongKim | 0:7c814979a859 | 749 | void spi_eeprom_read_long_12(unsigned int add){ |
GiJeongKim | 0:7c814979a859 | 750 | eeprom_cs=0; |
GiJeongKim | 0:7c814979a859 | 751 | eeprom.write(0x03); |
GiJeongKim | 0:7c814979a859 | 752 | eeprom.write(0xff&((add)>>8)); |
GiJeongKim | 0:7c814979a859 | 753 | eeprom.write(0xff&(add)); |
GiJeongKim | 0:7c814979a859 | 754 | |
GiJeongKim | 0:7c814979a859 | 755 | for(int i=75; i<90; i++) { |
GiJeongKim | 0:7c814979a859 | 756 | JOINT_VEL[i] = spi_eeprom_read() ; |
GiJeongKim | 0:7c814979a859 | 757 | } |
GiJeongKim | 0:7c814979a859 | 758 | |
GiJeongKim | 0:7c814979a859 | 759 | eeprom_cs=1; |
GiJeongKim | 0:7c814979a859 | 760 | } |
GiJeongKim | 0:7c814979a859 | 761 | |
GiJeongKim | 0:7c814979a859 | 762 | void spi_eeprom_read_long_13(unsigned int add){ |
GiJeongKim | 0:7c814979a859 | 763 | eeprom_cs=0; |
GiJeongKim | 0:7c814979a859 | 764 | eeprom.write(0x03); |
GiJeongKim | 0:7c814979a859 | 765 | eeprom.write(0xff&((add)>>8)); |
GiJeongKim | 0:7c814979a859 | 766 | eeprom.write(0xff&(add)); |
GiJeongKim | 0:7c814979a859 | 767 | |
GiJeongKim | 0:7c814979a859 | 768 | for(int i=90; i<100; i++) { |
GiJeongKim | 0:7c814979a859 | 769 | JOINT_VEL[i] = spi_eeprom_read() ; |
GiJeongKim | 0:7c814979a859 | 770 | } |
GiJeongKim | 0:7c814979a859 | 771 | |
GiJeongKim | 0:7c814979a859 | 772 | VALVE_MAX_POS = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 773 | VALVE_MIN_POS = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 774 | //DDV_CENTER = (float) (flashReadInt(Rom_Sector, RID_DDV_CENTER)) * 0.1f; |
GiJeongKim | 0:7c814979a859 | 775 | VALVE_POS_NUM = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 776 | |
GiJeongKim | 0:7c814979a859 | 777 | K_SPRING = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 778 | D_DAMPER = spi_eeprom_read(); |
GiJeongKim | 0:7c814979a859 | 779 | |
GiJeongKim | 0:7c814979a859 | 780 | eeprom_cs=1; |
GiJeongKim | 0:7c814979a859 | 781 | } |