Subversion Repositories HomeAutomation

Rev

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 = *((float*)((&data_P)));
160
    float data_P_f;// = *((float*)((&data_P)));
160
    float data_I_f = *((float*)((&data_I)));
161
    float data_I_f;// = *((float*)((&data_I)));
161
    float data_D_f = *((float*)(&data_D));
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