1 /******************************************************************************************************************************************
2 * 文件名称: SWM341_dac.c
3 * 功能说明: SWM341单片机的DAC模块驱动库
4 * 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
5 * 注意事项:
6 * 版本日期: V1.1.0      2017年10月25日
7 * 升级记录:
8 *
9 *
10 *******************************************************************************************************************************************
11 * @attention
12 *
13 * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
14 * REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
15 * FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
16 * OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONN-
17 * -ECTION WITH THEIR PRODUCTS.
18 *
19 * COPYRIGHT 2012 Synwit Technology
20 *******************************************************************************************************************************************/
21 #include "SWM341.h"
22 #include "SWM341_dac.h"
23 
24 
25 /******************************************************************************************************************************************
26 * 函数名称: DAC_Init()
27 * 功能说明: DAC 初始化
28 * 输    入: DAC_TypeDef * DACx    指定要被设置的DAC接口,有效值包括DAC
29 *           uint32_t format     数据格式,可取值DAC_FORMAT_LSB12B、DAC_FORMAT_MSB12B、DAC_FORMAT_8B
30 * 输    出: 无
31 * 注意事项: 无
32 ******************************************************************************************************************************************/
DAC_Init(DAC_TypeDef * DACx,uint32_t format)33 void DAC_Init(DAC_TypeDef * DACx, uint32_t format)
34 {
35     switch((uint32_t)DACx)
36     {
37     case ((uint32_t)DAC):
38         SYS->CLKEN1 |= (0x01 << SYS_CLKEN1_DAC_Pos);
39         break;
40     }
41 
42     SYS->DACCR &= ~SYS_DACCR_VRADJ_Msk;
43     SYS->DACCR |= ((SYS->BACKUP[2] & 0x1F) << SYS_DACCR_VRADJ_Pos);
44 
45     DACx->CR = (format << DAC_CR_DHRFMT_Pos);
46 }
47 
48 /******************************************************************************************************************************************
49 * 函数名称: DAC_Open()
50 * 功能说明: DAC 开启
51 * 输    入: DAC_TypeDef * DACx    指定要被设置的DAC接口,有效值包括DAC
52 * 输    出: 无
53 * 注意事项: 无
54 ******************************************************************************************************************************************/
DAC_Open(DAC_TypeDef * DACx)55 void DAC_Open(DAC_TypeDef * DACx)
56 {
57     DACx->CR |= (1 << DAC_CR_EN_Pos);
58 }
59 
60 /******************************************************************************************************************************************
61 * 函数名称: DAC_Close()
62 * 功能说明: DAC 关闭
63 * 输    入: DAC_TypeDef * DACx    指定要被设置的DAC接口,有效值包括DAC
64 * 输    出: 无
65 * 注意事项: 无
66 ******************************************************************************************************************************************/
DAC_Close(DAC_TypeDef * DACx)67 void DAC_Close(DAC_TypeDef * DACx)
68 {
69     DACx->CR &= ~DAC_CR_EN_Msk;
70 }
71