|
4中状态,看看行不行
void ADC12_Control(void)
{
//单通道单次转换
P6SEL = 0xff; //所有P6口都为ADC模块使用
ADC12CTL0 &= ~ENC; //在设置之前清除它的转换允许位
ADC12CTL1 = CONSEQ_0 + SHP +CSTARTADD_0;
//单通道单次转换模式, 时钟源为内部时钟源,始终分频为1,采样信号来自采样定时器,转换存储器地址为ADC12MEM0
ADC12MCTL0 = INCH_0 + SREF_0; //模拟输入通道为A0,
ADC12IFG = 0;
ADC12IE = BIT0; //A0转换结束允许中断
ADC12CTL0 = ADC12ON + SHT0_8; //打开ADC
ADC12CTL0 |= ENC; //允许转换
//ADC12CTL0 |= ADC12SC; //启动转换
//序列通道单次转换
P6SEL = 0xff; //所有P6口都为ADC模块使用
ADC12CTL0 &= ~ENC; //在设置之前清除它的转换允许位
ADC12CTL1 = CSTARTADD_0 + SHP + CONSEQ_1;
//序列通道单次转换,时钟源为内部时钟源,时钟分频1,采样信号来自采样定时器,转换存储器地址为ADC12MEM0
ADC12MCTL0 = 0x00; //模拟输入通道为A0
ADC12MCTL1 = 0x85; //模拟输入通道为A5,并且是最后一个转换通道
ADC12IFG = 0;
ADC12IE = BIT1; //A5转换结束允许中断
ADC12CTL0 = ADC12ON + SHT0_8; //打开ADC
ADC12CTL0 |= ENC; //允许转换
//ADC12CTL0 |= ADC12SC; //启动转换
//单通道多次转换
P6SEL = 0xff; //所有P6口都为ADC模块使用
ADC12CTL0 &= ~ENC; //在设置之前清除它的转换允许位
ADC12CTL1 = CSTARTADD_0 + SHP + CONSEQ_2;
ADC12MCTL0 = 0x00; //模拟输入通道为A0
ADC12IFG = 0;
ADC12IE = BIT0; //A0转换结束允许中断
ADC12CTL0 = ADC12ON + SHT0_8 + MSC; //打开ADC,转换自动进行
ADC12CTL0 |= ENC; //允许转换
//ADC12CTL0 |= ADC12SC; //启动转换
//序列通道多次转换
P6SEL = 0xff; //所有P6口都为ADC模块使用
ADC12CTL0 &= ~ENC; //在设置之前清除它的转换允许位
ADC12CTL1 = CSTARTADD_0 + SHP + CONSEQ_3;
ADC12MCTL0 = 0x00; //模拟输入通道为A0
ADC12MCTL1 = 0x85; //模拟输入通道为A5,并且是最后一个转换通道
ADC12IFG = 0;
ADC12IE = BIT1; //A5转换结束允许中断
ADC12CTL0 = ADC12ON + SHT0_8 + MSC; //打开ADC,转换自动进行
ADC12CTL0 |= ENC; //允许转换
//ADC12CTL0 |= ADC12SC; //启动转换
} |
|