📄 ad1.c
字号:
unsigned short A1Results[Num_of_Results]
P6SEL|=0xff;
ADC12CTL0 &=~(ENC); //禁止AD转换
ADC12CTL0 = ADC12ON+REFON+REF2_5V+SHT0_4+MSC; // Setup ADC12, ref., sampling time
//ADC12ON打开ADC12内核,REFON 内部参考电压
//REF2_5V 内部参考电压2.5V,
//SHT0_4采样保持定时器0
ADC12CTL1 = SHP+CONSEQ_1; // 序列通道单次转换
ADC12MCTL0 = INCH_0+SREF_1; // Select channel A1, Vref+
ADC12MCTL1 = INCH_1+SREF_1; // Select channel A2, Vref+
ADC12MCTL2 = INCH_2+SREF_1; // Select channel A3, Vref+
ADC12MCTL3 = INCH_3+SREF_1; // Select channel X4 (A4,A9,A10,A11) , Vref+
ADC12MCTL4 = INCH_4+SREF_1; // Select channel A5, Vref+
ADC12MCTL5 = INCH_5+SREF_1; // Select channel A6, Vref+
ADC12MCTL6 = INCH_6+SREF_1; // Select channel A7, Vref+
ADC12MCTL7 = INCH_7+SREF_1+EOS; // Select channel A8, Vref+,最后通道
for (index=0;index<24;index++)
{
ADC12CTL0 |= 0x01; // 开始转换
ADC12CTL0 &=~0x01; // Start conversion
for (j=0;j<=100;j++); // 延时,准备触发序列中
{ //的下一次转换
}
while ((ADC12CTL1&0x01)==1); // 等待整个序列的转换完成
A1Results[index] = ADC12MEM0; // 存通道A1结果,
A2Results[index] = ADC12MEM1; // 存通道A2结果,
A3Results[index] = ADC12MEM2; // 存通道A3结果,
A4Results[index] = ADC12MEM4; // 存通道A4结果,
A5Results[index] = ADC12MEM5; // 存通道A5结果,
A6Results[index] = ADC12MEM6; // 存通道A6结果,
A7Results[index] = ADC12MEM7; // 存通道A7结果,
}
for(;;)
{
DAC5618_3(VOut3,0x8000);
Delay(10000);
P3OUT&=~BIT6;
P3OUT&=~BIT7;
ADC12CTL0 |= ENC;
for (index=0;index<24;index++)
{
ADC12CTL0 |= 0x01; // 开始转换
ADC12CTL0 &=~0x01; // Start conversion
for (j=0;j<=100;j++); // 延时,准备触发序列中
{ //的下一次转换
}
while ((ADC12CTL1&0x01)==1); // 等待整个序列的转换完成
A6Results[index] = ADC12MEM6; // 存通道A6结果
}
ADC12CTL0&=~ENC;
A6Result=Average(A6Results); //第2路4.5A电流平均值
V3=((long int)A6Result*2700)/4095;
if((V3-Vtemp)<50 && V3>Vtemp) //实际电压小于设定电压或大于设定电压
break;
if((Vtemp-V3)<50 && Vtemp>V3) //实际电压小于设定电压或大于设定电压
break;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -