找回密码
 立即注册
查看: 5005|回复: 66

ADC采集为什么有时候是0?

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2023-12-23 08:55:32

3

主题

36

回帖

163

积分

注册会员

积分
163
发表于 2023-12-21 14:42:35 | 显示全部楼层 |阅读模式
芯片:STC8H1K08,用NTC测温,工作正常,
有NTC开路或者短路异常检测,NTC明明是好的,
但是有时候而尔会提示NTC短路,
显示采集到的AD值为0,这个问题是随机的,
有时半小时出现,有时几个小时才出现,
百思不得其解,请大神指点,谢谢!                                                                                            

回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:45
  • 最近打卡:2025-04-28 09:23:48

3

主题

43

回帖

493

积分

中级会员

积分
493
发表于 2024-11-19 22:29:17 | 显示全部楼层
pzeg*** 发表于 2024-11-19 21:38
把前面说的缺少 P_SW2的这两句也补了上去 还是一样,现在是显示累加小于100的次数
因为输入端脚已经直接 ...

代码我已经直接复制验证过了,没有出现问题。
你把原理图和PCB贴出来再分析吧。
直连电源也要保证电源是可靠的。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:169
  • 最近打卡:2025-02-19 20:55:54

0

主题

72

回帖

299

积分

中级会员

积分
299
发表于 2023-12-21 16:13:21 | 显示全部楼层
贴出来NTC测温部分电路图,大家才好分析
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:502
  • 最近打卡:2025-05-01 08:01:38
已绑定手机

1

主题

833

回帖

1441

积分

金牌会员

积分
1441
发表于 2023-12-21 17:01:49 | 显示全部楼层
发电路图让大家看看
靡不有初,鲜克有终
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2023-12-23 08:55:32

3

主题

36

回帖

163

积分

注册会员

积分
163
发表于 2023-12-21 17:27:10 | 显示全部楼层
请看原理图 微信图片_20231221172524.png
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2023-12-23 08:55:32

3

主题

36

回帖

163

积分

注册会员

积分
163
发表于 2023-12-21 17:31:00 | 显示全部楼层
用的是MF58红色玻璃管的NTC,应该不是NTC的问题,刚开始怀疑是2芯插座接触不良,后来直接焊上去还是一样
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2023-12-23 08:55:32

3

主题

36

回帖

163

积分

注册会员

积分
163
发表于 2023-12-21 17:34:02 | 显示全部楼层
出现异常的时候我用数码管显示出采集到的AD值为0,所以怀疑AD转换是不是有时候而尔没采集到数据
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2023-12-23 08:55:32

3

主题

36

回帖

163

积分

注册会员

积分
163
发表于 2023-12-21 17:37:37 | 显示全部楼层
本帖最后由 我的用户名 于 2023-12-21 17:50 编辑

判断异常的程序我用连续检测3次来规避这个问题,100ms检测一次,如果3次都异常就判断为NTC异常,如果3次里面只有一次则忽略。只是想搞明白AD值为什么会是0?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2023-12-23 08:55:32

3

主题

36

回帖

163

积分

注册会员

积分
163
发表于 2023-12-23 08:55:09 | 显示全部楼层
采样部分代码如下,请大神们帮忙看看是不是有问题,谢谢!

u16 read_ADC10value()  //读取ADC数值
{
    P_SW2 |= 0x80;          
    ADCTIM = 0x3f;                       
    P_SW2 &= 0x7f;          
   ADCCFG = 0x2f;   
   ADC_CONTR = 0x80;
    ADC_RES = 0;
    ADC_RESL = 0;
    ADC_CONTR |=(0x40 | 1);  // P1.1脚接NTC
    _nop_();
    _nop_();
    _nop_();
   _nop_();               
   while(!(ADC_CONTR&0X20)); //等待转换结束
   ADC_CONTR &=~0X20; //清除ADC结束标志         
   return (((u16)ADC_RES<<8) | ADC_RESL);
}
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:403
  • 最近打卡:2025-04-29 08:28:43

12

主题

319

回帖

2017

积分

金牌会员

积分
2017
发表于 2023-12-23 09:15:15 | 显示全部楼层
试一下使能ADC多次转换功能
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2023-12-23 08:55:32

3

主题

36

回帖

163

积分

注册会员

积分
163
发表于 2023-12-23 10:34:07 | 显示全部楼层
jw*** 发表于 2023-12-23 09:15
试一下使能ADC多次转换功能

我也想过这个问题,比如转换4次,如果其中有一次是0的话,那么平均后的数值就被拉低不准了,温度值也就不准了

微信图片_20231223103145.png

回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 02:10 , Processed in 0.267922 second(s), 124 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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