找回密码
 立即注册
查看: 1418|回复: 23

STC8G1K08-20,ADC采样的数据不稳定

[复制链接]

该用户从未签到

1

主题

22

回帖

85

积分

注册会员

积分
85
发表于 2023-5-14 15:51:18 | 显示全部楼层 |阅读模式
用了示例程序,


[15:44:35.197]收←◆ADC01=0539  
[15:44:35.323]收←◆ADC02=0334  
  ADC15=0241  

[15:44:36.081]收←◆ADC00=0615  
[15:44:36.206]收←◆ADC01=0585  
  ADC15=0240  


[15:44:37.089]收←◆ADC00=0560  
[15:44:37.215]收←◆ADC01=0669  
ADC15=0241  


[15:44:38.099]收←◆ADC00=0535  
[15:44:38.225]收←◆ADC01=0721  
  ADC15=0240  


[15:44:39.108]收←◆ADC00=0553  
[15:44:39.234]收←◆ADC01=0721  
ADC15=0241  


[15:44:40.118]收←◆ADC00=0633  
[15:44:40.244]收←◆ADC01=0680  
ADC15=0240  


[15:44:41.127]收←◆ADC00=0701  
[15:44:41.253]收←◆ADC01=0621  
ADC15=0240  


[15:44:42.137]收←◆ADC00=0733  
[15:44:42.263]收←◆ADC01=0563  
ADC15=0240  


[15:44:43.146]收←◆ADC00=0698  
[15:44:43.272]收←◆ADC01=0530  
ADC15=0240  


[15:44:44.156]收←◆ADC00=0645  
[15:44:44.282]收←◆ADC01=0557  
ADC15=0240  


[15:44:45.164]收←◆ADC00=0573  
[15:44:45.291]收←◆ADC01=0651  
ADC15=0240  


[15:44:46.174]收←◆ADC00=0536  
[15:44:46.300]收←◆ADC01=0728  
ADC15=0240  


[15:44:47.183]收←◆ADC00=0564  
[15:44:47.309]收←◆ADC01=0715  
ADC15=0240  


[15:44:48.193]收←◆ADC00=0662  
[15:44:48.319]收←◆ADC01=0664  
ADC15=0240  


[15:44:49.202]收←◆ADC00=0722  
[15:44:49.328]收←◆ADC01=0588  
ADC15=0240  


[15:44:50.211]收←◆ADC00=0711  
[15:44:50.337]收←◆ADC01=0537  
ADC15=0242  


[15:44:51.220]收←◆ADC00=0645  
[15:44:51.346]收←◆ADC01=0552  
ADC15=0240  


[15:44:52.229]收←◆ADC00=0577  
[15:44:52.355]收←◆ADC01=0654  
ADC15=0241  

ADC0和ADC1是短接的,读回来的值,很不稳定。

[15:48:09.167]收←◆ADC01=0002  
ADC15=0254  


[15:48:10.052]收←◆ADC00=0001  
ADC15=0255  


[15:48:11.062]收←◆ADC00=0003  
ADC15=0255  


[15:48:12.071]收←◆ADC00=0001  
ADC15=0255  


[15:48:13.082]收←◆ADC00=0003  
ADC15=0254  


[15:48:14.092]收←◆ADC00=0001  
ADC15=0254  


[15:48:15.102]收←◆ADC00=0002  
ADC15=0283  


[15:48:16.113]收←◆ADC00=0003  
ADC15=0254  


[15:48:17.122]收←◆ADC00=0002  
ADC15=0254  


[15:48:18.132]收←◆ADC00=0001  
ADC15=0255  


[15:48:19.143]收←◆ADC00=0002  
ADC15=0269  


[15:48:20.152]收←◆ADC00=0003  
ADC15=0254  


[15:48:21.163]收←◆ADC00=0005  
ADC15=0254  


[15:48:22.173]收←◆ADC00=0001  
ADC15=0254  


[15:48:23.182]收←◆ADC00=0003  
ADC15=0255  


而且如果是用USB供电时,ADC15的值,都是不稳定的。
回复 送花

使用道具 举报

该用户从未签到

1

主题

22

回帖

85

积分

注册会员

积分
85
 楼主| 发表于 2023-5-14 15:56:36 | 显示全部楼层
ADC15,是内部的1.19V电压,这个值怎么会不稳?。
ADC0和ADC1是直接短接,接的外部采样,采样我用示波器看了,波动不大,但数据却相差非常大。
回复 支持 反对 送花

使用道具 举报

该用户从未签到

552

主题

9532

回帖

1万

积分

管理员

积分
14106
发表于 2023-5-14 16:03:15 | 显示全部楼层
先将采样时间设到最长
1.png

2.png

3.png

回复 支持 反对 送花

使用道具 举报

该用户从未签到

1

主题

22

回帖

85

积分

注册会员

积分
85
 楼主| 发表于 2023-5-14 20:23:00 | 显示全部楼层
void InitADC()
{
   

    P_SW2 |= 0x80;
    ADCTIM = 0x3f;                              //设置ADC内部时序
    P_SW2 &= 0x7f;
    ADCCFG = 0x0f;                              //设置ADC时钟为系统时钟/2/16  | ADC_SPEEDLL
//    ADC_CONTR = 0x80;                         //使能ADC模块
        ADC_RES = 0;                                                                  //清ADC转化结果
    ADC_CONTR = ADC_POWER;                                  //  使能ADC电源
    delayms(2);                       //ADC power-on delay and Start A/D conversion
}
时间已经是最长了,感觉好象是电源哪有不稳定情况,但我都已经是照推荐的配置了
回复 支持 反对 送花

使用道具 举报

该用户从未签到

1

主题

22

回帖

85

积分

注册会员

积分
85
 楼主| 发表于 2023-5-14 20:28:18 | 显示全部楼层
1.png
电源部分照推荐的,应该也没有错。
回复 支持 反对 送花

使用道具 举报

该用户从未签到

552

主题

9532

回帖

1万

积分

管理员

积分
14106
发表于 2023-5-14 20:38:55 | 显示全部楼层
1.png

2.png

回复 支持 反对 送花

使用道具 举报

该用户从未签到

1

主题

22

回帖

85

积分

注册会员

积分
85
 楼主| 发表于 2023-5-15 10:43:56 | 显示全部楼层
采集回来的数据 10%左右一直跳动。 1.png
示波器上看波纹并不大

点评

初始化时打开ADC电源,等待1ms后进行采集  详情 回复 发表于 2023-5-15 11:05
回复 支持 反对 送花

使用道具 举报

  • TA的每日心情
    开心
    前天 11:46
  • 签到天数: 44 天

    [LV.5]常住居民I

    5

    主题

    114

    回帖

    1110

    积分

    版主

    积分
    1110
    发表于 2023-5-15 11:05:22 | 显示全部楼层
    mzh00 发表于 2023-5-15 10:43
    采集回来的数据 10%左右一直跳动。
    示波器上看波纹并不大

    初始化时打开ADC电源,等待1ms后进行采集
    1.png

    2.png

    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    3044

    回帖

    6863

    积分

    超级版主

    积分
    6863
    发表于 2023-5-15 15:42:25 | 显示全部楼层
    每次打开ADC电源,至少等待1ms以上才启动ADC转换。
    楼主转换15通道看看,这个是内部BandGap电压,读数会稳定的,前提是VCC要稳定。
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    1

    主题

    22

    回帖

    85

    积分

    注册会员

    积分
    85
     楼主| 发表于 2023-5-17 10:34:44 | 显示全部楼层
    /*----------------------------
    ADC 中断处理
    ----------------------------*/
    void adc_isr() interrupt 5
    {
        ADC_CONTR &= !ADC_FLAG;         //Clear ADC interrupt flag
            ADC_LOW2= ADC_RES;
            ADC_LOW2 <<= 2;
        ADC_LOW2 |= ADC_RESL;
        ADC_JS++;
            ADC_O=1;

    //    if (++ch > 7) ch = 0;           //switch to next channel
        ADC_CONTR = ADC_POWER  | ch;
    }
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-20 06:11 , Processed in 0.070344 second(s), 69 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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