| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- /**
- ******************************************************************************
- * @file py32f0xx_ll_led.c
- * @author MCU Application Team
- * @brief LED LL module driver.
- ******************************************************************************
- * @attention
- *
- * <h2><center>© Copyright (c) 2023 Puya Semiconductor Co.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by Puya 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
- *
- ******************************************************************************
- * @attention
- *
- * <h2><center>© Copyright (c) 2016 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST 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
- *
- ******************************************************************************
- */
- #if defined(USE_FULL_LL_DRIVER)
- /* Includes ------------------------------------------------------------------*/
- #include "py32f0xx_ll_led.h"
- #include "py32f0xx_ll_bus.h"
- #ifdef USE_FULL_ASSERT
- #include "py32_assert.h"
- #else
- #define assert_param(expr) ((void)0U)
- #endif
- /** @addtogroup PY32F0xx_LL_Driver
- * @{
- */
- #if defined (LED)
- /** @addtogroup LED_LL
- * @{
- */
- /* Private types -------------------------------------------------------------*/
- /* Private variables ---------------------------------------------------------*/
- /* Private constants ---------------------------------------------------------*/
- /* Private macros ------------------------------------------------------------*/
- /** @defgroup LED_LL_Private_Macros LED Private Macros
- * @{
- */
- #define IS_LL_LED_COM_DRIVE(__VALUE__) (((__VALUE__) == LL_LED_COMDRIVE_LOW) ||\
- ((__VALUE__) == LL_LED_COMDRIVE_HIGH))
- #define IS_LL_LED_PRESCALER(__VALUE__) (((0x00u) < (__VALUE__)) && ((__VALUE__) <= (0xFFu)))
- #define IS_LL_LED_COM_SELECT(__VALUE__) (((__VALUE__) == LL_LED_COMSELECT_1COM) ||\
- ((__VALUE__) == LL_LED_COMSELECT_2COM) ||\
- ((__VALUE__) == LL_LED_COMSELECT_3COM) ||\
- ((__VALUE__) == LL_LED_COMSELECT_4COM))
- #define IS_LL_LED_LIGHT_TIME(__VALUE__) (((0x01u) < (__VALUE__)) && ((__VALUE__) <= (0xFFu)))
- #define IS_LL_LED_DEAD_TIME(__VALUE__) (((0x01u) < (__VALUE__)) && ((__VALUE__) <= (0xFFu)))
- /**
- * @}
- */
- /* Private function prototypes -----------------------------------------------*/
- /* Exported functions --------------------------------------------------------*/
- /** @addtogroup LED_LL_Exported_Functions
- * @{
- */
- /** @addtogroup LED_LL_EF_Init
- * @{
- */
- /**
- * @brief De-initialize LED registers.
- * @param LEDx LED Port
- * @retval An ErrorStatus enumeration value:
- * - SUCCESS: LED registers are de-initialized
- * - ERROR: Wrong LED
- */
- ErrorStatus LL_LED_DeInit(LED_TypeDef *LEDx)
- {
- ErrorStatus status = SUCCESS;
- /* Check the parameters */
- assert_param(IS_LED_ALL_INSTANCE(LEDx));
- /* Force and Release reset on clock of LEDx */
- if (LEDx == LED)
- {
- LL_APB1_GRP2_ForceReset(LL_APB1_GRP2_PERIPH_LED);
- LL_APB1_GRP2_ReleaseReset(LL_APB1_GRP2_PERIPH_LED);
- }
- else
- {
- status = ERROR;
- }
- return (status);
- }
- /**
- * @brief Initializes the LED registers according to the specified parameters in the LED_InitStruct.
- * @param LEDx LEDx Instance
- * @param LED_InitStruct pointer to a @ref LL_LED_InitTypeDef structure
- * that contains the configuration information for the specified LED peripheral.
- * @retval An ErrorStatus enumeration value:
- * - SUCCESS: LED registers are initialized according to LED_InitStruct content
- * - ERROR: Not applicable
- */
- ErrorStatus LL_LED_Init(LED_TypeDef *LEDx, LL_LED_InitTypeDef *LED_InitStruct)
- {
- /* Check the parameters */
- assert_param(IS_LED_ALL_INSTANCE(LEDx));
- assert_param(IS_LL_LED_COM_DRIVE(LED_InitStruct->ComDrive));
- assert_param(IS_LL_LED_PRESCALER(LED_InitStruct->Prescaler));
- assert_param(IS_LL_LED_COM_SELECT(LED_InitStruct->ComSelect));
- assert_param(IS_LL_LED_LIGHT_TIME(LED_InitStruct->LightTime));
- assert_param(IS_LL_LED_DEAD_TIME(LED_InitStruct->DeadTime));
-
- /* LED Register config */
- MODIFY_REG(LEDx->CR, (uint32_t)(LED_CR_LED_COM_SEL | LED_CR_EHS),
- (LED_InitStruct->ComSelect | LED_InitStruct->ComDrive));
- LL_LED_SetPrescaler(LEDx, LED_InitStruct->Prescaler);
- LL_LED_SetLightAndDeadTime(LEDx, LED_InitStruct->LightTime, LED_InitStruct->DeadTime);
- LL_LED_Enable(LEDx);
-
- return (SUCCESS);
- }
- /**
- * @brief Set each @ref LL_LED_InitTypeDef field to default value.
- * @param LED_InitStruct pointer to a @ref LL_LED_InitTypeDef structure
- * whose fields will be set to default values.
- * @retval None
- */
- void LL_LED_StructInit(LL_LED_InitTypeDef *LED_InitStruct)
- {
- /* Reset LED init structure parameters values */
- LED_InitStruct->ComDrive = LL_LED_COMDRIVE_LOW;
- LED_InitStruct->Prescaler = 0x0u;
- LED_InitStruct->ComSelect = LL_LED_COMSELECT_1COM;
- LED_InitStruct->LightTime = 0x0u;
- LED_InitStruct->DeadTime = 0x0u;
- }
- /**
- * @}
- */
- /**
- * @}
- */
- /**
- * @}
- */
- #endif /* defined (LED) */
- /**
- * @}
- */
- #endif /* USE_FULL_LL_DRIVER */
- /************************ (C) COPYRIGHT Puya Semiconductor *****END OF FILE****/
|