找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

单片机ADC多路转换程序调试又不会了,请大伙帮忙指点

查看数: 2099 | 评论数: 6 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-8-31 15:23

正文摘要:

这个是一路的程序(中断方式),SGADCON 赋每一路的值都没有问题,现在我想三路轮流采集就不行了。 #include "adc.h" bit ADready;   //24bit ADC转换完成标志位 unsigned long idata    ...

回复

ID:401564 发表于 2022-9-1 23:53
zhth1979 发表于 2022-9-1 07:59
那样的话,1.太繁琐不简洁  2.编译后data内存也会占用更多。

如果不是你程序实在写不下了,目前的主要问题并不是代码占用空间大的问题
首先要保证代码能不能正确执行,这才是关键
这个片子有30K的内存,个人感觉,超过30K的8位机程序并不是很多
等到功能正常了,再想办法精简代码
ID:123289 发表于 2022-9-1 10:59
【那样的话,1.太繁琐不简洁  2.编译后data内存也会占用更多。】
不要以为这样很蠢。在你不会做的时间很有用,道理上说得通。
当你做了,就会知道它是如何蠢的,知道它蠢之后,你就进步了,离成功也就不远了。
ID:686513 发表于 2022-9-1 07:59
yzwzfyz 发表于 2022-8-31 17:28
建议:
1、每个通道编写一个程序。
2、将各个程序轮流执行。

那样的话,1.太繁琐不简洁  2.编译后data内存也会占用更多。
ID:686513 发表于 2022-9-1 07:56
pdwdzz 发表于 2022-8-31 23:24
case 0:  SGADCON &= 0xc2;  break;
  case 1:  SGADCON &= 0xd2;  break;
  case 2:  SGADCON &= 0xf2 ...

之前就是没有与,不行才改现在这样的,也是不行!
ID:146878 发表于 2022-8-31 23:24
  case 0:  SGADCON &= 0xc2;  break;
  case 1:  SGADCON &= 0xd2;  break;
  case 2:  SGADCON &= 0xf2;  break;
  改
  case 0:  SGADCON = 0xc2;  break;
  case 1:  SGADCON = 0xd2;  break;
  case 2:  SGADCON = 0xf2;  break;
ID:123289 发表于 2022-8-31 17:28
建议:
1、每个通道编写一个程序。
2、将各个程序轮流执行。

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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