添加普冉 PY32F040 OTA 双工程代码生成模板
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,242 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file py32f040_ll_div.h
|
||||
* @author MCU Application Team
|
||||
* @brief Header file of DIV LL module.
|
||||
******************************************************************************
|
||||
* @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
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef PY32F040_LL_DIV_H
|
||||
#define PY32F040_LL_DIV_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "py32f0xx.h"
|
||||
|
||||
/** @addtogroup PY32F040_LL_Driver
|
||||
* @{
|
||||
*/
|
||||
|
||||
#if defined (DIV)
|
||||
|
||||
/** @defgroup DIV_LL DIV
|
||||
* @{
|
||||
*/
|
||||
|
||||
/* Private types -------------------------------------------------------------*/
|
||||
/* Private variables ---------------------------------------------------------*/
|
||||
/* Private constants ---------------------------------------------------------*/
|
||||
/* Private macros ------------------------------------------------------------*/
|
||||
/* Exported types ------------------------------------------------------------*/
|
||||
/* Exported constants --------------------------------------------------------*/
|
||||
/** @defgroup DIV_LL_Exported_Constants DIV Exported Constants
|
||||
* @{
|
||||
*/
|
||||
|
||||
/** @defgroup DIV_LL_EC_MODE Sign mode Selection
|
||||
* @{
|
||||
*/
|
||||
#define LL_DIV_MODE_UNSIGNED 0x00000000U
|
||||
#define LL_DIV_MODE_SIGNED DIV_SIGN_DIV_SIGN
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/* Exported macro ------------------------------------------------------------*/
|
||||
/** @defgroup DIV_LL_Exported_Macros DIV Exported Macros
|
||||
* @{
|
||||
*/
|
||||
/** @defgroup DIV_LL_EM_WRITE_READ Common Write and read registers macros
|
||||
* @{
|
||||
*/
|
||||
/**
|
||||
* @brief Write a value in DIV register
|
||||
* @param __INSTANCE__ DIV Instance
|
||||
* @param __REG__ Register to be written
|
||||
* @param __VALUE__ Value to be written in the register
|
||||
* @retval None
|
||||
*/
|
||||
#define LL_DIV_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
|
||||
|
||||
/**
|
||||
* @brief Read a value in DIV register
|
||||
* @param __INSTANCE__ DIV Instance
|
||||
* @param __REG__ Register to be read
|
||||
* @retval Register value
|
||||
*/
|
||||
#define LL_DIV_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/* Exported functions --------------------------------------------------------*/
|
||||
/** @defgroup DIV_LL_Exported_Functions DIV Exported Functions
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief Set the DIV sign.
|
||||
* @param DIVx DIV Instance
|
||||
* @param Sign This parameter can be one of the following values:
|
||||
* @arg @ref LL_DIV_MODE_UNSIGNED
|
||||
* @arg @ref LL_DIV_MODE_SIGNED
|
||||
* @retval None
|
||||
*/
|
||||
__STATIC_INLINE void LL_DIV_SetSign(DIV_TypeDef *DIVx, uint32_t Sign)
|
||||
{
|
||||
MODIFY_REG(DIVx->SIGN, DIV_SIGN_DIV_SIGN, Sign);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get the DIV sign.
|
||||
* @param DIVx DIV Instance
|
||||
* @retval Returned value can be one of the following values:
|
||||
* @arg @ref LL_DIV_MODE_UNSIGNED
|
||||
* @arg @ref LL_DIV_MODE_SIGNED
|
||||
*/
|
||||
__STATIC_INLINE uint32_t LL_DIV_GetSign(DIV_TypeDef *DIVx)
|
||||
{
|
||||
return (uint32_t)(READ_BIT(DIVx->SIGN, DIV_SIGN_DIV_SIGN));
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Set the DIV Dividend value.
|
||||
* @param DIVx DIV Instance
|
||||
* @param Dividend This parameter must be a number between Min_Data = 0x00000000 and Max_Data = 0xFFFFFFFF
|
||||
* @retval None
|
||||
*/
|
||||
__STATIC_INLINE void LL_DIV_SetDividend(DIV_TypeDef *DIVx, int32_t Dividend)
|
||||
{
|
||||
WRITE_REG(DIVx->DEND, Dividend);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get the DIV Dividend value.
|
||||
* @param DIVx DIV Instance
|
||||
* @retval Returned value is a number between Min_Data = 0x00000000 and Max_Data = 0xFFFFFFFF
|
||||
*/
|
||||
__STATIC_INLINE int32_t LL_DIV_GetDividend(DIV_TypeDef *DIVx)
|
||||
{
|
||||
return (int32_t)(READ_REG(DIVx->DEND));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Set the DIV Divisor value.
|
||||
* @param DIVx DIV Instance
|
||||
* @param Divisor This parameter must be a number between Min_Data = 0x00000000 and Max_Data = 0xFFFFFFFF
|
||||
* @retval None
|
||||
*/
|
||||
__STATIC_INLINE void LL_DIV_SetDivisor(DIV_TypeDef *DIVx, int32_t Divisor)
|
||||
{
|
||||
WRITE_REG(DIVx->SOR, Divisor);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get the DIV Divisor value.
|
||||
* @param DIVx DIV Instance
|
||||
* @retval Returned value is a number between Min_Data = 0x00000000 and Max_Data = 0xFFFFFFFF
|
||||
*/
|
||||
__STATIC_INLINE int32_t LL_DIV_GetDivisor(DIV_TypeDef *DIVx)
|
||||
{
|
||||
return (int32_t)(READ_REG(DIVx->SOR));
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get the DIV Quotient value.
|
||||
* @param DIVx DIV Instance
|
||||
* @retval Returned value is a number between Min_Data = 0x00000000 and Max_Data = 0xFFFFFFFF
|
||||
*/
|
||||
__STATIC_INLINE int32_t LL_DIV_GetQuotient(DIV_TypeDef *DIVx)
|
||||
{
|
||||
return (int32_t)(READ_REG(DIVx->QUOT));
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get the DIV Remainder value.
|
||||
* @param DIVx DIV Instance
|
||||
* @retval Returned value is a number between Min_Data = 0x00000000 and Max_Data = 0xFFFFFFFF
|
||||
*/
|
||||
__STATIC_INLINE int32_t LL_DIV_GetRemainder(DIV_TypeDef *DIVx)
|
||||
{
|
||||
return (int32_t)(READ_REG(DIVx->REMA));
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Check if Divide by zero warning flag bit is set.
|
||||
* @param DIVx DIV Instance
|
||||
* @retval State of bit (1 or 0).
|
||||
*/
|
||||
__STATIC_INLINE uint32_t LL_DIV_IsActiveFlag_DIV_ZERO(DIV_TypeDef *DIVx)
|
||||
{
|
||||
return ((READ_BIT(DIVx->STAT, DIV_STAT_DIV_ZERO) == (DIV_STAT_DIV_ZERO)) ? 1UL : 0UL);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Check if Division operation end flag bit is set.
|
||||
* @param DIVx DIV Instance
|
||||
* @retval State of bit (1 or 0).
|
||||
*/
|
||||
__STATIC_INLINE uint32_t LL_DIV_IsActiveFlag_DIV_END(DIV_TypeDef *DIVx)
|
||||
{
|
||||
return ((READ_BIT(DIVx->STAT, DIV_STAT_DIV_END) == (DIV_STAT_DIV_END)) ? 1UL : 0UL);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
#endif /* DIV */
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* PY32F040_LL_DIV_H */
|
||||
|
||||
/************************ (C) COPYRIGHT Puya *****END OF FILE****/
|
||||
Reference in New Issue
Block a user