📄 ad12.c
字号:
#include "msp430x24x.h"
#include "All_functions.h"
//****************************
#define ADC_times 10;//定义转换10次
unsigned int ADCtimes=ADC_times;
unsigned int Waitflag;
unsigned int Ad_Mem[16];
//*************************
// AD初始化
//*********************
void AD12Init()
{
ADC12CTL0&=~ENC;
ADC12CTL0=MSC+REF2_5V+SHT0_15+SHT1_15;//内部参考电压2.5V
}
//******************************************************
//address:转换首地址
//Cchannel:通道模式选择
//********************************************************
void AD_MOD(unsigned int address,unsigned int Cchannel)
{
ADC12CTL1=(address<<12)+SHP+(Cchannel<<1);
}
//*****************************************************
//eos:序列结束控制痊
//SEL_channel:输入通道选择0-15
//SEL_mem:转换存储寄存器选择0-15
//SEL_REF:参考电压源选择0-7
//SEL_IE:中断使能
//*****************************************************
void S_INCH(unsigned int eos,unsigned int SEL_channel,unsigned int SEL_mem,unsigned int SEL_REF,unsigned int SEL_IE)
{
char *pm=ADC12MCTL;
pm+=SEL_mem;
*pm=eos+SEL_channel+(SEL_REF<<4);
if(SEL_IE==1)
ADC12IE&=(0x01<<SEL_mem);
else
ADC12IE&=0x00;
}
//*************************************************
//
//************************************************
void ADopen(unsigned int flag)
{
if(flag==1)
{
ADC12CTL0 |= ADC12ON;
ADC12CTL0 |= ENC;
}
else
{
ADC12CTL0 &= ~ADC12ON; //不允许转换
ADC12CTL0 &= ~ENC;
}
}
//***************************************************
// 转换开始
//**************************************************
void AD_start()
{
unsigned char q0;
for(q0=0;q0<16;q0++)
Ad_Mem[q0]=0;
Waitflag=0;
ADC12CTL0 |= ENC+ADC12SC; //转换开始
while(Waitflag==0); //等待转换结束
}
#pragma vector=ADC12_VECTOR
__interrupt void Adc()
{
unsigned char q0;
unsigned int iq0;
int *pmem=ADC12MEM;
if(Waitflag==0)
{
for(q0=0;q0<16;q0++)
{
Ad_Mem[q0] += *pmem;
pmem++;
}
ADCtimes--;
if(ADCtimes==0)
{
ADopen(0); //关闭ADC12模块
Waitflag=1; //转换结束的标志位置位
for(q0=0;q0<16;q0++)
{
Ad_Mem[q0] = Ad_Mem[q0]/ADC_times;
}
ADCtimes=ADC_times;
}
}
else
{
for(q0=0;q0<16;q0++)
{
iq0 += *pmem;
pmem++;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -