AM263x Motor Control SDK  09.01.00
APIs for Digital Control Library

Introduction

Here is the list of APIs used for Digital Control Library

Files

file  dcl.h
 Top level header that contains all Digital Controller Library functions.
 
file  dcl_common.h
 Top level header that contains all DCL common strctures and functions.
 
file  dcl_pi.h
 Contains PI controller with its related structures and functions.
 
file  dcl_pi2.h
 Contains PI2 (double integrator) controller with its related structures and functions.
 
file  dcl_pid.h
 Contains 32-bit PID controller with its related structures and functions.
 
file  dcl_pidf64.h
 Contains 64-bit PID controller with its related structures and functions.
 
file  dcl_df11.h
 Contains direct form 1 1st order DF11 compensator with its related structures and functions.
 
file  dcl_df13.h
 Contains direct form 1 3rd order DF13 compensator with its related structures and functions.
 
file  dcl_df22.h
 Contains direct form 2 2nd order DF22 compensator with its related structures and functions.
 
file  dcl_df23.h
 Contains direct form 2 3rd order DF23 compensator with its related structures and functions.
 
file  dcl_aux.h
 Defines all the auxiliary macros for DCL.
 
file  dcl_clamp.h
 Defines both single, double precision clamp function for saturation.
 
file  dcl_css.h
 Defines Controller Common Support Structure (CSS) and related macros.
 
file  dcl_stability.h
 Defines polynomial stability functions.
 
file  dcl_zpk3.h
 Defines ZPK3 strcture that represents a third order transfer function of poles and zeros.
 
file  dcl_error.h
 Defines all error handling strctures and macro.
 
file  dcl_fdlog.h
 Defines a 32-bit floating-point data logger strcture and related functions.
 

Data Structures

struct  DCL_PI_SPS
 Defines DCL_PI shadow parameter set used for updating controller parameter. More...
 
struct  dcl_pi
 DCL_PI object for storing PI specific parameters. More...
 
struct  DCL_PI2_SPS
 Defines DCL_PI2 shadow parameter set used for updating controller parameter. More...
 
struct  dcl_pi2
 DCL_PI2 object for storing PI2 specific parameters PI2 - PI controller with double integrators. More...
 
struct  DCL_PID_SPS
 Defines DCL_PID shadow parameter set used for updating controller parameter. More...
 
struct  dcl_pid
 DCL_PID object for storing PID specific parameters. More...
 
struct  DCL_PIDF64_SPS
 Defines DCL_PIDF64 shadow PID64 controller structure used for updating controller parameter. More...
 
struct  dcl_pidf64
 DCL_PIDF64 object for storing 64bit PID specific parameters. More...
 
struct  DCL_DF11_SPS
 Defines DCL_DF11 shadow parameter set used for updating compensator parameter. More...
 
struct  dcl_df11
 DCL_DF11 object for storing df11 specific parameters. More...
 
struct  DCL_DF13_SPS
 Defines the DCL_DF13 shadow parameter set used for updating compensator parameter. More...
 
struct  dcl_df13
 DCL_DF13 object for storing df13 specific parameters. More...
 
struct  DCL_DF22_SPS
 Defines DCL_DF22 shadow parameter set used for updating compensator parameter. More...
 
struct  dcl_df22
 DCL_DF22 object for storing df22 specific parameters. More...
 
struct  DCL_DF23_SPS
 Defines DCL_DF23 shadow parameter set used for updating compensator parameter. More...
 
struct  dcl_df23
 DCL_DF23 object for storing df23 specific parameters. More...
 
struct  DCL_CSS
 Defines the controller common support structure. More...
 
struct  DCL_CSSF64
 Defines the 64bit CSS structure. More...
 
struct  DCL_ZPK3
 Defines the DCL_ZPK3 controller structure. More...
 
struct  dcl_fdlog
 Defines the data logger strcture for 32-bit float. More...
 

Functions

_DCL_CODE_ACCESS void DCL_resetPI (DCL_PI *pi)
 Resets PI internal storage data with interrupt protection. More...
 
_DCL_CODE_ACCESS void DCL_forceUpdatePI (DCL_PI *pi)
 Loads PI tuning parameter from its SPS parameter without interrupt protection
More...
 
_DCL_CODE_ACCESS _DCL_CODE_SECTION void DCL_updatePINoCheck (DCL_PI *pi)
 Loads PI tuning parameter from its SPS parameter with interrupt protection. More...
 
_DCL_CODE_ACCESS _DCL_CODE_SECTION bool DCL_updatePI (DCL_PI *pi)
 A conditional update based on the update flag. If the update status is set, the function will update PI parameter from its SPS parameter and clear the status flag on completion. Note: Use DCL_setUpdateStatus(pi) to set the update status. More...
 
_DCL_CODE_ACCESS void DCL_loadSeriesPIasZPK (DCL_PI *pi, DCL_ZPK3 *zpk)
 Configures a series PI controller in "zero-pole-gain" form Note: Sampling period pi->css->T are used in the calculation. New settings take effect after DCL_updatePI(). Only z1 considered in DCL_ZPK3, other poles & zeros ignored. Zero frequency assumed to be in radians/sec. More...
 
_DCL_CODE_ACCESS void DCL_loadParallelPIasZPK (DCL_PI *pi, DCL_ZPK3 *zpk)
 Configures a parallel PI controller in "zero-pole-gain" form Note: Sampling period pi->css->T are used in the calculation. New settings take effect after DCL_updatePI(). Zero frequency assumed to be in radians/sec. More...
 
_DCL_CODE_ACCESS _DCL_CODE_SECTION float32_t DCL_runPISeries (DCL_PI *pi, float32_t rk, float32_t yk)
 Executes an inline series form PI controller. More...
 
_DCL_CODE_ACCESS _DCL_CODE_SECTION float32_t DCL_runPIParallel (DCL_PI *pi, float32_t rk, float32_t yk)
 Executes a parallel form PI controller Implemented as inline C function. More...
 
_DCL_CODE_ACCESS _DCL_CODE_SECTION float32_t DCL_runPIParallelEnhanced (DCL_PI *pi, float32_t rk, float32_t yk)
 Executes a parallel form PI controller with enhanced anti-windup logic incorporating an addintional integrator saturation clamp. More...
 
_DCL_CODE_ACCESS _DCL_CODE_SECTION float32_t DCL_runPISeriesTustin (DCL_PI *pi, float32_t rk, float32_t yk)
 Executes a series form PI controller with Tustin integrator. More...
 
_DCL_CODE_ACCESS void DCL_resetPI2 (DCL_PI2 *pi2)
 Resets PI2 internal storage data with interrupt protection. More...
 
_DCL_CODE_ACCESS void DCL_forceUpdatePI2 (DCL_PI2 *pi2)
 Loads PI2 tuning parameter from its SPS parameter without interrupt protection. More...
 
_DCL_CODE_ACCESS _DCL_CODE_SECTION void DCL_updatePI2NoCheck (DCL_PI2 *pi2)
 Loads PI2 tuning parameter from its SPS parameter with interrupt protection. More...
 
_DCL_CODE_ACCESS _DCL_CODE_SECTION bool DCL_updatePI2 (DCL_PI2 *pi2)
 A conditional update based on the update flag. If the update status is set, the function will update PI2 parameter from its SPS parameter and clear the status flag on completion. Note: Use DCL_setUpdateStatus(pi2) to set the update status. More...
 
_DCL_CODE_ACCESS _DCL_CODE_SECTION float32_t DCL_runPI2Series (DCL_PI2 *pi2, float32_t rk, float32_t yk)
 Executes an inline series form PI2 controller on the FPU32. More...
 
_DCL_CODE_ACCESS void DCL_resetPID (DCL_PID *pid)
 Resets PID internal storage data with interrupt protection. More...
 
_DCL_CODE_ACCESS void DCL_forceUpdatePID (DCL_PID *pid)
 Loads PID tuning parameter from its SPS parameter without interrupt protection. More...
 
_DCL_CODE_ACCESS _DCL_CODE_SECTION void DCL_updatePIDNoCheck (DCL_PID *pid)
 Loads PID tuning parameter from its SPS parameter with interrupt protection. More...
 
_DCL_CODE_ACCESS _DCL_CODE_SECTION bool DCL_updatePID (DCL_PID *pid)
 A conditional update based on the update flag. If the update status is set, the function will update PID parameter from its SPS parameter and clear the status flag on completion. Note: Use DCL_getUpdateStatus(pid) to set the update status. More...
 
_DCL_CODE_ACCESS void DCL_setPIDfilterBW (DCL_PID *pid, float32_t fc)
 Loads the derivative path filter shadow coefficients. Note: Sampling period pid->css->T are used in the calculation. New coefficients take effect when DCL_updatePID() is called. More...
 
_DCL_CODE_ACCESS void DCL_setActivePIDfilterBW (DCL_PID *pid, float32_t fc, float32_t T)
 Loads the PID derivative path filter active coefficients Note: Sampling period pid->css->T are used in the calculation. New coefficients take effect immediately. SPS & CSS contents are unaffected.
More...
 
_DCL_CODE_ACCESS float32_t DCL_getPIDfilterBW (DCL_PID *pid)
 Calculates the active derivative path filter bandwidth in Hz. Note: Sampling period pid->css->T are used in the calculation. More...
 
_DCL_CODE_ACCESS void DCL_loadSeriesPIDasZPK (DCL_PID *pid, DCL_ZPK3 *zpk)
 Configures a series PID controller parameter in ZPK form. Note: Sampling period pid->css->T are used in the calculation. Parameters take effect after call to DCL_updatePID(). Only z1, z2 & p2 considered, p1 = 0 assumed. More...
 
_DCL_CODE_ACCESS void DCL_loadParallelPIDasZPK (DCL_PID *pid, DCL_ZPK3 *zpk)
 Configures a parallel PID controller in ZPK form. Note: Sampling period pid->css->T are used in the calculation. Parameters take effect after call to DCL_updatePID(). Only z1, z2 & p2 considered, p1 = 0 assumed. More...
 
_DCL_CODE_ACCESS _DCL_CODE_SECTION float32_t DCL_runPIDSeries (DCL_PID *pid, float32_t rk, float32_t yk, float32_t lk)
 Executes an ideal form PID controller. More...
 
_DCL_CODE_ACCESS _DCL_CODE_SECTION float32_t DCL_runPIDParallel (DCL_PID *pid, float32_t rk, float32_t yk, float32_t lk)
 Executes a parallel form PID controller. More...
 
_DCL_CODE_ACCESS void DCL_resetPIDF64 (DCL_PIDF64 *pid)
 Resets PID64 internal storage data with interrupt protection. More...
 
_DCL_CODE_ACCESS void DCL_forceUpdatePIDF64 (DCL_PIDF64 *pid)
 Loads PIDF64 tuning parameter from its SPS parameter without interrupt protection. More...
 
_DCL_CODE_ACCESS void DCL_updatePIDF64NoCheck (DCL_PIDF64 *pid)
 Updates PID parameter from its SPS parameter with interrupt protection. More...
 
_DCL_CODE_ACCESS bool DCL_updatePIDF64 (DCL_PIDF64 *pid)
 A conditional update based on the update flag. If the update status is set, the function will update PIDF64 parameter from its SPS parameter and clear the status flag on completion. Note: Use DCL_setUpdateStatus(pid) to set the pending status. More...
 
_DCL_CODE_ACCESS void DCL_setPIDF64filterBW (DCL_PIDF64 *pid, float64_t fc)
 Loads the derivative path filter shadow coefficients Note: Sampling period pid->css->T are used in the calculation Note: new coefficients take effect when DCL_updatePID64() is called. More...
 
_DCL_CODE_ACCESS void DCL_setActivePIDF64filterBW (DCL_PIDF64 *pid, float64_t fc, float64_t T)
 Loads the PID64 derivative path filter active coefficients Note: new coefficients take effect immediately. SPS & CSS contents are unaffected. More...
 
_DCL_CODE_ACCESS float64_t DCL_getPIDF64filterBW (DCL_PIDF64 *pid)
 Returns the active derivative path filter bandwidth in Hz Note: Sampling period pid->css->T are used in the calculation. More...
 
_DCL_CODE_ACCESS float64_t DCL_runPIDF64Series (DCL_PIDF64 *pid, float64_t rk, float64_t yk, float64_t lk)
 Executes an ideal form PID64 controller. More...
 
_DCL_CODE_ACCESS float64_t DCL_runPIDF64Parallel (DCL_PIDF64 *pid, float64_t rk, float64_t yk, float64_t lk)
 Executes an parallel form PID64 controller. More...
 
_DCL_CODE_ACCESS void DCL_resetDF11 (DCL_DF11 *df)
 Resets DF11 internal storage data with interrupt protection. More...
 
_DCL_CODE_ACCESS void DCL_forceUpdateDF11 (DCL_DF11 *df)
 Loads DF11 tuning parameter from its SPS parameter without interrupt protection. More...
 
_DCL_CODE_ACCESS _DCL_CODE_SECTION void DCL_updateDF11NoCheck (DCL_DF11 *df)
 Loads DF11 tuning parameter from its SPS parameter with interrupt protection. More...
 
_DCL_CODE_ACCESS _DCL_CODE_SECTION bool DCL_updateDF11 (DCL_DF11 *df)
 A conditional update based on the update flag. If the update status is set, the function will update DF11 parameter from its SPS parameter and clear the status flag on completion. Note: Use DCL_setUpdateStatus(df) to set the update status. More...
 
_DCL_CODE_ACCESS bool DCL_isStableDF11 (DCL_DF11 *df)
 Determines stability of the shadow DF11 compensator. More...
 
_DCL_CODE_ACCESS void DCL_loadDF11asZPK (DCL_DF11 *df, DCL_ZPK3 *zpk)
 Loads the DF11 shadow coefficients from a ZPK3 description Note: Sampling period df->css->T are used in the calculation. New settings take effect after DCL_updateDF11(). Only real z1 & p1 considered, all other roots ignored. More...
 
_DCL_CODE_ACCESS void DCL_loadDF11asPI (DCL_DF11 *df, float32_t Kp, float32_t Ki)
 Loads compensator coefficients to emulate series form PI Note: Sampling period df->css->T are used in the calculation. New settings take effect after DCL_updateDF11(). More...
 
_DCL_CODE_ACCESS _DCL_CODE_SECTION float32_t DCL_runDF11 (DCL_DF11 *df, float32_t ek)
 Executes a 1st order Direct Form 1 controller. More...
 
_DCL_CODE_ACCESS void DCL_resetDF13 (DCL_DF13 *df)
 Resets DF13 internal storage data with interrupt protection Implemented as inline C function. More...
 
_DCL_CODE_ACCESS void DCL_forceUpdateDF13 (DCL_DF13 *df)
 Loads DF13 tuning parameter from its SPS parameter without interrupt protection. More...
 
_DCL_CODE_ACCESS _DCL_CODE_SECTION void DCL_updateDF13NoCheck (DCL_DF13 *df)
 Loads DF13 tuning parameter from its SPS parameter with interrupt protection. More...
 
_DCL_CODE_ACCESS _DCL_CODE_SECTION bool DCL_updateDF13 (DCL_DF13 *df)
 A conditional update based on the update flag. If the update status is set, the function will update DF13 parameter from its SPS parameter and clear the status flag on completion.. Note: Use DCL_setUpdateStatus(df) to set the update status. More...
 
_DCL_CODE_ACCESS bool DCL_isStableDF13 (DCL_DF13 *df)
 Determines stability of the shadow compensator. More...
 
_DCL_CODE_ACCESS void DCL_loadDF13asZPK (DCL_DF13 *df, DCL_ZPK3 *zpk)
 Loads the DF13 shadow coefficients from a ZPK3 description. Note: Sampling period df->css->T are used in the calculation. New settings take effect after DCL_updateDF13(). More...
 
