📄 dac12.c
字号:
/****************************************************************************
文件名:dac12.c
编写者:czhang
描述:DAC12转换模块程序。用于15xx 16xx系列。
MCLK:DCO ACLK:32.768kHz
版本:2005-5 V1.0
*****************************************************************************/
#include <msp430x16x.h>
#include "dac12.h"
/****************************************************************************
初始化DAC12
****************************************************************************/
void InitDac12()
{
ADC12CTL0 = REF2_5V + REFON; //打开内部参考电压源,参考电压为2.5V
//设置DAC12通道0
DAC12_0CTL= DAC12IR + DAC12AMP_5 + DAC12ENC+DAC12LSEL_1 ;
//满量程为参考电压,中速度/电流输出,12位分辨率,Vref+为参考电压,
DAC12_0CTL |= DAC12CALON; //自动校准DA输出
//设置DAC12通道1
DAC12_1CTL= DAC12AMP_5 + DAC12ENC+DAC12LSEL_1 ;
//满量程为参考电压的3倍,中速度/电流输出,12位分辨率,Vref+为参考电压,
DAC12_1CTL |= DAC12CALON; //自动校准DA输出
//等待校准结束
while(DAC12_0CTL & DAC12CALON == DAC12CALON);
while(DAC12_1CTL & DAC12CALON == DAC12CALON);
}
/*****************************************************************************
打开或关闭DAC12
doit: 0:关闭 100:运行
which:打开或关闭。 0:DAC0 1:DAC1
*****************************************************************************/
void GoDac12(unsigned char doit,unsigned char which)
{
if(doit==0)
{
//关闭DAC12
if(which==0)
DAC12_0CTL &= ~DAC12ENC;
else
DAC12_1CTL &= ~DAC12ENC;
}
else if(doit==100)
{
//打开DAC12
if(which==0)
DAC12_0CTL |= DAC12ENC;
else
DAC12_1CTL |= DAC12ENC;
}
}
/*****************************************************************************
写输出值
dat:要输出的值,准备写入DA数据寄存器
which:写入哪个通道。 0:DAC0 1:DAC1
*****************************************************************************/
void Dac12Write(unsigned int dat,unsigned char which)
{
if(which==0)
DAC12_0DAT = dat;
else
DAC12_1DAT = dat;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -