223 lines
8.8 KiB
C
223 lines
8.8 KiB
C
|
|
/*
|
||
|
|
* Copyright (C) 2023 Texas Instruments Incorporated
|
||
|
|
*
|
||
|
|
* Redistribution and use in source and binary forms, with or without
|
||
|
|
* modification, are permitted provided that the following conditions
|
||
|
|
* are met:
|
||
|
|
*
|
||
|
|
* Redistributions of source code must retain the above copyright
|
||
|
|
* notice, this list of conditions and the following disclaimer.
|
||
|
|
*
|
||
|
|
* Redistributions in binary form must reproduce the above copyright
|
||
|
|
* notice, this list of conditions and the following disclaimer in the
|
||
|
|
* documentation and/or other materials provided with the
|
||
|
|
* distribution.
|
||
|
|
*
|
||
|
|
* Neither the name of Texas Instruments Incorporated nor the names of
|
||
|
|
* its contributors may be used to endorse or promote products derived
|
||
|
|
* from this software without specific prior written permission.
|
||
|
|
*
|
||
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||
|
|
* "AS IS" AND ANY EXPgResS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||
|
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||
|
|
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||
|
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||
|
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||
|
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||
|
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||
|
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||
|
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||
|
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||
|
|
*/
|
||
|
|
|
||
|
|
#ifndef _DCL_C28_COMPATIBILITY_H_
|
||
|
|
#define _DCL_C28_COMPATIBILITY_H_
|
||
|
|
|
||
|
|
//! \file dcl_c28_compatibility.h
|
||
|
|
//! \brief C28 compatibility macro
|
||
|
|
//! Contains backward compatbility mapping to C28 DCL's naming scheme
|
||
|
|
//!
|
||
|
|
//! Note:
|
||
|
|
//! CLA functions are not compatible, nonetheless its
|
||
|
|
//! direct equivalent are listed in comments
|
||
|
|
//! ASM functions will be alias into inline C code
|
||
|
|
|
||
|
|
#ifdef __cplusplus
|
||
|
|
extern "C" {
|
||
|
|
#endif
|
||
|
|
|
||
|
|
//*****************************************************************************
|
||
|
|
// PI
|
||
|
|
//*****************************************************************************
|
||
|
|
#define DCL_runPI_C1 DCL_runPISeries
|
||
|
|
#define DCL_runPI_C2 DCL_runPISeries
|
||
|
|
#define DCL_runPI_C3 DCL_runPIParallel
|
||
|
|
#define DCL_runPI_C4 DCL_runPIParallel
|
||
|
|
#define DCL_runPI_C5 DCL_runPIParallelEnhanced
|
||
|
|
#define DCL_runPI_C6 DCL_runPISeriesTustin
|
||
|
|
#define DCL_runPI_C7 DCL_runPISeriesTustin
|
||
|
|
/*
|
||
|
|
// C28 CLA Functions
|
||
|
|
#define DCL_runPI_L1 DCL_runPISeries
|
||
|
|
#define DCL_runPI_L2 DCL_runPIParallel
|
||
|
|
#define DCL_runPI_L3 DCL_runPISeries
|
||
|
|
#define DCL_runPI_L4 DCL_runPIParallel
|
||
|
|
#define DCL_runPI_L5 DCL_runPISeriesTustin
|
||
|
|
*/
|
||
|
|
|
||
|
|
//*****************************************************************************
|
||
|
|
// PI2
|
||
|
|
//*****************************************************************************
|
||
|
|
#define DCL_runPI2_C1 DCL_runPI2Series
|
||
|
|
#define DCL_runPI2_C2 DCL_runPI2Series
|
||
|
|
|
||
|
|
//*****************************************************************************
|
||
|
|
// PID
|
||
|
|
//*****************************************************************************
|
||
|
|
#define DCL_runPID_C1 DCL_runPIDSeries
|
||
|
|
#define DCL_runPID_C2 DCL_runPIDSeries
|
||
|
|
#define DCL_runPID_C3 DCL_runPIDParallel
|
||
|
|
#define DCL_runPID_C4 DCL_runPIDParallel
|
||
|
|
/*
|
||
|
|
// C28 CLA Functions
|
||
|
|
#define DCL_runPID_L1 DCL_runPIDSeries
|
||
|
|
#define DCL_runPID_L2 DCL_runPIDParallel
|
||
|
|
#define DCL_runPID_L3 DCL_runPIDSeries
|
||
|
|
#define DCL_runPID_L4 DCL_runPIDParallel
|
||
|
|
*/
|
||
|
|
|
||
|
|
//*****************************************************************************
|
||
|
|
// DF11
|
||
|
|
//*****************************************************************************
|
||
|
|
#define DCL_runDF11_C1 DCL_runDF11
|
||
|
|
#define DCL_runDF11_C2 DCL_runDF11
|
||
|
|
/*
|
||
|
|
// C28 CLA Functions
|
||
|
|
#define DCL_runDF11_L1 DCL_runDF11
|
||
|
|
*/
|
||
|
|
|
||
|
|
//*****************************************************************************
|
||
|
|
// DF13
|
||
|
|
//*****************************************************************************
|
||
|
|
#define DCL_runDF13_C1 DCL_runDF13
|
||
|
|
#define DCL_runDF13_C2 DCL_runDF13PartialCompute
|
||
|
|
#define DCL_runDF13_C3 DCL_runDF13PartialUpdate
|
||
|
|
#define DCL_runDF13_C4 DCL_runDF13
|
||
|
|
#define DCL_runDF13_C5 DCL_runDF13PartialCompute
|
||
|
|
#define DCL_runDF13_C6 DCL_runDF13PartialUpdate
|
||
|
|
/*
|
||
|
|
// C28 CLA Functions
|
||
|
|
#define DCL_runDF13_L1 DCL_runDF13
|
||
|
|
#define DCL_runDF13_L2 DCL_runDF13PartialCompute
|
||
|
|
#define DCL_runDF13_L3 DCL_runDF13PartialUpdate
|
||
|
|
#define DCL_runDF13_L4 DCL_runDF13
|
||
|
|
#define DCL_runDF13_L5 DCL_runDF13PartialCompute
|
||
|
|
#define DCL_runDF13_L6 DCL_runDF13PartialUpdate
|
||
|
|
*/
|
||
|
|
|
||
|
|
//*****************************************************************************
|
||
|
|
// DF22
|
||
|
|
//*****************************************************************************
|
||
|
|
#define DCL_runDF22_C1 DCL_runDF22
|
||
|
|
#define DCL_runDF22_C2 DCL_runDF22PartialCompute
|
||
|
|
#define DCL_runDF22_C3 DCL_runDF22PartialUpdate
|
||
|
|
#define DCL_runDF22_C4 DCL_runDF22
|
||
|
|
#define DCL_runDF22_C5 DCL_runDF22PartialCompute
|
||
|
|
#define DCL_runDF22_C6 DCL_runDF22PartialUpdate
|
||
|
|
/*
|
||
|
|
// C28 CLA Functions
|
||
|
|
#define DCL_runDF22_L1 DCL_runDF22
|
||
|
|
#define DCL_runDF22_L2 DCL_runDF22PartialCompute
|
||
|
|
#define DCL_runDF22_L3 DCL_runDF22PartialUpdate
|
||
|
|
#define DCL_runDF22_L4 DCL_runDF22
|
||
|
|
*/
|
||
|
|
|
||
|
|
//*****************************************************************************
|
||
|
|
// DF23
|
||
|
|
//*****************************************************************************
|
||
|
|
#define DCL_runDF23_C1 DCL_runDF23
|
||
|
|
#define DCL_runDF23_C2 DCL_runDF23PartialCompute
|
||
|
|
#define DCL_runDF23_C3 DCL_runDF23PartialUpdate
|
||
|
|
#define DCL_runDF23_C4 DCL_runDF23
|
||
|
|
#define DCL_runDF23_C5 DCL_runDF23PartialCompute
|
||
|
|
#define DCL_runDF23_C6 DCL_runDF23PartialUpdate
|
||
|
|
/*
|
||
|
|
// C28 CLA Functions
|
||
|
|
#define DCL_runDF23_L1 DCL_runDF23
|
||
|
|
#define DCL_runDF23_L2 DCL_runDF23PartialCompute
|
||
|
|
#define DCL_runDF23_L3 DCL_runDF23PartialUpdate
|
||
|
|
*/
|
||
|
|
|
||
|
|
//*****************************************************************************
|
||
|
|
// Clamp
|
||
|
|
//*****************************************************************************
|
||
|
|
#define DCL_runClamp_C1 DCL_runClamp
|
||
|
|
#define DCL_runClamp_C2 DCL_runClamp
|
||
|
|
#define DCL_runClamp_S1 DCL_runClampF64
|
||
|
|
/*
|
||
|
|
// C28 CLA Functions
|
||
|
|
#define DCL_runClamp_L1 DCL_runClamp
|
||
|
|
*/
|
||
|
|
|
||
|
|
//*****************************************************************************
|
||
|
|
// Macro Functions
|
||
|
|
//*****************************************************************************
|
||
|
|
#define F32_IS_VALUE DCL_isValue
|
||
|
|
#define F64_IS_VALUE DCL_isValue64
|
||
|
|
#define F32_IS_ZERO DCL_isZero
|
||
|
|
#define F64_IS_ZERO DCL_isZero64
|
||
|
|
#define DCL_randf DCL_rand
|
||
|
|
#define DCL_randf64 DCL_rand64
|
||
|
|
#define DCL_C2_LIMIT_32 DCL_c2Limit
|
||
|
|
#define DCL_C2_LIMIT_64 DCL_c2Limit64
|
||
|
|
#define DCL_BREAK_POINT DCL_setBreakPoint
|
||
|
|
#define DCL_DISABLE_INTS DCL_disableInts
|
||
|
|
#define DCL_RESTORE_INTS DCL_restoreInts
|
||
|
|
#define DCL_SET_CONTROLLER_PERIOD DCL_setControllerPeriod
|
||
|
|
#define DCL_SET_SAMPLE_RATE DCL_setControllerPeriod
|
||
|
|
#define DCL_REQUEST_UPDATE DCL_setPendingStatus
|
||
|
|
#define DCL_CLEAR_UPDATE_REQUEST DCL_clearPendingStatus
|
||
|
|
#define DCL_UPDATE_WAITING DCL_getPendingStatus
|
||
|
|
#define DCL_CONTROLLER_BEGIN DCL_setControllerStatus
|
||
|
|
#define DCL_CONTROLLER_END DCL_clearControllerStatus
|
||
|
|
#define DCL_CONTROLLER_IN_PROGRESS DCL_getControllerStatus
|
||
|
|
#define DCL_SET_ERROR DCL_setError
|
||
|
|
#define DCL_CLEAR_ERROR_CODE DCL_clearError
|
||
|
|
#define DCL_RUN_ERROR_HANDLER DCL_runErrorHandler
|
||
|
|
#define DCL_GET_ERROR_LOC DCL_getErrorInfo
|
||
|
|
|
||
|
|
//*****************************************************************************
|
||
|
|
// Macro Constants
|
||
|
|
//*****************************************************************************
|
||
|
|
#define CONST_PI_32 CONST_PI
|
||
|
|
#define CONST_2PI_32 CONST_2PI
|
||
|
|
#define CONST_PI_64 CONST_PI_F64
|
||
|
|
#define CONST_2PI_64 CONST_2PI_F64
|
||
|
|
#define DCL_DEFAULT_T_F32 DCL_DEFAULT_PERIOD_S
|
||
|
|
#define DCL_DEFAULT_T_F64 DCL_DEFAULT_PERIODF64_S
|
||
|
|
#define DEFAULT_FPU32_TOL DCL_FPU32_TOL
|
||
|
|
#define DEFAULT_FPU64_TOL DCL_FPU64_TOL
|
||
|
|
#define NULL_ADDR NULL
|
||
|
|
|
||
|
|
//*****************************************************************************
|
||
|
|
// FDLOG
|
||
|
|
//*****************************************************************************
|
||
|
|
#define FDLOG DCL_FDLOG
|
||
|
|
#define DCL_createLog DCL_initLog
|
||
|
|
#define FDLOG_SPACE DCL_getLogRemain
|
||
|
|
#define FDLOG_SIZE DCL_getLogSize
|
||
|
|
#define FDLOG_ELEMENT DCL_getLogIndex
|
||
|
|
#define FDLOG_DEFAULTS {0,0,0}
|
||
|
|
#define FDLOG_DEFAULT_SIZE 0x0400
|
||
|
|
|
||
|
|
//*****************************************************************************
|
||
|
|
// PID64 - 64 bit
|
||
|
|
//*****************************************************************************
|
||
|
|
#define DCL_runPIDF64_S1 DCL_runPIDF64Series
|
||
|
|
|
||
|
|
#ifdef __cplusplus
|
||
|
|
}
|
||
|
|
#endif // extern "C"
|
||
|
|
|
||
|
|
#endif // _DCL_C28_COMPATIBILITY_H_
|