_DCL_CODE_ACCESS _DCL_CODE_SECTION float32_t DCL_runDF13 (DCL_DF13 *df, float32_t ek)
 Executes a 3rd order Direct Form 1 controller. More...
 
_DCL_CODE_ACCESS float32_t DCL_runDF13PartialCompute (DCL_DF13 *df, float32_t ek)
 Immediate computation to obtain DF13 servo error without updating the controller. More...
 
_DCL_CODE_ACCESS void DCL_runDF13PartialUpdate (DCL_DF13 *df, float32_t ek, float32_t uk)
 Update DF13 controller based on pre-computed control effort. More...
 
_DCL_CODE_ACCESS _DCL_CODE_SECTION float32_t DCL_runDF13Clamp (DCL_DF13 *df, float32_t ek, float32_t Umax, float32_t Umin)
 Executes a 3rd order Direct Form 1 controller with clamp. More...
 
_DCL_CODE_ACCESS float32_t DCL_runDF13_C5 (DCL_DF13 *p, float32_t ek, float32_t vk)
 Legacy C28 Function for maintaining backwards compatibility. It Executes an immediate 3rd order Direct Form 1 controller. More...
 
_DCL_CODE_ACCESS float32_t DCL_runDF13_C6 (DCL_DF13 *p, float32_t ek, float32_t uk)
 Legacy C28 Function for maintaining backwards compatibility. It executes a partial pre-computed 3rd order Direct Form 1 controller. More...
 
_DCL_CODE_ACCESS void DCL_resetDF22 (DCL_DF22 *df)
 Resets DF22 internal storage data with interrupt protection. More...
 
_DCL_CODE_ACCESS void DCL_forceUpdateDF22 (DCL_DF22 *df)
 Loads DF22 tuning parameter from its SPS parameter without interrupt protection. More...
 
_DCL_CODE_ACCESS _DCL_CODE_SECTION void DCL_updateDF22NoCheck (DCL_DF22 *df)
 Loads DF22 tuning parameter from its SPS parameter with interrupt protection. More...
 
_DCL_CODE_ACCESS _DCL_CODE_SECTION bool DCL_updateDF22 (DCL_DF22 *df)
 A conditional update based on the update flag. If the update status is set, the function will update DF22 parameter from its SPS parameter and clear the status flag on completion. Note: Use DCL_setUpdateStatus(df) to set the update status. More...
 
_DCL_CODE_ACCESS bool DCL_isStableDF22 (DCL_DF22 *df)
 Determines stability of the shadow compensator. More...
 
_DCL_CODE_ACCESS void DCL_loadDF22asZPK (DCL_DF22 *df, DCL_ZPK3 *zpk)
 Loads the DF22 shadow coefficients from a ZPK3 description Note: Sampling period df->css->T are used in the calculation. New settings take effect after DCL_updateDF22(). Only z1, z2, p1 & p2 are considered, z3 & p3 are ignored. More...
 
_DCL_CODE_ACCESS void DCL_loadDF22asZwn (DCL_DF22 *df, float32_t z, float32_t wn)
 Loads the DF22 shadow coefficients from damping ratio and un-damped natural frequency using sample rate in CSS. Note: Sampling period df->css->T are used in the calculation. New settings take effect after DCL_updateDF22(). More...
 
_DCL_CODE_ACCESS void DCL_loadDF22asSeriesPID (DCL_DF22 *df, float32_t Kp, float32_t Ki, float32_t Kd, float32_t fc)
 Loads the shadow DF22 compensator coefficients to emulate a series form PID. Note: Sampling period df->css->T are used in the calculation. New settings take effect after DCL_updateDF22(). More...
 
_DCL_CODE_ACCESS void DCL_loadDF22asParallelPID (DCL_DF22 *df, float32_t Kp, float32_t Ki, float32_t Kd, float32_t fc)
 Loads the shadow DF22 compensator coefficients to emulate a parallel form PID. Note: Sampling period df->css->T are used in the calculation. New settings take effect after DCL_updateDF22(). More...
 
_DCL_CODE_ACCESS _DCL_CODE_SECTION float32_t DCL_runDF22 (DCL_DF22 *df, float32_t ek)
 Executes a 2nd order Direct Form 2 controller. More...
 
_DCL_CODE_ACCESS float32_t DCL_runDF22PartialCompute (DCL_DF22 *df, float32_t ek)
 Immediate computation to obtain DF22 servo error without updating the controller. More...
 
_DCL_CODE_ACCESS void DCL_runDF22PartialUpdate (DCL_DF22 *df, float32_t ek, float32_t uk)
 Update DF22 controller based on pre-computed control effort. More...
 
_DCL_CODE_ACCESS _DCL_CODE_SECTION float32_t DCL_runDF22Clamp (DCL_DF22 *df, float32_t ek, float32_t Umax, float32_t Umin)
 Executes a 2nd order Direct Form 2 controller with clamp. More...
 
_DCL_CODE_ACCESS void DCL_resetDF23 (DCL_DF23 *df)
 Resets DF23 internal storage data with interrupt protection. More...
 
_DCL_CODE_ACCESS void DCL_forceUpdateDF23 (DCL_DF23 *df)
 Loads DF23 tuning parameter from its SPS parameter without interrupt protection. More...
 
_DCL_CODE_ACCESS _DCL_CODE_SECTION void DCL_updateDF23NoCheck (DCL_DF23 *df)
 Updates DF23 parameter from its SPS parameter with interrupt protection. More...
 
_DCL_CODE_ACCESS _DCL_CODE_SECTION bool DCL_updateDF23 (DCL_DF23 *df)
 A conditional update based on the update flag. If the update status is set, the function will update DF23 parameter from its SPS parameter and clear the status flag on completion. Note: Use DCL_setUpdateStatus(df) to set the update status. More...
 
_DCL_CODE_ACCESS bool DCL_isStableDF23 (DCL_DF23 *df)
 Determines stability of the shadow compensator. More...
 
_DCL_CODE_ACCESS void DCL_loadDF23asZPK (DCL_DF23 *df, DCL_ZPK3 *zpk)
 Loads the DF23 shadow coefficients from a ZPK3 description Note: Sampling period df->css->T are used in the calculation. New settings take effect after DCL_updateDF23(). More...
 
_DCL_CODE_ACCESS _DCL_CODE_SECTION float32_t DCL_runDF23 (DCL_DF23 *df, float32_t ek)
 Executes a 3rd order Direct Form 2 controller. More...
 
_DCL_CODE_ACCESS float32_t DCL_runDF23PartialCompute (DCL_DF23 *df, float32_t ek)
 Immediate computation to obtain DF23 servo error without updating the controller. More...
 
_DCL_CODE_ACCESS void DCL_runDF23PartialUpdate (DCL_DF23 *df, float32_t ek, float32_t uk)
 Update DF22 controller based on pre-computed control effort. More...
 
_DCL_CODE_ACCESS _DCL_CODE_SECTION float32_t DCL_runDF23Clamp (DCL_DF23 *df, float32_t ek, float32_t Umax, float32_t Umin)
 Executes a 3rd order Direct Form 2 controller with clamp. More...
 
_DCL_CODE_ACCESS bool DCL_runClamp (float32_t *data, float32_t Umax, float32_t Umin)
 Saturates a control variable and returns true if either limit is exceeded. More...
 
_DCL_CODE_ACCESS bool DCL_runClampF64 (float64_t *data, float64_t Umax, float64_t Umin)
 Saturates a control variable and returns true if either limit is exceeded. More...
 
_DCL_CODE_ACCESS bool DCL_isStablePn1 (float32_t a1)
 Determines stability of a first order real polynomial P(z) = z + a1. More...
 
_DCL_CODE_ACCESS bool DCL_isStablePn2 (float32_t a0, float32_t a1, float32_t a2)
 Determines stability of a second order polynomial with real coefficients P(z) = a0 z^2 + a1 z + a2. More...
 
_DCL_CODE_ACCESS bool DCL_isStablePn3 (float32_t a0, float32_t a1, float32_t a2, float32_t a3)
 Determines stability of a third order polynomial with real coefficients P(z) = a0 z^3 + a1 z^2 + a2 z + a3. More...
 
_DCL_CODE_ACCESS bool DCL_isStableZpk3 (DCL_ZPK3 *q)
 
_DCL_CODE_ACCESS void DCL_setLogIndex (DCL_FDLOG *buf, uint32_t idx)
 Sets index of the current pointer (zero-indexed) More...
 
_DCL_CODE_ACCESS void DCL_deleteLog (DCL_FDLOG *buf)
 Resets all structure pointers to null value. More...
 
_DCL_CODE_ACCESS void DCL_resetLog (DCL_FDLOG *buf)
 Resets the data index pointer to start of buffer. More...
 
_DCL_CODE_ACCESS void DCL_fillLog (DCL_FDLOG *buf, float32_t data)
 Fills the buffer with a given data value and resets the data index pointer to the start of the buffer. More...
 
_DCL_CODE_ACCESS void DCL_initLog (DCL_FDLOG *buf, float32_t *addr, uint32_t size)
 Assigns the buffer pointers to a memory block or array and sets the data index pointer to the first address. More...
 
_DCL_CODE_ACCESS float32_t DCL_writeLog (DCL_FDLOG *buf, float32_t data)
 Writes a data point into the buffer and advances the indexing pointer, wrapping if necessary. Returns the over-written data value for delay line or FIFO implementation. More...
 
_DCL_CODE_ACCESS float32_t DCL_readLog (DCL_FDLOG *buf)
 Reads a data point from the buffer and then advances the indexing pointer, wrapping if necessary. More...
 
_DCL_CODE_ACCESS void DCL_copyLog (DCL_FDLOG *src, DCL_FDLOG *dst)
 Copies the contents of one log (src) into another (dst).
Both logs must have the same length. More...
 

Typedefs

typedef float float32_t
 Defines single,double precision data type. Note: Assumes ABI to be TI_EABI, does not support legacy TI_COFF. More...
 
typedef double float64_t
 
typedef uint32_t dcl_interrupt_t
 
typedef _DCL_VOLATILE struct dcl_pi DCL_PI
 
typedef _DCL_VOLATILE struct dcl_piPI_Handle
 
typedef _DCL_VOLATILE struct dcl_pi2 DCL_PI2
 
typedef _DCL_VOLATILE struct dcl_pi2PI2_Handle
 
typedef _DCL_VOLATILE struct dcl_pid DCL_PID
 
typedef _DCL_VOLATILE struct dcl_pidPID_Handle
 
typedef _DCL_VOLATILE struct dcl_pidf64 DCL_PIDF64
 
typedef _DCL_VOLATILE struct dcl_pidf64PIDF64_Handle
 
typedef _DCL_VOLATILE struct dcl_df11 DCL_DF11
 
typedef _DCL_VOLATILE struct dcl_df11DF11_Handle
 
typedef _DCL_VOLATILE struct dcl_df13 DCL_DF13
 
typedef _DCL_VOLATILE struct dcl_df13DF13_Handle
 
typedef _DCL_VOLATILE struct dcl_df22 DCL_DF22
 
typedef _DCL_VOLATILE struct dcl_df22DF22_Handle
 
typedef _DCL_VOLATILE struct dcl_df23 DCL_DF23
 
typedef _DCL_VOLATILE struct dcl_df23DF23_Handle
 
typedef _DCL_VOLATILE struct dcl_fdlog DCL_FDLOG
 

Enumerations

enum  dcl_status_bits { dcl_sts_none = 0U, dcl_sts_param_update = (1U << 0), dcl_sts_ctrl_running = (1U << 1) }
 Defines the library enumerated status bits. More...
 
enum  dcl_error_codes {
  dcl_none = 0U, dcl_param_range_err = (1U << 0), dcl_param_invalid_err = (1U << 1), dcl_param_warn_err = (1U << 2),
  dcl_input_range_err = (1U << 3), dcl_overflow_err = (1U << 4), dcl_underflow_err = (1U << 5), dcl_controller_err = (1U << 6),
  dcl_timing_err = (1U << 7)
}
 Defines the library enumerated error codes. These will be applied as bit masks in the error handler. More...
 

Macros

#define DCL_VERSION   4000100
 Library version number formatted for numerical comparison v4.00.01.00. More...
 
#define _DCL_CODE_ACCESS   static inline
 Defines the scope of dcl functions (static inline/extern inline/none) More...
 
#define _DCL_CODE_SECTION   __attribute__((section("dclfuncs")))
 Defines dcl function section that users can specify in the linker file(.cmd) and to accelerate performance by mapping to faster memory Note: only DCL_run and DCL_update are included by default. More...
 
#define _DCL_VOLATILE
 Defines volatile for DCL strctures Flags can be defined in dcl.h or user files before including DCL lib. More...
 
#define DCL_setBreakPoint()
 Set a software breakpoint assembly instruction. More...
 
#define DCL_disableInts()   0
 Define enable and disable interrupt operations. More...
 
#define DCL_restoreInts(v)
 
#define PI_SPS_DEFAULTS   { 1.0f, 0.0f, 1.0f, -1.0f, 1.0f, -1.0f }
 Defines default values to initialize DCL_PI_SPS. More...
 
#define PI_DEFAULTS
 Defines default values to initialize DCL_PI. More...
 
#define PI_INT_DEFAULTS
 Macro for internal default values to initialize DCL_PI Example: DCL_PI pi_ctrl = { .Kp = 1.0f, .Ki = 0.0f, .Umax = 1.0f, .Umin = -1.0f, .Imax = 0.0f, .Imin = 0.0f, PI_INT_DEFAULTS };. More...
 
#define DCL_initPI()   &(DCL_PI)PI_DEFAULTS
 Initialize DCL_PI struct with default parameters Example: DCL_PI* pi_ctrl = DCL_initPI();. More...
 
#define DCL_initPIasParam(kp, ki, umax, umin)
 Initialize DCL_PI struct with input controller parameters Example: DCL_PI* pi_ctrl = DCL_initPIasParam(1.0f,0.0f,1.0f,-1.0f); Note: input parameter needs to be in the same order as listed in PI_SPS struct. More...
 
#define DCL_initPIasSPS(pi_ptr, sps_ptr)
 Initialize DCL_PI struct with sps parameters Example: DCL_PI_SPS pi_sps = { .Kp = , .Ki = , ...}; DCL_PI pi_ctrl; DCL_initPIasSPS(&pi_ctrl,&pi_sps);. More...
 
#define PI2_SPS_DEFAULTS   { 1.0f, 0.0f, 1.0f, -1.0f }
 Defines default values to initialize DCL_PI2_SPS. More...
 
#define PI2_DEFAULTS
 Defines default values to initialize DCL_PI2. More...
 
#define PI2_INT_DEFAULTS
 Macro for internal default values to initialize DCL_PI2 Example: DCL_PI2 pi2_ctrl = { .Kp = 1.0f, .Ki = 0.0f, .Umax = 1.0f, .Umin = -1.0f, PI2_INT_DEFAULTS };. More...
 
#define DCL_initPI2()   &(DCL_PI2)PI2_DEFAULTS
 Initialize DCL_PI2 struct with default parameters Example: DCL_PI2 pi2_ctrl = DCL_initPI2();. More...
 
#define DCL_initPI2asParam(kp, ki, umax, umin)
 Initialize DCL_PI2 struct with input controller parameters Example: DCL_PI2* pi2_ctrl = DCL_initPI2asParam(1.0f,0.0f,1.0f,-1.0f); Note: input parameter needs to be in the same order as listed in PI2_SPS struct. More...
 
