mirror of
https://github.com/openmv/openmv.git
synced 2025-11-04 14:49:50 +08:00
930 lines
48 KiB
C
930 lines
48 KiB
C
/**
|
|
******************************************************************************
|
|
* @file stm32n6xx_hal_gfxtim.h
|
|
* @author MCD Application Team
|
|
* @brief Header file of GFXTIM HAL module.
|
|
******************************************************************************
|
|
* @attention
|
|
*
|
|
* Copyright (c) 2023 STMicroelectronics.
|
|
* All rights reserved.
|
|
*
|
|
* This software is licensed under terms that can be found in the LICENSE file
|
|
* in the root directory of this software component.
|
|
* If no LICENSE file comes with this software, it is provided AS-IS.
|
|
*
|
|
******************************************************************************
|
|
*/
|
|
|
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
|
#ifndef STM32N6xx_HAL_GFXTIM_H
|
|
#define STM32N6xx_HAL_GFXTIM_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* Includes ------------------------------------------------------------------*/
|
|
#include "stm32n6xx_hal_def.h"
|
|
|
|
#if defined (GFXTIM)
|
|
|
|
/** @addtogroup STM32N6xx_HAL_Driver
|
|
* @{
|
|
*/
|
|
|
|
/** @addtogroup GFXTIM
|
|
* @{
|
|
*/
|
|
|
|
/* Exported types ------------------------------------------------------------*/
|
|
/** @defgroup GFXTIM_Exported_Types GFXTIM Exported Types
|
|
* @{
|
|
*/
|
|
|
|
/**
|
|
* @brief HAL GFXTIM states definition
|
|
*/
|
|
typedef enum
|
|
{
|
|
HAL_GFXTIM_STATE_RESET = 0x00U, /*!< GFXTIM not initialized */
|
|
HAL_GFXTIM_STATE_READY = 0x01U, /*!< GFXTIM initialized and ready for use */
|
|
HAL_GFXTIM_STATE_ERROR = 0xFFU /*!< GFXTIM state error */
|
|
} HAL_GFXTIM_StateTypeDef;
|
|
|
|
/**
|
|
* @brief GFXTIM initialization structure definition
|
|
*/
|
|
typedef struct
|
|
{
|
|
uint32_t SynchroSrc; /*!< Synchronization signals (HSYNC and VSYNC) sources.
|
|
This parameter can be a value of @ref GFXTIM_SynchroSrc */
|
|
uint32_t TearingEffectSrc; /*!< Tearing effect source
|
|
This parameter can be a value of @ref GFXTIM_TearingEffectSrc */
|
|
uint32_t TearingEffectPolarity; /*!< Tearing effect source
|
|
This parameter can be a value of @ref GFXTIM_TearingEffectPolarity */
|
|
uint32_t TearingEffectInterrupt; /*!< Tearing effect interrupt Enable or Disable
|
|
This parameter can be a value of @ref GFXTIM_Interrupt */
|
|
} GFXTIM_InitTypeDef;
|
|
|
|
/**
|
|
* @brief GFXTIM handle structure definition
|
|
*/
|
|
#if (USE_HAL_GFXTIM_REGISTER_CALLBACKS == 1)
|
|
typedef struct __GFXTIM_HandleTypeDef
|
|
#else
|
|
typedef struct
|
|
#endif /* USE_HAL_GFXTIM_REGISTER_CALLBACKS */
|
|
{
|
|
GFXTIM_TypeDef *Instance; /*!< GFXTIM instance */
|
|
__IO HAL_GFXTIM_StateTypeDef State; /*!< GFXTIM state */
|
|
__IO uint32_t ErrorCode; /*!< GFXTIM error code */
|
|
GFXTIM_InitTypeDef Init; /*!< GFXTIM initialization */
|
|
#if (USE_HAL_GFXTIM_REGISTER_CALLBACKS == 1)
|
|
void (*HAL_GFXTIM_AbsoluteTimer_AFCC1Callback)(struct __GFXTIM_HandleTypeDef *hgfxtim); /*!< GFXTIM Absolute frame counter compare 1 callback */
|
|
void (*HAL_GFXTIM_AbsoluteTimer_AFCOFCallback)(struct __GFXTIM_HandleTypeDef *hgfxtim); /*!< GFXTIM Absolute frame counter overflow callback */
|
|
void (*HAL_GFXTIM_AbsoluteTimer_ALCC1Callback)(struct __GFXTIM_HandleTypeDef *hgfxtim); /*!< GFXTIM Absolute line counter compare 1 callback */
|
|
void (*HAL_GFXTIM_AbsoluteTimer_ALCC2Callback)(struct __GFXTIM_HandleTypeDef *hgfxtim); /*!< GFXTIM Absolute line counter compare 2 callback */
|
|
void (*HAL_GFXTIM_AbsoluteTimer_ALCOFCallback)(struct __GFXTIM_HandleTypeDef *hgfxtim); /*!< GFXTIM Absolute line counter overflow callback */
|
|
void (*HAL_GFXTIM_RelativeTimer_RFC1RCallback)(struct __GFXTIM_HandleTypeDef *hgfxtim); /*!< GFXTIM Relative frame counter 1 reload callback */
|
|
void (*HAL_GFXTIM_RelativeTimer_RFC2RCallback)(struct __GFXTIM_HandleTypeDef *hgfxtim); /*!< GFXTIM Relative frame counter 2 reload callback */
|
|
void (*HAL_GFXTIM_TECallback)(struct __GFXTIM_HandleTypeDef *hgfxtim); /*!< GFXTIM Tearing effect callback */
|
|
void (*HAL_GFXTIM_EventGenerator_EV1Callback)(struct __GFXTIM_HandleTypeDef *hgfxtim); /*!< GFXTIM Event events 1 callback */
|
|
void (*HAL_GFXTIM_EventGenerator_EV2Callback)(struct __GFXTIM_HandleTypeDef *hgfxtim); /*!< GFXTIM Event events 2 callback */
|
|
void (*HAL_GFXTIM_EventGenerator_EV3Callback)(struct __GFXTIM_HandleTypeDef *hgfxtim); /*!< GFXTIM Event events 3 callback */
|
|
void (*HAL_GFXTIM_EventGenerator_EV4Callback)(struct __GFXTIM_HandleTypeDef *hgfxtim); /*!< GFXTIM Event events 4 callback */
|
|
void (*HAL_GFXTIM_WatchdogTimer_AlarmCallback)(struct __GFXTIM_HandleTypeDef *hgfxtim); /*!< GFXTIM Watchdog alarm callback */
|
|
void (*HAL_GFXTIM_WatchdogTimer_PreAlarmCallback)(struct __GFXTIM_HandleTypeDef *hgfxtim); /*!< GFXTIM Watchdog pre alarm callback */
|
|
void (*ErrorCallback)(struct __GFXTIM_HandleTypeDef *hgfxtim); /*!< GFXTIM error callback */
|
|
void (*MspInitCallback)(struct __GFXTIM_HandleTypeDef *hgfxtim); /*!< GFXTIM MSP initialization user callback */
|
|
void (*MspDeInitCallback)(struct __GFXTIM_HandleTypeDef *hgfxtim); /*!< GFXTIM MSP de-initialization user callback */
|
|
#endif /* USE_HAL_GFXTIM_REGISTER_CALLBACKS */
|
|
} GFXTIM_HandleTypeDef;
|
|
|
|
|
|
#if (USE_HAL_GFXTIM_REGISTER_CALLBACKS == 1)
|
|
/**
|
|
* @brief GFXTIM callback ID enumeration definition
|
|
*/
|
|
typedef enum
|
|
{
|
|
HAL_GFXTIM_AFC_COMPARE1_CB_ID = 1U, /*!< GFXTIM Absolute frame counter compare 1 callback ID */
|
|
HAL_GFXTIM_AFC_OVERFLOW_CB_ID = 2U, /*!< GFXTIM Absolute frame counter overflow callback ID */
|
|
HAL_GFXTIM_ALC_COMPARE1_CB_ID = 3U, /*!< GFXTIM Absolute line counter compare 1 callback ID */
|
|
HAL_GFXTIM_ALC_COMPARE2_CB_ID = 4U, /*!< GFXTIM Absolute line counter compare 2 callback ID */
|
|
HAL_GFXTIM_ALC_OVERFLOW_CB_ID = 5U, /*!< GFXTIM Absolute line counter overflow callback ID */
|
|
HAL_GFXTIM_RFC1_RELOAD_CB_ID = 6U, /*!< GFXTIM Relative frame counter 1 reload callback ID */
|
|
HAL_GFXTIM_RFC2_RELOAD_CB_ID = 7U, /*!< GFXTIM Relative frame counter 2 reload callback ID */
|
|
HAL_GFXTIM_TE_CB_ID = 8U, /*!< GFXTIM External tearing effect callback ID */
|
|
HAL_GFXTIM_EVENT1_CB_ID = 9U, /*!< GFXTIM Event events 1 callback ID */
|
|
HAL_GFXTIM_EVENT2_CB_ID = 10U, /*!< GFXTIM Event events 2 callback ID */
|
|
HAL_GFXTIM_EVENT3_CB_ID = 11U, /*!< GFXTIM Event events 3 callback ID */
|
|
HAL_GFXTIM_EVENT4_CB_ID = 12U, /*!< GFXTIM Event events 4 callback ID */
|
|
HAL_GFXTIM_WDG_ALARM_CB_ID = 13U, /*!< GFXTIM Watchdog alarm callback ID */
|
|
HAL_GFXTIM_WDG_PREALARM_CB_ID = 14U, /*!< GFXTIM Watchdog pre alarm callback ID */
|
|
HAL_GFXTIM_ERROR_CB_ID = 15U, /*!< GFXTIM error callback ID */
|
|
HAL_GFXTIM_MSP_INIT_CB_ID = 16U, /*!< GFXTIM MSP initialization user callback ID */
|
|
HAL_GFXTIM_MSP_DEINIT_CB_ID = 17U, /*!< GFXTIM MSP de-initialization user callback ID */
|
|
} HAL_GFXTIM_CallbackIDTypeDef;
|
|
|
|
/**
|
|
* @brief GFXTIM callback pointers definition
|
|
*/
|
|
typedef void (*pGFXTIM_CallbackTypeDef)(GFXTIM_HandleTypeDef *hgfxtim);
|
|
#endif /* USE_HAL_GFXTIM_REGISTER_CALLBACKS */
|
|
|
|
|
|
|
|
|
|
/**
|
|
* @brief GFXTIM clock generator structure definition
|
|
*/
|
|
typedef struct
|
|
{
|
|
uint32_t LCCHwReloadSrc; /*!< Line Clock Counter hardware reload source
|
|
This parameter can be a value of @ref GFXTIM_LCCHwReloadSrc */
|
|
|
|
uint32_t LCCReloadValue; /*!< Line Clock Counter reload value (22 bits)
|
|
This parameter must be a number between Min_Data = 1 and Max_Data = 4194303 */
|
|
|
|
uint32_t LCCClockSrc; /*!< Line Clock Counter Clock Source
|
|
This parameter can be a value of @ref GFXTIM_LCCClockSrc */
|
|
|
|
uint32_t LineClockSrc; /*!< Line Clock Source
|
|
This parameter can be a value of @ref GFXTIM_LineClockSrc */
|
|
|
|
uint32_t FCCHwReloadSrc; /*!< Frame Clock Counter hardware reload source
|
|
This parameter can be a value of @ref GFXTIM_FCCHwReloadSrc */
|
|
|
|
uint32_t FCCReloadValue; /*!< Frame Clock Counter reload value (12 bits)
|
|
This parameter must be a number between Min_Data = 1 and Max_Data = 4095 */
|
|
|
|
uint32_t FCCClockSrc; /*!< Frame Clock Counter Clock Source
|
|
This parameter can be a value of @ref GFXTIM_FCCClockSrc */
|
|
|
|
uint32_t FrameClockSrc; /*!< Frame Clock Source
|
|
This parameter can be a value of @ref GFXTIM_FrameClockSrc */
|
|
|
|
uint32_t LineClockCalib; /*!< Debug purpose
|
|
This parameter can be a value of @ref GFXTIM_LineClockCalib */
|
|
|
|
uint32_t FrameClockCalib; /*!< Debug purpose
|
|
This parameter can be a value of @ref GFXTIM_FrameClockCalib */
|
|
} GFXTIM_ClockGeneratorConfigTypeDef;
|
|
|
|
/**
|
|
* @brief GFXTIM absolute timer configuration structure
|
|
*/
|
|
typedef struct
|
|
{
|
|
uint32_t FrameCompare1Value; /*!< Absolute Frame Compare 1 value (20 bits)
|
|
This parameter must be a number between 1 and 1048575 */
|
|
|
|
uint32_t FrameCounterValue; /*!< Absolute Frame Counter initial value (20 bits)
|
|
This parameter must be a number between 1 and 1048575 */
|
|
|
|
uint32_t FrameOverflowInterrupt; /*!< Absolute Frame Counter Overflow Interrupt Enable or Disable
|
|
This parameter can be a value of @ref GFXTIM_Interrupt */
|
|
|
|
uint32_t FrameCompare1Interrupt; /*!< Absolute Frame Compare 1 Interrupt Enable or Disable
|
|
This parameter can be a value of @ref GFXTIM_Interrupt */
|
|
|
|
uint32_t LineCompare1Value; /*!< Absolute Line Compare 1 value (12 bits)
|
|
This parameter must be a number between 1 and 4095 */
|
|
|
|
uint32_t LineCompare2Value; /*!< Absolute Line Compare 2 value (12 bits)
|
|
This parameter must be a number between 1 and 4095 */
|
|
|
|
uint32_t LineCounterValue; /*!< Absolute Line Counter value (12 bits)
|
|
This parameter must be a number between 1 and 4095 */
|
|
|
|
uint32_t LineOverflowInterrupt; /*!< Absolute Line Counter Overflow Interrupt Enable or Disable
|
|
This parameter can be a value of @ref GFXTIM_Interrupt */
|
|
|
|
uint32_t LineCompare1Interrupt; /*!< Absolute Line Compare 1 Interrupt Enable or Disable
|
|
This parameter can be a value of @ref GFXTIM_Interrupt */
|
|
|
|
uint32_t LineCompare2Interrupt; /*!< Absolute Line Compare 2 Interrupt Enable or Disable
|
|
This parameter can be a value of @ref GFXTIM_Interrupt */
|
|
} GFXTIM_AbsoluteTimerConfigTypeDef;
|
|
|
|
|
|
/**
|
|
* @brief GFXTIM relative timer configuration structure
|
|
*/
|
|
typedef struct
|
|
{
|
|
uint32_t AutoReloadValue; /*!< Auto reload value (12 bits)
|
|
This parameter must be a number between 1 and 4095 */
|
|
|
|
uint32_t CounterMode; /*!< Counter Mode
|
|
This parameter can be a value of GFXTIM_RelativeCounterMode */
|
|
uint32_t ReloadInterrupt; /*!< Relative Frame Counter Reload Interrupt Enable or Disable
|
|
This parameter can be a value of @ref GFXTIM_Interrupt */
|
|
} GFXTIM_RelativeTimerConfigTypeDef;
|
|
|
|
|
|
/**
|
|
* @brief GFXTIM event generator configuration structure
|
|
*/
|
|
typedef struct
|
|
{
|
|
uint32_t LineEvent; /*!< Line event selection
|
|
This parameter can be a value of GFXTIM_EventLine */
|
|
|
|
uint32_t FrameEvent; /*!< Frmae event selection
|
|
This parameter can be a value of GFXTIM_EventFrame */
|
|
|
|
uint32_t EventInterrupt; /*!< Event interrupt Enable or Disable
|
|
This parameter can be a value of @ref GFXTIM_Interrupt */
|
|
} GFXTIM_EventGeneratorConfigTypeDef;
|
|
|
|
/**
|
|
* @brief GFXTIM watchdog configuration structure
|
|
*/
|
|
typedef struct
|
|
{
|
|
uint32_t ClockSrc; /*!< Clock source
|
|
This parameter can be a value of GFXTIM_WatchdogClockSrc */
|
|
|
|
uint32_t AutoReloadValue; /*!< Reload value (16 bits)
|
|
This parameter must be a number between 1 and 65535 */
|
|
|
|
uint32_t HwReloadConfig; /*!< Hardware reload configuration
|
|
This parameter can be a value of GFXTIM_WatchdogHwReloadConfig */
|
|
|
|
uint32_t PreAlarmValue; /*!< Pre-alarm value (16 bits)
|
|
This parameter must be a number between 1 and 65535 */
|
|
|
|
uint32_t AlarmInterrupt; /*!< Interrupt Enable or Disable when watchdog counter reaches 0
|
|
This parameter can be a value of @ref GFXTIM_Interrupt */
|
|
|
|
uint32_t PreAlarmInterrupt; /*!< Interrupt Enable or Disable when watchdog counter reaches pre-alarm value
|
|
This parameter can be a value of @ref GFXTIM_Interrupt */
|
|
} GFXTIM_WatchdogConfigTypeDef;
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/* Exported constants --------------------------------------------------------*/
|
|
/** @defgroup GFXTIM_Exported_Constants GFXTIM Exported Constants
|
|
* @{
|
|
*/
|
|
|
|
/** @defgroup GFXTIM_ErrorCode GFXTIM Error Code
|
|
* @{
|
|
*/
|
|
#define GFXTIM_ERROR_NONE 0U /*!< No error */
|
|
#define GFXTIM_ERROR_STATE 1U /*!< State error */
|
|
#if (USE_HAL_GFXTIM_REGISTER_CALLBACKS == 1)
|
|
#define GFXTIM_ERROR_INVALID_CALLBACK 2U /*!< Invalid callback error occurs */
|
|
#endif /* USE_HAL_GFXTIM_REGISTER_CALLBACKS */
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/** @defgroup GFXTIM_Interrupt GFXTIM Interrupt
|
|
* @{
|
|
*/
|
|
#define GFXTIM_IT_DISABLE 0U /*!< gfxtim_interrupt disable */
|
|
#define GFXTIM_IT_ENABLE 1U /*!< gfxtim_interrupt enable */
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/** @defgroup GFXTIM_SynchroSrc GFXTIM Synchronization Source
|
|
* @{
|
|
*/
|
|
#define GFXTIM_SYNC_SRC_HSYNC_VSYNC_0 0U /*!< gfxtim_hsync[0] and gfxtim_vsync[0] are used as synchronization source */
|
|
#define GFXTIM_SYNC_SRC_HSYNC_VSYNC_1 GFXTIM_CR_SYNCS_0 /*!< gfxtim_hsync[1] and gfxtim_vsync[1] are used as synchronization source */
|
|
#define GFXTIM_SYNC_SRC_HSYNC_VSYNC_2 GFXTIM_CR_SYNCS_1 /*!< gfxtim_hsync[2] and gfxtim_vsync[2] are used as synchronization source */
|
|
#define GFXTIM_SYNC_SRC_HSYNC_VSYNC_3 (GFXTIM_CR_SYNCS_0 | GFXTIM_CR_SYNCS_1) /*!< gfxtim_hsync[3] and gfxtim_vsync[3] are used as synchronization source */
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/** @defgroup GFXTIM_TearingEffectSrc GFXTIM Tearing Effect Source
|
|
* @{
|
|
*/
|
|
#define GFXTIM_TE_SRC_GPIO 0U /*!< Input pad rising */
|
|
#define GFXTIM_TE_SRC_ITE GFXTIM_CR_TES_0 /*!< gfxtim_ite rising */
|
|
#define GFXTIM_TE_SRC_HSYNC GFXTIM_CR_TES_1 /*!< HSYNC (see SynchroSrc) rising */
|
|
#define GFXTIM_TE_SRC_VSYNC (GFXTIM_CR_TES_0 | GFXTIM_CR_TES_1) /*!< VSYNC (see SynchroSrc) rising */
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/** @defgroup GFXTIM_TearingEffectPolarity GFXTIM Tearing Effect Polarity
|
|
* @{
|
|
*/
|
|
#define GFXTIM_TE_RISING_EDGE 0U /*!< Tearing Effect active on rizing edge */
|
|
#define GFXTIM_TE_FALLING_EDGE GFXTIM_CR_TEPOL /*!< Tearing Effect active on falling edge */
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/** @defgroup GFXTIM_LCCHwReloadSrc GFXTIM Line Clock Counter Hardware Reload Source
|
|
* @{
|
|
*/
|
|
#define GFXTIM_LCC_HW_RELOAD_SRC_NONE 0U /*!< No hardware reload */
|
|
#define GFXTIM_LCC_HW_RELOAD_SRC_FCC_UNDERFLOW GFXTIM_CGCR_LCCHRS_0 /*!< FCC underflow */
|
|
#define GFXTIM_LCC_HW_RELOAD_SRC_HSYNC_RISING GFXTIM_CGCR_LCCHRS_1 /*!< HSYNC rising */
|
|
#define GFXTIM_LCC_HW_RELOAD_SRC_HSYNC_FALLING (GFXTIM_CGCR_LCCHRS_0 | GFXTIM_CGCR_LCCHRS_1) /*!< HSYNC falling */
|
|
#define GFXTIM_LCC_HW_RELOAD_SRC_VSYNC_RISING GFXTIM_CGCR_LCCHRS_2 /*!< VSYNC rising */
|
|
#define GFXTIM_LCC_HW_RELOAD_SRC_VSYNC_FALLING (GFXTIM_CGCR_LCCHRS_2 | GFXTIM_CGCR_LCCHRS_0) /*!< VSYNC falling */
|
|
#define GFXTIM_LCC_HW_RELOAD_SRC_TE_RISING (GFXTIM_CGCR_LCCHRS_2 | GFXTIM_CGCR_LCCHRS_1) /*!< TE rising */
|
|
#define GFXTIM_LCC_HW_RELOAD_SRC_TE_FALLING (GFXTIM_CGCR_LCCHRS_2 | GFXTIM_CGCR_LCCHRS_1 | GFXTIM_CGCR_LCCHRS_0) /*!< TE falling */
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/** @defgroup GFXTIM_LCCClockSrc GFXTIM Line Clock Counter Clock Source
|
|
* @{
|
|
*/
|
|
#define GFXTIM_LCC_CLK_SRC_DISABLE 0U /*!< Disable line clock counter */
|
|
#define GFXTIM_LCC_CLK_SRC_SYSCLOCK GFXTIM_CGCR_LCCCS /*!< System clock as line clock counter source*/
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/** @defgroup GFXTIM_LineClockSrc GFXTIM Line Clock Source
|
|
* @{
|
|
*/
|
|
#define GFXTIM_LINE_CLK_SRC_LCC_UNDERFLOW 0U /*!< Line Clock Counter underflow */
|
|
#define GFXTIM_LINE_CLK_SRC_FCC_UNDERFLOW GFXTIM_CGCR_LCS_0 /*!< Frame Clock Counter underflow */
|
|
#define GFXTIM_LINE_CLK_SRC_HSYNC_RISING GFXTIM_CGCR_LCS_1 /*!< HSYNC rising edge */
|
|
#define GFXTIM_LINE_CLK_SRC_HSYNC_FALLING (GFXTIM_CGCR_LCS_0 | GFXTIM_CGCR_LCS_1) /*!< HSYNC falling edge*/
|
|
#define GFXTIM_LINE_CLK_SRC_VSYNC_RISING GFXTIM_CGCR_LCS_2 /*!< VSYNC rising edge*/
|
|
#define GFXTIM_LINE_CLK_SRC_VSYNC_FALLING (GFXTIM_CGCR_LCS_2 | GFXTIM_CGCR_LCS_0) /*!< VSYNC falling edge*/
|
|
#define GFXTIM_LINE_CLK_SRC_TE_RISING (GFXTIM_CGCR_LCS_2 | GFXTIM_CGCR_LCS_1) /*!< TE rising edge*/
|
|
#define GFXTIM_LINE_CLK_SRC_TE_FALLING (GFXTIM_CGCR_LCS_2 | GFXTIM_CGCR_LCS_1 | GFXTIM_CGCR_LCS_0) /*!< TE falling edge*/
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/** @defgroup GFXTIM_FCCHwReloadSrc GFXTIM Frame Clock Counter Hardware Reload source
|
|
* @{
|
|
*/
|
|
#define GFXTIM_FCC_HW_RELOAD_SRC_NONE 0U /*!< No hardware reload */
|
|
#define GFXTIM_FCC_HW_RELOAD_SRC_LCC_UNDERFLOW GFXTIM_CGCR_FCCHRS_0 /*!< Line Clock Counter underflow */
|
|
#define GFXTIM_FCC_HW_RELOAD_SRC_HSYNC_RISING GFXTIM_CGCR_FCCHRS_1 /*!< HSYNC rising edge */
|
|
#define GFXTIM_FCC_HW_RELOAD_SRC_HSYNC_FALLING (GFXTIM_CGCR_FCCHRS_0 | GFXTIM_CGCR_FCCHRS_1) /*!< HSYNC falling edge */
|
|
#define GFXTIM_FCC_HW_RELOAD_SRC_VSYNC_RISING GFXTIM_CGCR_FCCHRS_2 /*!< VSYNC rising edge */
|
|
#define GFXTIM_FCC_HW_RELOAD_SRC_VSYNC_FALLING (GFXTIM_CGCR_FCCHRS_2 | GFXTIM_CGCR_FCCHRS_0) /*!< VSYNC falling edge */
|
|
#define GFXTIM_FCC_HW_RELOAD_SRC_TE_RISING (GFXTIM_CGCR_FCCHRS_2 | GFXTIM_CGCR_FCCHRS_1) /*!< TE rising edge */
|
|
#define GFXTIM_FCC_HW_RELOAD_SRC_TE_FALLING (GFXTIM_CGCR_FCCHRS_2 | GFXTIM_CGCR_FCCHRS_1 | GFXTIM_CGCR_FCCHRS_0) /*!< TE falling edge */
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/** @defgroup GFXTIM_FCCClockSrc GFXTIM Frame CLock Counter Clock Source
|
|
* @{
|
|
*/
|
|
#define GFXTIM_FCC_CLK_SRC_DISABLE 0U /*!< Disable */
|
|
#define GFXTIM_FCC_CLK_SRC_LCC_UNDERFLOW GFXTIM_CGCR_FCCCS_0 /*!< Line Clock Counter underflow */
|
|
#define GFXTIM_FCC_CLK_SRC_HSYNC_RISING GFXTIM_CGCR_FCCCS_1 /*!< HSYNC rising edge */
|
|
#define GFXTIM_FCC_CLK_SRC_HSYNC_FALLING (GFXTIM_CGCR_FCCCS_0 | GFXTIM_CGCR_FCCCS_1) /*!< HSYNC falling edge */
|
|
#define GFXTIM_FCC_CLK_SRC_VSYNC_RISING GFXTIM_CGCR_FCCCS_2 /*!< VSYNC rising edge */
|
|
#define GFXTIM_FCC_CLK_SRC_VSYNC_FALLING (GFXTIM_CGCR_FCCCS_2 | GFXTIM_CGCR_FCCCS_0) /*!< VSYNC falling edge */
|
|
#define GFXTIM_FCC_CLK_SRC_TE_RISING (GFXTIM_CGCR_FCCCS_2 | GFXTIM_CGCR_FCCCS_1) /*!< TE rising edge */
|
|
#define GFXTIM_FCC_CLK_SRC_TE_FALLING (GFXTIM_CGCR_FCCCS_2 | GFXTIM_CGCR_FCCCS_1 | GFXTIM_CGCR_FCCCS_0) /*!< TE falling edge */
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/** @defgroup GFXTIM_FrameClockSrc GFXTIM GFXTIM Frame Clock Source
|
|
* @{
|
|
*/
|
|
#define GFXTIM_FRAME_CLK_SRC_LCC_UNDERFLOW 0U /*!< Line Clock Counter underflow */
|
|
#define GFXTIM_FRAME_CLK_SRC_FCC_UNDERFLOW GFXTIM_CGCR_FCS_0 /*!< Frame Clock Counter underflow */
|
|
#define GFXTIM_FRAME_CLK_SRC_HSYNC_RISING GFXTIM_CGCR_FCS_1 /*!< HSYNC rising edge */
|
|
#define GFXTIM_FRAME_CLK_SRC_HSYNC_FALLING (GFXTIM_CGCR_FCS_0 | GFXTIM_CGCR_FCS_1) /*!< HSYNC falling edge */
|
|
#define GFXTIM_FRAME_CLK_SRC_VSYNC_RISING GFXTIM_CGCR_FCS_2 /*!< VSYNC rising edge */
|
|
#define GFXTIM_FRAME_CLK_SRC_VSYNC_FALLING (GFXTIM_CGCR_FCS_2 | GFXTIM_CGCR_FCS_0) /*!< VSYNC falling edge */
|
|
#define GFXTIM_FRAME_CLK_SRC_TE_RISING (GFXTIM_CGCR_FCS_2 | GFXTIM_CGCR_FCS_1) /*!< TE rising edge */
|
|
#define GFXTIM_FRAME_CLK_SRC_TE_FALLING (GFXTIM_CGCR_FCS_2 | GFXTIM_CGCR_FCS_1 | GFXTIM_CGCR_FCS_0) /*!< TE falling edge */
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/** @defgroup GFXTIM_LineClockCalib GFXTIM Line Clock Calibration Output
|
|
* @{
|
|
*/
|
|
#define GFXTIM_LINE_CLK_CALIB_DISABLE 0U /*!< Disable Line clock calibration */
|
|
#define GFXTIM_LINE_CLK_CALIB_ENABLE GFXTIM_CR_LCCOE /*!< Enable Line clock calibration */
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/** @defgroup GFXTIM_FrameClockCalib GFXTIM Frame Clock Calibration Output (for debug purpose)
|
|
* @{
|
|
*/
|
|
#define GFXTIM_FRAME_CLK_CALIB_DISABLE 0U /*!< Frame clock output calibration Disable */
|
|
#define GFXTIM_FRAME_CLK_CALIB_ENABLE GFXTIM_CR_FCCOE /*!< Frame clock output calibration Enable */
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/** @defgroup GFXTIM_ClockGeneratorCounter GFXTIM Clock Generator Counter
|
|
* @{
|
|
*/
|
|
#define GFXTIM_LINE_CLK_COUNTER GFXTIM_CGCR_LCCFR /*!< Line clock counter */
|
|
#define GFXTIM_FRAME_CLK_COUNTER GFXTIM_CGCR_FCCFR /*!< Frame clock counter */
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/** @defgroup GFXTIM_AbsoluteTime GFXTIM Absolute Time
|
|
* @{
|
|
*/
|
|
#define GFXTIM_ABSOLUTE_GLOBAL_TIME 0x00000014U /*!< Absolute global time (frame and line) counters ATR*/
|
|
#define GFXTIM_ABSOLUTE_FRAME_TIME 0x00000015U /*!< Absolute frame counter AFCR */
|
|
#define GFXTIM_ABSOLUTE_LINE_TIME 0x00000016U /*!< Absolute line counter ALCR */
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/** @defgroup GFXTIM_AbsoluteLineComparator GFXTIM Absolute Line Comparator
|
|
* @{
|
|
*/
|
|
#define GFXTIM_ABSOLUTE_LINE_COMPARE1 0x1CU /*!< Absolute line compare 1 */
|
|
#define GFXTIM_ABSOLUTE_LINE_COMPARE2 0x1DU /*!< Absolute line compare 2 */
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
|
|
/** @defgroup GFXTIM_RelativeCounterMode GFXTIM Relative Frame Counter Mode
|
|
* @{
|
|
*/
|
|
#define GFXTIM_MODE_ONE_SHOT 0U /*!< Relative Frame Counter One Shot Mode*/
|
|
#define GFXTIM_MODE_CONTINUOUS 1U /*!< Relative Frame Counter Continuous Mode */
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/** @defgroup GFXTIM_RelativeTimer GFXTIM Relative Timer
|
|
* @{
|
|
*/
|
|
#define GFXTIM_RELATIVE_TIMER1 0U /*!< Relative Timer 1*/
|
|
#define GFXTIM_RELATIVE_TIMER2 1U /*!< Relative Timer 2 */
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/** @defgroup GFXTIM_EventLineSrc GFXTIM Event generator Line source selection
|
|
* @{
|
|
*/
|
|
#define GFXTIM_LINE_EVENT_NONE (0U << GFXTIM_EVSR_LES1_Pos) /*!< None */
|
|
#define GFXTIM_LINE_EVENT_ALC_OVERFLOW (1U << GFXTIM_EVSR_LES1_Pos) /*!< Absolute line counter overflow */
|
|
#define GFXTIM_LINE_EVENT_TE (2U << GFXTIM_EVSR_LES1_Pos) /*!< Tearing effect */
|
|
#define GFXTIM_LINE_EVENT_ALC1_COMPARE (4U << GFXTIM_EVSR_LES1_Pos) /*!< Absolute line counter 1 compare */
|
|
#define GFXTIM_LINE_EVENT_ALC2_COMPARE (5U << GFXTIM_EVSR_LES1_Pos) /*!< Absolute line counter 2 compare */
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/** @defgroup GFXTIM_EventFrameSrc GFXTIM Event generator Frame Source selection
|
|
* @{
|
|
*/
|
|
#define GFXTIM_FRAME_EVENT_NONE (0U << GFXTIM_EVSR_FES1_Pos ) /*!< None */
|
|
#define GFXTIM_FRAME_EVENT_AFC_OVERFLOW (1U << GFXTIM_EVSR_FES1_Pos ) /*!< Absolute frame counter overflow */
|
|
#define GFXTIM_FRAME_EVENT_AFC_COMPARE (2U << GFXTIM_EVSR_FES1_Pos ) /*!< Absolute frame counter compare */
|
|
#define GFXTIM_FRAME_EVENT_RFC1_RELOAD (4U << GFXTIM_EVSR_FES1_Pos ) /*!< Relative frame counter 1 reload */
|
|
#define GFXTIM_FRAME_EVENT_RFC2_RELOAD (5U << GFXTIM_EVSR_FES1_Pos ) /*!< Relative frame counter 1 reload */
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/** @defgroup GFXTIM_EventGenerator GFXTIM Event Generator ID
|
|
* @{
|
|
*/
|
|
#define GFXTIM_EVENT_GENERATOR_1 0U /*!< Event Generator 1 */
|
|
#define GFXTIM_EVENT_GENERATOR_2 1U /*!< Event Generator 2 */
|
|
#define GFXTIM_EVENT_GENERATOR_3 2U /*!< Event Generator 3 */
|
|
#define GFXTIM_EVENT_GENERATOR_4 3U /*!< Event Generator 4 */
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
|
|
/** @defgroup GFXTIM_WatchdogHwReloadConfig GFXTIM Watchdog hardware reload configuration
|
|
* @{
|
|
*/
|
|
#define GFXTIM_WATCHDOG_HW_RELOAD_DISABLE (0U << GFXTIM_WDGTCR_WDGHRC_Pos) /*!< Watchdog hardware reload is disable */
|
|
#define GFXTIM_WATCHDOG_HW_RELOAD_RISING_EDGE (1U << GFXTIM_WDGTCR_WDGHRC_Pos) /*!< Watchdog is reload on rising edge of gfxtim_wrld */
|
|
#define GFXTIM_WATCHDOG_HW_RELOAD_FALLING_EDGE (2U << GFXTIM_WDGTCR_WDGHRC_Pos) /*!< Watchdog is reload on falling edge of gfxtim_wrld */
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/** @defgroup GFXTIM_WatchdogClockSrc GFXTIM Watchdog clock source
|
|
* @{
|
|
*/
|
|
#define GFXTIM_WATCHDOG_CLK_SRC_LINE_CLK (0U << GFXTIM_WDGTCR_WDGCS_Pos) /*!< Line Clock */
|
|
#define GFXTIM_WATCHDOG_CLK_SRC_FRAME_CLK (1U << GFXTIM_WDGTCR_WDGCS_Pos) /*!< Frame Clock */
|
|
#define GFXTIM_WATCHDOG_CLK_SRC_HSYNC_RISING (2U << GFXTIM_WDGTCR_WDGCS_Pos) /*!< HSYNC rising edge */
|
|
#define GFXTIM_WATCHDOG_CLK_SRC_HSYNC_FALLING (3U << GFXTIM_WDGTCR_WDGCS_Pos) /*!< HSYNC falling edge */
|
|
#define GFXTIM_WATCHDOG_CLK_SRC_VSYNC_RISING (4U << GFXTIM_WDGTCR_WDGCS_Pos) /*!< VSYNC rising edge */
|
|
#define GFXTIM_WATCHDOG_CLK_SRC_VSYNC_FALLING (5U << GFXTIM_WDGTCR_WDGCS_Pos) /*!< VSYNC falling edge */
|
|
#define GFXTIM_WATCHDOG_CLK_SRC_TE_RISING (6U << GFXTIM_WDGTCR_WDGCS_Pos) /*!< Tearing Effect rising edge */
|
|
#define GFXTIM_WATCHDOG_CLK_SRC_TE_FALLING (7U << GFXTIM_WDGTCR_WDGCS_Pos) /*!< Tearing Effect falling edge */
|
|
#define GFXTIM_WATCHDOG_CLK_SRC_EVENT_1 (8U << GFXTIM_WDGTCR_WDGCS_Pos) /*!< Event Generator 1 output */
|
|
#define GFXTIM_WATCHDOG_CLK_SRC_EVENT_2 (9U << GFXTIM_WDGTCR_WDGCS_Pos) /*!< Event Generator 2 output */
|
|
#define GFXTIM_WATCHDOG_CLK_SRC_EVENT_3 (10U << GFXTIM_WDGTCR_WDGCS_Pos) /*!< Event Generator 3 output */
|
|
#define GFXTIM_WATCHDOG_CLK_SRC_EVENT_4 (11U << GFXTIM_WDGTCR_WDGCS_Pos) /*!< Event Generator 4 output */
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/** @defgroup GFXTIM_Flag GFXTIM flags
|
|
* @{
|
|
*/
|
|
#define GFXTIM_FLAG_AFCO GFXTIM_ISR_AFCOF /* Absolute Frame Counter Overflow Flag */
|
|
#define GFXTIM_FLAG_ALCO GFXTIM_ISR_ALCOF /* Absolute Line Counter Overflow Flag */
|
|
#define GFXTIM_FLAG_TE GFXTIM_ISR_TEF /* Tearing Effect Flag */
|
|
#define GFXTIM_FLAG_AFCC1 GFXTIM_ISR_AFCC1F /* Absolute Frame Counter Compare 1 Flag */
|
|
#define GFXTIM_FLAG_ALCC1 GFXTIM_ISR_ALCC1F /* Absolute Line Counter Compare 1 Flag */
|
|
#define GFXTIM_FLAG_ALCC2 GFXTIM_ISR_ALCC2F /* Absolute Line Counter Compare 2 Flag */
|
|
#define GFXTIM_FLAG_RFC1R GFXTIM_ISR_RFC1RF /* Relative Frame Counter 1 Reload Flag */
|
|
#define GFXTIM_FLAG_RFC2R GFXTIM_ISR_RFC2RF /* Relative Frame Counter 2 Reload Flag */
|
|
#define GFXTIM_FLAG_EV1 GFXTIM_ISR_EV1F /* Event 1 Flag */
|
|
#define GFXTIM_FLAG_EV2 GFXTIM_ISR_EV2F /* Event 2 Flag */
|
|
#define GFXTIM_FLAG_EV3 GFXTIM_ISR_EV3F /* Event 3 Flag */
|
|
#define GFXTIM_FLAG_EV4 GFXTIM_ISR_EV4F /* Event 4 Flag */
|
|
#define GFXTIM_FLAG_WDGA GFXTIM_ISR_WDGAF /* Watchdog Alarm Flag */
|
|
#define GFXTIM_FLAG_WDGP GFXTIM_ISR_WDGPF /* Watchdog Pre-alarm Flag */
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
|
|
/* Private macros ------------------------------------------------------------*/
|
|
/** @defgroup GFXTIM_Private_Macros GFXTIM Private Macros
|
|
* @{
|
|
*/
|
|
#define IS_GFXTIM_INTERRUPT(PARAM) (((PARAM) == GFXTIM_IT_ENABLE ) || \
|
|
((PARAM) == GFXTIM_IT_DISABLE ))
|
|
|
|
#define IS_GFXTIM_SYNC_SRC(PARAM) (((PARAM) == GFXTIM_SYNC_SRC_HSYNC_VSYNC_0) || \
|
|
((PARAM) == GFXTIM_SYNC_SRC_HSYNC_VSYNC_1) || \
|
|
((PARAM) == GFXTIM_SYNC_SRC_HSYNC_VSYNC_2) || \
|
|
((PARAM) == GFXTIM_SYNC_SRC_HSYNC_VSYNC_3))
|
|
|
|
#define IS_GFXTIM_TE_SRC(PARAM) (((PARAM) == GFXTIM_TE_SRC_GPIO ) || \
|
|
((PARAM) == GFXTIM_TE_SRC_ITE ) || \
|
|
((PARAM) == GFXTIM_TE_SRC_HSYNC ) || \
|
|
((PARAM) == GFXTIM_TE_SRC_VSYNC ))
|
|
|
|
#define IS_GFXTIM_TE_POLARITY(PARAM) (((PARAM) == GFXTIM_TE_RISING_EDGE ) || \
|
|
((PARAM) == GFXTIM_TE_FALLING_EDGE ))
|
|
|
|
#define IS_GFXTIM_LCC_HW_RELOAD_SRC(PARAM) (((PARAM) == GFXTIM_LCC_HW_RELOAD_SRC_NONE ) || \
|
|
((PARAM) == GFXTIM_LCC_HW_RELOAD_SRC_FCC_UNDERFLOW) || \
|
|
((PARAM) == GFXTIM_LCC_HW_RELOAD_SRC_HSYNC_RISING ) || \
|
|
((PARAM) == GFXTIM_LCC_HW_RELOAD_SRC_HSYNC_FALLING) || \
|
|
((PARAM) == GFXTIM_LCC_HW_RELOAD_SRC_VSYNC_RISING ) || \
|
|
((PARAM) == GFXTIM_LCC_HW_RELOAD_SRC_VSYNC_FALLING) || \
|
|
((PARAM) == GFXTIM_LCC_HW_RELOAD_SRC_TE_RISING ) || \
|
|
((PARAM) == GFXTIM_LCC_HW_RELOAD_SRC_TE_FALLING ))
|
|
|
|
#define IS_GFXTIM_LCC_CLK_SRC(PARAM) (((PARAM) == GFXTIM_LCC_CLK_SRC_DISABLE) || \
|
|
((PARAM) == GFXTIM_LCC_CLK_SRC_SYSCLOCK))
|
|
|
|
#define IS_GFXTIM_LINE_CLK_SRC(PARAM) (((PARAM) == GFXTIM_LINE_CLK_SRC_LCC_UNDERFLOW) || \
|
|
((PARAM) == GFXTIM_LINE_CLK_SRC_FCC_UNDERFLOW) || \
|
|
((PARAM) == GFXTIM_LINE_CLK_SRC_HSYNC_RISING ) || \
|
|
((PARAM) == GFXTIM_LINE_CLK_SRC_HSYNC_FALLING) || \
|
|
((PARAM) == GFXTIM_LINE_CLK_SRC_VSYNC_RISING ) || \
|
|
((PARAM) == GFXTIM_LINE_CLK_SRC_VSYNC_FALLING) || \
|
|
((PARAM) == GFXTIM_LINE_CLK_SRC_TE_RISING) || \
|
|
((PARAM) == GFXTIM_LINE_CLK_SRC_TE_FALLING))
|
|
|
|
#define IS_GFXTIM_FCC_HW_RELOAD_SRC(PARAM) (((PARAM) == GFXTIM_FCC_HW_RELOAD_SRC_NONE) || \
|
|
((PARAM) == GFXTIM_FCC_HW_RELOAD_SRC_LCC_UNDERFLOW) || \
|
|
((PARAM) == GFXTIM_FCC_HW_RELOAD_SRC_HSYNC_RISING ) || \
|
|
((PARAM) == GFXTIM_FCC_HW_RELOAD_SRC_HSYNC_FALLING) || \
|
|
((PARAM) == GFXTIM_FCC_HW_RELOAD_SRC_VSYNC_RISING ) || \
|
|
((PARAM) == GFXTIM_FCC_HW_RELOAD_SRC_VSYNC_FALLING) || \
|
|
((PARAM) == GFXTIM_FCC_HW_RELOAD_SRC_TE_RISING) || \
|
|
((PARAM) == GFXTIM_FCC_HW_RELOAD_SRC_TE_FALLING))
|
|
|
|
#define IS_GFXTIM_FCC_CLK_SRC(PARAM) (((PARAM) == GFXTIM_FCC_CLK_SRC_DISABLE) || \
|
|
((PARAM) == GFXTIM_FCC_CLK_SRC_LCC_UNDERFLOW) || \
|
|
((PARAM) == GFXTIM_FCC_CLK_SRC_HSYNC_RISING ) || \
|
|
((PARAM) == GFXTIM_FCC_CLK_SRC_HSYNC_FALLING) || \
|
|
((PARAM) == GFXTIM_FCC_CLK_SRC_VSYNC_RISING ) || \
|
|
((PARAM) == GFXTIM_FCC_CLK_SRC_VSYNC_FALLING) || \
|
|
((PARAM) == GFXTIM_FCC_CLK_SRC_TE_RISING) || \
|
|
((PARAM) == GFXTIM_FCC_CLK_SRC_TE_FALLING))
|
|
|
|
#define IS_GFXTIM_FRAME_CLK_SRC(PARAM) (((PARAM) == GFXTIM_FRAME_CLK_SRC_LCC_UNDERFLOW) || \
|
|
((PARAM) == GFXTIM_FRAME_CLK_SRC_FCC_UNDERFLOW) || \
|
|
((PARAM) == GFXTIM_FRAME_CLK_SRC_HSYNC_RISING ) || \
|
|
((PARAM) == GFXTIM_FRAME_CLK_SRC_HSYNC_FALLING) || \
|
|
((PARAM) == GFXTIM_FRAME_CLK_SRC_VSYNC_RISING ) || \
|
|
((PARAM) == GFXTIM_FRAME_CLK_SRC_VSYNC_FALLING) || \
|
|
((PARAM) == GFXTIM_FRAME_CLK_SRC_TE_RISING) || \
|
|
((PARAM) == GFXTIM_FRAME_CLK_SRC_TE_FALLING))
|
|
|
|
#define IS_GFXTIM_LINE_CLK_CALIB(PARAM) (((PARAM) == GFXTIM_LINE_CLK_CALIB_DISABLE) || \
|
|
((PARAM) == GFXTIM_LINE_CLK_CALIB_ENABLE))
|
|
|
|
#define IS_GFXTIM_FRAME_CLK_CALIB(PARAM) (((PARAM) == GFXTIM_FRAME_CLK_CALIB_DISABLE) || \
|
|
((PARAM) == GFXTIM_FRAME_CLK_CALIB_ENABLE))
|
|
|
|
#define IS_GFXTIM_CLOCK_GENERATOR_COUNTER(PARAM) (((PARAM) == GFXTIM_LINE_CLK_COUNTER) || \
|
|
((PARAM) == GFXTIM_FRAME_CLK_COUNTER) || \
|
|
((PARAM) == (GFXTIM_LINE_CLK_COUNTER | \
|
|
GFXTIM_FRAME_CLK_COUNTER)))
|
|
|
|
#define IS_GFXTIM_ABSOLUTE_TIME(PARAM) (((PARAM) == GFXTIM_ABSOLUTE_GLOBAL_TIME) || \
|
|
((PARAM) == GFXTIM_ABSOLUTE_FRAME_TIME) || \
|
|
((PARAM) == GFXTIM_ABSOLUTE_LINE_TIME))
|
|
|
|
#define IS_GFXTIM_ABSOLUTE_LINE_COMPARATOR(PARAM) (((PARAM) == GFXTIM_ABSOLUTE_LINE_COMPARE1) || \
|
|
((PARAM) == GFXTIM_ABSOLUTE_LINE_COMPARE2))
|
|
|
|
#define IS_GFXTIM_RELATIVE_TIMER(PARAM) (((PARAM) == GFXTIM_RELATIVE_TIMER1) || \
|
|
((PARAM) == GFXTIM_RELATIVE_TIMER2))
|
|
|
|
#define IS_GFXTIM_RELATIVE_COUNTER_MODE(PARAM) (((PARAM) == GFXTIM_MODE_ONE_SHOT) || \
|
|
((PARAM) == GFXTIM_MODE_CONTINUOUS))
|
|
|
|
#define IS_GFXTIM_EVENT_LINE(PARAM) (((PARAM) == GFXTIM_LINE_EVENT_NONE) || \
|
|
((PARAM) == GFXTIM_LINE_EVENT_ALC_OVERFLOW) || \
|
|
((PARAM) == GFXTIM_LINE_EVENT_TE) || \
|
|
((PARAM) == GFXTIM_LINE_EVENT_ALC1_COMPARE) || \
|
|
((PARAM) == GFXTIM_LINE_EVENT_ALC2_COMPARE))
|
|
|
|
#define IS_GFXTIM_EVENT_FRAME(PARAM) (((PARAM) == GFXTIM_FRAME_EVENT_NONE) || \
|
|
((PARAM) == GFXTIM_FRAME_EVENT_AFC_OVERFLOW) || \
|
|
((PARAM) == GFXTIM_FRAME_EVENT_AFC_COMPARE) || \
|
|
((PARAM) == GFXTIM_FRAME_EVENT_RFC1_RELOAD) || \
|
|
((PARAM) == GFXTIM_FRAME_EVENT_RFC2_RELOAD))
|
|
|
|
#define IS_GFXTIM_EVENT_GENERATOR(PARAM) (((PARAM) == GFXTIM_EVENT_GENERATOR_1) || \
|
|
((PARAM) == GFXTIM_EVENT_GENERATOR_2) || \
|
|
((PARAM) == GFXTIM_EVENT_GENERATOR_3) || \
|
|
((PARAM) == GFXTIM_EVENT_GENERATOR_4))
|
|
|
|
|
|
#define IS_GFXTIM_CLOCK_GENERATOR_COUNTER_FORCE_RELOAD(PARAM) (((PARAM) == GFXTIM_LINE_CLK_COUNTER) || \
|
|
((PARAM) == GFXTIM_FRAME_CLK_COUNTER) || \
|
|
((PARAM) == (GFXTIM_LINE_CLK_COUNTER | \
|
|
GFXTIM_FRAME_CLK_COUNTER)))
|
|
|
|
|
|
#define IS_GFXTIM_WATCHDOG_HW_RELOAD_CONFIG(PARAM) (((PARAM) == GFXTIM_WATCHDOG_HW_RELOAD_DISABLE) || \
|
|
((PARAM) == GFXTIM_WATCHDOG_HW_RELOAD_RISING_EDGE) || \
|
|
((PARAM) == GFXTIM_WATCHDOG_HW_RELOAD_FALLING_EDGE))
|
|
|
|
#define IS_GFXTIM_WATCHDOG_CLOCK_SRC(PARAM) (((PARAM) == GFXTIM_WATCHDOG_CLK_SRC_LINE_CLK) || \
|
|
((PARAM) == GFXTIM_WATCHDOG_CLK_SRC_FRAME_CLK) || \
|
|
((PARAM) == GFXTIM_WATCHDOG_CLK_SRC_HSYNC_RISING) || \
|
|
((PARAM) == GFXTIM_WATCHDOG_CLK_SRC_HSYNC_FALLING) || \
|
|
((PARAM) == GFXTIM_WATCHDOG_CLK_SRC_VSYNC_RISING) || \
|
|
((PARAM) == GFXTIM_WATCHDOG_CLK_SRC_VSYNC_FALLING) || \
|
|
((PARAM) == GFXTIM_WATCHDOG_CLK_SRC_TE_RISING) || \
|
|
((PARAM) == GFXTIM_WATCHDOG_CLK_SRC_TE_FALLING) || \
|
|
((PARAM) == GFXTIM_WATCHDOG_CLK_SRC_EVENT_1) || \
|
|
((PARAM) == GFXTIM_WATCHDOG_CLK_SRC_EVENT_2) || \
|
|
((PARAM) == GFXTIM_WATCHDOG_CLK_SRC_EVENT_3) || \
|
|
((PARAM) == GFXTIM_WATCHDOG_CLK_SRC_EVENT_4))
|
|
#define IS_GFXTIM_WATCHDOG_VALUE(PARAM) ((PARAM) <= 65535U)
|
|
#define IS_GFXTIM_RELATIVE_FRAME_VALUE(PARAM) ((PARAM) <= 4095U)
|
|
#define IS_GFXTIM_ABSOLUTE_FRAME_VALUE(PARAM) ((PARAM) <= 1048575U)
|
|
#define IS_GFXTIM_ABSOLUTE_LINE_VALUE(PARAM) ((PARAM) <= 4095U)
|
|
#define IS_GFXTIM_LCC_RELOAD_VALUE(PARAM) ((PARAM) <= 4194303U)
|
|
#define IS_GFXTIM_FCC_RELOAD_VALUE(PARAM) ((PARAM) <= 4095U)
|
|
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
|
|
/* Exported macro ------------------------------------------------------------*/
|
|
/** @defgroup GFXTIM_Exported_Macros GFXTIM Exported Macros
|
|
* @{
|
|
*/
|
|
|
|
/** @brief Reset GFXTIM handle state.
|
|
* @param __HANDLE__ GFXTIM handle.
|
|
* @retval None
|
|
*/
|
|
#if (USE_HAL_GFXTIM_REGISTER_CALLBACKS == 1)
|
|
#define __HAL_GFXTIM_RESET_HANDLE_STATE(__HANDLE__) do{ \
|
|
(__HANDLE__)->State = HAL_GFXTIM_STATE_RESET; \
|
|
(__HANDLE__)->MspInitCallback = NULL; \
|
|
(__HANDLE__)->MspDeInitCallback = NULL; \
|
|
} while(0)
|
|
#else /* USE_HAL_GFXTIM_REGISTER_CALLBACKS */
|
|
#define __HAL_GFXTIM_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_GFXTIM_STATE_RESET)
|
|
#endif /* USE_HAL_GFXTIM_REGISTER_CALLBACKS */
|
|
|
|
|
|
|
|
/**
|
|
* @brief Check whether the specified GFXTIM flag is set or not.
|
|
* @param __HANDLE__ GFXTIM handle
|
|
* @param __FLAG__ GFXTIM flag
|
|
* This parameter can be one or a combination of the following values:
|
|
* @arg @ref GFXTIM_FLAG_AFCO Absolute Frame Counter Overflow Flag
|
|
* @arg @ref GFXTIM_FLAG_ALCO Absolute Line Counter Overflow Flag
|
|
* @arg @ref GFXTIM_FLAG_TE Tearing Effect Flag
|
|
* @arg @ref GFXTIM_FLAG_AFCC1 Absolute Frame Counter Compare 1 Flag
|
|
* @arg @ref GFXTIM_FLAG_ALCC1 Absolute Line Counter Compare 1 Flag
|
|
* @arg @ref GFXTIM_FLAG_ALCC2 Absolute Line Counter Compare 2 Flag
|
|
* @arg @ref GFXTIM_FLAG_RFC1R Relative Frame Counter 1 Reload Flag
|
|
* @arg @ref GFXTIM_FLAG_RFC2R Relative Frame Counter 2 Reload Flag
|
|
* @arg @ref GFXTIM_FLAG_EV1 Event 1 Flag
|
|
* @arg @ref GFXTIM_FLAG_EV2 Event 2 Flag
|
|
* @arg @ref GFXTIM_FLAG_EV3 Event 3 Flag
|
|
* @arg @ref GFXTIM_FLAG_EV4 Event 4 Flag
|
|
* @arg @ref GFXTIM_FLAG_WDGA Watchdog Alarm Flag
|
|
* @arg @ref GFXTIM_FLAG_WDGP Watchdog Pre-alarm Flag
|
|
* @retval State of flag (TRUE or FALSE).
|
|
*/
|
|
#define __HAL_GFXTIM_GET_FLAG(__HANDLE__, __FLAG__)\
|
|
((((__HANDLE__)->Instance->ISR) & (__FLAG__)) == (__FLAG__))
|
|
|
|
/**
|
|
* @brief Clear the specified GFXTIM flag.
|
|
* @param __HANDLE__ GFXTIM handle
|
|
* @param __FLAG__ GFXTIM flag
|
|
* This parameter can be one or a combination of the following values:
|
|
* @arg @ref GFXTIM_FLAG_AFCO Absolute Frame Counter Overflow Flag
|
|
* @arg @ref GFXTIM_FLAG_ALCO Absolute Line Counter Overflow Flag
|
|
* @arg @ref GFXTIM_FLAG_TE Tearing Effect Flag
|
|
* @arg @ref GFXTIM_FLAG_AFCC1 Absolute Frame Counter Compare 1 Flag
|
|
* @arg @ref GFXTIM_FLAG_ALCC1 Absolute Line Counter Compare 1 Flag
|
|
* @arg @ref GFXTIM_FLAG_ALCC2 Absolute Line Counter Compare 2 Flag
|
|
* @arg @ref GFXTIM_FLAG_RFC1R Relative Frame Counter 1 Reload Flag
|
|
* @arg @ref GFXTIM_FLAG_RFC2R Relative Frame Counter 2 Reload Flag
|
|
* @arg @ref GFXTIM_FLAG_EV1 Event 1 Flag
|
|
* @arg @ref GFXTIM_FLAG_EV2 Event 2 Flag
|
|
* @arg @ref GFXTIM_FLAG_EV3 Event 3 Flag
|
|
* @arg @ref GFXTIM_FLAG_EV4 Event 4 Flag
|
|
* @arg @ref GFXTIM_FLAG_WDGA Watchdog Alarm Flag
|
|
* @arg @ref GFXTIM_FLAG_WDGP Watchdog Pre-alarm Flag
|
|
* @retval None
|
|
*/
|
|
#define __HAL_GFXTIM_CLEAR_FLAG(__HANDLE__, __FLAG__)\
|
|
(((__HANDLE__)->Instance->ICR) = (__FLAG__))
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
|
|
/* Exported functions --------------------------------------------------------*/
|
|
/** @addtogroup GFXTIM_Exported_Functions
|
|
* @{
|
|
*/
|
|
|
|
/* Initialization and de-initialization functions ****************************/
|
|
/** @addtogroup GFXTIM_Exported_Functions_Group1
|
|
* @{
|
|
*/
|
|
HAL_StatusTypeDef HAL_GFXTIM_Init(GFXTIM_HandleTypeDef *hgfxtim);
|
|
HAL_StatusTypeDef HAL_GFXTIM_DeInit(GFXTIM_HandleTypeDef *hgfxtim);
|
|
void HAL_GFXTIM_MspInit(GFXTIM_HandleTypeDef *hgfxtim);
|
|
void HAL_GFXTIM_MspDeInit(GFXTIM_HandleTypeDef *hgfxtim);
|
|
#if (USE_HAL_GFXTIM_REGISTER_CALLBACKS == 1)
|
|
HAL_StatusTypeDef HAL_GFXTIM_RegisterCallback(GFXTIM_HandleTypeDef *hgfxtim,
|
|
HAL_GFXTIM_CallbackIDTypeDef CallbackID,
|
|
pGFXTIM_CallbackTypeDef pCallback);
|
|
HAL_StatusTypeDef HAL_GFXTIM_UnRegisterCallback(GFXTIM_HandleTypeDef *hgfxtim,
|
|
HAL_GFXTIM_CallbackIDTypeDef CallbackID);
|
|
#endif /* USE_HAL_GFXTIM_REGISTER_CALLBACKS */
|
|
void HAL_GFXTIM_TECallback(GFXTIM_HandleTypeDef *hgfxtim);
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/* Clock Generator functions *****************************************************/
|
|
/** @addtogroup GFXTIM_Exported_Functions_Group2
|
|
* @{
|
|
*/
|
|
HAL_StatusTypeDef HAL_GFXTIM_ClockGenerator_Config(GFXTIM_HandleTypeDef *hgfxtim,
|
|
const GFXTIM_ClockGeneratorConfigTypeDef *pClockGeneratorConfig);
|
|
HAL_StatusTypeDef HAL_GFXTIM_ClockGenerator_Reload(GFXTIM_HandleTypeDef *hgfxtim, uint32_t ClockGeneratorCounter);
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/* Absolute Timer functions *****************************************/
|
|
/** @addtogroup GFXTIM_Exported_Functions_Group3
|
|
* @{
|
|
*/
|
|
HAL_StatusTypeDef HAL_GFXTIM_AbsoluteTimer_Config(GFXTIM_HandleTypeDef *hgfxtim,
|
|
const GFXTIM_AbsoluteTimerConfigTypeDef *pAbsoluteTimerConfig);
|
|
HAL_StatusTypeDef HAL_GFXTIM_AbsoluteTimer_Start(GFXTIM_HandleTypeDef *hgfxtim);
|
|
HAL_StatusTypeDef HAL_GFXTIM_AbsoluteTimer_Stop(GFXTIM_HandleTypeDef *hgfxtim);
|
|
HAL_StatusTypeDef HAL_GFXTIM_AbsoluteTimer_Reset(GFXTIM_HandleTypeDef *hgfxtim);
|
|
HAL_StatusTypeDef HAL_GFXTIM_AbsoluteTimer_GetCounter(const GFXTIM_HandleTypeDef *hgfxtim, uint32_t AbsoluteTime,
|
|
uint32_t *pValue);
|
|
HAL_StatusTypeDef HAL_GFXTIM_AbsoluteTimer_SetFrameCompare(GFXTIM_HandleTypeDef *hgfxtim, uint32_t Value);
|
|
HAL_StatusTypeDef HAL_GFXTIM_AbsoluteTimer_SetLineCompare(GFXTIM_HandleTypeDef *hgfxtim,
|
|
uint32_t AbsoluteLineComparator,
|
|
uint32_t Value);
|
|
void HAL_GFXTIM_AbsoluteTimer_AFCC1Callback(GFXTIM_HandleTypeDef *hgfxtim);
|
|
void HAL_GFXTIM_AbsoluteTimer_AFCOFCallback(GFXTIM_HandleTypeDef *hgfxtim);
|
|
void HAL_GFXTIM_AbsoluteTimer_ALCC1Callback(GFXTIM_HandleTypeDef *hgfxtim);
|
|
void HAL_GFXTIM_AbsoluteTimer_ALCC2Callback(GFXTIM_HandleTypeDef *hgfxtim);
|
|
void HAL_GFXTIM_AbsoluteTimer_ALCOFCallback(GFXTIM_HandleTypeDef *hgfxtim);
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/* Relative Timer functions *****************************************/
|
|
/** @addtogroup GFXTIM_Exported_Functions_Group4
|
|
* @{
|
|
*/
|
|
HAL_StatusTypeDef HAL_GFXTIM_RelativeTimer_Config(GFXTIM_HandleTypeDef *hgfxtim,
|
|
const GFXTIM_RelativeTimerConfigTypeDef *pRelativeTimerConfig,
|
|
uint32_t RelativeTimer);
|
|
HAL_StatusTypeDef HAL_GFXTIM_RelativeTimer_Start(GFXTIM_HandleTypeDef *hgfxtim, uint32_t RelativeTimer);
|
|
HAL_StatusTypeDef HAL_GFXTIM_RelativeTimer_Stop(GFXTIM_HandleTypeDef *hgfxtim, uint32_t RelativeTimer);
|
|
HAL_StatusTypeDef HAL_GFXTIM_RelativeTimer_ForceReload(GFXTIM_HandleTypeDef *hgfxtim, uint32_t RelativeTimer);
|
|
HAL_StatusTypeDef HAL_GFXTIM_RelativeTimer_SetReload(GFXTIM_HandleTypeDef *hgfxtim, uint32_t RelativeTimer,
|
|
uint32_t Value);
|
|
HAL_StatusTypeDef HAL_GFXTIM_RelativeTimer_GetCounter(const GFXTIM_HandleTypeDef *hgfxtim, uint32_t RelativeTimer,
|
|
uint32_t *pValue);
|
|
void HAL_GFXTIM_RelativeTimer_RFC1RCallback(GFXTIM_HandleTypeDef *hgfxtim);
|
|
void HAL_GFXTIM_RelativeTimer_RFC2RCallback(GFXTIM_HandleTypeDef *hgfxtim);
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/* Event Generator functions *****************************************/
|
|
/** @addtogroup GFXTIM_Exported_Functions_Group5
|
|
* @{
|
|
*/
|
|
HAL_StatusTypeDef HAL_GFXTIM_EventGenerator_Config(GFXTIM_HandleTypeDef *hgfxtim, uint32_t EventGenerator,
|
|
const GFXTIM_EventGeneratorConfigTypeDef *pEventGeneratorConfig);
|
|
HAL_StatusTypeDef HAL_GFXTIM_EventGenerator_Enable(GFXTIM_HandleTypeDef *hgfxtim, uint32_t EventGenerator);
|
|
HAL_StatusTypeDef HAL_GFXTIM_EventGenerator_Disable(GFXTIM_HandleTypeDef *hgfxtim, uint32_t EventGenerator);
|
|
void HAL_GFXTIM_EventGenerator_EV1Callback(GFXTIM_HandleTypeDef *hgfxtim);
|
|
void HAL_GFXTIM_EventGenerator_EV2Callback(GFXTIM_HandleTypeDef *hgfxtim);
|
|
void HAL_GFXTIM_EventGenerator_EV3Callback(GFXTIM_HandleTypeDef *hgfxtim);
|
|
void HAL_GFXTIM_EventGenerator_EV4Callback(GFXTIM_HandleTypeDef *hgfxtim);
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/* Watchdog functions *****************************************/
|
|
/** @addtogroup GFXTIM_Exported_Functions_Group6
|
|
* @{
|
|
*/
|
|
HAL_StatusTypeDef HAL_GFXTIM_WatchdogTimer_Config(GFXTIM_HandleTypeDef *hgfxtim,
|
|
const GFXTIM_WatchdogConfigTypeDef *pWatchdogConfig);
|
|
HAL_StatusTypeDef HAL_GFXTIM_WatchdogTimer_Enable(GFXTIM_HandleTypeDef *hgfxtim);
|
|
HAL_StatusTypeDef HAL_GFXTIM_WatchdogTimer_Disable(GFXTIM_HandleTypeDef *hgfxtim);
|
|
HAL_StatusTypeDef HAL_GFXTIM_WatchdogTimer_Refresh(GFXTIM_HandleTypeDef *hgfxtim);
|
|
void HAL_GFXTIM_WatchdogTimer_AlarmCallback(GFXTIM_HandleTypeDef *hgfxtim);
|
|
void HAL_GFXTIM_WatchdogTimer_PreAlarmCallback(GFXTIM_HandleTypeDef *hgfxtim);
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/* Generic functions *********************************************************/
|
|
/** @addtogroup GFXTIM_Exported_Functions_Group7
|
|
* @{
|
|
*/
|
|
void HAL_GFXTIM_IRQHandler(GFXTIM_HandleTypeDef *hgfxtim);
|
|
void HAL_GFXTIM_ErrorCallback(GFXTIM_HandleTypeDef *hgfxtim);
|
|
uint32_t HAL_GFXTIM_GetError(const GFXTIM_HandleTypeDef *hgfxtim);
|
|
HAL_GFXTIM_StateTypeDef HAL_GFXTIM_GetState(const GFXTIM_HandleTypeDef *hgfxtim);
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
/**
|
|
* @}
|
|
*/
|
|
|
|
#endif /* GFXTIM */
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* STM32N6xx_HAL_GFXTIM_H */
|