Index: Common.h =================================================================== diff -u -rca1d590217b1bfd14f0e0682f88e04de076ff199 -r5522c7962c9519b92fc35ee1aac72aedf230d4b1 --- Common.h (.../Common.h) (revision ca1d590217b1bfd14f0e0682f88e04de076ff199) +++ Common.h (.../Common.h) (revision 5522c7962c9519b92fc35ee1aac72aedf230d4b1) @@ -195,7 +195,21 @@ #define GET_TOGGLE(v, l, h) ((v) == (l) ? (h) : (l)) ///< Macro toggles a value #define BIT_BY_POS(p) (1U << (p)) ///< Macro returns a bit mask for a bit of given position #define RAD2DEG(r) ((r) * 180.0F / PI) ///< Macro converts radians to degrees +#define BIT(nr) (1UL << (nr)) ///< Macro for bit mask +#define BITS_PER_LONG 32 +#define GENMASK(h, l) \ + (((~0UL) - (1UL << (l)) + 1) & (~0UL >> (BITS_PER_LONG - 1 - (h)))) ///< Macro for generating bit mask +#define BIT0 0 +#define BIT1 1 +#define BIT2 2 +#define BIT3 3 +#define BIT4 4 +#define BIT5 5 +#define BIT6 6 +#define BIT7 7 +#define BIT8 8 + /// Macro to set a specific alarm with 1 piece of unsigned 32-bit alarm data. #define SET_ALARM_WITH_1_U32_DATA(a,d1) { \ ALARM_DATA_T dat1; \ Index: PIControllers.c =================================================================== diff -u -ra00631eb9cb99a828d4dc5ddf644bb7947eade0b -r5522c7962c9519b92fc35ee1aac72aedf230d4b1 --- PIControllers.c (.../PIControllers.c) (revision a00631eb9cb99a828d4dc5ddf644bb7947eade0b) +++ PIControllers.c (.../PIControllers.c) (revision 5522c7962c9519b92fc35ee1aac72aedf230d4b1) @@ -77,7 +77,7 @@ { 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5, CONTROLLER_UNIDIRECTIONAL, FALSE, 0.0 }, // PI_CONTROLLER_ID_BOOST_PUMP_FLOW { 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1, CONTROLLER_UNIDIRECTIONAL, FALSE, 0.0 }, // PI_CONTROLLER_ID_BOOST_PUMP_PRES { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 75.0, CONTROLLER_UNIDIRECTIONAL, FALSE, 0.0 }, // PI_CONTROLLER_ID_BICARB_VOL - { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 300.0, CONTROLLER_UNIDIRECTIONAL, FALSE, 0.0 }, // PI_CONTROLLER_ID_ACID_VOL + { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1000.0, CONTROLLER_UNIDIRECTIONAL, FALSE, 0.0 }, // PI_CONTROLLER_ID_ACID_VOL #endif }; @@ -154,6 +154,7 @@ controller->controlSignal = RANGE( initialControlSignal, controller->uMin, controller->uMax ); controller->referenceSignal = 0.0; controller->errorSignal = 0.0; + // TODO: controller->errorSum = controller->controlSignal / ( controller->Ki + controller->Kp ); controller->errorSum = controller->controlSignal / controller->Ki; controller->errorSumBeforeWindUp = controller->errorSum; controller->measuredSignal = 0.0;