#define DCL_initPI2asSPS(pi2_ptr, sps_ptr)
 Initialize DCL_PI2 struct with sps parameters Example: DCL_PI2_SPS pi2_sps = { .Kp = , .Ki = , ...}; DCL_PI2 pi2_ctrl; DCL_initPI2asSPS(&pi2_ctrl,&pi2_sps);. More...
 
#define PID_SPS_DEFAULTS   { 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, -1.0f }
 Defines default values to initialize DCL_PID_SPS. More...
 
#define PID_DEFAULTS
 Defines default values to initialize the DCL_PID structure. More...
 
#define PID_INT_DEFAULTS
 Macro for internal default values to initialize DCL_PID Example: DCL_PID pid_ctrl = { .Kp = 1.0f, .Ki = 0.0f, ... .Umin = -1.0f, PID_INT_DEFAULTS };. More...
 
#define DCL_initPID()   &(DCL_PID)PID_DEFAULTS
 Initialize DCL_PID struct with default parameters Example: DCL_PID* pid_ctrl = DCL_initPID();. More...
 
#define DCL_initPIDasParam(kp, ki, kd, kr, _c1, _c2, umax, umin)
 Initialize DCL_PID struct with input controller parameters Example: DCL_PID* pid_ctrl = DCL_initPIDasParam(1.0f,0.0f,0.0f,1.0f,1.0f,0.0f,1.0f,-1.0f); Note: input parameter needs to be in the same order as listed in PID_SPS struct. More...
 
#define DCL_initPIDasSPS(pid_ptr, sps_ptr)
 Initialize DCL_PID struct with SPS parameters Example: DCL_PID_SPS pid_sps = { .Kp = , .Ki = , ...}; //initial parameter DCL_PID pid_ctrl; DCL_initPIasSPS(&pid_ctrl,&pid_sps); Note: The newly declared DCL_PID structure will use the SPS input parameter as its attribute for sps. More...
 
#define PIDF64_SPS_DEFAULTS   { 1.0L, 0.0L, 0.0L, 1.0L, 1.0L, 0.0L, 1.0L, -1.0L }
 Defines default values to initialize the DCL_PIDF64 shadow structure. More...
 
#define PIDF64_DEFAULTS
 Defines default values to initialize the DCL_PID64 active structure. More...
 
#define PIDF64_INT_DEFAULTS
 Macro for internal default values to initialize DCL_PIDF64 Example: DCL_PIDF64 pid_ctrl = { .Kp = 1.0L, .Ki = 0.0L, ... .Umin = -1.0L, PIDF64_INT_DEFAULTS };. More...
 
#define DCL_initPIDF64()   &(DCL_PIDF64)PIDF64_DEFAULTS
 Initialize DCL_PIDF64 struct with default parameters Example: DCL_PIDF64* pid_ctrl = DCL_initPID();. More...
 
#define DCL_initPIDF64asParam(kp, ki, kd, kr, _c1, _c2, umax, umin)
 Initialize DCL_PIDF64 struct with input controller parameters Example: DCL_PIDF64* pid_ctrl = DCL_initPIDF64asParam(1.0L,0.0L,0.0L,1.0L,1.0L,0.0L,1.0L,-1.0L); Note: input parameter needs to be in the same order as listed in PIDF64_SPS struct. More...
 
#define DCL_initPIDF64asSPS(pid_ptr, sps_ptr)
 Initialize DCL_PIDF64 struct with sps parameters Example: DCL_PIDF64_SPS pid_sps = { .Kp = , .Ki = , ...}; //initial parameter DCL_PIDF64 pid_ctrl; DCL_initPIasSPS(&pid_ctrl,&pid_sps);. More...
 
#define DF11_SPS_DEFAULTS   { 0.5f, 0.5f, 1.0f }
 
#define DF11_DEFAULTS
 Defines default values to initialize DCL_DF11. More...
 
#define DF11_INT_DEFAULTS   .d1=0.0f, .d2=0.0f, .sps=&(DCL_DF11_SPS)DF11_SPS_DEFAULTS, .css=&(DCL_CSS)DCL_CSS_DEFAULTS
 Macro for internal default values to initialize DCL_DF11 Example: DCL_DF11 df11_ctrl = { .b0 = 0.5f, .b1 = 0.5f, .a1 = 1.0f, DF11_INT_DEFAULTS };. More...
 
#define DCL_initDF11()   &(DCL_DF11)DF11_DEFAULTS
 Initialize DCL_DF11 struct with default parameters Example: DCL_DF11* df11_ctrl = DCL_initDF11();. More...
 
#define DCL_initDF11asParam(_b0, _b1, _a1)
 Initialize DCL_DF11 struct with input compensator parameters Example: DCL_DF11* DF11_ctrl = DCL_initDF11asParam(0.5f,0.5f,1.0f); Note: input parameter needs to be in the same order as listed in DF11_SPS struct. More...
 
#define DCL_initDF11asSPS(df_ptr, sps_ptr)
 Initialize DCL_DF11 struct with sps parameters Example: DCL_DF11_SPS df_sps = { .b0 = , .b1 = , ...}; //initial parameter DCL_DF11 df_ctrl; DCL_initDF11asSPS(&df_ctrl,&df_sps);. More...
 
#define DF13_SPS_DEFAULTS   { 0.25f, 0.25f, 0.25f, 0.25f, 0.0f, 0.0f, 0.0f, 0.0f }
 
#define DF13_DEFAULTS
 Defines default values to initialize DCL_DF13. More...
 
#define DF13_INT_DEFAULTS
 Macro for internal default values to initialize DCL_DF13 Example: DCL_DF13 df13_ctrl = { .b0 = 0.25f, .b1 = 0.25f, ... .a3 = 0.0f, DF13_INT_DEFAULTS };. More...
 
#define DCL_initDF13()   &(DCL_DF13)DF13_DEFAULTS
 Initialize DCL_DF13 struct with default parameters Example: DCL_DF13* df13_ctrl = DCL_initDF13();. More...
 
#define DCL_initDF13asParam(_b0, _b1, _b2, _b3, _a1, _a2, _a3)
 Initialize DCL_DF13 struct with input compensator parameters Example: DCL_DF13* DF13_ctrl = DCL_initDF13asParam(0.25f,0.25f,0.25f,0.25f,0.0f,0.0f,0.0f); Note: input parameter needs to be in the same order as listed in DF13_SPS struct. More...
 
#define DCL_initDF13asSPS(df_ptr, sps_ptr)
 Initialize DCL_DF13 struct with sps parameters Example: DCL_DF13_SPS df_sps = { .b0 = , .b1 = , ...}; //initial parameter DCL_DF13 df_ctrl; DCL_initDF13asSPS(&df_ctrl,&df_sps);. More...
 
#define DF22_SPS_DEFAULTS   { 1.0f, 0.0f, 0.0f, 0.0f, 0.0f }
 
#define DF22_DEFAULTS
 Defines default values to initialize DCL_DF22. More...
 
#define DF22_INT_DEFAULTS
 Macro for internal default values to initialize DCL_DF22 Example: DCL_DF22 df22_ctrl = { .b0 = 1.00f, .b1 = 0.0f, ... .a2 = 0.0f, DF22_INT_DEFAULTS };. More...
 
#define DCL_initDF22()   &(DCL_DF22)DF22_DEFAULTS
 Initialize DCL_DF22 struct with default parameters Example: DCL_DF22* df22_ctrl = DCL_initDF22();. More...
 
#define DCL_initDF22asParam(_b0, _b1, _b2, _a1, _a2)
 Initialize DCL_DF22 struct with input compensator parameters Example: DCL_DF22 DF22_ctrl = DCL_initD22asParam(1.0f,0.0f,0.0f,0.0f,0.0f); Note: input parameter needs to be in the same order as listed in DF22_SPS struct. More...
 
#define DCL_initDF22asSPS(df_ptr, sps_ptr)
 Initialize DCL_DF22 struct using sps parameters Example: DCL_DF22_SPS df_sps = { .b0 = , .b1 = , ...}; //initial parameter DCL_DF22 df_ctrl; DCL_initDF22asSPS(&df_ctrl,&df_sps);. More...
 
#define DF23_SPS_DEFAULTS   { 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }
 
#define DF23_DEFAULTS
 Defines default values to initialize DCL_DF23. More...
 
#define DF23_INT_DEFAULTS
 Macro for internal default values to initialize DCL_DF23 Example: DCL_DF23 df23_ctrl = { .b0 = 1.0f, .b1 = 0.0f, ... .a3 = 0.0f, DF23_INT_DEFAULTS };. More...
 
#define DCL_initDF23()   &(DCL_DF23)DF23_DEFAULTS
 Initialize DCL_DF23 struct with default parameters Example: DCL_DF23* df23_ctrl = DCL_initDF23();. More...
 
#define DCL_initDF23asParam(_b0, _b1, _b2, _b3, _a1, _a2, _a3)
 Initialize DCL_DF23 struct with input compensator parameters Example: DCL_DF23* DF23_ctrl = DCL_initDF23asParam(1.0f,0.0f,0.0f,0.0f,0.0f,0.0f,0.0f); Note: input parameter needs to be in the same order as listed in DF23_SPS struct. More...
 
#define DCL_initDF23asSPS(df_ptr, sps_ptr)
 Initialize DCL_DF23 struct with sps parameters Example: DCL_DF23_SPS df_sps = { .b0 = , .b1 = , ...}; //initial parameter DCL_DF23 df_ctrl; DCL_initDF23asSPS(&df_ctrl,&df_sps);. More...
 
#define NULL   0
 
#define CONST_PI   3.14159265358979323846f
 Local definitions of the mathematical constant pi. More...
 
#define CONST_2PI   2.0f * CONST_PI
 
#define CONST_PI_F64   3.1415926535897932384626433832795028841971693993751058209749445923078164062L
 
#define CONST_2PI_F64   2.0L * CONST_PI_F64
 
#define DCL_FPU32_TOL   1.0e-06f
 Define the acceptable FPU numerical tolerances. More...
 
#define DCL_FPU64_TOL   1.0e-10L
 
#define DCL_DEFAULT_PERIOD_S   100.0e-06f
 Define the default control period in seconds. More...
 
#define DCL_DEFAULT_PERIODF64_S   100.0e-06L
 
#define DCL_isValue(x, y)   (((x < (y + DCL_FPU32_TOL)) && (x > (y - DCL_FPU32_TOL))) ? 1U : 0U)
 Determines numerical proximity to specified value. More...
 
#define DCL_isValueF64(x, y)   (((x < (y + DCL_FPU64_TOL)) && (x > (y - DCL_FPU64_TOL))) ? 1U : 0U)
 
#define DCL_isZero(x)   DCL_isValue(x,0.0f)
 Determines floating point numerical proximity to zero. More...
 
#define DCL_isZeroF64(x)   DCL_isValueF64(x,0.0L)
 
#define DCL_rand(a)   (a * ((float32_t) rand() / (float32_t) (RAND_MAX >> 1) - 1.0f))
 Returns a random floating point result between -1.0 and +1.0 where 'a' is the multiplier in single or double precision. Useful for initialization of arrays and matrices during test. More...
 
#define DCL_randF64(a)   (a * ((float64_t) rand() / (float64_t) (RAND_MAX >> 1) - 1.0L))
 
#define DCL_c2Limit   ((2.0f - CONST_PI) / (2.0f + CONST_PI))
 Defines the lower limit on derivative filter coefficient c2 in order for fc to lie below the Nyquist frequency. More...
 
#define DCL_c2LimitF64   ((2.0L - CONST_PI_F64) / (2.0L + CONST_PI_F64))
 
#define DCL_runSat(data, Umax, Umin)   (data > Umax) ? Umax : (data < Umin) ? Umin : data
 Macro to saturate a control variable but does not change the data itself unlike runClamp() More...
 
#define DCL_CSS_DEFAULTS   { 0.0f, DCL_DEFAULT_PERIOD_S, 0U, 0U, 0U, NULL }
 Default values to initialize the CSS structure. More...
 
#define DCL_CSSF64_DEFAULTS   { 0.0L, DCL_DEFAULT_PERIODF64_S, 0U, 0U, 0U, NULL }
 Default values to initialize the CSS 64bit structure. More...
 
#define DCL_setControllerPeriod(p, t_sec)   ((p)->css->T = t_sec)
 Loads the controller period in the CSS CSS pointer must be configured first. More...
 
#define DCL_setUpdateStatus(p)   ((p)->css->sts |= dcl_sts_param_update)
 Macros to set and clear the update-in-progress flag. More...
 
#define DCL_clearUpdateStatus(p)   ((p)->css->sts &= ~dcl_sts_param_update)
 
#define DCL_getUpdateStatus(p)   (0U != ((p)->css->sts & dcl_sts_param_update))
 Determine whether a parameter update-in-progress flag is set. More...
 
#define DCL_getPendingStatus(p)   (0U != ((p)->css->sts & dcl_sts_param_pending))
 Determine whether a parameter pending-for-update flag is set. More...
 
#define DCL_setControllerStatus(p)   ((p)->css->sts |= dcl_sts_ctrl_running)
 Macros placed at the beginning and end of the controller so that other functions know a control operation is in progress. Typically only used with complex controllers which may not be atomic. More...
 
#define DCL_clearControllerStatus(p)   ((p)->css->sts &= ~dcl_sts_ctrl_running)
 
#define DCL_getControllerStatus(p)   (0U != ((p)->css->sts & dcl_sts_ctrl_running))
 Determine whether a controller operation-in-progress flag is set. More...
 
#define ZPK3_DEFAULTS
 Defines default values to initialize the DCL_ZPK3 structure. More...
 
#define DCL_clearError(ptr)   ((ptr)->css->err = dcl_none)
 Macro to clear stored error code in CSS. More...
 
#define DCL_setError(ptr, code)   ((ptr)->css->err |= code)
 Macro to set error code in CSS. More...
 
#define DCL_getErrorLine(ptr)   ((ptr)->css->err_line = ((ptr)->css->err) ? __LINE__ : 0)
 Macro to store line location of error in CSS. More...
 
#define DCL_getErrorFunc(ptr)   ((ptr)->css->err_func = ((ptr)->css->err) ? __FUNCTION__ : NULL)
 Macro to store function location of error in CSS. More...
 
#define DCL_getErrorInfo(ptr)
 Macro to store error info in CSS. More...
 
#define DCL_runErrorHandler(ptr)
 Prototype for basic error handler. More...
 
#define DCL_getLogSize(buf)   ((buf)->size)
 Obtain the total size of buffer. More...
 
#define DCL_getLogIndex(buf)   ((uint32_t)((buf)->dptr - (buf)->fptr))
 Index of the current pointer (zero-indexed) More...
 
#define DCL_getLogRemain(buf)   ((buf)->size - DCL_getLogIndex(buf))
 Remaining space left from indexed pointer to end of buffer. More...
 
#define DCL_clearLog(buf)   DCL_fillLog(buf,0)
 Clears the buffer contents by writing 0 to all elements and resets the data index pointer to the start of the buffer. More...
 

Macro Definition Documentation

◆ DCL_VERSION

#define DCL_VERSION   4000100

Library version number formatted for numerical comparison v4.00.01.00.

◆ _DCL_CODE_ACCESS

#define _DCL_CODE_ACCESS   static inline

Defines the scope of dcl functions (static inline/extern inline/none)

◆ _DCL_CODE_SECTION

#define _DCL_CODE_SECTION   __attribute__((section("dclfuncs")))

Defines dcl function section that users can specify in the linker file(.cmd) and to accelerate performance by mapping to faster memory Note: only DCL_run and DCL_update are included by default.

◆ _DCL_VOLATILE

#define _DCL_VOLATILE

Defines volatile for DCL strctures Flags can be defined in dcl.h or user files before including DCL lib.

◆ DCL_setBreakPoint

