求助!改了一个基于F5529launchpad的 采一个口输入电压做AD转换的程序,可是总有问...

2019-03-24 10:21发布

本帖最后由 Ben讨厌苦咖啡 于 2015-3-23 15:15 编辑

这个程序的功能就是从一个AD的口输入一个电压值,然后经过AD转换后由串口输出,本来是F149上面的程序,已经成功运行并且功能已经实现了,我现在有个F5529的板,移植过来也改了好些地方,应该是没什么问题了,编译也没有问题,可是总是实现不了功能 求助大神!!!


我把程序的详细部分贴上来 大家帮忙看看!谢谢了! 转换程序2.zip (406.13 KB, 下载次数: 19) 2015-3-23 15:15 上传 点击文件名下载附件

首先是主程序,while(1)里面是个输出的循环,输出到串口是一个数字的值和一个真实的模拟电压输入值。

1.png



接下来是AD中断函数,将采到的4次的值分别存入到result【】数组里面 然后用average做平均,最后将average输出到while(1)里面的两个计算的函数。

2.png



下面是我AD模块的设置,还有两个做转换的函数

3.png



好吧,那么问题来了,现在我用5529的板子仿真,可以进到AD中断,并且读取ADC12MEM6,可以看到采了值,但是,average却算不出来。没有值

而且用来存储采到数据的两个数组buffer1和buffer2都不对。。。。。。



这些函数的功能应改没问题,因为在149的板子上完全都实现了。可是不知道为什么在5529的板子上却不对,求大神帮忙啊!




此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
qiushenghua
1楼-- · 2019-03-25 19:17
Ben讨厌苦咖啡 发表于 2015-3-24 08:36
配置没问题 单通道连续采样。。。。。。呃。。。。。。。

那如果是您说的这种情况的话 如何解决呢?

中断服务里最后增加ADCInit函数即可,实际上直接再次开启ADC采样就够了。
如果没记错的话是下面这句:


ADC12CTL0|=ADC12SC

Ben讨厌苦咖啡
2楼-- · 2019-03-25 22:00
qiushenghua 发表于 2015-3-24 09:22
中断服务里最后增加ADCInit函数即可,实际上直接再次开启ADC采样就够了。
如果没记错的话是下面这句:


ADC12CTL0|=ADC12SC

我貌似找到原因啦~是ADC12IFG那里没有设置~~~设置了之后就没问题了~中断那里就没问题了~~~~~


不过整个程序现在又有问题了~就是buffer1和buffer2采不到。。。。。。看到的都是error   呃。。。。。。

1.png
qiushenghua
3楼-- · 2019-03-25 23:22
 精彩回答 2  元偷偷看……
Ben讨厌苦咖啡
4楼-- · 2019-03-26 04:54
qiushenghua 发表于 2015-3-24 19:51
你没执行到唤醒MCU语句的地方,buffer还没赋值,怎么可能有数据呢?

唤醒MCU的语句???这个我不太懂了诶。。。。。。请您详细解释下~~~~~
qiushenghua
5楼-- · 2019-03-26 08:21
就是那句LPM1_EXIT
退出低功耗1模式,唤醒单片机继续执行后面的操作。
你搞清楚程序执行的顺序没有?
Ben讨厌苦咖啡
6楼-- · 2019-03-26 10:46
 精彩回答 2  元偷偷看……

一周热门 更多>

相关问题

    相关文章