83 lines
1.8 KiB
C
83 lines
1.8 KiB
C
|
/**
|
||
|
******************************************************************************
|
||
|
* @file ft32f0xx_dac.c
|
||
|
* @author FMD AE
|
||
|
* @brief This file provides firmware functions to manage the following
|
||
|
* functionalities of DAC peripheral
|
||
|
* @version V1.0.0
|
||
|
* @data 2021-07-01
|
||
|
******************************************************************************
|
||
|
*/
|
||
|
/* Includes ------------------------------------------------------------------*/
|
||
|
#include "ft32f0xx_dac.h"
|
||
|
|
||
|
/**
|
||
|
*
|
||
|
*/
|
||
|
void DAC_Ref_Config(uint32_t DAC_RefSel)
|
||
|
{
|
||
|
uint32_t tmpreg = 0;
|
||
|
|
||
|
assert_param(IS_DAC_REF_SEL(DAC_RefSel));
|
||
|
|
||
|
tmpreg = DAC->CTRL;
|
||
|
tmpreg &= ~DAC_CTRL_REF_SEL;
|
||
|
tmpreg |= DAC_RefSel;
|
||
|
|
||
|
DAC->CTRL |= tmpreg;
|
||
|
}
|
||
|
/**
|
||
|
* @Parame
|
||
|
*/
|
||
|
void DAC_Cmd(FunctionalState NewState)
|
||
|
{
|
||
|
if(NewState != DISABLE)
|
||
|
{
|
||
|
DAC->CTRL |= DAC_CTRL_EN;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
DAC->CTRL &= ~DAC_CTRL_EN;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* @brief Set the specified data holding register value for DAC channel1.
|
||
|
* @param DAC_Align: no use.
|
||
|
* @param Data: Data to be loaded in the selected data DAC1DATA register. 7BIT
|
||
|
* @retval None
|
||
|
*/
|
||
|
void DAC_SetChannel1Data(uint32_t DAC_Align, uint8_t Data)
|
||
|
{
|
||
|
/* Check the parameters */
|
||
|
assert_param(IS_DAC_DATA(Data));
|
||
|
|
||
|
DAC->DATA1 = (uint32_t)Data;
|
||
|
}
|
||
|
|
||
|
void DAC_SetChannel2Data(uint32_t DAC_Align, uint8_t Data)
|
||
|
{
|
||
|
/* Check the parameters */
|
||
|
assert_param(IS_DAC_DATA(Data));
|
||
|
|
||
|
DAC->DATA2 = (uint32_t)Data;
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
/**
|
||
|
* @Parame
|
||
|
*
|
||
|
*/
|
||
|
uint8_t DAC_Read_Reg(uint8_t DAC_Register)
|
||
|
{
|
||
|
__IO uint32_t tmp = 0;
|
||
|
|
||
|
tmp = (uint32_t)DAC_BASE;
|
||
|
tmp += DAC_Register;
|
||
|
|
||
|
/* Return the selected register value */
|
||
|
return (uint8_t)(*(__IO uint32_t *) tmp);
|
||
|
}
|