first commit
This commit is contained in:
84
libraries/sdk/Peripheral/ch32v30x_opa.c
Normal file
84
libraries/sdk/Peripheral/ch32v30x_opa.c
Normal file
@@ -0,0 +1,84 @@
|
||||
/********************************** (C) COPYRIGHT *******************************
|
||||
* File Name : ch32v30x_opa.c
|
||||
* Author : WCH
|
||||
* Version : V1.0.0
|
||||
* Date : 2021/06/06
|
||||
* Description : This file provides all the OPA firmware functions.
|
||||
* Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
***************************************************************************************/
|
||||
#include "ch32v30x_opa.h"
|
||||
|
||||
#define OPA_MASK ((uint32_t)0x000F)
|
||||
#define OPA_Total_NUM 4
|
||||
|
||||
/*********************************************************************
|
||||
* @fn OPA_DeInit
|
||||
*
|
||||
* @brief Deinitializes the OPA peripheral registers to their default
|
||||
* reset values.
|
||||
*
|
||||
* @return none
|
||||
*/
|
||||
void OPA_DeInit(void)
|
||||
{
|
||||
OPA->CR = 0;
|
||||
}
|
||||
|
||||
/*********************************************************************
|
||||
* @fn OPA_Init
|
||||
*
|
||||
* @brief Initializes the OPA peripheral according to the specified
|
||||
* parameters in the OPA_InitStruct.
|
||||
*
|
||||
* @param OPA_InitStruct - pointer to a OPA_InitTypeDef structure
|
||||
*
|
||||
* @return none
|
||||
*/
|
||||
void OPA_Init(OPA_InitTypeDef *OPA_InitStruct)
|
||||
{
|
||||
uint32_t tmp = 0;
|
||||
tmp = OPA->CR;
|
||||
tmp &= ~(OPA_MASK << (OPA_InitStruct->OPA_NUM * OPA_Total_NUM));
|
||||
tmp |= (((OPA_InitStruct->PSEL << OPA_PSEL_OFFSET) | (OPA_InitStruct->NSEL << OPA_NSEL_OFFSET) | (OPA_InitStruct->Mode << OPA_MODE_OFFSET)) << (OPA_InitStruct->OPA_NUM * OPA_Total_NUM));
|
||||
OPA->CR = tmp;
|
||||
}
|
||||
|
||||
/*********************************************************************
|
||||
* @fn OPA_StructInit
|
||||
*
|
||||
* @brief Fills each OPA_StructInit member with its reset value.
|
||||
*
|
||||
* @param OPA_StructInit - pointer to a OPA_InitTypeDef structure
|
||||
*
|
||||
* @return none
|
||||
*/
|
||||
void OPA_StructInit(OPA_InitTypeDef *OPA_InitStruct)
|
||||
{
|
||||
OPA_InitStruct->Mode = OUT_IO;
|
||||
OPA_InitStruct->PSEL = CHP0;
|
||||
OPA_InitStruct->NSEL = CHN0;
|
||||
OPA_InitStruct->OPA_NUM = OPA1;
|
||||
}
|
||||
|
||||
/*********************************************************************
|
||||
* @fn OPA_Cmd
|
||||
*
|
||||
* @brief Enables or disables the specified OPA peripheral.
|
||||
*
|
||||
* @param OPA_NUM - Select OPA
|
||||
* NewState - ENABLE or DISABLE.
|
||||
*
|
||||
* @return none
|
||||
*/
|
||||
void OPA_Cmd(OPA_Num_TypeDef OPA_NUM, FunctionalState NewState)
|
||||
{
|
||||
if(NewState == ENABLE)
|
||||
{
|
||||
OPA->CR |= (1 << (OPA_NUM * OPA_Total_NUM));
|
||||
}
|
||||
else
|
||||
{
|
||||
OPA->CR &= ~(1 << (OPA_NUM * OPA_Total_NUM));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user