#define DCL_setBreakPoint ( )

Set a software breakpoint assembly instruction.

◆ DCL_disableInts

#define DCL_disableInts ( )    0

Define enable and disable interrupt operations.

◆ DCL_restoreInts

#define DCL_restoreInts (   v)

◆ PI_SPS_DEFAULTS

#define PI_SPS_DEFAULTS   { 1.0f, 0.0f, 1.0f, -1.0f, 1.0f, -1.0f }

Defines default values to initialize DCL_PI_SPS.

◆ PI_DEFAULTS

#define PI_DEFAULTS
Value:
{ 1.0f, 0.0f, 1.0f, -1.0f, 1.0f, -1.0f, 1.0f, 0.0f, 0.0f, \

Defines default values to initialize DCL_PI.

◆ PI_INT_DEFAULTS

#define PI_INT_DEFAULTS
Value:
.i6=1.0f, .i10=0.0f, .i11=0.0f, \

Macro for internal default values to initialize DCL_PI Example: DCL_PI pi_ctrl = { .Kp = 1.0f, .Ki = 0.0f, .Umax = 1.0f, .Umin = -1.0f, .Imax = 0.0f, .Imin = 0.0f, PI_INT_DEFAULTS };.

◆ DCL_initPI

#define DCL_initPI ( )    &(DCL_PI)PI_DEFAULTS

Initialize DCL_PI struct with default parameters Example: DCL_PI* pi_ctrl = DCL_initPI();.

Returns
A DCL_PI* pointer

◆ DCL_initPIasParam

#define DCL_initPIasParam (   kp,
  ki,
  umax,
  umin 
)
Value:
&(DCL_PI){ .Kp=kp, .Ki=ki, \
.Umax=umax, .Umin=umin, PI_INT_DEFAULTS }

Initialize DCL_PI struct with input controller parameters Example: DCL_PI* pi_ctrl = DCL_initPIasParam(1.0f,0.0f,1.0f,-1.0f); Note: input parameter needs to be in the same order as listed in PI_SPS struct.

Returns
A DCL_PI* pointer

◆ DCL_initPIasSPS

#define DCL_initPIasSPS (   pi_ptr,
  sps_ptr 
)
Value:
({ \
DCL_PI* new_pi = (pi_ptr) ? pi_ptr : DCL_initPI(); \
DCL_PI_SPS* new_sps = (sps_ptr) ? sps_ptr : &(DCL_PI_SPS)PI_SPS_DEFAULTS; \
if(sps_ptr) \
{ \
*new_pi = (DCL_PI){ (new_sps)->Kp, (new_sps)->Ki, (new_sps)->Umax, (new_sps)->Umin,\
(new_sps)->Imax, (new_sps)->Imin, 1.0f, 0.0f, 0.0f, \
} \
new_pi; \
})

Initialize DCL_PI struct with sps parameters Example: DCL_PI_SPS pi_sps = { .Kp = , .Ki = , ...}; DCL_PI pi_ctrl; DCL_initPIasSPS(&pi_ctrl,&pi_sps);.

Parameters
[in]pi_ptrDCL_PI* pointer that needs to be initialized
[in]sps_ptrDCL_PI_SPS* pointer with assigned parameters
Returns
Returns DCL_PI* with set sps parameters, default parameter will be used if sps_ptr is not specified

◆ PI2_SPS_DEFAULTS

#define PI2_SPS_DEFAULTS   { 1.0f, 0.0f, 1.0f, -1.0f }

Defines default values to initialize DCL_PI2_SPS.

◆ PI2_DEFAULTS

#define PI2_DEFAULTS
Value:
{ 1.0f, 0.0f, 1.0f, -1.0f, 0.0f, 0.0f, 1.0f, 1.0f, \

Defines default values to initialize DCL_PI2.

◆ PI2_INT_DEFAULTS

#define PI2_INT_DEFAULTS
Value:
.i6=0.0f, .i9=0.0f, .i12=1.0f, .i13=1.0f, \

Macro for internal default values to initialize DCL_PI2 Example: DCL_PI2 pi2_ctrl = { .Kp = 1.0f, .Ki = 0.0f, .Umax = 1.0f, .Umin = -1.0f, PI2_INT_DEFAULTS };.

◆ DCL_initPI2

#define DCL_initPI2 ( )    &(DCL_PI2)PI2_DEFAULTS

Initialize DCL_PI2 struct with default parameters Example: DCL_PI2 pi2_ctrl = DCL_initPI2();.

Returns
A DCL_PI2* pointer

◆ DCL_initPI2asParam

#define DCL_initPI2asParam (   kp,
  ki,
  umax,
  umin 
)
Value:
&(DCL_PI2){ .Kp=kp, .Ki=ki, \
.Umax=umax, .Umin=umin, PI2_INT_DEFAULTS }

Initialize DCL_PI2 struct with input controller parameters Example: DCL_PI2* pi2_ctrl = DCL_initPI2asParam(1.0f,0.0f,1.0f,-1.0f); Note: input parameter needs to be in the same order as listed in PI2_SPS struct.

Returns
A DCL_PI2* pointer

◆ DCL_initPI2asSPS

#define DCL_initPI2asSPS (   pi2_ptr,
  sps_ptr 
)
Value:
({ \
DCL_PI2* new_pi = (pi2_ptr) ? pi2_ptr : DCL_initPI2(); \
DCL_PI2_SPS* new_sps = (sps_ptr) ? sps_ptr : &(DCL_PI2_SPS)PI2_SPS_DEFAULTS; \
if(sps_ptr) \
{ \
*new_pi = (DCL_PI){ (new_sps)->Kp, (new_sps)->Ki, (new_sps)->Umax, (new_sps)->Umin,\
0.0f, 0.0f, 1.0f, 1.0f, (DCL_PI_SPS*)new_sps, &(DCL_CSS)DCL_CSS_DEFAULTS }; \
} \
new_pi; \
})

Initialize DCL_PI2 struct with sps parameters Example: DCL_PI2_SPS pi2_sps = { .Kp = , .Ki = , ...}; DCL_PI2 pi2_ctrl; DCL_initPI2asSPS(&pi2_ctrl,&pi2_sps);.

Parameters
[in]pi2_ptrDCL_PI2* pointer that needs to be initialized
[in]sps_ptrDCL_PI2_SPS* pointer with assigned parameters
Returns
Returns DCL_PI2* with set sps parameters, default parameter will be used if sps_ptr is not specified

◆ PID_SPS_DEFAULTS

#define PID_SPS_DEFAULTS   { 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, -1.0f }

Defines default values to initialize DCL_PID_SPS.

◆ PID_DEFAULTS

#define PID_DEFAULTS
Value:
{ 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, \
1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f, \

Defines default values to initialize the DCL_PID structure.

◆ PID_INT_DEFAULTS

#define PID_INT_DEFAULTS
Value:
.d2=0.0f, .d3=0.0f, .i10=0.0f, .i14=1.0f, \

Macro for internal default values to initialize DCL_PID Example: DCL_PID pid_ctrl = { .Kp = 1.0f, .Ki = 0.0f, ... .Umin = -1.0f, PID_INT_DEFAULTS };.

◆ DCL_initPID

#define DCL_initPID ( )    &(DCL_PID)PID_DEFAULTS

Initialize DCL_PID struct with default parameters Example: DCL_PID* pid_ctrl = DCL_initPID();.

Returns
A DCL_PID* pointer

◆ DCL_initPIDasParam

#define DCL_initPIDasParam (   kp,
  ki,
  kd,
  kr,
  _c1,
  _c2,
  umax,
  umin 
)
Value:
&(DCL_PID){ .Kp=kp, .Ki=ki, .Kd=kd, .Kr=kr, \
.c1=_c1, .c2=_c2, .Umax=umax, .Umin=umin, PID_INT_DEFAULTS }

Initialize DCL_PID struct with input controller parameters Example: DCL_PID* pid_ctrl = DCL_initPIDasParam(1.0f,0.0f,0.0f,1.0f,1.0f,0.0f,1.0f,-1.0f); Note: input parameter needs to be in the same order as listed in PID_SPS struct.

Returns
A DCL_PID* pointer

◆ DCL_initPIDasSPS

#define DCL_initPIDasSPS (   pid_ptr,
  sps_ptr 
)
Value:
({ \
DCL_PID* new_pid = (pid_ptr) ? pid_ptr : DCL_initPID(); \
DCL_PID_SPS* new_sps = (sps_ptr) ? sps_ptr : &(DCL_PID_SPS)PID_SPS_DEFAULTS; \
if(sps_ptr) \
{ \
*new_pid = (DCL_PID){ (new_sps)->Kp, (new_sps)->Ki, (new_sps)->Kd,(new_sps)->Kr,\
(new_sps)->c1, (new_sps)->c2, (new_sps)->Umax, (new_sps)->Umin, 0.0f, 0.0f, \
0.0f, 1.0f, (DCL_PID_SPS*)new_sps, &(DCL_CSS)DCL_CSS_DEFAULTS }; \
} \
new_pid; \
})

Initialize DCL_PID struct with SPS parameters Example: DCL_PID_SPS pid_sps = { .Kp = , .Ki = , ...}; //initial parameter DCL_PID pid_ctrl; DCL_initPIasSPS(&pid_ctrl,&pid_sps); Note: The newly declared DCL_PID structure will use the SPS input parameter as its attribute for sps.

Parameters
[in]pid_ptrDCL_PID* pointer that needs to be initialized
[in]sps_ptrDCL_PID_SPS* pointer with assigned parameters
Returns
Returns DCL_PID* with set sps parameters, default parameter will be used if sps_ptr is not specified

◆ PIDF64_SPS_DEFAULTS

#define PIDF64_SPS_DEFAULTS   { 1.0L, 0.0L, 0.0L, 1.0L, 1.0L, 0.0L, 1.0L, -1.0L }

Defines default values to initialize the DCL_PIDF64 shadow structure.

◆ PIDF64_DEFAULTS

#define PIDF64_DEFAULTS
Value:
{ 1.0L, 0.0L, 0.0L, 1.0L, 1.0L, 0.0L, \
1.0L, -1.0L, 0.0L, 0.0L, 0.0L, 1.0L, \

Defines default values to initialize the DCL_PID64 active structure.

◆ PIDF64_INT_DEFAULTS

#define PIDF64_INT_DEFAULTS
Value:
.d2=0.0L, .d3=0.0L, .i10=0.0L, .i14=1.0L, \

Macro for internal default values to initialize DCL_PIDF64 Example: DCL_PIDF64 pid_ctrl = { .Kp = 1.0L, .Ki = 0.0L, ... .Umin = -1.0L, PIDF64_INT_DEFAULTS };.

◆ DCL_initPIDF64

#define DCL_initPIDF64 ( )    &(DCL_PIDF64)PIDF64_DEFAULTS

Initialize DCL_PIDF64 struct with default parameters Example: DCL_PIDF64* pid_ctrl = DCL_initPID();.

Returns
A DCL_PIDF64* pointer

◆ DCL_initPIDF64asParam

#define DCL_initPIDF64asParam (   kp,
  ki,
  kd,
  kr,
  _c1,
  _c2,
  umax,
  umin 
)
Value:
&(DCL_PIDF64){ .Kp=kp, .Ki=ki, .Kd=kd, .Kr=kr, \
.c1=_c1, .c2=_c2, .Umax=umax, .Umin=umin, PIDF64_INT_DEFAULTS }

Initialize DCL_PIDF64 struct with input controller parameters Example: DCL_PIDF64* pid_ctrl = DCL_initPIDF64asParam(1.0L,0.0L,0.0L,1.0L,1.0L,0.0L,1.0L,-1.0L); Note: input parameter needs to be in the same order as listed in PIDF64_SPS struct.

Returns
A DCL_PID* pointer

◆ DCL_initPIDF64asSPS

#define DCL_initPIDF64asSPS (   pid_ptr,
  sps_ptr 
)
Value:
({ \
DCL_PIDF64* new_pid = (pid_ptr) ? pid_ptr : DCL_initPID(); \
DCL_PIDF64_SPS* new_sps = (sps_ptr) ? sps_ptr : &(DCL_PIDF64_SPS)PID_SPS_DEFAULTS; \
if(sps_ptr) \
{ \
*new_pi = (DCL_PID){ (new_sps)->Kp, (new_sps)->Ki, (new_sps)->Kd,(new_sps)->Kr,\
(new_sps)->c1, (new_sps)->c2, (new_sps)->Umax, (new_sps)->Umin, 0.0L, 0.0L, \
0.0L, 1.0L,(DCL_PIDF64_SPS*)new_sps, &(DCL_CSS)DCL_CSS_DEFAULTS }; \
} \
new_pid; \
})

Initialize DCL_PIDF64 struct with sps parameters Example: DCL_PIDF64_SPS pid_sps = { .Kp = , .Ki = , ...}; //initial parameter DCL_PIDF64 pid_ctrl; DCL_initPIasSPS(&pid_ctrl,&pid_sps);.

Parameters
[in]pid_ptrDCL_PIDF64* pointer that needs to be initialized
[in]sps_ptrDCL_PIDF64_SPS* pointer with assigned parameters
Returns
Returns DCL_PID* with set sps parameters, default parameter will be used if sps_ptr is not specified

◆ DF11_SPS_DEFAULTS

#define DF11_SPS_DEFAULTS   { 0.5f, 0.5f, 1.0f }

◆ DF11_DEFAULTS

#define DF11_DEFAULTS
Value:
{ 0.5f, 0.5f, 1.0f, 0.0f, 0.0f, \

Defines default values to initialize DCL_DF11.

◆ DF11_INT_DEFAULTS

#define DF11_INT_DEFAULTS   .d1=0.0f, .d2=0.0f, .sps=&(DCL_DF11_SPS)DF11_SPS_DEFAULTS, .css=&(DCL_CSS)DCL_CSS_DEFAULTS

Macro for internal default values to initialize DCL_DF11 Example: DCL_DF11 df11_ctrl = { .b0 = 0.5f, .b1 = 0.5f, .a1 = 1.0f, DF11_INT_DEFAULTS };.

◆ DCL_initDF11

#define DCL_initDF11 ( )    &(DCL_DF11)DF11_DEFAULTS

Initialize DCL_DF11 struct with default parameters Example: DCL_DF11* df11_ctrl = DCL_initDF11();.

Returns
A DCL_DF11* pointer

◆ DCL_initDF11asParam

#define DCL_initDF11asParam (   _b0,
  _b1,
  _a1 
)
Value:
&(DCL_DF11){ .b0=_b0, .b1=_b1, .a1=_a1, \
DF11_INT_DEFAULTS }

Initialize DCL_DF11 struct with input compensator parameters Example: DCL_DF11* DF11_ctrl = DCL_initDF11asParam(0.5f,0.5f,1.0f); Note: input parameter needs to be in the same order as listed in DF11_SPS struct.

Returns
A DCL_DF11* pointer

◆ DCL_initDF11asSPS

#define DCL_initDF11asSPS (   df_ptr,
  sps_ptr 
)
Value:
({ \
DCL_DF11* new_df = (df_ptr) ? df_ptr : DCL_initDF11(); \
DCL_DF11_SPS* new_sps = (sps_ptr) ? sps_ptr : &(DCL_DF11_SPS)DF11_SPS_DEFAULTS;\
if(sps_ptr) \
{ \
*new_df = (DCL_DF11){ (new_sps)->b0, (new_sps)->b1, (new_sps)->a1, \
0.0f, 0.0f, (DCL_DF11_SPS*)new_sps, &(DCL_CSS)DCL_CSS_DEFAULTS }; \
} \
new_df; \
})

