123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606 |
- /**
- ******************************************************************************
- * @file tae32f53xx_ll_dac.h
- * @author MCD Application Team
- * @brief Header file for DAC Module
- *
- ******************************************************************************
- * @attention
- *
- * <h2><center>© Copyright (c) 2020 Tai-Action.
- * All rights reserved.</center></h2>
- *
- * This software is licensed by Tai-Action under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
- /* Define to prevent recursive inclusion -------------------------------------*/
- #ifndef _TAE32F53XX_LL_DAC_H_
- #define _TAE32F53XX_LL_DAC_H_
- #ifdef __cplusplus
- extern "C" {
- #endif /* __cplusplus */
- /* Includes ------------------------------------------------------------------*/
- #include "tae32f53xx_ll_def.h"
- /** @addtogroup TAE32F53xx_LL_Driver
- * @{
- */
- /** @addtogroup DAC_LL
- * @{
- */
- /* Exported constants --------------------------------------------------------*/
- /** @defgroup DAC_LL_Exported_Constants DAC LL Exported Constants
- * @brief DAC LL Exported Constants
- * @{
- */
- /** @defgroup DAC_Channel_selection DAC Channel selection
- * @brief DAC Channel selection
- * @{
- */
- #define DAC_CHANNEL_0 (0x00000001U) /*!< DAC Channel 0 */
- #define DAC_CHANNEL_1 (0x00000002U) /*!< DAC Channel 1 */
- #define DAC_CHANNEL_2 (0x00000004U) /*!< DAC Channel 2 */
- #define DAC_CHANNEL_3 (0x00000008U) /*!< DAC Channel 3 */
- #define DAC_CHANNEL_ALL (DAC_CHANNEL_0 | DAC_CHANNEL_1 | DAC_CHANNEL_2 | DAC_CHANNEL_3 )
- /**
- * @}
- */
- /** @defgroup DAC_Interrupt_definition DAC Interrupt definition
- * @brief DAC Interrupt definition
- * @{
- */
- #define DAC_IT_DIE DAC_CR_DIE /*!< DAC_CHx DONE interrupt */
- #define DAC_IT_DBIE DAC_CR_DBIE /*!< DAC_CHx DONEB interrupt */
- /**
- * @}
- */
- /** @defgroup DAC_Flag_definition DAC Flag Definition
- * @{
- */
- #define DAC_FLAG_D0IF DAC_ISR_D0IF /*!< DAC Channel0 DONE pending flag */
- #define DAC_FLAG_D1IF DAC_ISR_D1IF /*!< DAC Channel1 DONE pending flag */
- #define DAC_FLAG_D2IF DAC_ISR_D2IF /*!< DAC Channel2 DONE pending flag */
- #define DAC_FLAG_D3IF DAC_ISR_D3IF /*!< DAC Channel0 DONE pending flag */
- #define DAC_FLAG_DB0IF DAC_ISR_DB0IF /*!< DAC Channel0 DONEB pending flag */
- #define DAC_FLAG_DB1IF DAC_ISR_DB1IF /*!< DAC Channel1 DONEB pending flag */
- #define DAC_FLAG_DB2IF DAC_ISR_DB2IF /*!< DAC Channel2 DONEB pending flag */
- #define DAC_FLAG_DB3IF DAC_ISR_DB3IF /*!< DAC Channel3 DONEB pending flag */
- #define DAC_FLAG_ALLIF (DAC_FLAG_D0IF | DAC_FLAG_D1IF | \
- DAC_FLAG_D2IF | DAC_FLAG_D3IF | \
- DAC_FLAG_DB0IF | DAC_FLAG_DB1IF | \
- DAC_FLAG_DB2IF | DAC_FLAG_DB3IF )
- /**
- * @}
- */
- /**
- * @}
- */
- /* Exported macro ------------------------------------------------------------*/
- /** @defgroup DAC_LL_Exported_Macros DAC LL Exported Macros
- * @brief DAC LL Exported Macros
- * @{
- */
- /**
- * @brief Enable DAC Channel
- * @param __INSTANCE__ DAC peripheral
- * @param __CHN_NB__ Specifies DAC Channel
- * This parameter can be a value of 0 to (DAC_CHN_NB - 1)
- * @return None
- */
- #define __LL_DAC_ENABLE(__INSTANCE__, __CHN_NB__) SET_BIT((__INSTANCE__)->CR[__CHN_NB__], DAC_CR_PEN)
- /**
- * @brief Disable DAC Channel
- * @param __INSTANCE__ DAC peripheral
- * @param __CHN_NB__ Specifies DAC Channel
- * This parameter can be a value of 0 to (DAC_CHN_NB - 1)
- * @return None
- */
- #define __LL_DAC_DISABLE(__INSTANCE__, __CHN_NB__) CLEAR_BIT((__INSTANCE__)->CR[__CHN_NB__], DAC_CR_PEN)
- /**
- * @brief Enable DAC Channel Output to IO feature
- * @param __INSTANCE__ DAC peripheral
- * @param __CHN_NB__ Specifies DAC Channel
- * This parameter can be a value of 0 to (DAC_CHN_NB - 1)
- * @return None
- */
- #define __LL_DAC_OUTPUT_ENABLE(__INSTANCE__, __CHN_NB__) SET_BIT((__INSTANCE__)->CR[__CHN_NB__], DAC_CR_OEN)
- /**
- * @brief Disable DAC Channel Output to IO feature
- * @param __INSTANCE__ DAC peripheral
- * @param __CHN_NB__ Specifies DAC Channel
- * This parameter can be a value of 0 to (DAC_CHN_NB - 1)
- * @return None
- */
- #define __LL_DAC_OUTPUT_DISABLE(__INSTANCE__, __CHN_NB__) CLEAR_BIT((__INSTANCE__)->CR[__CHN_NB__], DAC_CR_OEN)
- /**
- * @brief Enable the specified DAC Channel Interrupts
- * @param __INSTANCE__ DAC peripheral
- * @param __CHN_NB__ Specifies DAC Channel
- * This parameter can be a value of 0 to (DAC_CHN_NB - 1)
- * @param __INTERRUPT__ specifies the DAC Channel interrupt source to enable.
- * This parameter can be any combination of @ref DAC_Interrupt_definition:
- * @arg DAC_IT_DIE : DAC_CHx DONE interrupt
- * @arg DAC_IT_DBIE : DAC_CHx DONEB interrupt
- * @return None
- */
- #define __LL_DAC_IT_ENABLE(__INSTANCE__, __CHN_NB__, __INTERRUPT__) SET_BIT((__INSTANCE__)->CR[__CHN_NB__], __INTERRUPT__)
- /**
- * @brief Disable the specified DAC Channel Interrupts
- * @param __INSTANCE__ DAC peripheral
- * @param __CHN_NB__ Specifies DAC Channel
- * This parameter can be a value of 0 to (DAC_CHN_NB - 1)
- * @param __INTERRUPT__ specifies the DAC Channel interrupt source to disable.
- * This parameter can be any combination of @ref DAC_Interrupt_definition:
- * @arg DAC_IT_DIE : DAC_CHx DONE interrupt
- * @arg DAC_IT_DBIE : DAC_CHx DONEB interrupt
- * @return None
- */
- #define __LL_DAC_IT_DISABLE(__INSTANCE__, __CHN_NB__, __INTERRUPT__) CLEAR_BIT((__INSTANCE__)->CR[__CHN_NB__], __INTERRUPT__)
- /**
- * @brief Check whether the specified DAC Channel interrupt source is set or not.
- * @param __INSTANCE__ DAC peripheral
- * @param __CHN_NB__ Specifies DAC Channel
- * This parameter can be a value of 0 to (DAC_CHN_NB - 1)
- * @param __INTERRUPT__ specifies the DAC Channel interrupt source to check.
- * This parameter can be ONE of @ref DAC_Interrupt_definition:
- * @arg DAC_IT_DIE : DAC_CHx DONE interrupt
- * @arg DAC_IT_DBIE : DAC_CHx DONEB interrupt
- * @return None
- */
- #define __LL_DAC_IT_CHECK_SOURCE(__INSTANCE__, __CHN_NB__, __INTERRUPT__) \
- ((READ_BIT((__INSTANCE__)->CR[__CHN_NB__], (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
- /**
- * @brief Check whether the specified pending flag is SET or not.
- * @param __INSTANCE__ DAC peripheral.
- * @param __FLAG__ specifies the DAC pending flag to check.
- * This parameter can be ONE of the following values where x can be a value of
- * 0, 1 ... (DAC_CHN_NB - 1):
- * @arg DAC_FLAG_DxIF : DAC_CHx DONE interrupt pending flag
- * @arg DAC_FLAG_DBxIF : DAC_CHx DONEB interrupt pending flag
- * @return The new state of __FLAG__ (SET or RESET).
- */
- #define __LL_DAC_PENDING_FLAG_GET(__INSTANCE__, __FLAG__) \
- ((READ_BIT((__INSTANCE__)->ISR, (__FLAG__)) == (__FLAG__)) ? SET : RESET)
- /**
- * @brief Clear the specified pending flags
- * @param __INSTANCE__ DAC peripheral.
- * @param __FLAG__ specifies the DAC pending flag to clear.
- * This parameter can be any combination of the following values where x can be a value of
- * 0, 1 ... (DAC_CHN_NB - 1):
- * @arg DAC_FLAG_DxIF : DAC_CHx DONE interrupt pending flag
- * @arg DAC_FLAG_DBxIF : DAC_CHx DONEB interrupt pending flag
- * @arg DAC_FLAG_ALLIF : DAC All interrupt pending flags
- * @return None
- */
- #define __LL_DAC_PENDING_FLAG_CLEAR(__INSTANCE__, __FLAG__) WRITE_REG((__INSTANCE__)->ISR, (__FLAG__))
- /**
- * @brief Set the data for DAC channel conversion on runtime
- * @param __INSTANCE__ DAC peripheral.
- * @param __CHN_NB__ Specifies DAC Channel
- * This parameter can be a value of 0 to (DAC_CHN_NB - 1)
- * @param __DATA__ Data to be loaded
- * @return None
- */
- #define __LL_DAC_SET_VALUE(__INSTANCE__, __CHN_NB__, __DATA__) WRITE_REG((__INSTANCE__)->WDR[__CHN_NB__], __DATA__)
- /**
- * @brief Get the DAC channel conversion value on runtime
- * @param __INSTANCE__ DAC peripheral.
- * @param __CHN_NB__ Specifies DAC Channel
- * This parameter can be a value of 0 to (DAC_CHN_NB - 1)
- * @return Conversion value
- */
- #define __LL_DAC_GET_VALUE(__INSTANCE__, __CHN_NB__) READ_REG((__INSTANCE__)->RDR[__CHN_NB__])
- /**
- * @}
- */
- /* Exported types ------------------------------------------------------------*/
- /** @defgroup DAC_LL_Exported_Types DAC LL Exported Types
- * @brief DAC LL Exported Types
- * @{
- */
- /**
- * @brief DAC Channel Output
- */
- typedef enum {
- DAC_CHANNEL_OUTPUT_DISABLE = 0x00000000U, /*!< DAC Channel Disable */
- DAC_CHANNEL_OUTPUT_ENABLE = DAC_CR_OEN, /*!< DAC Channel Enable */
- } DAC_OutputEnETypedef;
- /**
- * @brief DAC Channel Interrupt Done
- */
- typedef enum {
- DAC_CHANNEL_DONE_IT_DISABLE = 0x00000000U, /*!< DAC Channel Done Interrupt Disable */
- DAC_CHANNEL_DONE_IT_ENABLE = DAC_CR_DIE, /*!< DAC Channel Done Interrupt Enable */
- } DAC_DoneITEnETypedef;
- /**
- * @brief DAC Channel Interrupt DoneB
- */
- typedef enum {
- DAC_CHANNEL_DONEB_IT_DISABLE = 0x00000000U, /*!< DAC Channel DoneB Interrupt Disable */
- DAC_CHANNEL_DONEB_IT_ENABLE = DAC_CR_DBIE, /*!< DAC Channel DoneB Interrupt Enable */
- } DAC_DoneBITEnETypedef;
- /**
- * @brief DAC Sawtooth Polarity
- */
- typedef enum {
- DAC_SAWTOOTH_POLARITY_DEC = 0x00000000U, /*!< Sawtooth wave generation, polarity is decrement */
- DAC_SAWTOOTH_POLARITY_INC = DAC_CR_STDIR, /*!< Sawtooth wave generation, polarity is increment */
- } DAC_SawthoothPolETypedef;
- /**
- * @brief DAC Triangle Initial Direction
- */
- typedef enum {
- DAC_TRIANGLE_INITIALDIRECTION_DEC = 0x00000000U, /*!< Triangle wave generation, initial direction is decrement */
- DAC_TRIANGLE_INITIALDIRECTION_INC = DAC_CR_TGDIR, /*!< Triangle wave generation, initial direction is increment */
- } DAC_TriangleInitDirETypedef;
- /**
- * @brief DAC Triangle Amplitude
- */
- typedef enum {
- DAC_TRIANGLE_AMPLITUDE_1 = 0x00000000U, /*!< Amplitude of 1 */
- DAC_TRIANGLE_AMPLITUDE_3 = DAC_CR_TGAMP_0, /*!< Amplitude of 3 */
- DAC_TRIANGLE_AMPLITUDE_7 = DAC_CR_TGAMP_1, /*!< Amplitude of 7 */
- DAC_TRIANGLE_AMPLITUDE_15 = DAC_CR_TGAMP_1 | DAC_CR_TGAMP_0, /*!< Amplitude of 15 */
- DAC_TRIANGLE_AMPLITUDE_31 = DAC_CR_TGAMP_2, /*!< Amplitude of 31 */
- DAC_TRIANGLE_AMPLITUDE_63 = DAC_CR_TGAMP_2 | DAC_CR_TGAMP_0, /*!< Amplitude of 63 */
- DAC_TRIANGLE_AMPLITUDE_127 = DAC_CR_TGAMP_2 | DAC_CR_TGAMP_1, /*!< Amplitude of 127 */
- DAC_TRIANGLE_AMPLITUDE_255 = DAC_CR_TGAMP_2 | DAC_CR_TGAMP_1 | DAC_CR_TGAMP_0, /*!< Amplitude of 255 */
- DAC_TRIANGLE_AMPLITUDE_511 = DAC_CR_TGAMP_3, /*!< Amplitude of 511 */
- DAC_TRIANGLE_AMPLITUDE_1023 = DAC_CR_TGAMP_3 | DAC_CR_TGAMP_0, /*!< Amplitude of 1023 */
- DAC_TRIANGLE_AMPLITUDE_2047 = DAC_CR_TGAMP_3 | DAC_CR_TGAMP_1, /*!< Amplitude of 2047 */
- DAC_TRIANGLE_AMPLITUDE_4095 = DAC_CR_TGAMP_3 | DAC_CR_TGAMP_1 | DAC_CR_TGAMP_0, /*!< Amplitude of 4095 */
- } DAC_TrangleAmplETypedef;
- /**
- * @brief DAC Trigger Selection
- */
- typedef enum {
- DAC_TRIGGER_SOFTWARE = 0x0U, /*!< Software trigger by setting bit[s] in DAC_SWTR register */
- DAC_TRIGGER_TMR0_TRGO = 0x1U, /*!< TRGO signal exported from TMR0 (source from Update Event) */
- DAC_TRIGGER_TMR1_TRGO = 0x2U, /*!< TRGO signal exported from TMR1 (source from Update Event) */
- DAC_TRIGGER_TMR2_TRGO = 0x3U, /*!< TRGO signal exported from TMR2 (source from Update Event) */
- DAC_TRIGGER_TMR3_TRGO = 0x3U, /*!< TRGO signal exported from TMR3 (source from Update Event) */
- DAC_TRIGGER_TMR4_TRGO = 0x4U, /*!< TRGO signal exported from TMR4 (source from Update Event) */
- DAC_TRIGGER_TMR5_TRGO = 0x5U, /*!< TRGO signal exported from TMR5 (source from Update Event) */
- DAC_TRIGGER_TMR6_TRGO = 0x6U, /*!< TRGO signal exported from TMR6 (source from Update Event) */
- DAC_TRIGGER_TMR7_TRGO = 0x7U, /*!< TRGO signal exported from TMR7 (source from Update Event) */
- DAC_TRIGGER_HRPWM_DAC_RESET_TRG0 = 0x8U, /*!< DAC Reset Trigger event from HRPWM Slave timer0 */
- DAC_TRIGGER_HRPWM_DAC_RESET_TRG1 = 0x9U, /*!< DAC Reset Trigger event from HRPWM Slave timer1 */
- DAC_TRIGGER_HRPWM_DAC_RESET_TRG2 = 0xAU, /*!< DAC Reset Trigger event from HRPWM Slave timer2 */
- DAC_TRIGGER_HRPWM_DAC_RESET_TRG3 = 0xBU, /*!< DAC Reset Trigger event from HRPWM Slave timer3 */
- DAC_TRIGGER_HRPWM_DAC_RESET_TRG4 = 0xCU, /*!< DAC Reset Trigger event from HRPWM Slave timer4 */
- DAC_TRIGGER_HRPWM_DAC_RESET_TRG5 = 0xDU, /*!< DAC Reset Trigger event from HRPWM Slave timer5 */
- DAC_TRIGGER_HRPWM_DAC_STEP_TRG0 = 0x8U, /*!< DAC Step Trigger event from HRPWM Slave timer0 */
- DAC_TRIGGER_HRPWM_DAC_STEP_TRG1 = 0x9U, /*!< DAC Step Trigger event from HRPWM Slave timer1 */
- DAC_TRIGGER_HRPWM_DAC_STEP_TRG2 = 0xAU, /*!< DAC Step Trigger event from HRPWM Slave timer2 */
- DAC_TRIGGER_HRPWM_DAC_STEP_TRG3 = 0xBU, /*!< DAC Step Trigger event from HRPWM Slave timer3 */
- DAC_TRIGGER_HRPWM_DAC_STEP_TRG4 = 0xCU, /*!< DAC Step Trigger event from HRPWM Slave timer4 */
- DAC_TRIGGER_HRPWM_DAC_STEP_TRG5 = 0xDU, /*!< DAC Step Trigger event from HRPWM Slave timer5 */
- DAC_TRIGGER_HRPWM_ADC_TRG0 = 0xEU, /*!< DAC0 Step Trigger event from HRPWM Common ADDA Trigger 0 */
- DAC_TRIGGER_HRPWM_ADC_TRG1 = 0xEU, /*!< DAC1 Step Trigger event from HRPWM Common ADDA Trigger 1 */
- DAC_TRIGGER_HRPWM_ADC_TRG2 = 0xEU, /*!< DAC2 Step Trigger event from HRPWM Common ADDA Trigger 2 */
- DAC_TRIGGER_HRPWM_ADC_TRG3 = 0xEU, /*!< DAC3 Step Trigger event from HRPWM Common ADDA Trigger 3 */
- DAC_TRIGGER_HRPWM_ADC_TRG4 = 0xEU, /*!< DAC0 Reset Trigger event from HRPWM Common ADDA Trigger 4 */
- DAC_TRIGGER_HRPWM_ADC_TRG5 = 0xEU, /*!< DAC1 Reset Trigger event from HRPWM Common ADDA Trigger 5 */
- DAC_TRIGGER_HRPWM_ADC_TRG6 = 0xEU, /*!< DAC2 Reset Trigger event from HRPWM Common ADDA Trigger 6 */
- DAC_TRIGGER_HRPWM_ADC_TRG7 = 0xEU, /*!< DAC3 Reset Trigger event from HRPWM Common ADDA Trigger 7 */
- DAC_TRIGGER_EXTERNAL_INPUT_IO1 = 0xFU, /*!< DAC External Trigger from IO1, please see SPEC from more details */
- DAC_TRIGGER_EXTERNAL_INPUT_IO2 = 0xFU, /*!< DAC External Trigger from IO2, please see SPEC from more details */
- } DAC_TriggerSrcETypedef;
- /**
- * @brief DAC Channel Configuration structure definition
- */
- typedef struct __DAC_ChannelConfTypeDef {
- DAC_OutputEnETypedef Output; /*!< Specifies the DAC conversion output to IO or not. */
- uint32_t DoneIntPending; /*!< Specifies the interrupt for DONE pending flag enable or disable
- This parameter can be a value of @ref DAC_Channel_Interrupt_Done
- Note: Sawtooth Reset or Tranigle Step convert done will trigger the DONE flag */
- uint32_t DoneBIntPending; /*!< Specifies the interrupt for DONEB pending flag enable or disable
- This parameter can be a value of @ref DAC_Channel_Interrupt_DoneB
- Note: Sawtooth Step convert done will trigger the DONEB flag */
- } DAC_ChannelConfTypeDef;
- /**
- * @brief DAC Sawtooth Wave Configuration structure definition
- */
- typedef struct __DAC_SawtoothConfTypeDef {
- uint16_t ResetData; /*!< Specifies the Sawtooth wave Reset value.
- This parameter can be a number in range from 0 to DAC full range 4095(0xFFF) */
- uint16_t StepData; /*!< Specifies the Sawtooth wave step value.
- 12.4 bit format, unsigned: 12 bits exponent / 4 bits mantissa
- Step value step is 1/16 = 0.0625
- Step value range is 0.0000 to 4095.9375 (0xFFF.F) */
- DAC_TriggerSrcETypedef ResetTrigger; /*!< Specifies the external trigger source for the Sawtooth wave reset trigger
- Please see the SPEC Document for more details about the trigger selections */
- DAC_TriggerSrcETypedef StepTrigger; /*!< Specifies the external trigger source for the Sawtooth wave step trigger
- Please see the SPEC Document for more details about the trigger selections */
- DAC_SawthoothPolETypedef Polarity; /*!< Specifies the Sawtooth wave step polarity.*/
- } DAC_SawtoothConfTypeDef;
- /**
- * @brief DAC Triangle Wave Configuration structure definition
- */
- typedef struct __DAC_TriangleConfTypeDef {
- DAC_TriangleInitDirETypedef InitialDirection; /*!< Specifies the Triangle wave initial step direction. */
- DAC_TrangleAmplETypedef Amplitude; /*!< Specifies max triangle amplitude. */
- DAC_TriggerSrcETypedef StepTrigger; /*!< Specifies the external trigger source for the Triangle wave step trigger
- Please see the SPEC Document for more details about the trigger selections */
- } DAC_TriangleConfTypeDef;
- /**
- * @}
- */
- /* Exported functions --------------------------------------------------------*/
- /** @addtogroup DAC_LL_Exported_Functions
- * @{
- */
- /** @addtogroup DAC_LL_Exported_Functions_Group1
- * @{
- */
- LL_StatusETypeDef LL_DAC_Init(DAC_TypeDef *Instance);
- LL_StatusETypeDef LL_DAC_DeInit(DAC_TypeDef *Instance);
- void LL_DAC_MspInit(DAC_TypeDef *Instance);
- void LL_DAC_MspDeInit(DAC_TypeDef *Instance);
- /**
- * @}
- */
- /** @addtogroup DAC_LL_Exported_Functions_Group2
- * @{
- */
- LL_StatusETypeDef LL_DAC_ChannelConfig(DAC_TypeDef *Instance, uint32_t Channel, DAC_ChannelConfTypeDef *sConfig);
- LL_StatusETypeDef LL_DAC_SawtoothWaveGenerate(DAC_TypeDef *Instance, uint32_t Channel, DAC_SawtoothConfTypeDef *sConfig);
- LL_StatusETypeDef LL_DAC_TriangleWaveGenerate(DAC_TypeDef *Instance, uint32_t Channel, DAC_TriangleConfTypeDef *sConfig);
- /**
- * @}
- */
- /** @addtogroup DAC_LL_Exported_Functions_Group3
- * @{
- */
- LL_StatusETypeDef LL_DAC_Start(DAC_TypeDef *Instance, uint32_t Channel);
- LL_StatusETypeDef LL_DAC_Stop(DAC_TypeDef *Instance, uint32_t Channel);
- LL_StatusETypeDef LL_DAC_SetValue(DAC_TypeDef *Instance, uint32_t Channel, uint16_t Data);
- uint16_t LL_DAC_GetValue(DAC_TypeDef *Instance, uint32_t Channel);
- LL_StatusETypeDef LL_DAC_SawtoothWaveDataStep(DAC_TypeDef *Instance, uint32_t Channel);
- LL_StatusETypeDef LL_DAC_SawtoothWaveDataReset(DAC_TypeDef *Instance, uint32_t Channel);
- LL_StatusETypeDef LL_DAC_TriangleWaveStep(DAC_TypeDef *Instance, uint32_t Channel);
- /**
- * @}
- */
- /** @addtogroup DAC_LL_Exported_Functions_Interrupt
- * @{
- */
- void LL_DAC_IRQHandler(DAC_TypeDef *Instance);
- void LL_DAC_ConvDoneCallback(DAC_TypeDef *Instance, uint32_t Channel);
- void LL_DAC_ConvDoneBCallback(DAC_TypeDef *Instance, uint32_t Channel);
- /**
- * @}
- */
- /**
- * @}
- */
- /* Private constants ---------------------------------------------------------*/
- /* Private macros ------------------------------------------------------------*/
- /** @defgroup DAC_LL_Private_Macros DAC LL Private Macros
- * @brief DAC LL Private Macros
- * @{
- */
- /**
- * @brief Judge is DAC channel number or not
- * @param CHN_NB channel number to judge
- * @retval 0 isn't DAC channel number
- * @retval 1 is DAC channel number
- */
- #define IS_DAC_NUMBER(CHN_NB) ((CHN_NB) < DAC_CHN_NB)
- /**
- * @brief Judge is DAC channel or not
- * @param CHN channel to judge
- * @retval 0 isn't DAC channel
- * @retval 1 is DAC channel
- */
- #define IS_DAC_CHANNEL(CHN) (((CHN) == DAC_CHANNEL_0) || \
- ((CHN) == DAC_CHANNEL_1) || \
- ((CHN) == DAC_CHANNEL_2) || \
- ((CHN) == DAC_CHANNEL_3))
- /**
- * @brief Judge is DAC channels mask or not
- * @param CHN channels mask to judge
- * @retval 0 isn't DAC channels mask
- * @retval 1 is DAC channels mask
- */
- #define IS_DAC_CHANNELS_MASK(CHN) ((((CHN) & DAC_CHANNEL_ALL) != 0x00UL) && \
- (((CHN) & ~(DAC_CHANNEL_ALL)) == 0x00UL))
- /**
- * @brief Judge is DAC channel output select or not
- * @param OUTPUT output select
- * @retval 0 isn't DAC channel output select
- * @retval 1 is DAC channel output select
- */
- #define IS_DAC_CHANNEL_OUTPUT_SEL(OUTPUT) (((OUTPUT) == DAC_CHANNEL_OUTPUT_DISABLE) || \
- ((OUTPUT) == DAC_CHANNEL_OUTPUT_ENABLE))
- /**
- * @brief Judge is DAC channel done interrupt pending config or not
- * @param PENDING pending config to judge
- * @retval 0 isn't DAC channel done interrupt pending config
- * @retval 1 is DAC channel done interrupt pending config
- */
- #define IS_DAC_CHANNEL_DONE_IT_PENDING_CFG(PENDING) (((PENDING) == DAC_CHANNEL_DONE_IT_DISABLE) || \
- ((PENDING) == DAC_CHANNEL_DONE_IT_ENABLE))
- /**
- * @brief Judge is DAC channel doneB interrupt pending config or not
- * @param PENDING pending config to judge
- * @retval 0 isn't DAC channel doneB interrupt pending config
- * @retval 1 is DAC channel doneB interrupt pending config
- */
- #define IS_DAC_CHANNEL_DONEB_IT_PENDING_CFG(PENDING) (((PENDING) == DAC_CHANNEL_DONEB_IT_DISABLE) || \
- ((PENDING) == DAC_CHANNEL_DONEB_IT_ENABLE))
- /**
- * @brief Judge is DAC sawtooth reset data or not
- * @param DATA data to judge
- * @retval 0 isn't DAC sawtooth reset data
- * @retval 1 is DAC sawtooth reset data
- */
- #define IS_DAC_SAWTOOTH_RESET_DATA(DATA) ((DATA) <= 0xFFFUL)
- /**
- * @brief Judge is DAC sawtooth step data or not
- * @param DATA data to judge
- * @retval 0 isn't DAC sawtooth step data
- * @retval 1 is DAC sawtooth step data
- */
- #define IS_DAC_SAWTOOTH_STEP_DATA(DATA) ((DATA) <= 0xFFFFUL)
- /**
- * @brief Judge is DAC sawtooth reset trigger or not
- * @param TRIGGER trigger to judge
- * @retval 0 isn't DAC sawtooth reset trigger
- * @retval 1 is DAC sawtooth reset trigger
- */
- #define IS_DAC_SAWTOOTH_RESET_TRIGGER(TRIGGER) ((TRIGGER) < 16U)
- /**
- * @brief Judge is DAC sawtooth step trigger or not
- * @param TRIGGER trigger to judge
- * @retval 0 isn't DAC sawtooth step trigger
- * @retval 1 is DAC sawtooth step trigger
- */
- #define IS_DAC_SAWTOOTH_STEP_TRIGGER(TRIGGER) ((TRIGGER) < 16U)
- /**
- * @brief Judge is DAC sawtooth polarity or not
- * @param POLARITY polarity to judge
- * @retval 0 isn't DAC sawtooth polarity
- * @retval 1 is DAC sawtooth polarity
- */
- #define IS_DAC_SAWTOOTH_POLARITY(POLARITY) (((POLARITY) == DAC_SAWTOOTH_POLARITY_DEC) || \
- ((POLARITY) == DAC_SAWTOOTH_POLARITY_INC))
- /**
- * @brief Judge is DAC triangle initial direction or not
- * @param DIR direction to judge
- * @retval 0 isn't DAC triangle initial direction
- * @retval 1 is DAC triangle initial direction
- */
- #define IS_DAC_TRIANGLE_INITIALDIRECTION(DIR) (((DIR) == DAC_TRIANGLE_INITIALDIRECTION_DEC) || \
- ((DIR) == DAC_TRIANGLE_INITIALDIRECTION_INC))
- /**
- * @brief Judge is DAC triangle amplitude or not
- * @param AMP amplitude to judge
- * @retval 0 isn't DAC triangle amplitude
- * @retval 1 is DAC triangle amplitude
- */
- #define IS_DAC_TRIANGLE_AMPLITUDE(AMP) (((AMP) == DAC_TRIANGLE_AMPLITUDE_1) || \
- ((AMP) == DAC_TRIANGLE_AMPLITUDE_3) || \
- ((AMP) == DAC_TRIANGLE_AMPLITUDE_7) || \
- ((AMP) == DAC_TRIANGLE_AMPLITUDE_15) || \
- ((AMP) == DAC_TRIANGLE_AMPLITUDE_31) || \
- ((AMP) == DAC_TRIANGLE_AMPLITUDE_63) || \
- ((AMP) == DAC_TRIANGLE_AMPLITUDE_127) || \
- ((AMP) == DAC_TRIANGLE_AMPLITUDE_255) || \
- ((AMP) == DAC_TRIANGLE_AMPLITUDE_511) || \
- ((AMP) == DAC_TRIANGLE_AMPLITUDE_1023) || \
- ((AMP) == DAC_TRIANGLE_AMPLITUDE_2047) || \
- ((AMP) == DAC_TRIANGLE_AMPLITUDE_4095))
- /**
- * @brief Judge is DAC triangle step trigger or not
- * @param TRIGGER trigger to judge
- * @retval 0 isn't DAC triangle step trigger
- * @retval 1 is DAC triangle step trigger
- */
- #define IS_DAC_TRIANGLE_STEP_TRIGGER(TRIGGER) ((TRIGGER) < 16U)
- /**
- * @}
- */
- /* Private types -------------------------------------------------------------*/
- /* Private variables ---------------------------------------------------------*/
- /* Private functions ---------------------------------------------------------*/
- /**
- * @}
- */
- /**
- * @}
- */
- #ifdef __cplusplus
- }
- #endif /* __cplusplus */
- #endif /* _TAE32F53XX_LL_DAC_H_ */
- /************************* (C) COPYRIGHT Tai-Action *****END OF FILE***********/
|