找回密码
 立即注册
查看: 70|回复: 4

ADC 切换通道需要关ADC电源吗

[复制链接]
已绑定手机

1

主题

2

回帖

19

积分

新手上路

积分
19
发表于 2025-7-18 04:43:49 来自手机 | 显示全部楼层 |阅读模式
型号 是Stc8h1k08我看手册上没有关于这个的说明   Adc切换的时候我直接默认是换通道  但是正常使用的时候是读数正常,一切换通道读数马上异常,甚至固定在一个值不变,工作在异常状态  翻了一下手册没说明,不知道什么原因  想了一下,会不会跟adc电源有关系?然后在结果返回那里加了一个关闭adc电源  后续切换通道读书就正常了  

这是以下代码:
#include <STC8H.h>

#include <intrins.h>
void AdcSetRate(bit t);
float adcRes(int num,float voltage );
void Delay1ms(void) //@24.000MHz
{
  unsigned char data i, j;

  _nop_();
  i = 32;
  j = 40;
  do
  {
    while (--j);
  } while (--i);
}


float adc(bit ch, float voltage)
{
    int res;
if (ch==1)
{
AdcSetRate(1);//1是温度  选择p36
}
else
{
AdcSetRate(0);//0是电压  选择p33
}




ADC_CONTR |= 0x80;  // 开启ADC电源
Delay1ms();         // 延时
EA = 0;            
ADC_CONTR |= 0x40;  // 启动转换
_nop_(); _nop_();   // 等待硬件响应
while (!(ADC_CONTR&0x20));
ADC_CONTR &= ~0x20;  
EA = 1;

res=(ADC_RES << 8) | ADC_RESL;  // 将ADC_    //读取ADC结果


return adcRes(res,voltage);

}
void AdcSetRate(bit t)    //300ksps@24.000MHz
{
 
 
 
  ADCCFG &= ~0x0f;    //SPEED(0)
  ADCCFG |= 0x20;   //RESFMT(1) 结果右对齐
  ADCTIM = 0x38;      //CSSETUP(0), CSHOLD(1), SMPDUTY(24)


 


    if (t==1)
    {
         ADC_CONTR |=0x0E;
    }
    else
    {
      ADC_CONTR |=0x0B;
    }
 
   
}


float adcRes(int num,float voltage )
{
   float res;

  res = voltage * (num / 1024.0f);
   
   ADC_CONTR &= 0X10;


return res;
}
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:137
  • 最近打卡:2025-07-31 12:11:20

76

主题

6281

回帖

1万

积分

超级版主

积分
13347
发表于 2025-7-18 09:45:17 | 显示全部楼层
ADC切换通道不要关ADC电源,否则,重开电源必须延时至少1ms(最好10ms以上)才能做ADC(因为模拟电路上电后需要一定时间才能稳定工作)。
切换ADC通道是ADC输入端的模拟开关实现的。
回复 支持 反对

使用道具 举报 送花

已绑定手机

1

主题

2

回帖

19

积分

新手上路

积分
19
发表于 7 天前 来自手机 | 显示全部楼层
梁工 发表于 2025-7-18 09:45
ADC切换通道不要关ADC电源,否则,重开电源必须延时至少1ms(最好10ms以上)才能做ADC(因为模拟电路上电后 ...

那不关电源切换的通道产生的异常是什么问题?电源延时有的

点评

那跟通道切换无关,检查硬件,使用官方例子测试。  详情 回复 发表于 7 天前
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:137
  • 最近打卡:2025-07-31 12:11:20

76

主题

6281

回帖

1万

积分

超级版主

积分
13347
发表于 7 天前 | 显示全部楼层
绎妄*** 发表于 2025-7-25 02:01
那不关电源切换的通道产生的异常是什么问题?电源延时有的

那跟通道切换无关,检查硬件,使用官方例子测试。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:52
  • 最近打卡:2025-07-30 10:11:31
已绑定手机

7

主题

49

回帖

635

积分

高级会员

积分
635
发表于 7 天前 来自手机 | 显示全部楼层
绎妄无绎 发表于 2025-7-25 02:01
那不关电源切换的通道产生的异常是什么问题?电源延时有的

切换通道,转换前四次波动大,第五次开始用数据
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-8-1 01:43 , Processed in 0.115715 second(s), 72 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表