OpenEdv-开源电子网

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

怀疑语句是错的,哪位大神来帮我看一下? 小弟学术纤薄

[复制链接]

172

主题

539

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3449
金钱
3449
注册时间
2015-10-5
在线时间
492 小时
发表于 2016-4-7 08:44:48 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 飞过漠北的蓝天 于 2016-4-7 09:02 编辑

volatile unsigned short adc_dma_buf[40];
u32 ADCValue_ActCurr_acc;
u32 ADCValue_ActVolt_acc;
                        for(i=0;i<8;i++)
                        {
                                ADCValue_ActCurr_acc+=adc_dma_buf[i*2];
                                ADCValue_ActVolt_acc+=adc_dma_buf[i*2+1];
                        }
问:
为什么      
                         ADCValue_ActCurr_acc+=adc_dma_buf[i*2];
                                ADCValue_ActVolt_acc+=adc_dma_buf[i*2+1];
还用FOR循环8次
前7次不是很多余吗




最佳答案

查看完整内容[请看2#楼]

ADCValue_ActCurr_acc=ADCValue_ActCurr_acc+adc_dma_buf; ADCValue_ActVolt_acc=ADCValue_ActVolt_acc+adc_dma_buf; 循环7次
认真做好笔记....
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

172

主题

539

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3449
金钱
3449
注册时间
2015-10-5
在线时间
492 小时
 楼主| 发表于 2016-4-7 08:44:49 | 显示全部楼层
                                ADCValue_ActCurr_acc=ADCValue_ActCurr_acc+adc_dma_buf[i*2];
                                ADCValue_ActVolt_acc=ADCValue_ActVolt_acc+adc_dma_buf[i*2+1];
循环7次
认真做好笔记....
回复

使用道具 举报

172

主题

539

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3449
金钱
3449
注册时间
2015-10-5
在线时间
492 小时
 楼主| 发表于 2016-4-7 08:55:44 | 显示全部楼层
为什么      
                         ADCValue_ActCurr_acc+=adc_dma_buf[i*2];
                                ADCValue_ActVolt_acc+=adc_dma_buf[i*2+1];
还用FOR循环8次
前7次不是很多余吗
认真做好笔记....
回复

使用道具 举报

60

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2814
金钱
2814
注册时间
2012-10-17
在线时间
653 小时
发表于 2016-4-7 16:14:29 | 显示全部楼层
你可以試試不要循環阿...

或許你試過...你覺得結果都差不多...

因為那是取平均值的..
回复

使用道具 举报

172

主题

539

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3449
金钱
3449
注册时间
2015-10-5
在线时间
492 小时
 楼主| 发表于 2016-4-7 16:31:41 | 显示全部楼层
civic7366 发表于 2016-4-7 16:14
你可以試試不要循環阿...

或許你試過...你覺得結果都差不多...

原因找到了,他是不断地++
我错看成是 ADCValue_ActCurr_acc=ADCValue_ActCurr_acc+adc_dma_buf[i*2];
实际是 ADCValue_ActCurr_acc+=adc_dma_buf[i*2];
认真做好笔记....
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-23 10:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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