OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6117|回复: 14

请教一下大家和原子哥,这个显示器的数据一直没变化,帮我检查一下是啥原因,一天了,没找到原因所在

[复制链接]

210

主题

773

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2018-3-26
在线时间
288 小时
发表于 2021-4-20 16:43:54 | 显示全部楼层 |阅读模式
30金钱
请教一下大家和原子哥,这个显示器的数据一直没变化,帮我检查一下是啥原因,一天了,没找到原因所在
  1. void Int_AD() interrupt 10
  2. {
  3.     static unsigned char AD_MPOINT=0,AD_POINT=0;
  4.     static unsigned int buf=0;
  5.     AD0INT=0;
  6.     Micro_ADBUF[AD_MPOINT]=ADC0H;
  7.     buf+=ADC0H;
  8.     AD_MPOINT++;
  9.     if(AD_MPOINT==20)
  10.     {
  11.         AD_MPOINT=0;
  12.         ADBUF[AD_POINT]=buf/20;
  13.      
  14.         buf=0;
  15.    
  16.         AD_POINT++;
  17.         if(AD_POINT==50)
  18.         AD_POINT=0;
  19.     }
  20. }
复制代码
AD转换器采集的值存在ADBUF[AD_POINT]里,然后在MAIN里显示
  1. while(1)
  2.     {
  3.            SetTextInt32(0,1,ADBUF[i],1,1);
  4.        i++;   
  5.        msDelay(1000);

  6.     }
复制代码
AD值用万用表测量,是变化的,但是主函数的数据一直不动,大家帮我看看是不是语法错误

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

890

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1481
金钱
1481
注册时间
2020-8-19
在线时间
336 小时
发表于 2021-4-20 16:48:32 | 显示全部楼层
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2021-4-21 01:59:33 | 显示全部楼层
仿真找问题
回复

使用道具 举报

210

主题

773

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2018-3-26
在线时间
288 小时
 楼主| 发表于 2021-4-21 08:31:33 | 显示全部楼层

原子哥,您认为,数组格式对不对?
回复

使用道具 举报

13

主题

250

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2251
金钱
2251
注册时间
2019-8-7
在线时间
364 小时
发表于 2021-4-21 08:49:16 | 显示全部楼层
不想调试的话,可以用打印函数试试有没有进中断 顺便看看中断里面数值变化情况
回复

使用道具 举报

2

主题

57

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1092
金钱
1092
注册时间
2019-9-3
在线时间
155 小时
发表于 2021-4-21 16:14:48 | 显示全部楼层
调试吧
回复

使用道具 举报

0

主题

130

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1876
金钱
1876
注册时间
2016-10-23
在线时间
262 小时
发表于 2021-4-21 16:30:50 | 显示全部楼层
1、先确认adc中断 真的进入没。可以在主函数串口打印、可以放IO 看电平变化。
2、unsigned int buf;取值范围0-65535;adc 12bit 的话 最大值4096,看到你中断里加了20次 做平均。20*4096=81920  要考虑下adc量程内数据溢出问题。
6年嵌入式老玩家 深圳
回复

使用道具 举报

4

主题

87

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
250
金钱
250
注册时间
2019-5-11
在线时间
39 小时
发表于 2021-4-22 17:03:39 | 显示全部楼层
你打印一下Micro_ADBUF 就知道了
回复

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13102
金钱
13102
注册时间
2012-11-26
在线时间
3811 小时
发表于 2021-4-22 17:14:38 | 显示全部楼层
你的 参数 i 都跑飞了吧。。。
学无止境
回复

使用道具 举报

210

主题

773

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2018-3-26
在线时间
288 小时
 楼主| 发表于 2021-4-23 16:43:02 | 显示全部楼层
jermy_z 发表于 2021-4-22 17:14
你的 参数 i 都跑飞了吧。。。

怎么做限制呢?
回复

使用道具 举报

210

主题

773

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2018-3-26
在线时间
288 小时
 楼主| 发表于 2021-4-23 16:43:29 | 显示全部楼层
ma3264175 发表于 2021-4-22 17:03
你打印一下Micro_ADBUF 就知道了

好的好的
回复

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13102
金钱
13102
注册时间
2012-11-26
在线时间
3811 小时
发表于 2021-4-23 16:43:32 | 显示全部楼层

你说呢?
学无止境
回复

使用道具 举报

210

主题

773

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2018-3-26
在线时间
288 小时
 楼主| 发表于 2021-4-23 16:44:07 | 显示全部楼层
a1156284 发表于 2021-4-21 16:30
1、先确认adc中断 真的进入没。可以在主函数串口打印、可以放IO 看电平变化。
2、unsigned int buf;取值 ...

进中断了,您认为那里有问题?
回复

使用道具 举报

210

主题

773

帖子

0

精华

初级会员

Rank: 2

积分
124
金钱
124
注册时间
2018-3-26
在线时间
288 小时
 楼主| 发表于 2021-4-23 16:44:28 | 显示全部楼层
远命 发表于 2021-4-21 08:49
不想调试的话,可以用打印函数试试有没有进中断 顺便看看中断里面数值变化情况

调试了,没找到原因
回复

使用道具 举报

13

主题

250

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2251
金钱
2251
注册时间
2019-8-7
在线时间
364 小时
发表于 2021-4-23 16:50:15 | 显示全部楼层
支持者2400 发表于 2021-4-23 16:44
调试了,没找到原因

楼上说的对 你的主函数的i值不对劲
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-25 06:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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