Initialize DCL_DF11 struct with sps parameters Example: DCL_DF11_SPS df_sps = { .b0 = , .b1 = , ...}; //initial parameter DCL_DF11 df_ctrl; DCL_initDF11asSPS(&df_ctrl,&df_sps);.

Parameters
[in]df_ptrDCL_DF11* pointer that needs to be initialized
[in]sps_ptrDCL_DF11_SPS* pointer with assigned parameters
Returns
DCL_DF11* Returns DCL_DF11* with set sps parameters, default parameter will be used if sps_ptr is not specified

◆ DF13_SPS_DEFAULTS

#define DF13_SPS_DEFAULTS   { 0.25f, 0.25f, 0.25f, 0.25f, 0.0f, 0.0f, 0.0f, 0.0f }

◆ DF13_DEFAULTS

#define DF13_DEFAULTS
Value:
{ 0.25f, 0.25f, 0.25f, 0.25f, 0.0f, 0.0f, 0.0f, \
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, \

Defines default values to initialize DCL_DF13.

◆ DF13_INT_DEFAULTS

#define DF13_INT_DEFAULTS
Value:
.d1=0.0f, .d2=0.0f, .d3=0.0f, .d4=0.0f, .d5=0.0f, \
.d6=0.0f, .a0=0.0f, .d0=0.0f, .d7=0.0f, \

Macro for internal default values to initialize DCL_DF13 Example: DCL_DF13 df13_ctrl = { .b0 = 0.25f, .b1 = 0.25f, ... .a3 = 0.0f, DF13_INT_DEFAULTS };.

◆ DCL_initDF13

#define DCL_initDF13 ( )    &(DCL_DF13)DF13_DEFAULTS

Initialize DCL_DF13 struct with default parameters Example: DCL_DF13* df13_ctrl = DCL_initDF13();.

Returns
A DCL_DF13* pointer

◆ DCL_initDF13asParam

#define DCL_initDF13asParam (   _b0,
  _b1,
  _b2,
  _b3,
  _a1,
  _a2,
  _a3 
)
Value:
&(DCL_DF13){ .b0=_b0, .b1=_b1, \
.b2=_b2, .b3=_b3, .a1=_a1, .a2=_a2, .a3=_a3, DF13_INT_DEFAULTS }

Initialize DCL_DF13 struct with input compensator parameters Example: DCL_DF13* DF13_ctrl = DCL_initDF13asParam(0.25f,0.25f,0.25f,0.25f,0.0f,0.0f,0.0f); Note: input parameter needs to be in the same order as listed in DF13_SPS struct.

Returns
A DCL_DF13* pointer

◆ DCL_initDF13asSPS

#define DCL_initDF13asSPS (   df_ptr,
  sps_ptr 
)
Value:
({ \
DCL_DF13* new_df = (df_ptr) ? df_ptr : DCL_initDF13(); \
DCL_DF13_SPS* new_sps = (sps_ptr) ? sps_ptr : &(DCL_DF13_SPS)DF13_SPS_DEFAULTS; \
if(sps_ptr) \
{ \
*new_df =(DCL_DF13){ (new_sps)->b0, (new_sps)->b1, (new_sps)->b2, (new_sps)->b3, \
(new_sps)->a1, (new_sps)->a2, (new_sps)->a3, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, \
0.0f, 0.0f, 0.0f, (DCL_DF13_SPS*)new_sps, &(DCL_CSS)DCL_CSS_DEFAULTS }; \
} \
new_df; \
})

Initialize DCL_DF13 struct with sps parameters Example: DCL_DF13_SPS df_sps = { .b0 = , .b1 = , ...}; //initial parameter DCL_DF13 df_ctrl; DCL_initDF13asSPS(&df_ctrl,&df_sps);.

Parameters
[in]df_ptrDCL_DF13* pointer that needs to be initialized
[in]sps_ptrDCL_DF13_SPS* pointer with assigned parameters
Returns
DCL_DF13* Returns DCL_DF13* with set sps parameters, default parameter will be used if sps_ptr is not specified

◆ DF22_SPS_DEFAULTS

#define DF22_SPS_DEFAULTS   { 1.0f, 0.0f, 0.0f, 0.0f, 0.0f }

◆ DF22_DEFAULTS

#define DF22_DEFAULTS
Value:
{ 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, \

Defines default values to initialize DCL_DF22.

◆ DF22_INT_DEFAULTS

#define DF22_INT_DEFAULTS
Value:
.x1=0.0f, .x2=0.0f, .sps=&(DCL_DF22_SPS)DF22_SPS_DEFAULTS, \

Macro for internal default values to initialize DCL_DF22 Example: DCL_DF22 df22_ctrl = { .b0 = 1.00f, .b1 = 0.0f, ... .a2 = 0.0f, DF22_INT_DEFAULTS };.

◆ DCL_initDF22

#define DCL_initDF22 ( )    &(DCL_DF22)DF22_DEFAULTS

Initialize DCL_DF22 struct with default parameters Example: DCL_DF22* df22_ctrl = DCL_initDF22();.

Returns
A DCL_DF22* pointer

◆ DCL_initDF22asParam

#define DCL_initDF22asParam (   _b0,
  _b1,
  _b2,
  _a1,
  _a2 
)
Value:
&(DCL_DF22){ .b0=_b0, .b1=_b1, \
.b2=_b2, .a1=_a1, .a2=_a2, .a3=_a3, DF22_INT_DEFAULTS }

Initialize DCL_DF22 struct with input compensator parameters Example: DCL_DF22 DF22_ctrl = DCL_initD22asParam(1.0f,0.0f,0.0f,0.0f,0.0f); Note: input parameter needs to be in the same order as listed in DF22_SPS struct.

Returns
A DCL_DF22* pointer

◆ DCL_initDF22asSPS

#define DCL_initDF22asSPS (   df_ptr,
  sps_ptr 
)
Value:
({ \
DCL_DF22* new_df = (df_ptr) ? df_ptr : DCL_initDF22(); \
DCL_DF22_SPS* new_sps = (sps_ptr) ? sps_ptr : &(DCL_DF22_SPS)DF22_SPS_DEFAULTS; \
if(sps_ptr) \
{ \
*new_df = (DCL_DF22){ (new_sps)->b0, (new_sps)->b1, (new_sps)->b2, (new_sps)->a1,\
(new_sps)->a2, 0.0f, 0.0f, (DCL_DF22_SPS*)new_sps, &(DCL_CSS)DCL_CSS_DEFAULTS }; \
} \
new_df; \
})

Initialize DCL_DF22 struct using sps parameters Example: DCL_DF22_SPS df_sps = { .b0 = , .b1 = , ...}; //initial parameter DCL_DF22 df_ctrl; DCL_initDF22asSPS(&df_ctrl,&df_sps);.

Parameters
[in]df_ptrDCL_DF22* pointer that needs to be initialized
[in]sps_ptrDCL_DF22_SPS* pointer with assigned parameters
Returns
Returns DCL_DF22* with set sps parameters, default parameter will be used if sps_ptr is not specified

◆ DF23_SPS_DEFAULTS

#define DF23_SPS_DEFAULTS   { 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }

◆ DF23_DEFAULTS

#define DF23_DEFAULTS
Value:
{ 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, \
0.0f, 0.0f, 0.0f, 0.0f, 0.0f, \

Defines default values to initialize DCL_DF23.

◆ DF23_INT_DEFAULTS

#define DF23_INT_DEFAULTS
Value:
.x1=0.0f, .x2=0.0f, .x3=0.0f, \

Macro for internal default values to initialize DCL_DF23 Example: DCL_DF23 df23_ctrl = { .b0 = 1.0f, .b1 = 0.0f, ... .a3 = 0.0f, DF23_INT_DEFAULTS };.

◆ DCL_initDF23

#define DCL_initDF23 ( )    &(DCL_DF23)DF23_DEFAULTS

Initialize DCL_DF23 struct with default parameters Example: DCL_DF23* df23_ctrl = DCL_initDF23();.

Returns
A DCL_DF23* pointer

◆ DCL_initDF23asParam

#define DCL_initDF23asParam (   _b0,
  _b1,
  _b2,
  _b3,
  _a1,
  _a2,
  _a3 
)
Value:
&(DCL_DF23){ .b0=_b0, .b1=_b1, \
.b2=_b2, .b3=_b3, .a1=_a1, .a2=_a2, .a3=_a3, DF23_INT_DEFAULTS }

Initialize DCL_DF23 struct with input compensator parameters Example: DCL_DF23* DF23_ctrl = DCL_initDF23asParam(1.0f,0.0f,0.0f,0.0f,0.0f,0.0f,0.0f); Note: input parameter needs to be in the same order as listed in DF23_SPS struct.

Returns
A DCL_DF23* pointer

◆ DCL_initDF23asSPS

#define DCL_initDF23asSPS (   df_ptr,
  sps_ptr 
)
Value:
({ \
DCL_DF23* new_df = (df_ptr) ? df_ptr : DCL_initDF23(); \
DCL_DF23_SPS* new_sps = (sps_ptr) ? sps_ptr : &(DCL_DF23_SPS)DF23_SPS_DEFAULTS;\
if(sps_ptr) \
{ \
*new_df = (DCL_DF23){ (new_sps)->b0, (new_sps)->b1, (new_sps)->b2, \
(new_sps)->b3,(new_sps)->a1, (new_sps)->a2, (new_sps)->a3, 0.0f, \
0.0f, 0.0f, (DCL_DF23_SPS*)new_sps, &(DCL_CSS)DCL_CSS_DEFAULTS }; \
} \
new_df; \
})

Initialize DCL_DF23 struct with sps parameters Example: DCL_DF23_SPS df_sps = { .b0 = , .b1 = , ...}; //initial parameter DCL_DF23 df_ctrl; DCL_initDF23asSPS(&df_ctrl,&df_sps);.

Parameters
[in]df_ptrDCL_DF23* pointer that needs to be initialized
[in]sps_ptrDCL_DF23_SPS* pointer with assigned parameters
Returns
Returns DCL_DF23* with set sps parameters, default parameter will be used if sps_ptr is not specified

◆ NULL

#define NULL   0

◆ CONST_PI

#define CONST_PI   3.14159265358979323846f

Local definitions of the mathematical constant pi.

◆ CONST_2PI

#define CONST_2PI   2.0f * CONST_PI

◆ CONST_PI_F64

#define CONST_PI_F64   3.1415926535897932384626433832795028841971693993751058209749445923078164062L

◆ CONST_2PI_F64

#define CONST_2PI_F64   2.0L * CONST_PI_F64

◆ DCL_FPU32_TOL

#define DCL_FPU32_TOL   1.0e-06f

Define the acceptable FPU numerical tolerances.

◆ DCL_FPU64_TOL

#define DCL_FPU64_TOL   1.0e-10L

◆ DCL_DEFAULT_PERIOD_S

#define DCL_DEFAULT_PERIOD_S   100.0e-06f

Define the default control period in seconds.

◆ DCL_DEFAULT_PERIODF64_S

#define DCL_DEFAULT_PERIODF64_S   100.0e-06L

◆ DCL_isValue

#define DCL_isValue (   x,
 
)    (((x < (y + DCL_FPU32_TOL)) && (x > (y - DCL_FPU32_TOL))) ? 1U : 0U)

Determines numerical proximity to specified value.

◆ DCL_isValueF64

#define DCL_isValueF64 (   x,
 
)    (((x < (y + DCL_FPU64_TOL)) && (x > (y - DCL_FPU64_TOL))) ? 1U : 0U)

◆ DCL_isZero

#define DCL_isZero (   x)    DCL_isValue(x,0.0f)

Determines floating point numerical proximity to zero.

◆ DCL_isZeroF64

#define DCL_isZeroF64 (   x)    DCL_isValueF64(x,0.0L)

◆ DCL_rand

#define DCL_rand (   a)    (a * ((float32_t) rand() / (float32_t) (RAND_MAX >> 1) - 1.0f))

Returns a random floating point result between -1.0 and +1.0 where 'a' is the multiplier in single or double precision. Useful for initialization of arrays and matrices during test.

float32_t s = DCL_rand(1.0f);

◆ DCL_randF64

#define DCL_randF64 (   a)    (a * ((float64_t) rand() / (float64_t) (RAND_MAX >> 1) - 1.0L))

◆ DCL_c2Limit

#define DCL_c2Limit   ((2.0f - CONST_PI) / (2.0f + CONST_PI))

Defines the lower limit on derivative filter coefficient c2 in order for fc to lie below the Nyquist frequency.

◆ DCL_c2LimitF64

#define DCL_c2LimitF64   ((2.0L - CONST_PI_F64) / (2.0L + CONST_PI_F64))

◆ DCL_runSat

#define DCL_runSat (   data,
  Umax,
  Umin 
)    (data > Umax) ? Umax : (data < Umin) ? Umin : data

Macro to saturate a control variable but does not change the data itself unlike runClamp()

Parameters
[in]dataThe data value
[in]UmaxThe upper limit
[in]UminThe lower limit
Returns
Returns unchanged data value is not saturated, else either Umax or Umin

◆ DCL_CSS_DEFAULTS

#define DCL_CSS_DEFAULTS   { 0.0f, DCL_DEFAULT_PERIOD_S, 0U, 0U, 0U, NULL }

Default values to initialize the CSS structure.

◆ DCL_CSSF64_DEFAULTS

#define DCL_CSSF64_DEFAULTS   { 0.0L, DCL_DEFAULT_PERIODF64_S, 0U, 0U, 0U, NULL }

Default values to initialize the CSS 64bit structure.

◆ DCL_setControllerPeriod

#define DCL_setControllerPeriod (   p,
  t_sec 
)    ((p)->css->T = t_sec)

Loads the controller period in the CSS CSS pointer must be configured first.

Parameters
[in]pPointer to the controller structure
[in]t_secController period in seconds
Returns
None

◆ DCL_setUpdateStatus

#define DCL_setUpdateStatus (   p)    ((p)->css->sts |= dcl_sts_param_update)

Macros to set and clear the update-in-progress flag.

◆ DCL_clearUpdateStatus

#define DCL_clearUpdateStatus (   p)    ((p)->css->sts &= ~dcl_sts_param_update)

◆ DCL_getUpdateStatus

#define DCL_getUpdateStatus (   p)    (0U != ((p)->css->sts & dcl_sts_param_update))

Determine whether a parameter update-in-progress flag is set.

Returns
'true' if update status is set, otherwise false

◆ DCL_getPendingStatus

#define DCL_getPendingStatus (   p)    (0U != ((p)->css->sts & dcl_sts_param_pending))

Determine whether a parameter pending-for-update flag is set.

Returns
'true' if pending status is set, otherwise false

◆ DCL_setControllerStatus

#define DCL_setControllerStatus (   p)    ((p)->css->sts |= dcl_sts_ctrl_running)

Macros placed at the beginning and end of the controller so that other functions know a control operation is in progress. Typically only used with complex controllers which may not be atomic.

◆ DCL_clearControllerStatus

#define DCL_clearControllerStatus (   p)    ((p)->css->sts &= ~dcl_sts_ctrl_running)

◆ DCL_getControllerStatus

#define DCL_getControllerStatus (   p)    (0U != ((p)->css->sts & dcl_sts_ctrl_running))

Determine whether a controller operation-in-progress flag is set.

Returns
'true' if controller running flag is set, otherwise false

◆ ZPK3_DEFAULTS

#define ZPK3_DEFAULTS
Value:
{ 0.0f + 0.0f*I, 0.0f + 0.0f*I, 0.0f + 0.0f*I, \
0.0f + 0.0f*I, 0.0f + 0.0f*I, 0.0f + 0.0f*I, \
1.0f }

Defines default values to initialize the DCL_ZPK3 structure.

◆ DCL_clearError

#define DCL_clearError (   ptr)    ((ptr)->css->err = dcl_none)

