/* * cc_controller.h * * Created on: Jun 11, 2025 * Author: janik */ #ifndef INC_CC_CONTROLLER_H_ #define INC_CC_CONTROLLER_H_ #include #include typedef struct { float gain; // Step per unit error float min_step; // Minimum step size (in float) float max_step; // Maximum step size (in float) float output_f; // Internal float output uint16_t out_min; // DAC min uint16_t out_max; // DAC max } CCController; void CC_Init(CCController *cc, float gain, float min_step, float max_step, uint16_t out_min, uint16_t out_max, float initial_output); uint16_t CC_Update(CCController *cc, float target, float measurement); #endif /* INC_CC_CONTROLLER_H_ */