Files
beyon-motion/TMC2209/lib/tmc/hal/Landungsbruecke/freescale/PDD/EWM_PDD.h
2026-03-31 13:10:37 +02:00

491 lines
20 KiB
C

/*
PDD layer implementation for peripheral type EWM
(C) 2013 Freescale, Inc. All rights reserved.
This file is static and it is generated from API-Factory
*/
#if !defined(EWM_PDD_H_)
#define EWM_PDD_H_
/* ----------------------------------------------------------------------------
-- Test if supported MCU is active
---------------------------------------------------------------------------- */
#if !defined(MCU_ACTIVE)
// No MCU is active
#error EWM PDD library: No derivative is active. Place proper #include with PDD memory map before including PDD library.
#elif \
!defined(MCU_MK10D10) /* EWM */ && \
!defined(MCU_MK10D5) /* EWM */ && \
!defined(MCU_MK10D7) /* EWM */ && \
!defined(MCU_MK10F12) /* EWM */ && \
!defined(MCU_MK10DZ10) /* EWM */ && \
!defined(MCU_MK11D5) /* EWM */ && \
!defined(MCU_MK11D5WS) /* EWM */ && \
!defined(MCU_MK12D5) /* EWM */ && \
!defined(MCU_MK20D10) /* EWM */ && \
!defined(MCU_MK20D5) /* EWM */ && \
!defined(MCU_MK20D7) /* EWM */ && \
!defined(MCU_MK20F12) /* EWM */ && \
!defined(MCU_MK20DZ10) /* EWM */ && \
!defined(MCU_MK21D5) /* EWM */ && \
!defined(MCU_MK21D5WS) /* EWM */ && \
!defined(MCU_MK21F12) /* EWM */ && \
!defined(MCU_MK21F12WS) /* EWM */ && \
!defined(MCU_MK22D5) /* EWM */ && \
!defined(MCU_MK22F12810) /* EWM */ && \
!defined(MCU_MK22F12) /* EWM */ && \
!defined(MCU_MK22F25612) /* EWM */ && \
!defined(MCU_MK22F51212) /* EWM */ && \
!defined(MCU_MK24F12) /* EWM */ && \
!defined(MCU_MK30D10) /* EWM */ && \
!defined(MCU_MK30D7) /* EWM */ && \
!defined(MCU_MK30DZ10) /* EWM */ && \
!defined(MCU_MK40D10) /* EWM */ && \
!defined(MCU_MK40D7) /* EWM */ && \
!defined(MCU_MK40DZ10) /* EWM */ && \
!defined(MCU_MK40X256VMD100) /* EWM */ && \
!defined(MCU_MK50D10) /* EWM */ && \
!defined(MCU_MK50D7) /* EWM */ && \
!defined(MCU_MK50DZ10) /* EWM */ && \
!defined(MCU_MK51D10) /* EWM */ && \
!defined(MCU_MK51D7) /* EWM */ && \
!defined(MCU_MK51DZ10) /* EWM */ && \
!defined(MCU_MK52D10) /* EWM */ && \
!defined(MCU_MK52DZ10) /* EWM */ && \
!defined(MCU_MK53D10) /* EWM */ && \
!defined(MCU_MK53DZ10) /* EWM */ && \
!defined(MCU_MK60D10) /* EWM */ && \
!defined(MCU_MK60F12) /* EWM */ && \
!defined(MCU_MK60F15) /* EWM */ && \
!defined(MCU_MK60DZ10) /* EWM */ && \
!defined(MCU_MK60N512VMD100) /* EWM */ && \
!defined(MCU_MK61F12) /* EWM */ && \
!defined(MCU_MK61F15) /* EWM */ && \
!defined(MCU_MK61F12WS) /* EWM */ && \
!defined(MCU_MK61F15WS) /* EWM */ && \
!defined(MCU_MK63F12) /* EWM */ && \
!defined(MCU_MK63F12WS) /* EWM */ && \
!defined(MCU_MK64F12) /* EWM */ && \
!defined(MCU_MK65F18) /* EWM */ && \
!defined(MCU_MK65F18WS) /* EWM */ && \
!defined(MCU_MK66F18) /* EWM */ && \
!defined(MCU_MK70F12) /* EWM */ && \
!defined(MCU_MK70F15) /* EWM */ && \
!defined(MCU_MK70F12WS) /* EWM */ && \
!defined(MCU_MK70F15WS) /* EWM */ && \
!defined(MCU_MKV10Z7) /* EWM */ && \
!defined(MCU_MKV31F12810) /* EWM */ && \
!defined(MCU_MKV31F25612) /* EWM */ && \
!defined(MCU_MKV31F51212) /* EWM */ && \
!defined(MCU_MKW21D5) /* EWM */ && \
!defined(MCU_MKW21D5WS) /* EWM */ && \
!defined(MCU_MKW22D5) /* EWM */ && \
!defined(MCU_MKW22D5WS) /* EWM */ && \
!defined(MCU_MKW24D5) /* EWM */ && \
!defined(MCU_MKW24D5WS) /* EWM */ && \
!defined(MCU_PCK20L4) /* EWM */
// Unsupported MCU is active
#error EWM PDD library: Unsupported derivative is active.
#endif
#include "PDD_Types.h"
/* ----------------------------------------------------------------------------
-- Method symbol definitions
---------------------------------------------------------------------------- */
/* Service constants */
#define EWM_PDD_KEY_1 0xB4U /**< First key */
#define EWM_PDD_KEY_2 0x2CU /**< Second key */
/* Clock source constants. */
#define EWM_PDD_SOURCE_ROSC_8M 0U /**< Relaxation oscillator clock */
#define EWM_PDD_SOURCE_XTAL_OSC 0x1U /**< Crystal oscillator clock */
#define EWM_PDD_SOURCE_BUS_CLK 0x2U /**< IP bus clock */
#define EWM_PDD_SOURCE_ROSC_200K 0x3U /**< Low speed oscillator clock */
/* ----------------------------------------------------------------------------
-- WriteControlReg
---------------------------------------------------------------------------- */
/**
* @brief Writes value to the control register.
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
* base address). You can use the constant defined in the registers
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
* the peripheral initialization component header file
* (<component_name>_DEVICE).
* @param Value New content of the control register. This parameter is a 8-bit
* value.
* @return Returns a value of void type.
* @remarks The macro accesses the following registers: EWM_CTRL.
* @par Example:
* @code
* EWM_PDD_WriteControlReg(<peripheral>_BASE_PTR, 1);
* @endcode
*/
#define EWM_PDD_WriteControlReg(PeripheralBase, Value) ( \
EWM_CTRL_REG(PeripheralBase) = \
(uint8)(Value) \
)
/* ----------------------------------------------------------------------------
-- GetEnableDeviceStatus
---------------------------------------------------------------------------- */
/**
* @brief Returns current state of EWM device.
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
* base address). You can use the constant defined in the registers
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
* the peripheral initialization component header file
* (<component_name>_DEVICE).
* @return Returns a 8-bit value.
* @remarks The macro accesses the following registers: EWM_CTRL.
* @par Example:
* @code
* uint8 result = EWM_PDD_GetEnableDeviceStatus(<peripheral>_BASE_PTR);
* @endcode
*/
#define EWM_PDD_GetEnableDeviceStatus(PeripheralBase) ( \
(uint8)(EWM_CTRL_REG(PeripheralBase) & EWM_CTRL_EWMEN_MASK) \
)
/* ----------------------------------------------------------------------------
-- WriteCompareLowReg
---------------------------------------------------------------------------- */
/**
* @brief Writes value to the compare low register.
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
* base address). You can use the constant defined in the registers
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
* the peripheral initialization component header file
* (<component_name>_DEVICE).
* @param Value New content of the compare low register. This parameter is a
* 8-bit value.
* @return Returns a value of void type.
* @remarks The macro accesses the following registers: EWM_CMPL.
* @par Example:
* @code
* EWM_PDD_WriteCompareLowReg(<peripheral>_BASE_PTR, 1);
* @endcode
*/
#define EWM_PDD_WriteCompareLowReg(PeripheralBase, Value) ( \
EWM_CMPL_REG(PeripheralBase) = \
(uint8)(Value) \
)
/* ----------------------------------------------------------------------------
-- ReadCompareLowReg
---------------------------------------------------------------------------- */
/**
* @brief Returns the content of the compare low register.
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
* base address). You can use the constant defined in the registers
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
* the peripheral initialization component header file
* (<component_name>_DEVICE).
* @return Returns a 8-bit value.
* @remarks The macro accesses the following registers: EWM_CMPL.
* @par Example:
* @code
* uint8 result = EWM_PDD_ReadCompareLowReg(<peripheral>_BASE_PTR);
* @endcode
*/
#define EWM_PDD_ReadCompareLowReg(PeripheralBase) ( \
EWM_CMPL_REG(PeripheralBase) \
)
/* ----------------------------------------------------------------------------
-- WriteCompareHighReg
---------------------------------------------------------------------------- */
/**
* @brief Writes value to the compare high register.
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
* base address). You can use the constant defined in the registers
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
* the peripheral initialization component header file
* (<component_name>_DEVICE).
* @param Value New content of the compare high register. This parameter is a
* 8-bit value.
* @return Returns a value of void type.
* @remarks The macro accesses the following registers: EWM_CMPH.
* @par Example:
* @code
* EWM_PDD_WriteCompareHighReg(<peripheral>_BASE_PTR, 1);
* @endcode
*/
#define EWM_PDD_WriteCompareHighReg(PeripheralBase, Value) ( \
EWM_CMPH_REG(PeripheralBase) = \
(uint8)(Value) \
)
/* ----------------------------------------------------------------------------
-- ReadCompareHighReg
---------------------------------------------------------------------------- */
/**
* @brief Returns the content of the compare high register.
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
* base address). You can use the constant defined in the registers
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
* the peripheral initialization component header file
* (<component_name>_DEVICE).
* @return Returns a 8-bit value.
* @remarks The macro accesses the following registers: EWM_CMPH.
* @par Example:
* @code
* uint8 result = EWM_PDD_ReadCompareHighReg(<peripheral>_BASE_PTR);
* @endcode
*/
#define EWM_PDD_ReadCompareHighReg(PeripheralBase) ( \
EWM_CMPH_REG(PeripheralBase) \
)
/* ----------------------------------------------------------------------------
-- WriteServiceReg
---------------------------------------------------------------------------- */
/**
* @brief Writes value to the service register.
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
* base address). You can use the constant defined in the registers
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
* the peripheral initialization component header file
* (<component_name>_DEVICE).
* @param Value Service constant. This parameter is a 8-bit value.
* @return Returns a value of void type.
* @remarks The macro accesses the following registers: EWM_SERV.
* @par Example:
* @code
* EWM_PDD_WriteServiceReg(<peripheral>_BASE_PTR, 1);
* @endcode
*/
#define EWM_PDD_WriteServiceReg(PeripheralBase, Value) ( \
EWM_SERV_REG(PeripheralBase) = \
(uint8)(Value) \
)
/* ----------------------------------------------------------------------------
-- DisableInterrupt
---------------------------------------------------------------------------- */
/**
* @brief Disables the EWM interrupt.
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
* base address). You can use the constant defined in the registers
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
* the peripheral initialization component header file
* (<component_name>_DEVICE).
* @return Returns a value of void type.
* @remarks The macro accesses the following registers: EWM_CTRL.
* @par Example:
* @code
* EWM_PDD_DisableInterrupt(<peripheral>_BASE_PTR);
* @endcode
*/
#define EWM_PDD_DisableInterrupt(PeripheralBase) ( \
EWM_CTRL_REG(PeripheralBase) &= \
(uint8)(~(uint8)EWM_CTRL_INTEN_MASK) \
)
/* ----------------------------------------------------------------------------
-- EnableInterrupt
---------------------------------------------------------------------------- */
/**
* @brief Enables the EWM interrupt.
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
* base address). You can use the constant defined in the registers
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
* the peripheral initialization component header file
* (<component_name>_DEVICE).
* @return Returns a value of void type.
* @remarks The macro accesses the following registers: EWM_CTRL.
* @par Example:
* @code
* EWM_PDD_EnableInterrupt(<peripheral>_BASE_PTR);
* @endcode
*/
#define EWM_PDD_EnableInterrupt(PeripheralBase) ( \
EWM_CTRL_REG(PeripheralBase) |= \
EWM_CTRL_INTEN_MASK \
)
/* ----------------------------------------------------------------------------
-- SelectClockSource
---------------------------------------------------------------------------- */
/**
* @brief Selects clock source.
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
* base address). You can use the constant defined in the registers
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
* the peripheral initialization component header file
* (<component_name>_DEVICE).
* @param Source New value of the source. This parameter is of "Clock source
* constants." type.
* @return Returns a value of void type.
* @remarks The macro accesses the following registers: EWM_CLKCTRL.
* @par Example:
* @code
* EWM_PDD_SelectClockSource(<peripheral>_BASE_PTR,
* EWM_PDD_SOURCE_ROSC_8M);
* @endcode
*/
#define EWM_PDD_SelectClockSource(PeripheralBase, Source) ( \
EWM_CLKCTRL_REG(PeripheralBase) = \
(uint8)(( \
(uint8)(EWM_CLKCTRL_REG(PeripheralBase) & (uint8)(~(uint8)EWM_CLKCTRL_CLKSEL_MASK))) | ( \
(uint8)(Source))) \
)
/* ----------------------------------------------------------------------------
-- SetPrescaler
---------------------------------------------------------------------------- */
/**
* @brief Sets prescale value.
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
* base address). You can use the constant defined in the registers
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
* the peripheral initialization component header file
* (<component_name>_DEVICE).
* @param Value New value of the prescaler. This parameter is a 8-bit value.
* @return Returns a value of void type.
* @remarks The macro accesses the following registers: EWM_CLKPRESCALER.
* @par Example:
* @code
* EWM_PDD_SetPrescaler(<peripheral>_BASE_PTR, 1);
* @endcode
*/
#define EWM_PDD_SetPrescaler(PeripheralBase, Value) ( \
EWM_CLKPRESCALER_REG(PeripheralBase) = \
(uint8)(Value) \
)
/* ----------------------------------------------------------------------------
-- ReadControlReg
---------------------------------------------------------------------------- */
/**
* @brief Returns the content of the control register.
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
* base address). You can use the constant defined in the registers
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
* the peripheral initialization component header file
* (<component_name>_DEVICE).
* @return Returns a 8-bit value.
* @remarks The macro accesses the following registers: EWM_CTRL.
* @par Example:
* @code
* uint8 result = EWM_PDD_ReadControlReg(<peripheral>_BASE_PTR);
* @endcode
*/
#define EWM_PDD_ReadControlReg(PeripheralBase) ( \
EWM_CTRL_REG(PeripheralBase) \
)
/* ----------------------------------------------------------------------------
-- WriteClockControlReg
---------------------------------------------------------------------------- */
/**
* @brief Writes value to the clock control register.
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
* base address). You can use the constant defined in the registers
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
* the peripheral initialization component header file
* (<component_name>_DEVICE).
* @param Value New content of the clock control register. This parameter is a
* 8-bit value.
* @return Returns a value of void type.
* @remarks The macro accesses the following registers: EWM_CLKCTRL.
* @par Example:
* @code
* EWM_PDD_WriteClockControlReg(<peripheral>_BASE_PTR, 1);
* @endcode
*/
#define EWM_PDD_WriteClockControlReg(PeripheralBase, Value) ( \
EWM_CLKCTRL_REG(PeripheralBase) = \
(uint8)(Value) \
)
/* ----------------------------------------------------------------------------
-- ReadClockControlReg
---------------------------------------------------------------------------- */
/**
* @brief Returns the content of the clock control register.
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
* base address). You can use the constant defined in the registers
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
* the peripheral initialization component header file
* (<component_name>_DEVICE).
* @return Returns a 8-bit value.
* @remarks The macro accesses the following registers: EWM_CLKCTRL.
* @par Example:
* @code
* uint8 result = EWM_PDD_ReadClockControlReg(<peripheral>_BASE_PTR);
* @endcode
*/
#define EWM_PDD_ReadClockControlReg(PeripheralBase) ( \
EWM_CLKCTRL_REG(PeripheralBase) \
)
/* ----------------------------------------------------------------------------
-- WriteClockPrescalerReg
---------------------------------------------------------------------------- */
/**
* @brief Writes value to the clock prescaler register.
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
* base address). You can use the constant defined in the registers
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
* the peripheral initialization component header file
* (<component_name>_DEVICE).
* @param Value New content of the clock prescaler register. This parameter is a
* 8-bit value.
* @return Returns a value of void type.
* @remarks The macro accesses the following registers: EWM_CLKPRESCALER.
* @par Example:
* @code
* EWM_PDD_WriteClockPrescalerReg(<peripheral>_BASE_PTR, 1);
* @endcode
*/
#define EWM_PDD_WriteClockPrescalerReg(PeripheralBase, Value) ( \
EWM_CLKPRESCALER_REG(PeripheralBase) = \
(uint8)(Value) \
)
/* ----------------------------------------------------------------------------
-- ReadClockPrescalerReg
---------------------------------------------------------------------------- */
/**
* @brief Returns the content of the clock prescaler register.
* @param PeripheralBase Pointer to a peripheral registers structure (peripheral
* base address). You can use the constant defined in the registers
* definition header file (<peripheral>_BASE_PTR) or the constant defined in
* the peripheral initialization component header file
* (<component_name>_DEVICE).
* @return Returns a 8-bit value.
* @remarks The macro accesses the following registers: EWM_CLKPRESCALER.
* @par Example:
* @code
* uint8 result = EWM_PDD_ReadClockPrescalerReg(<peripheral>_BASE_PTR);
* @endcode
*/
#define EWM_PDD_ReadClockPrescalerReg(PeripheralBase) ( \
EWM_CLKPRESCALER_REG(PeripheralBase) \
)
#endif /* #if defined(EWM_PDD_H_) */
/* EWM_PDD.h, eof. */