Macro to clear stored error code in CSS.

Parameters
[in]ptrDCL controller object that contains css

◆ DCL_setError

#define DCL_setError (   ptr,
  code 
)    ((ptr)->css->err |= code)

Macro to set error code in CSS.

Parameters
[in]ptrDCL controller object that contains css
[in]codeenum dcl_error_codes

◆ DCL_getErrorLine

#define DCL_getErrorLine (   ptr)    ((ptr)->css->err_line = ((ptr)->css->err) ? __LINE__ : 0)

Macro to store line location of error in CSS.

Parameters
[in]ptrDCL controller object that contains css

◆ DCL_getErrorFunc

#define DCL_getErrorFunc (   ptr)    ((ptr)->css->err_func = ((ptr)->css->err) ? __FUNCTION__ : NULL)

Macro to store function location of error in CSS.

Parameters
[in]ptrDCL controller object that contains css

◆ DCL_getErrorInfo

#define DCL_getErrorInfo (   ptr)
Value:
{ \
DCL_getErrorLine(ptr); \
DCL_getErrorFunc(ptr); \
}

Macro to store error info in CSS.

Parameters
[in]ptrDCL controller object that contains css

◆ DCL_runErrorHandler

#define DCL_runErrorHandler (   ptr)
Value:
{ \
if(dcl_none != ptr->css->err)\
{ \
DCL_setBreakPoint(); \
DCL_clearError(ptr); \
} \
}

Prototype for basic error handler.

Parameters
[in]ptrDCL controller object that contains css

◆ DCL_getLogSize

#define DCL_getLogSize (   buf)    ((buf)->size)

Obtain the total size of buffer.

Parameters
[in]bufPointer to DCL_FDLOG
Returns
uint32_t size

◆ DCL_getLogIndex

#define DCL_getLogIndex (   buf)    ((uint32_t)((buf)->dptr - (buf)->fptr))

Index of the current pointer (zero-indexed)

Parameters
[in]bufPointer to DCL_FDLOG
Returns
uint32_t index

◆ DCL_getLogRemain

#define DCL_getLogRemain (   buf)    ((buf)->size - DCL_getLogIndex(buf))

Remaining space left from indexed pointer to end of buffer.

Parameters
[in]bufPointer to DCL_FDLOG
Returns
uint32_t remain

◆ DCL_clearLog

#define DCL_clearLog (   buf)    DCL_fillLog(buf,0)

Clears the buffer contents by writing 0 to all elements and resets the data index pointer to the start of the buffer.

Typedef Documentation

◆ float32_t

typedef float float32_t

Defines single,double precision data type. Note: Assumes ABI to be TI_EABI, does not support legacy TI_COFF.

◆ float64_t

typedef double float64_t

◆ dcl_interrupt_t

typedef uint32_t dcl_interrupt_t

◆ DCL_PI

typedef _DCL_VOLATILE struct dcl_pi DCL_PI

◆ PI_Handle

typedef _DCL_VOLATILE struct dcl_pi * PI_Handle

◆ DCL_PI2

typedef _DCL_VOLATILE struct dcl_pi2 DCL_PI2

◆ PI2_Handle

typedef _DCL_VOLATILE struct dcl_pi2 * PI2_Handle

◆ DCL_PID

typedef _DCL_VOLATILE struct dcl_pid DCL_PID

◆ PID_Handle

typedef _DCL_VOLATILE struct dcl_pid * PID_Handle

◆ DCL_PIDF64

◆ PIDF64_Handle

◆ DCL_DF11

◆ DF11_Handle

◆ DCL_DF13

◆ DF13_Handle

◆ DCL_DF22

◆ DF22_Handle

◆ DCL_DF23

◆ DF23_Handle

◆ DCL_FDLOG

Enumeration Type Documentation

◆ dcl_status_bits

Defines the library enumerated status bits.

To perform a safe parameter update, the user first loads new parameter into the controller's SPS. Then either invoke DCL_update() for an one-time update, or in the case of an ISR routine update, the user could use DCL_setPendingStatus() to indicate an pending update. In which the next call to DCL_pendingUpdate() would update the controller parameter and clear the flag.

Both DCL_update() and DCL_pendingUpdate() disables global interrupts to ensure a safe update.

Enumerator
dcl_sts_none 

Status empty.

dcl_sts_param_update 

Parameter update-in-progress flag, high if ongoing parameter update.

dcl_sts_ctrl_running 

Controller operation-in-progress flag, high if operation is in progress.

◆ dcl_error_codes

Defines the library enumerated error codes. These will be applied as bit masks in the error handler.

Enumerator
dcl_none 

No error.

dcl_param_range_err 

Parameter range exceeded.

dcl_param_invalid_err 

Parameter not valid.

dcl_param_warn_err 

Parameter warning.

dcl_input_range_err 

Input range exceeded.

dcl_overflow_err 

Numerical overflow.

dcl_underflow_err 

Numerical underflow

dcl_controller_err 

Controller operation not completed.

dcl_timing_err 

Timing error.

Function Documentation

◆ DCL_resetPI()

_DCL_CODE_ACCESS void DCL_resetPI ( DCL_PI pi)

Resets PI internal storage data with interrupt protection.

Parameters
[in]piPointer to the DCL_PI structure

◆ DCL_forceUpdatePI()

_DCL_CODE_ACCESS void DCL_forceUpdatePI ( DCL_PI pi)

Loads PI tuning parameter from its SPS parameter without interrupt protection

Parameters
[in]piPointer to the DCL_PI controller structure

◆ DCL_updatePINoCheck()

_DCL_CODE_ACCESS _DCL_CODE_SECTION void DCL_updatePINoCheck ( DCL_PI pi)

Loads PI tuning parameter from its SPS parameter with interrupt protection.

Parameters
[in]piPointer to the DCL_PI controller structure

◆ DCL_updatePI()

_DCL_CODE_ACCESS _DCL_CODE_SECTION bool DCL_updatePI ( DCL_PI pi)

A conditional update based on the update flag. If the update status is set, the function will update PI parameter from its SPS parameter and clear the status flag on completion. Note: Use DCL_setUpdateStatus(pi) to set the update status.

Parameters
[in]piPointer to the DCL_PI controller structure
Returns
'true' if an update is applied, otherwise 'false'

◆ DCL_loadSeriesPIasZPK()

_DCL_CODE_ACCESS void DCL_loadSeriesPIasZPK ( DCL_PI pi,
DCL_ZPK3 zpk 
)

Configures a series PI controller in "zero-pole-gain" form Note: Sampling period pi->css->T are used in the calculation. New settings take effect after DCL_updatePI(). Only z1 considered in DCL_ZPK3, other poles & zeros ignored. Zero frequency assumed to be in radians/sec.

Parameters
[in]piPointer to the DCL_PI controller structure
[in]zpkPointer to the ZPK3 structure

◆ DCL_loadParallelPIasZPK()

_DCL_CODE_ACCESS void DCL_loadParallelPIasZPK ( DCL_PI pi,
DCL_ZPK3 zpk 
)

Configures a parallel PI controller in "zero-pole-gain" form Note: Sampling period pi->css->T are used in the calculation. New settings take effect after DCL_updatePI(). Zero frequency assumed to be in radians/sec.

Parameters
[in]piPointer to the active DCL_PI controller structure
[in]zpkPointer to the ZPK3 structure

◆ DCL_runPISeries()

_DCL_CODE_ACCESS _DCL_CODE_SECTION float32_t DCL_runPISeries ( DCL_PI pi,
float32_t  rk,
float32_t  yk 
)

Executes an inline series form PI controller.

Parameters
[in]piPointer to the DCL_PI structure
[in]rkThe controller set-point reference
[in]ykThe measured feedback value
Returns
The control effort

◆ DCL_runPIParallel()

_DCL_CODE_ACCESS _DCL_CODE_SECTION float32_t DCL_runPIParallel ( DCL_PI pi,
float32_t  rk,
float32_t  yk 
)

Executes a parallel form PI controller Implemented as inline C function.

Parameters
[in]piPointer to the DCL_PI structure
[in]rkThe controller set-point reference
[in]ykThe measured feedback value
Returns
The control effort

◆ DCL_runPIParallelEnhanced()

_DCL_CODE_ACCESS _DCL_CODE_SECTION float32_t DCL_runPIParallelEnhanced ( DCL_PI pi,
float32_t  rk,
float32_t  yk 
)

Executes a parallel form PI controller with enhanced anti-windup logic incorporating an addintional integrator saturation clamp.

Parameters
[in]piPointer to the DCL_PI structure
[in]rkThe controller set-point reference
[in]ykThe measured feedback value
Returns
The control effort

◆ DCL_runPISeriesTustin()

_DCL_CODE_ACCESS _DCL_CODE_SECTION float32_t DCL_runPISeriesTustin ( DCL_PI pi,
float32_t  rk,
float32_t  yk 
)

Executes a series form PI controller with Tustin integrator.

Parameters
[in]piPointer to the DCL_PI structure
[in]rkThe controller set-point reference
[in]ykThe measured feedback value
Returns
The control effort

◆ DCL_resetPI2()

_DCL_CODE_ACCESS void DCL_resetPI2 ( DCL_PI2 pi2)

Resets PI2 internal storage data with interrupt protection.

Parameters
[in]pi2Pointer to the DCL_PI2 structure

◆ DCL_forceUpdatePI2()

_DCL_CODE_ACCESS void DCL_forceUpdatePI2 ( DCL_PI2 pi2)

Loads PI2 tuning parameter from its SPS parameter without interrupt protection.

Parameters
[in]pi2Pointer to the DCL_PI2 controller structure

◆ DCL_updatePI2NoCheck()

_DCL_CODE_ACCESS _DCL_CODE_SECTION void DCL_updatePI2NoCheck ( DCL_PI2 pi2)

Loads PI2 tuning parameter from its SPS parameter with interrupt protection.

Parameters
[in]pi2Pointer to the DCL_PI2 controller structure

◆ DCL_updatePI2()

_DCL_CODE_ACCESS _DCL_CODE_SECTION bool DCL_updatePI2 ( DCL_PI2 pi2)

A conditional update based on the update flag. If the update status is set, the function will update PI2 parameter from its SPS parameter and clear the status flag on completion. Note: Use DCL_setUpdateStatus(pi2) to set the update status.

Parameters
[in]pi2Pointer to the DCL_PI2 controller structure
Returns
'true' if an update is applied, otherwise 'false'

◆ DCL_runPI2Series()

_DCL_CODE_ACCESS _DCL_CODE_SECTION float32_t DCL_runPI2Series ( DCL_PI2 pi2,
float32_t  rk,
float32_t  yk 
)

Executes an inline series form PI2 controller on the FPU32.

Parameters
[in]pi2Pointer to the DCL_PI2 structure
[in]rkThe controller set-point reference
[in]ykThe measured feedback
Returns
The control effort

◆ DCL_resetPID()

_DCL_CODE_ACCESS void DCL_resetPID ( DCL_PID pid)

Resets PID internal storage data with interrupt protection.

Parameters
[in]pidPointer to the DCL_PID structure

◆ DCL_forceUpdatePID()

_DCL_CODE_ACCESS void DCL_forceUpdatePID ( DCL_PID pid)

Loads PID tuning parameter from its SPS parameter without interrupt protection.

Parameters
[in]pidPointer to the active DCL_PID controller structure

◆ DCL_updatePIDNoCheck()

_DCL_CODE_ACCESS _DCL_CODE_SECTION void DCL_updatePIDNoCheck ( DCL_PID pid)

Loads PID tuning parameter from its SPS parameter with interrupt protection.

Parameters
[in]pidPointer to the active DCL_PID controller structure

◆ DCL_updatePID()

_DCL_CODE_ACCESS _DCL_CODE_SECTION bool DCL_updatePID ( DCL_PID pid)

A conditional update based on the update flag. If the update status is set, the function will update PID parameter from its SPS parameter and clear the status flag on completion. Note: Use DCL_getUpdateStatus(pid) to set the update status.

Parameters
[in]pidPointer to the DCL_PID controller structure
Returns
'true' if an update is applied, otherwise 'false'

◆ DCL_setPIDfilterBW()

_DCL_CODE_ACCESS void DCL_setPIDfilterBW ( DCL_PID pid,
float32_t  fc 
)

Loads the derivative path filter shadow coefficients. Note: Sampling period pid->css->T are used in the calculation. New coefficients take effect when DCL_updatePID() is called.

Parameters
[in]pidPointer to the DCL_PID structure
[in]fcThe desired filter bandwidth in Hz

◆ DCL_setActivePIDfilterBW()

_DCL_CODE_ACCESS void DCL_setActivePIDfilterBW ( DCL_PID pid,
float32_t  fc,
float32_t  T 
)

Loads the PID derivative path filter active coefficients Note: Sampling period pid->css->T are used in the calculation. New coefficients take effect immediately. SPS & CSS contents are unaffected.

Parameters
[in]pidPointer to the DCL_PID structure
[in]fcThe desired filter bandwidth in Hz
[in]TThe controller update rate in seconds

◆ DCL_getPIDfilterBW()

_DCL_CODE_ACCESS float32_t DCL_getPIDfilterBW ( DCL_PID pid)

Calculates the active derivative path filter bandwidth in Hz. Note: Sampling period pid->css->T are used in the calculation.

Parameters
[in]pidPointer to the DCL_PID structure
Returns
The filter bandwidth in Hz

◆ DCL_loadSeriesPIDasZPK()

_DCL_CODE_ACCESS void DCL_loadSeriesPIDasZPK ( DCL_PID pid,
DCL_ZPK3 zpk 
)

Configures a series PID controller parameter in ZPK form. Note: Sampling period pid->css->T are used in the calculation. Parameters take effect after call to DCL_updatePID(). Only z1, z2 & p2 considered, p1 = 0 assumed.

Parameters
[in]pidPointer to the active DCL_PID controller structure
[in]zpkPointer to the DCL_ZPK3 structure

◆ DCL_loadParallelPIDasZPK()

_DCL_CODE_ACCESS void DCL_loadParallelPIDasZPK ( DCL_PID pid,
DCL_ZPK3 zpk 
)

Configures a parallel PID controller in ZPK form. Note: Sampling period pid->css->T are used in the calculation. Parameters take effect after call to DCL_updatePID(). Only z1, z2 & p2 considered, p1 = 0 assumed.

Parameters
[in]pidPointer to the active DCL_PID controller structure
[in]zpkPointer to the DCL_ZPK3 structure

◆ DCL_runPIDSeries()

_DCL_CODE_ACCESS _DCL_CODE_SECTION float32_t DCL_runPIDSeries ( DCL_PID pid,
float32_t  rk,
float32_t  yk,
float32_t  lk 
)

Executes an ideal form PID controller.

Parameters
[in]pidPointer to the DCL_PID structure
[in]rkThe controller set-point reference
[in]ykThe measured feedback value
[in]lkExternal output clamp flag
Returns
The control effort

◆ DCL_runPIDParallel()

_DCL_CODE_ACCESS _DCL_CODE_SECTION float32_t DCL_runPIDParallel ( DCL_PID pid,
float32_t  rk,
float32_t  yk,
float32_t  lk 
)

Executes a parallel form PID controller.

Parameters
[in]pidPointer to the DCL_PID structure
[in]rkThe controller set-point reference
[in]ykThe measured feedback value
[in]lkExternal output clamp flag
Returns
The control effort

◆ DCL_resetPIDF64()

_DCL_CODE_ACCESS void DCL_resetPIDF64 ( DCL_PIDF64 pid)

Resets PID64 internal storage data with interrupt protection.

Parameters
[in]pidPointer to the DCL_PID64 structure

◆ DCL_forceUpdatePIDF64()

_DCL_CODE_ACCESS void DCL_forceUpdatePIDF64 ( DCL_PIDF64 pid)

Loads PIDF64 tuning parameter from its SPS parameter without interrupt protection.

Parameters
[in]pidPointer to the active DCL_PID64 controller structure

◆ DCL_updatePIDF64NoCheck()

_DCL_CODE_ACCESS void DCL_updatePIDF64NoCheck ( DCL_PIDF64 pid)

Updates PID parameter from its SPS parameter with interrupt protection.

Parameters
[in]pidPointer to the DCL_PID64 controller structure

◆ DCL_updatePIDF64()

_DCL_CODE_ACCESS bool DCL_updatePIDF64 ( DCL_PIDF64 pid)

A conditional update based on the update flag. If the update status is set, the function will update PIDF64 parameter from its SPS parameter and clear the status flag on completion. Note: Use DCL_setUpdateStatus(pid) to set the pending status.

Parameters
[in]pidPointer to the DCL_PIDF64 controller structure
Returns
'true' if an update is applied, otherwise 'false'

◆ DCL_setPIDF64filterBW()

_DCL_CODE_ACCESS void DCL_setPIDF64filterBW ( DCL_PIDF64 pid,
float64_t  fc 
)

Loads the derivative path filter shadow coefficients Note: Sampling period pid->css->T are used in the calculation Note: new coefficients take effect when DCL_updatePID64() is called.

Parameters
[in]pidPointer to the DCL_PID64 structure
[in]fcThe desired filter bandwidth in Hz

◆ DCL_setActivePIDF64filterBW()

_DCL_CODE_ACCESS void DCL_setActivePIDF64filterBW ( DCL_PIDF64 pid,
float64_t  fc,
float64_t  T 
)

Loads the PID64 derivative path filter active coefficients Note: new coefficients take effect immediately. SPS & CSS contents are unaffected.

Parameters
[in]pidPointer to the DCL_PID64 structure
[in]fcThe desired filter bandwidth in Hz
[in]TThe controller period in seconds

◆ DCL_getPIDF64filterBW()

_DCL_CODE_ACCESS float64_t DCL_getPIDF64filterBW ( DCL_PIDF64 pid)

Returns the active derivative path filter bandwidth in Hz Note: Sampling period pid->css->T are used in the calculation.

Parameters
[in]pidPointer to the DCL_PID64 structure
Returns
The filter bandwidth in Hz

◆ DCL_runPIDF64Series()

_DCL_CODE_ACCESS float64_t DCL_runPIDF64Series ( DCL_PIDF64 pid,
float64_t  rk,
float64_t  yk,
float64_t  lk 
)

Executes an ideal form PID64 controller.

Parameters
[in]pidPointer to the DCL_PID64 structure
[in]rkThe controller set-point reference
[in]ykThe measured feedback value
[in]lkExternal output clamp flag
Returns
The control effort

◆ DCL_runPIDF64Parallel()

_DCL_CODE_ACCESS float64_t DCL_runPIDF64Parallel ( DCL_PIDF64 pid,
float64_t  rk,
float64_t  yk,
float64_t  lk 
)

Executes an parallel form PID64 controller.

Parameters
[in]pidPointer to the DCL_PID64 structure
[in]rkThe controller set-point reference
[in]ykThe measured feedback value
[in]lkExternal output clamp flag
Returns
The control effort

◆ DCL_resetDF11()

_DCL_CODE_ACCESS void DCL_resetDF11 ( DCL_DF11 df)

Resets DF11 internal storage data with interrupt protection.

Parameters
[in]dfPointer to the DCL_DF11 structure

◆ DCL_forceUpdateDF11()

_DCL_CODE_ACCESS void DCL_forceUpdateDF11 ( DCL_DF11 df)

Loads DF11 tuning parameter from its SPS parameter without interrupt protection.

Parameters
[in]dfPointer to the active DCL_DF11 controller structure

◆ DCL_updateDF11NoCheck()

_DCL_CODE_ACCESS _DCL_CODE_SECTION void DCL_updateDF11NoCheck ( DCL_DF11 df)

Loads DF11 tuning parameter from its SPS parameter with interrupt protection.

Parameters
[in]dfPointer to the DCL_DF11 controller structure

◆ DCL_updateDF11()

_DCL_CODE_ACCESS _DCL_CODE_SECTION bool DCL_updateDF11 ( DCL_DF11 df)

A conditional update based on the update flag. If the update status is set, the function will update DF11 parameter from its SPS parameter and clear the status flag on completion. Note: Use DCL_setUpdateStatus(df) to set the update status.

Parameters
[in]dfPointer to the DCL_DF11 controller structure
Returns
'true' if an update is applied, otherwise 'false'

◆ DCL_isStableDF11()

_DCL_CODE_ACCESS bool DCL_isStableDF11 ( DCL_DF11 df)

Determines stability of the shadow DF11 compensator.

Parameters
[in]dfPointer to the DCL_DF11 controller structure
Returns
'true' if the pole has magnitude less than 1, 'false' otherwise

◆ DCL_loadDF11asZPK()

_DCL_CODE_ACCESS void DCL_loadDF11asZPK ( DCL_DF11 df,
DCL_ZPK3 zpk 
)

Loads the DF11 shadow coefficients from a ZPK3 description Note: Sampling period df->css->T are used in the calculation. New settings take effect after DCL_updateDF11(). Only real z1 & p1 considered, all other roots ignored.

Parameters
[in]dfPointer to the DCL_DF11 controller structure
[in]zpkPointer to the ZPK3 structure

◆ DCL_loadDF11asPI()

_DCL_CODE_ACCESS void DCL_loadDF11asPI ( DCL_DF11 df,
float32_t  Kp,
float32_t  Ki 
)

Loads compensator coefficients to emulate series form PI Note: Sampling period df->css->T are used in the calculation. New settings take effect after DCL_updateDF11().

Parameters
[in]dfPointer to the DCL_DF11 controller structure
[in]KpProportional gain
[in]KiIntegral gain

◆ DCL_runDF11()

Executes a 1st order Direct Form 1 controller.

Parameters
[in]dfPointer to the DCL_DF11 controller structure
[in]ekThe servo error
Returns
uk The control effort

◆ DCL_resetDF13()

_DCL_CODE_ACCESS void DCL_resetDF13 ( DCL_DF13 df)

Resets DF13 internal storage data with interrupt protection Implemented as inline C function.

Parameters
[in]dfPointer to the DCL_DF13 controller structure

◆ DCL_forceUpdateDF13()

_DCL_CODE_ACCESS void DCL_forceUpdateDF13 ( DCL_DF13 df)

Loads DF13 tuning parameter from its SPS parameter without interrupt protection.

Parameters
[in]dfPointer to the active DCL_DF13 controller structure

◆ DCL_updateDF13NoCheck()

_DCL_CODE_ACCESS _DCL_CODE_SECTION void DCL_updateDF13NoCheck ( DCL_DF13 df)

Loads DF13 tuning parameter from its SPS parameter with interrupt protection.

Parameters
[in]dfPointer to the DCL_DF13 controller structure

◆ DCL_updateDF13()

_DCL_CODE_ACCESS _DCL_CODE_SECTION bool DCL_updateDF13 ( DCL_DF13 df)

A conditional update based on the update flag. If the update status is set, the function will update DF13 parameter from its SPS parameter and clear the status flag on completion.. Note: Use DCL_setUpdateStatus(df) to set the update status.

Parameters
[in]dfPointer to the DCL_DF13 controller structure
Returns
'true' if an update is applied, otherwise 'false'

◆ DCL_isStableDF13()

_DCL_CODE_ACCESS bool DCL_isStableDF13 ( DCL_DF13 df)

Determines stability of the shadow compensator.

Parameters
[in]dfPointer to the DCL_DF13 controller structure
Returns
'true' if all poles have magnitude less than 1, 'false' otherwise

◆ DCL_loadDF13asZPK()

_DCL_CODE_ACCESS void DCL_loadDF13asZPK ( DCL_DF13 df,
DCL_ZPK3 zpk 
)

Loads the DF13 shadow coefficients from a ZPK3 description. Note: Sampling period df->css->T are used in the calculation. New settings take effect after DCL_updateDF13().

Parameters
[in]dfPointer to the DCL_DF13 controller structure
[in]zpkPointer to the DCL_ZPK3 structure

◆ DCL_runDF13()

Executes a 3rd order Direct Form 1 controller.

Parameters
[in]dfPointer to the DCL_DF13 controller structure
[in]ekThe servo error
Returns
The control effort

◆ DCL_runDF13PartialCompute()

_DCL_CODE_ACCESS float32_t DCL_runDF13PartialCompute ( DCL_DF13 df,
float32_t  ek 
)

Immediate computation to obtain DF13 servo error without updating the controller.

Parameters
[in]dfPointer to the DCL_DF13 controller structure
[in]ekThe servo error
Returns
The control effort

◆ DCL_runDF13PartialUpdate()

_DCL_CODE_ACCESS void DCL_runDF13PartialUpdate ( DCL_DF13 df,
float32_t  ek,
float32_t  uk 
)

Update DF13 controller based on pre-computed control effort.

Parameters
[in]dfPointer to the DCL_DF13 controller structure
[in]ekThe servo error
[in]ukThe controller output in the previous sample interval

◆ DCL_runDF13Clamp()

_DCL_CODE_ACCESS _DCL_CODE_SECTION float32_t DCL_runDF13Clamp ( DCL_DF13 df,
float32_t  ek,
float32_t  Umax,
float32_t  Umin 
)

Executes a 3rd order Direct Form 1 controller with clamp.

Parameters
[in]dfPointer to the DCL_DF13 controller structure
[in]ekThe servo error
[in]UmaxUpper saturation limit
[in]UminLower saturation limit
Returns
uk The control effort

◆ DCL_runDF13_C5()

_DCL_CODE_ACCESS float32_t DCL_runDF13_C5 ( DCL_DF13 p,
float32_t  ek,
float32_t  vk 
)

Legacy C28 Function for maintaining backwards compatibility. It Executes an immediate 3rd order Direct Form 1 controller.

Parameters
[in]pPointer to the DCL_DF13 controller structure
[in]ekThe servo error
[in]vkThe partial pre-computed control effort
Returns
uk The control effort

◆ DCL_runDF13_C6()

_DCL_CODE_ACCESS float32_t DCL_runDF13_C6 ( DCL_DF13 p,
float32_t  ek,
float32_t  uk 
)

Legacy C28 Function for maintaining backwards compatibility. It executes a partial pre-computed 3rd order Direct Form 1 controller.

Parameters
[in]pPointer to the DCL_DF13 controller structure
[in]ekThe servo error
[in]ukThe controller output in the previous sample interval
Returns
vk The control effort

◆ DCL_resetDF22()

_DCL_CODE_ACCESS void DCL_resetDF22 ( DCL_DF22 df)

Resets DF22 internal storage data with interrupt protection.

Parameters
[in]dfPointer to the DCL_DF22 controller structure

◆ DCL_forceUpdateDF22()

_DCL_CODE_ACCESS void DCL_forceUpdateDF22 ( DCL_DF22 df)

Loads DF22 tuning parameter from its SPS parameter without interrupt protection.

Parameters
[in]dfPointer to the active DCL_DF22 controller structure

◆ DCL_updateDF22NoCheck()

_DCL_CODE_ACCESS _DCL_CODE_SECTION void DCL_updateDF22NoCheck ( DCL_DF22 df)

Loads DF22 tuning parameter from its SPS parameter with interrupt protection.

Parameters
[in]dfPointer to the DCL_DF22 controller structure

◆ DCL_updateDF22()

_DCL_CODE_ACCESS _DCL_CODE_SECTION bool DCL_updateDF22 ( DCL_DF22 df)

A conditional update based on the update flag. If the update status is set, the function will update DF22 parameter from its SPS parameter and clear the status flag on completion. Note: Use DCL_setUpdateStatus(df) to set the update status.

Parameters
[in]dfPointer to the DCL_DF22 controller structure
Returns
'true' if an update is applied, otherwise 'false'

◆ DCL_isStableDF22()

_DCL_CODE_ACCESS bool DCL_isStableDF22 ( DCL_DF22 df)

Determines stability of the shadow compensator.

Parameters
[in]dfPointer to the DCL_DF22 controller structure
Returns
'true' if both poles have magnitude less than 1, 'false' otherwise

◆ DCL_loadDF22asZPK()

_DCL_CODE_ACCESS void DCL_loadDF22asZPK ( DCL_DF22 df,
DCL_ZPK3 zpk 
)

Loads the DF22 shadow coefficients from a ZPK3 description Note: Sampling period df->css->T are used in the calculation. New settings take effect after DCL_updateDF22(). Only z1, z2, p1 & p2 are considered, z3 & p3 are ignored.

Parameters
[in]dfPointer to the DCL_DF22 controller structure
[in]zpkPointer to the DCL_ZPK3 structure

◆ DCL_loadDF22asZwn()

_DCL_CODE_ACCESS void DCL_loadDF22asZwn ( DCL_DF22 df,
float32_t  z,
float32_t  wn 
)

Loads the DF22 shadow coefficients from damping ratio and un-damped natural frequency using sample rate in CSS. Note: Sampling period df->css->T are used in the calculation. New settings take effect after DCL_updateDF22().

Parameters
[in]dfPointer to the DCL_DF22 controller structure
[in]zThe damping ratio
[in]wnThe un-damped natural frequency in rad/s

◆ DCL_loadDF22asSeriesPID()

_DCL_CODE_ACCESS void DCL_loadDF22asSeriesPID ( DCL_DF22 df,
float32_t  Kp,
float32_t  Ki,
float32_t  Kd,
float32_t  fc 
)

Loads the shadow DF22 compensator coefficients to emulate a series form PID. Note: Sampling period df->css->T are used in the calculation. New settings take effect after DCL_updateDF22().

Parameters
[in]dfPointer to the DCL_DF22 controller structure
[in]KpProportional gain
[in]KiIntegral gain
[in]KdDerivative gain
[in]fcDerivative path filter bandwidth in Hz

◆ DCL_loadDF22asParallelPID()

_DCL_CODE_ACCESS void DCL_loadDF22asParallelPID ( DCL_DF22 df,
float32_t  Kp,
float32_t  Ki,
float32_t  Kd,
float32_t  fc 
)

Loads the shadow DF22 compensator coefficients to emulate a parallel form PID. Note: Sampling period df->css->T are used in the calculation. New settings take effect after DCL_updateDF22().

Parameters
[in]dfPointer to the DCL_DF22 controller structure
[in]KpProportional gain
[in]KiIntegral gain
[in]KdDerivative gain
[in]fcDerivative path filter bandwidth in Hz

◆ DCL_runDF22()

Executes a 2nd order Direct Form 2 controller.

Parameters
[in]dfPointer to the DCL_DF22 controller structure
[in]ekThe servo error
Returns
The control effort

◆ DCL_runDF22PartialCompute()

_DCL_CODE_ACCESS float32_t DCL_runDF22PartialCompute ( DCL_DF22 df,
float32_t  ek 
)

Immediate computation to obtain DF22 servo error without updating the controller.

Parameters
[in]dfPointer to the DCL_DF22 controller structure
[in]ekThe servo error
Returns
The control effort

◆ DCL_runDF22PartialUpdate()

_DCL_CODE_ACCESS void DCL_runDF22PartialUpdate ( DCL_DF22 df,
float32_t  ek,
float32_t  uk 
)

Update DF22 controller based on pre-computed control effort.

Parameters
[in]dfPointer to the DCL_DF22 controller structure
[in]ekThe servo error
[in]ukThe controller output in the previous sample interval

◆ DCL_runDF22Clamp()

