成都工业学院毕业设计(论文)
// Internal ref gain 1
DAC12_0CTL = DAC12SREF_0 + DAC12IR;
DAC12_0CTL |= DAC12LSEL_1 + (DAC12AMPx << 5); DAC12_0CTL |= DAC12ENC; }
/******************************************************** * 函数名称:DAC12_1Init
* 功 能:DAC12_1用到的相关资源初始化 * 参 数:
* DAC12AMPx:DAC运算放大器设置: * 0 输入缓冲器关闭,输出缓冲器关闭,高阻 * 1 输入缓冲器关闭,输出缓冲器关闭,0V * 2 输入缓冲器低速/电流,输出缓冲器低速/电流 * 3 输入缓冲器低速/电流,输出缓冲器中速/电流 * 4 输入缓冲器低速/电流,输出缓冲器高速/电流 * 5 输入缓冲器中速/电流,输出缓冲器中速/电流 * 6 输入缓冲器中速/电流,输出缓冲器高速/电流 * 7 输入缓冲器高速/电流,输出缓冲器高速/电流 * 返 回 值:无
* 说 明:其他默认为:12位方案、写入即更新输出,module模 * 块为3时,两个都写入更新;DAC12的满量程为参考电 * 压;内部2.5v参考电压:需要AD设置参考源打开2.5. *********************************************************/ void DAC12_1Init(char DAC12AMPx) {
// Internal ref gain 1
DAC12_1CTL = DAC12SREF_0 + DAC12IR;
DAC12_1CTL |= DAC12LSEL_1 + (DAC12AMPx << 5); DAC12_1CTL |= DAC12ENC; }
/******************************************************** * 函数名称:DAC12Init
* 功 能:DAC12用到的相关资源初始化 * 参 数:
* module模块 0:使用模块DAC12_0
40
自动增益控制放大器
* 1:使用模块DAC12_1 * 2:使用模块DAC12_0/1
* 3:使用模块DAC12_0/1 共同更新 * DAC12AMPx:DAC运算放大器设置: * 0 输入缓冲器关闭,输出缓冲器关闭,高阻 * 1 输入缓冲器关闭,输出缓冲器关闭,0V * 2 输入缓冲器低速/电流,输出缓冲器低速/电流 * 3 输入缓冲器低速/电流,输出缓冲器中速/电流 * 4 输入缓冲器低速/电流,输出缓冲器高速/电流 * 5 输入缓冲器中速/电流,输出缓冲器中速/电流 * 6 输入缓冲器中速/电流,输出缓冲器高速/电流 * 7 输入缓冲器高速/电流,输出缓冲器高速/电流 * 返 回 值:char,设置成功返回1,参数错误返回0
* 说 明:其他默认为:12位方案、写入即更新输出,module模 * 块为3时,两个都写入更新;DAC12的满量程为参考电 * 压;内部2.5v参考电压:需要AD设置参考源打开2.5. *********************************************************/ char DAC12Init(char module,char DAC12AMPx) {
if(DAC12AMPx>7) {
return(0); }
//---------------------------设置模块------------------------------- switch(module) {
case 0: DAC12_0Init(DAC12AMPx); break; //模块0 case 1: DAC12_1Init(DAC12AMPx); break; //模块1 case 2:
DAC12_0Init(DAC12AMPx); DAC12_1Init(DAC12AMPx);
break; //模块0、1 case 3:
DAC12_0Init(DAC12AMPx); DAC12_1Init(DAC12AMPx); DAC12_0CTL |= DAC12GRP; break; //无校验
41
成都工业学院毕业设计(论文)
default : return(0); //参数错误 } return (1); }
/******************************************************** * 函数名称:DAC12Cal
* 功 能:校准DAC12,内部自动校准 * 参 数:
* module:校准哪个模块
* 0:DAC12_0模块 1:DAC12_1模块 * 2,3 两个模块都校准 * 返 回 值:无
*********************************************************/ void DAC12Cal(char module) {
switch(module) {
case 0:
DAC12_0CTL |= DAC12CALON; // 启动效验DAC while((DAC12_0CTL & DAC12CALON) != 0); // 等待效验完成 break; //模块0 case 1:
DAC12_1CTL |= DAC12CALON; // 启动效验DAC while((DAC12_1CTL & DAC12CALON) != 0); // 等待效验完成 break; //模块1 case 2: case 3:
DAC12_0CTL |= DAC12CALON; // 启动效验DAC while((DAC12_0CTL & DAC12CALON) != 0); // 等待效验完成 DAC12_1CTL |= DAC12CALON; // 启动效验DAC while((DAC12_1CTL & DAC12CALON) != 0); // 等待效验完成 break; //模块0、1 default : return; //参数错误 } }
42