From b74e275177921d0fc40b089aa6af33dcb44359e3 Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Sun, 15 Apr 2018 17:39:56 +0300 Subject: Initial Motors control testing --- .../Embedded_SW/Embedded/Modules/Thread/Thread.h | 41 ++++++++-------------- 1 file changed, 14 insertions(+), 27 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules/Thread/Thread.h') diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread.h b/Software/Embedded_SW/Embedded/Modules/Thread/Thread.h index d2675452c..c737b9ea8 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread.h +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread.h @@ -8,6 +8,7 @@ #include "PMR/Hardware/HardwareDancer.pb-c.h" #include "PMR/Hardware/HardwareDancerType.pb-c.h" #include "PMR/Hardware/HardwareWinder.pb-c.h" +#include "PMR/Hardware/HardwarePidControl.pb-c.h" #include "PMR/Printing/JobSpool.pb-c.h" #include "PMR/Printing/JobSpoolType.pb-c.h" @@ -15,23 +16,6 @@ #include "drivers/Danser_SSI/ssi_comm.h" -typedef struct -{ - HardwareMotorType id; - uint32_t minfreq; - uint32_t maxfreq; - uint32_t minmicrostep; - uint32_t maxmicrostep; - double linearratio; - uint32_t medianposition; - double correctiongain; - double ratio2dryerspeed; - double kp; - double ki; - double kd; - double changeslope; - double hightimeoutusec; -}MotorConfigStruc; typedef struct { uint32_t startoffsetpulses; @@ -43,14 +27,6 @@ typedef struct double diameter; }InternalWinderConfigStruc; -typedef struct -{ - bool fixorgradual; - double k; - double x; - int32_t pulsepermmspring; - int id; //HardwareDancerType -}DancerConfigStruc; typedef enum threadMotorsEnum { @@ -62,17 +38,28 @@ typedef enum threadMotorsEnum MAX_THREAD_MOTORS_NUM }threadMotorsEnum; #define MAX_THREAD_FEED_MOTORS WINDER_MOTOR+1 +#define MAX_SYSTEM_DANCERS HARDWARE_DANCER_TYPE__RightDancer+1 + extern TimerMotors_t ThreadMotorIdToMotorId[MAX_THREAD_MOTORS_NUM]; extern DANCER_ENUM ThreadMotorIdToDancerId[MAX_THREAD_MOTORS_NUM]; +extern HardwarePidControlType ThreadMotorIdToControlId[MAX_THREAD_MOTORS_NUM]; + +extern HardwareMotor MotorsCfg[NUM_OF_MOTORS]; +extern HardwarePidControl MotorsControl[MAX_THREAD_MOTORS_NUM]; +extern InternalWinderConfigStruc InternalWinderCfg; +extern HardwareDancer DancersCfg[MAX_SYSTEM_DANCERS]; -extern MotorConfigStruc MotorsCfg[MAX_THREAD_MOTORS_NUM]; -extern InternalWinderConfigStruc InternalWinderCfg; +#define MAX_CONTROL_SAMPLES 6 +extern uint32_t MotorSamples[MAX_THREAD_MOTORS_NUM][MAX_CONTROL_SAMPLES]; +extern int MotorSamplePointer[MAX_THREAD_MOTORS_NUM]; +extern double NormalizedErrorCoEfficient[MAX_THREAD_MOTORS_NUM]; uint32_t InternalWinderConfigMessage(HardwareWinder* request); uint32_t MotorsConfigMessage(HardwareMotor * request); uint32_t InternalWindingConfigMessage(JobSpool* request); uint32_t ThreadInitialTestStub(HardwareMotor * request); +uint32_t MotorPidRequestMessage(HardwarePidControl* request); uint32_t DancerConfigMessage(HardwareDancer * request); -- cgit v1.3.1