_DCL_CODE_ACCESS _DCL_CODE_SECTION float32_t DCL_runDF22Clamp ( DCL_DF22 df,
float32_t  ek,
float32_t  Umax,
float32_t  Umin 
)

Executes a 2nd order Direct Form 2 controller with clamp.

Parameters
[in]dfPointer to the DCL_DF22 controller structure
[in]ekThe servo error
[in]UmaxUpper saturation limit
[in]UminLower saturation limit
Returns
The control effort

◆ DCL_resetDF23()

_DCL_CODE_ACCESS void DCL_resetDF23 ( DCL_DF23 df)

Resets DF23 internal storage data with interrupt protection.

Parameters
[in]dfPointer to the DCL_DF23 controller structure

◆ DCL_forceUpdateDF23()

_DCL_CODE_ACCESS void DCL_forceUpdateDF23 ( DCL_DF23 df)

Loads DF23 tuning parameter from its SPS parameter without interrupt protection.

Parameters
[in]dfPointer to the active DCL_DF23 controller structure

◆ DCL_updateDF23NoCheck()

_DCL_CODE_ACCESS _DCL_CODE_SECTION void DCL_updateDF23NoCheck ( DCL_DF23 df)

Updates DF23 parameter from its SPS parameter with interrupt protection.

Parameters
[in]dfPointer to the DCL_DF23 controller structure

◆ DCL_updateDF23()

_DCL_CODE_ACCESS _DCL_CODE_SECTION bool DCL_updateDF23 ( DCL_DF23 df)

A conditional update based on the update flag. If the update status is set, the function will update DF23 parameter from its SPS parameter and clear the status flag on completion. Note: Use DCL_setUpdateStatus(df) to set the update status.

Parameters
[in]dfPointer to the DCL_DF23 controller structure
Returns
'true' if an update is applied, otherwise 'false'

◆ DCL_isStableDF23()

_DCL_CODE_ACCESS bool DCL_isStableDF23 ( DCL_DF23 df)

Determines stability of the shadow compensator.

Parameters
[in]dfPointer to the DCL_DF23 controller structure
Returns
'true' if all poles have magnitude less than 1, 'false' otherwise

◆ DCL_loadDF23asZPK()

_DCL_CODE_ACCESS void DCL_loadDF23asZPK ( DCL_DF23 df,
DCL_ZPK3 zpk 
)

Loads the DF23 shadow coefficients from a ZPK3 description Note: Sampling period df->css->T are used in the calculation. New settings take effect after DCL_updateDF23().

Parameters
[in]dfPointer to the DCL_DF23 controller structure
[in]zpkPointer to the DCL_ZPK3 structure

◆ DCL_runDF23()

Executes a 3rd order Direct Form 2 controller.

Parameters
[in]dfPointer to the DCL_DF23 controller structure
[in]ekThe servo error
Returns
The control effort

◆ DCL_runDF23PartialCompute()

_DCL_CODE_ACCESS float32_t DCL_runDF23PartialCompute ( DCL_DF23 df,
float32_t  ek 
)

Immediate computation to obtain DF23 servo error without updating the controller.

Parameters
[in]dfPointer to the DCL_DF23 controller structure
[in]ekThe servo error
Returns
The control effort

◆ DCL_runDF23PartialUpdate()

_DCL_CODE_ACCESS void DCL_runDF23PartialUpdate ( DCL_DF23 df,
float32_t  ek,
float32_t  uk 
)

Update DF22 controller based on pre-computed control effort.

Parameters
[in]dfPointer to the DCL_DF23 controller structure
[in]ekThe servo error
[in]ukThe controller output in the previous sample interval

◆ DCL_runDF23Clamp()

_DCL_CODE_ACCESS _DCL_CODE_SECTION float32_t DCL_runDF23Clamp ( DCL_DF23 df,
float32_t  ek,
float32_t  Umax,
float32_t  Umin 
)

Executes a 3rd order Direct Form 2 controller with clamp.

Parameters
[in]dfPointer to the DCL_DF23 controller structure
[in]ekThe servo error
[in]UmaxUpper saturation limit
[in]UminLower saturation limit
Returns
uk The control effort

◆ DCL_runClamp()

_DCL_CODE_ACCESS bool DCL_runClamp ( float32_t data,
float32_t  Umax,
float32_t  Umin 
)

Saturates a control variable and returns true if either limit is exceeded.

Parameters
[in]dataThe address of the data variable
[in]UmaxThe upper limit
[in]UminThe lower limit
Returns
Returns 'false' if (Umin < data < Umax), else 'true'

◆ DCL_runClampF64()

_DCL_CODE_ACCESS bool DCL_runClampF64 ( float64_t data,
float64_t  Umax,
float64_t  Umin 
)

Saturates a control variable and returns true if either limit is exceeded.

Parameters
[in]dataThe address of the data variable
[in]UmaxThe upper limit
[in]UminThe lower limit
Returns
Returns 'false' if (Umin < data < Umax), else 'true'

◆ DCL_isStablePn1()

_DCL_CODE_ACCESS bool DCL_isStablePn1 ( float32_t  a1)

Determines stability of a first order real polynomial P(z) = z + a1.

Parameters
[in]a1Coefficient a1
Returns
'true' if the root has magnitude less than 1, 'false' otherwise

◆ DCL_isStablePn2()

_DCL_CODE_ACCESS bool DCL_isStablePn2 ( float32_t  a0,
float32_t  a1,
float32_t  a2 
)

Determines stability of a second order polynomial with real coefficients P(z) = a0 z^2 + a1 z + a2.

Parameters
[in]a0Second order coefficient a1
[in]a1First order coefficient a1
[in]a2Coefficient a2
Returns
'true' if both roots have magnitude less than 1, 'false' otherwise

◆ DCL_isStablePn3()

_DCL_CODE_ACCESS bool DCL_isStablePn3 ( float32_t  a0,
float32_t  a1,
float32_t  a2,
float32_t  a3 
)

Determines stability of a third order polynomial with real coefficients P(z) = a0 z^3 + a1 z^2 + a2 z + a3.

Parameters
[in]a0Third order coefficient a1
[in]a1Second order coefficient a1
[in]a2First order coefficient a2
[in]a3Coefficient a3
Returns
'true' if all roots have magnitude less than 1, 'false' otherwise

◆ DCL_isStableZpk3()

_DCL_CODE_ACCESS bool DCL_isStableZpk3 ( DCL_ZPK3 q)

◆ DCL_setLogIndex()

_DCL_CODE_ACCESS void DCL_setLogIndex ( DCL_FDLOG buf,
uint32_t  idx 
)

Sets index of the current pointer (zero-indexed)

Parameters
[in]bufPointer to DCL_FDLOG
[in]idxIndex number

◆ DCL_deleteLog()

_DCL_CODE_ACCESS void DCL_deleteLog ( DCL_FDLOG buf)

Resets all structure pointers to null value.

Parameters
[in]bufThe DCL_FDLOG structure

◆ DCL_resetLog()

_DCL_CODE_ACCESS void DCL_resetLog ( DCL_FDLOG buf)

Resets the data index pointer to start of buffer.

Parameters
[in]bufThe DCL_FDLOG structure

◆ DCL_fillLog()

_DCL_CODE_ACCESS void DCL_fillLog ( DCL_FDLOG buf,
float32_t  data 
)

Fills the buffer with a given data value and resets the data index pointer to the start of the buffer.

Parameters
[in]bufThe DCL_FDLOG structure
[in]dataThe fill data value

◆ DCL_initLog()

_DCL_CODE_ACCESS void DCL_initLog ( DCL_FDLOG buf,
float32_t addr,
uint32_t  size 
)

Assigns the buffer pointers to a memory block or array and sets the data index pointer to the first address.

Parameters
[in]bufThe DCL_FDLOG structure
[in]addrThe start address of the memory block
[in]sizeThe length of the memory block in 32-bit words

◆ DCL_writeLog()

_DCL_CODE_ACCESS float32_t DCL_writeLog ( DCL_FDLOG buf,
float32_t  data 
)

Writes a data point into the buffer and advances the indexing pointer, wrapping if necessary. Returns the over-written data value for delay line or FIFO implementation.

Parameters
[in]bufThe DCL_FDLOG structure
[in]dataThe input data value
Returns
The over-written data value

◆ DCL_readLog()

_DCL_CODE_ACCESS float32_t DCL_readLog ( DCL_FDLOG buf)

Reads a data point from the buffer and then advances the indexing pointer, wrapping if necessary.

Parameters
[in]bufThe DCL_FDLOG structure
Returns
The indexed data value

◆ DCL_copyLog()

_DCL_CODE_ACCESS void DCL_copyLog ( DCL_FDLOG src,
DCL_FDLOG dst 
)

Copies the contents of one log (src) into another (dst).
Both logs must have the same length.

Parameters
[in]srcThe destination DCL_FDLOG structure
[in]dstThe source DCL_FDLOG structure
DCL_CSS_DEFAULTS
#define DCL_CSS_DEFAULTS
Default values to initialize the CSS structure.
Definition: dcl_css.h:68
DCL_PID
_DCL_VOLATILE struct dcl_pid DCL_PID
DCL_PI2_SPS
Defines DCL_PI2 shadow parameter set used for updating controller parameter.
Definition: dcl_pi2.h:56
DF23_SPS_DEFAULTS
#define DF23_SPS_DEFAULTS
Definition: dcl_df23.h:68
DCL_PID_SPS
Defines DCL_PID shadow parameter set used for updating controller parameter.
Definition: dcl_pid.h:56
PIDF64_INT_DEFAULTS
#define PIDF64_INT_DEFAULTS
Macro for internal default values to initialize DCL_PIDF64 Example: DCL_PIDF64 pid_ctrl = { ....
Definition: dcl_pidf64.h:108
DCL_DF11
_DCL_VOLATILE struct dcl_df11 DCL_DF11
DCL_initDF23
#define DCL_initDF23()
Initialize DCL_DF23 struct with default parameters Example: DCL_DF23* df23_ctrl = DCL_initDF23();.
Definition: dcl_df23.h:115
DCL_PIDF64
_DCL_VOLATILE struct dcl_pidf64 DCL_PIDF64
DF22_SPS_DEFAULTS
#define DF22_SPS_DEFAULTS
Definition: dcl_df22.h:66
DCL_initPI2
#define DCL_initPI2()
Initialize DCL_PI2 struct with default parameters Example: DCL_PI2 pi2_ctrl = DCL_initPI2();.
Definition: dcl_pi2.h:110
DCL_initDF13
#define DCL_initDF13()
Initialize DCL_DF13 struct with default parameters Example: DCL_DF13* df13_ctrl = DCL_initDF13();.
Definition: dcl_df13.h:149
DCL_DF22
_DCL_VOLATILE struct dcl_df22 DCL_DF22
DCL_initDF11
#define DCL_initDF11()
Initialize DCL_DF11 struct with default parameters Example: DCL_DF11* df11_ctrl = DCL_initDF11();.
Definition: dcl_df11.h:103
PI2_INT_DEFAULTS
#define PI2_INT_DEFAULTS
Macro for internal default values to initialize DCL_PI2 Example: DCL_PI2 pi2_ctrl = { ....
Definition: dcl_pi2.h:102
DF13_SPS_DEFAULTS
#define DF13_SPS_DEFAULTS
Definition: dcl_df13.h:94
dcl_none
@ dcl_none
No error.
Definition: dcl_error.h:57
PIDF64_SPS_DEFAULTS
#define PIDF64_SPS_DEFAULTS
Defines default values to initialize the DCL_PIDF64 shadow structure.
Definition: dcl_pidf64.h:68
DCL_PI2
_DCL_VOLATILE struct dcl_pi2 DCL_PI2
PI_INT_DEFAULTS
#define PI_INT_DEFAULTS
Macro for internal default values to initialize DCL_PI Example: DCL_PI pi_ctrl = { ....
Definition: dcl_pi.h:106
DCL_PIDF64_SPS
Defines DCL_PIDF64 shadow PID64 controller structure used for updating controller parameter.
Definition: dcl_pidf64.h:55
DCL_rand
#define DCL_rand(a)
Returns a random floating point result between -1.0 and +1.0 where 'a' is the multiplier in single or...
Definition: dcl_aux.h:87
DCL_initDF22
#define DCL_initDF22()
Initialize DCL_DF22 struct with default parameters Example: DCL_DF22* df22_ctrl = DCL_initDF22();.
Definition: dcl_df22.h:109
DF23_INT_DEFAULTS
#define DF23_INT_DEFAULTS
Macro for internal default values to initialize DCL_DF23 Example: DCL_DF23 df23_ctrl = { ....
Definition: dcl_df23.h:107
DF11_SPS_DEFAULTS
#define DF11_SPS_DEFAULTS
Definition: dcl_df11.h:64
DCL_CSSF64
Defines the 64bit CSS structure.
Definition: dcl_css.h:72
PID_INT_DEFAULTS
#define PID_INT_DEFAULTS
Macro for internal default values to initialize DCL_PID Example: DCL_PID pid_ctrl = { ....
Definition: dcl_pid.h:110
DCL_DF22_SPS
Defines DCL_DF22 shadow parameter set used for updating compensator parameter.
Definition: dcl_df22.h:58
DCL_DF13_SPS
Defines the DCL_DF13 shadow parameter set used for updating compensator parameter.
Definition: dcl_df13.h:83
PID_SPS_DEFAULTS
#define PID_SPS_DEFAULTS
Defines default values to initialize DCL_PID_SPS.
Definition: dcl_pid.h:69
DCL_PI
_DCL_VOLATILE struct dcl_pi DCL_PI
DCL_DF13
_DCL_VOLATILE struct dcl_df13 DCL_DF13
DCL_CSS
Defines the controller common support structure.
Definition: dcl_css.h:57
DCL_DF11_SPS
Defines DCL_DF11 shadow parameter set used for updating compensator parameter.
Definition: dcl_df11.h:58
DCL_initPID
#define DCL_initPID()
Initialize DCL_PID struct with default parameters Example: DCL_PID* pid_ctrl = DCL_initPID();.
Definition: dcl_pid.h:118
DCL_initPI
#define DCL_initPI()
Initialize DCL_PI struct with default parameters Example: DCL_PI* pi_ctrl = DCL_initPI();.
Definition: dcl_pi.h:114
DCL_DF23_SPS
Defines DCL_DF23 shadow parameter set used for updating compensator parameter.
Definition: dcl_df23.h:58
DCL_PI_SPS
Defines DCL_PI shadow parameter set used for updating controller parameter.
Definition: dcl_pi.h:56
PI_SPS_DEFAULTS
#define PI_SPS_DEFAULTS
Defines default values to initialize DCL_PI_SPS.
Definition: dcl_pi.h:67
DCL_DF23
_DCL_VOLATILE struct dcl_df23 DCL_DF23
float32_t
float float32_t
Defines single,double precision data type. Note: Assumes ABI to be TI_EABI, does not support legacy T...
Definition: dcl_common.h:54
DF22_INT_DEFAULTS
#define DF22_INT_DEFAULTS
Macro for internal default values to initialize DCL_DF22 Example: DCL_DF22 df22_ctrl = { ....
Definition: dcl_df22.h:101
PI2_SPS_DEFAULTS
#define PI2_SPS_DEFAULTS
Defines default values to initialize DCL_PI2_SPS.
Definition: dcl_pi2.h:65
DCL_CSSF64_DEFAULTS
#define DCL_CSSF64_DEFAULTS
Default values to initialize the CSS 64bit structure.
Definition: dcl_css.h:83
DF13_INT_DEFAULTS
#define DF13_INT_DEFAULTS
Macro for internal default values to initialize DCL_DF13 Example: DCL_DF13 df13_ctrl = { ....
Definition: dcl_df13.h:140