Rev 2272 | Rev 2278 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed
| Rev 2272 | Rev 2273 | ||
|---|---|---|---|
| Line 2... | Line 2... | ||
| 2 | #include "act_PIDv1.h" |
2 | #include "act_PIDv1.h" |
| 3 | #include <drivers/misc/PID_v1.h> |
3 | #include <drivers/misc/PID_v1.h> |
| - | 4 | #include <string.h> |
|
| 4 | #include <drivers/misc/PID_AutoTune.h> |
5 | #include <drivers/misc/PID_AutoTune.h> |
| 5 | 6 | ||
| 6 | #if act_PIDv1_USEEEPROM==1 |
7 | #if act_PIDv1_USEEEPROM==1 |
| 7 | #include "act_PIDv1_eeprom.h" |
8 | #include "act_PIDv1_eeprom.h" |
| 8 | struct eeprom_act_PIDv1 EEMEM eeprom_act_PIDv1 = |
9 | struct eeprom_act_PIDv1 EEMEM eeprom_act_PIDv1 = |
| Line 154... | Line 155... | ||
| 154 | sensorModuleId = eeprom_read_byte(EEDATA.sensorModuleId); |
155 | sensorModuleId = eeprom_read_byte(EEDATA.sensorModuleId); |
| 155 | sensorId = eeprom_read_byte(EEDATA.sensorId); |
156 | sensorId = eeprom_read_byte(EEDATA.sensorId); |
| 156 | uint32_t data_P = eeprom_read_dword(EEDATA32.K_P); |
157 | uint32_t data_P = eeprom_read_dword(EEDATA32.K_P); |
| 157 | uint32_t data_I = eeprom_read_dword(EEDATA32.K_I); |
158 | uint32_t data_I = eeprom_read_dword(EEDATA32.K_I); |
| 158 | uint32_t data_D = eeprom_read_dword(EEDATA32.K_D); |
159 | uint32_t data_D = eeprom_read_dword(EEDATA32.K_D); |
| 159 | float data_P_f |
160 | float data_P_f;// = *((float*)((&data_P))); |
| 160 | float data_I_f |
161 | float data_I_f;// = *((float*)((&data_I))); |
| 161 | float data_D_f |
162 | float data_D_f;// = *((float*)(&data_D)); |
| - | 163 | memcpy(&data_P_f, &data_P, sizeof(data_P)); |
|
| - | 164 | memcpy(&data_I_f, &data_I, sizeof(data_I)); |
|
| - | 165 | memcpy(&data_D_f, &data_D, sizeof(data_D)); |
|
| 162 | PID_init(&pid, &measurementValue, &outputValue, &referenceValue, data_P_f, data_I_f, data_D_f, PID_Direction_Direct); |
166 | PID_init(&pid, &measurementValue, &outputValue, &referenceValue, data_P_f, data_I_f, data_D_f, PID_Direction_Direct); |
| 163 | 167 | ||
| 164 | if (eeprom_read_byte(EEDATA.TimeMsOrS) == CAN_MODULE_ENUM_PID_CONFIG_PARAMETER_TIMEUNIT_S) { |
168 | if (eeprom_read_byte(EEDATA.TimeMsOrS) == CAN_MODULE_ENUM_PID_CONFIG_PARAMETER_TIMEUNIT_S) { |
| 165 | PID_SetSampleTime(&pid, (uint32_t)(eeprom_read_word(EEDATA16.Time))*1000); |
169 | PID_SetSampleTime(&pid, (uint32_t)(eeprom_read_word(EEDATA16.Time))*1000); |
| 166 | 170 | ||