找回密码
 立即注册
查看: 1979|回复: 8

【已解决】stc8h1k08如何测两路adc值?

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:133
  • 最近打卡:2025-04-30 13:40:52

13

主题

65

回帖

594

积分

高级会员

积分
594
发表于 2023-10-17 11:00:35 | 显示全部楼层 |阅读模式
本帖最后由 泰勒soc 于 2023-10-23 16:30 编辑

假设,我想要测ADC_CH12和ADC_CH13。我先测ADC_CH12,然后更改通道,再测ADC_CH13。循环测这两路ADC值,这个方案可以吗?还有需要更改的地方吗?
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2219

回帖

5454

积分

版主

积分
5454
发表于 2023-10-17 11:48:00 | 显示全部楼层
这个操作是可以的
如果想要进行性能优化,可以在以下方向改进
==打开adc中断,中断里存下值并且开启下一个通道读取,可以避免查询方式浪费时间
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:133
  • 最近打卡:2025-04-30 13:40:52

13

主题

65

回帖

594

积分

高级会员

积分
594
发表于 2023-10-17 13:04:35 | 显示全部楼层
王*** 发表于 2023-10-17 11:48
这个操作是可以的
如果想要进行性能优化,可以在以下方向改进
==打开adc中断,中断里存下值并且开启下一个 ...

我是在中断里读值并更改通道的,但是好像更改通道没有成功。
代码:
                ADC_CONTR &= 0xf0;                                                //清空通道
                ADC_CONTR |= ADC_CH12;                                        //选择通道电池
                ADC_CONTR &= ~ADC_FLAG;                                        //清完成标志//清中断标志~0x20;
                ADC_CONTR |= ADC_START;                 //继续AD转换

                ADC_CONTR &= 0xf0;                                                //清空通道
                ADC_CONTR |= ADC_CH13;                                        //选择通道电机
                ADC_CONTR &= ~ADC_FLAG;                                        //清完成标志//清中断标志~0x20;
                ADC_CONTR |= ADC_START;                 //继续AD转换


还有需要注意的地方吗?

点评

每次转换只能转换一个通道,所以在中断里面需要先判断当前转换的通道,再设定下一个转换的通道 [attachimg]24410[/attachimg]  详情 回复 发表于 2023-10-17 14:05
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:458
  • 最近打卡:2025-05-01 07:48:22
已绑定手机
已实名认证

110

主题

2219

回帖

5454

积分

版主

积分
5454
发表于 2023-10-17 14:05:03 | 显示全部楼层
本帖最后由 王昱顺 于 2023-10-17 14:09 编辑
泰勒*** 发表于 2023-10-17 13:04
我是在中断里读值并更改通道的,但是好像更改通道没有成功。
代码:
                ADC_CONTR &= 0xf0;                                                //清空通 ...

每次转换只能转换一个通道,所以在中断里面需要先判断当前转换的通道,再设定下一个转换的通道
截图202310171404379018.jpg
你的转换如果不成功的话,可以试一下官方的程序模板
根据你的程序来看,你似乎缺少了打开ADC电源的部分
截图202310171409317120.jpg


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-05-02 10:07:51

73

主题

5883

回帖

1万

积分

超级版主

积分
12079
发表于 2023-10-17 15:24:43 | 显示全部楼层
必须可以!多个通道的ADC,就是不断切换通道数做ADC即可。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2023-11-28 21:56:33

1

主题

5

回帖

59

积分

注册会员

积分
59
发表于 2023-11-19 19:40:09 | 显示全部楼层
有没有双路adc采集的代码给一份
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:133
  • 最近打卡:2025-04-30 13:40:52

13

主题

65

回帖

594

积分

高级会员

积分
594
发表于 2023-11-20 15:10:58 | 显示全部楼层
本帖最后由 泰勒soc 于 2023-11-20 15:15 编辑
曹*** 发表于 2023-11-19 19:40
有没有双路adc采集的代码给一份

在中断里面切换通道就行了,例如第一次通道为12,下一次通道为13
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2023-11-28 21:56:33

1

主题

5

回帖

59

积分

注册会员

积分
59
发表于 2023-11-20 20:06:46 | 显示全部楼层
我想要一个现成的代码
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-04-13 03:49:09

0

主题

20

回帖

230

积分

中级会员

积分
230
发表于 2024-6-27 21:13:36 | 显示全部楼层
曹*** 发表于 2023-11-20 20:06
我想要一个现成的代码

请问解决了吗
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 20:40 , Processed in 0.169209 second(s), 113 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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