STC8G2K64S4的AD采样有问题,10路AD一起采样,变换程序总有一路采集值为零
2023-7-25 11:16 来自 Inver1688 发布 @ 综合讨论
问题如下,两种不同的代码,每次都有固定的一路采样的AD值为零,但为零的如果单独采样则值是正确的
代码一如下,其问题是 ADC_N_L1采集的AD值始终为零,其实这个口的外部电压为电源电压一半,单独采样则AD是512
void ADC_ISR() interrupt 5
{
ADC_CONTR &=~ADC_FLAG; //清除中断
if(AD_conver_ii == 0)
{
ADC_ref_avg= (ADC_RES<<8)|ADC_RESL;
Ref_flg =1;
ADC_CONTR = ADC_SELECTCHS0;
}
else if(AD_conver_ii == 1)
{
ADC_TEST= (ADC_RES<<8)|ADC_RESL;
DC5v_flg =1;
ADC_CONTR = ADC_SELECTCHS1;
}
else if(AD_conver_ii == 2)
{
ADC_N_L1= (ADC_RES<<8)|ADC_RESL;
L1N_flg =1;
ADC_CONTR = ADC_SELECTCHS2;
}
else if(AD_conver_ii == 3)
{
ADC_L1_L2 = (ADC_RES<<8)|ADC_RESL;
L1L2_flg =1;
ADC_CONTR = ADC_SELECTCHS3;
}
else if(AD_conver_ii == 4)
{
ADC_L1_L3= (ADC_RES<<8)|ADC_RESL;
L1L3_flg =1;
ADC_CONTR = ADC_SELECTCHS4;
}
else if(AD_conver_ii == 5)
{
ADC_BAT_V = (ADC_RES<<8)|ADC_RESL;
Bat_v_flg =1;// 电池电压
ADC_CONTR =
代码一如下,其问题是 ADC_N_L1采集的AD值始终为零,其实这个口的外部电压为电源电压一半,单独采样则AD是512
void ADC_ISR() interrupt 5
{
ADC_CONTR &=~ADC_FLAG; //清除中断
if(AD_conver_ii == 0)
{
ADC_ref_avg= (ADC_RES<<8)|ADC_RESL;
Ref_flg =1;
ADC_CONTR = ADC_SELECTCHS0;
}
else if(AD_conver_ii == 1)
{
ADC_TEST= (ADC_RES<<8)|ADC_RESL;
DC5v_flg =1;
ADC_CONTR = ADC_SELECTCHS1;
}
else if(AD_conver_ii == 2)
{
ADC_N_L1= (ADC_RES<<8)|ADC_RESL;
L1N_flg =1;
ADC_CONTR = ADC_SELECTCHS2;
}
else if(AD_conver_ii == 3)
{
ADC_L1_L2 = (ADC_RES<<8)|ADC_RESL;
L1L2_flg =1;
ADC_CONTR = ADC_SELECTCHS3;
}
else if(AD_conver_ii == 4)
{
ADC_L1_L3= (ADC_RES<<8)|ADC_RESL;
L1L3_flg =1;
ADC_CONTR = ADC_SELECTCHS4;
}
else if(AD_conver_ii == 5)
{
ADC_BAT_V = (ADC_RES<<8)|ADC_RESL;
Bat_v_flg =1;// 电池电压
ADC_CONTR =
免责声明:
本平台旨在开源共享精神,请勿发布敏感信息,任何违法信息我们将移交公安机关;
上一篇: 请教,不明原因的代码区溢出复位
下一篇: 关于IO推挽输出最大20mA电流的问题