找回密码
 立即注册
查看: 160|回复: 17

求助贴,ADC转换完成部分有疑惑

[复制链接]
  • TA的每日心情
    慵懒
    昨天 10:31
  • 签到天数: 21 天

    [LV.4]偶尔看看III

    5

    主题

    42

    回帖

    143

    积分

    注册会员

    积分
    143
    发表于 2024-4-21 23:48:51 | 显示全部楼层 |阅读模式
    本帖最后由 lyagp03 于 2024-4-21 23:50 编辑

    我用仿真查看了ADC转换的运行情况,在开始ADC的那根指令的执行完成后,再下一根指令,ADC_START马上被置0,然后ADC_FLAG马上被置1。而且RES和RESL里面也都是0,完全没有做ADC转换。我用的是STC8H8K64U,TSSOP20的封装,Vref是直接接的VCC。
    下面是初始化代码:
            P_SW2 |= 0x80;
            ADCTIM = 0xA1;
            ADC_RES |= 0x07;
            P_SW2 &= 0x7f;
            ADCCFG = 0x24;
            ADC_CONTR = 0x80;

    下面是运行ADC的代码:
            ADC_CONTR = 0xC0;                      在这一行代码后  ADC_CONTR马上就会变成 0xA0
            ADC_CONTR = ADC_CONTR        | channel;
            NOP(4);                        

            while (!(ADC_CONTR & 0x20));
            {
                    ADC_CONTR &= ~ADC_FLAG;
                    adc = (u16)(ADC_RES & 0x0F);
                    adc = (adc << 8) | ADC_RESL;
                    adc = adc/4;
                    return        adc;
            }

    回复 送花

    使用道具 举报

  • TA的每日心情
    开心
    6 天前
  • 签到天数: 90 天

    [LV.6]常住居民II

    38

    主题

    986

    回帖

    6773

    积分

    荣誉版主

    冲哥视频教程和各种开源资料QQ交流群884047237,可群

    积分
    6773
    QQ
    发表于 2024-4-22 08:56:05 | 显示全部楼层
    有没有用官方历程代码测试过?
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 00:08
  • 签到天数: 59 天

    [LV.5]常住居民I

    0

    主题

    184

    回帖

    366

    积分

    中级会员

    积分
    366
    发表于 2024-4-22 11:21:02 | 显示全部楼层
    这种实测外部环境的没法仿真,你都没数据哪里来的结果,仿真不是万能的,能用实物还是用实物吧,又要不了几个钱
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 10:31
  • 签到天数: 21 天

    [LV.4]偶尔看看III

    5

    主题

    42

    回帖

    143

    积分

    注册会员

    积分
    143
     楼主| 发表于 2024-4-22 11:28:14 | 显示全部楼层
    xxxevery 发表于 2024-4-22 11:21
    这种实测外部环境的没法仿真,你都没数据哪里来的结果,仿真不是万能的,能用实物还是用实物吧,又要不了几 ...

    我是在实物板子上面进行测试和仿真的。实物测试不行,肯定得用仿真去查看功能是否运行正常
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    2934

    回帖

    6617

    积分

    超级版主

    积分
    6617
    发表于 2024-4-22 16:55:22 | 显示全部楼层
    本帖最后由 梁工 于 2024-4-22 16:57 编辑

    楼主最好先测试一下STC官方例子,那都是非常正常的例子,无数的用户使用过。
    STC的12位ADC的精度高(接近13位精度,可用过采样测试出来),噪声低、抖动小(做交流电有效值测量就可以看出来)。

    你的程序应该用下面方式启动:
    ADC_CONTR = 0xC0 | channel;
    NOP(4);                  
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 10:31
  • 签到天数: 21 天

    [LV.4]偶尔看看III

    5

    主题

    42

    回帖

    143

    积分

    注册会员

    积分
    143
     楼主| 发表于 2024-4-22 17:18:54 | 显示全部楼层
    梁工 发表于 2024-4-22 16:55
    楼主最好先测试一下STC官方例子,那都是非常正常的例子,无数的用户使用过。
    STC的12位ADC的精度高(接近13 ...

    好的,我下载了例程下来了。我用例程的试试看
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 10:31
  • 签到天数: 21 天

    [LV.4]偶尔看看III

    5

    主题

    42

    回帖

    143

    积分

    注册会员

    积分
    143
     楼主| 发表于 2024-4-22 17:29:09 | 显示全部楼层
    梁工 发表于 2024-4-22 16:55
    楼主最好先测试一下STC官方例子,那都是非常正常的例子,无数的用户使用过。
    STC的12位ADC的精度高(接近13 ...

    用例程也是一样,我用的是STC8H8K64U 看数据手册ADC11对应的IO是P33。然后我使用官方例程,只是修改了通道部分,通道用ADC11并把对应的P33口设置成高阻态输入。还是一样,刚开ADC,下一条指令马上完成。
    我应该是权限不够,没办法发截图上来

    点评

    我意思是,直接下载例程的HEX文件测试,会从串口返回结果,你看看会不会都是0.  详情 回复 发表于 2024-4-22 17:35
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    2934

    回帖

    6617

    积分

    超级版主

    积分
    6617
    发表于 2024-4-22 17:35:01 | 显示全部楼层
    lyagp03 发表于 2024-4-22 17:29
    用例程也是一样,我用的是STC8H8K64U 看数据手册ADC11对应的IO是P33。然后我使用官方例程,只是修改了通 ...

    我意思是,直接下载例程的HEX文件测试,会从串口返回结果,你看看会不会都是0.
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 10:31
  • 签到天数: 21 天

    [LV.4]偶尔看看III

    5

    主题

    42

    回帖

    143

    积分

    注册会员

    积分
    143
     楼主| 发表于 2024-4-22 19:35:06 | 显示全部楼层
    梁工 发表于 2024-4-22 17:35
    我意思是,直接下载例程的HEX文件测试,会从串口返回结果,你看看会不会都是0. ...

    我查看了ISP里面的引脚定义,跟数据手册完全是两码事。。。
    数据手册里面P3脚是有一部分脚是有ADC功能的,但是ISP里面是没有的

    点评

    STC8H8K64U TSSOP20你在手册哪里看到P3脚有ADC功能的?请贴一下图我看看。我的手册P3口是没有ADC功能的,贴图如下: [attachimg]42016[/attachimg]  详情 回复 发表于 2024-4-22 21:56
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 10:31
  • 签到天数: 21 天

    [LV.4]偶尔看看III

    5

    主题

    42

    回帖

    143

    积分

    注册会员

    积分
    143
     楼主| 发表于 2024-4-22 19:35:34 | 显示全部楼层
    梁工 发表于 2024-4-22 17:35
    我意思是,直接下载例程的HEX文件测试,会从串口返回结果,你看看会不会都是0. ...

    非常感谢了,我按照ISP里面引脚的定义重新做一块板子吧
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-5 06:56 , Processed in 0.081677 second(s), 67 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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