打印
[8/16-bit MCU]

MK64 PIT中断中切换ADC采样通道的问题

[复制链接]
1747|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shmily_xihua|  楼主 | 2015-4-24 10:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在PIT中断中改变ADC采样的通道(软件触发,直接在ADCx_SC1n[ADCH]中选择),如果单独通道采样结果没问题,但是多个通道一起采,采样值就乱了,不知是不是通道切换惹的祸。看其他贴中通道转换前再次初始化ADC,试了,结果还是不对。请教飞思卡尔大神!

相关帖子

沙发
FSL_TICS_ZJJ| | 2015-4-27 10:47 | 只看该作者
你先用两个ADC通道采样试试。
然后转换通道的时候,你先debug看看,你的通道转换的寄存器,选择的通道对不对。
你再测试下看看,是不是通道转换的问题。
当然,首先你要保证你外部的ADC引脚不是悬空的。

使用特权

评论回复
板凳
shmily_xihua|  楼主 | 2015-4-27 11:39 | 只看该作者
FSL_TICS_ZJJ 发表于 2015-4-27 10:47
你先用两个ADC通道采样试试。
然后转换通道的时候,你先debug看看,你的通道转换的寄存器,选择的通道对不 ...

那我还想问一下,ADC结果寄存器的取值一定要在AD中断里吗?在PIT中断里行不行?

使用特权

评论回复
地板
FSL_TICS_ZJJ| | 2015-4-27 13:56 | 只看该作者
shmily_xihua 发表于 2015-4-27 11:39
那我还想问一下,ADC结果寄存器的取值一定要在AD中断里吗?在PIT中断里行不行? ...

如果你是ADC中断,那么就是在ADC转换完成的中断里,如果是软件的,那么你要等待转换标志完成,再取值。
不管在哪里,你都要是在ADC转换完成之后取值。
如果你是软件转换的,那么你在PIT中断中也要等COCO标志置位,才能取值。

使用特权

评论回复
5
shmily_xihua|  楼主 | 2015-4-27 14:03 | 只看该作者
FSL_TICS_ZJJ 发表于 2015-4-27 13:56
如果你是ADC中断,那么就是在ADC转换完成的中断里,如果是软件的,那么你要等待转换标志完成,再取值。
...

我先用ADC0模块采2个通道,单步运行时2通道采样结果OK,可直接运行时,不管1通道外部加啥值,结果总和2通道的一模一样,请问这是什么原因啊?

使用特权

评论回复
6
FSL_TICS_ZJJ| | 2015-4-27 14:22 | 只看该作者
shmily_xihua 发表于 2015-4-27 14:03
我先用ADC0模块采2个通道,单步运行时2通道采样结果OK,可直接运行时,不管1通道外部加啥值,结果总和2通 ...

你单步运行的代码,有没有等COCO置位,也就是转换完成?
你是怎么实现采集的?

使用特权

评论回复
7
杨爱林林| | 2015-4-27 20:20 | 只看该作者
得确保每次采样完成  才能切换到下一次采样

使用特权

评论回复
8
shmily_xihua|  楼主 | 2015-4-28 09:07 | 只看该作者
FSL_TICS_ZJJ 发表于 2015-4-27 14:22
你单步运行的代码,有没有等COCO置位,也就是转换完成?
你是怎么实现采集的? ...

截取部分代码是这样的,
case 1:u32SC1aParameter = ADC_SC1_REG(ADC0,0) & 0xffffffe0;
         u32SC1aParameter |= ADC_SC1_ADCH(ADC_CHANNEL_DP1);
         ADC_SC1_REG(ADC0,0) = u32SC1aParameter;
         while((ADC_SC1_REG(ADC0,0) & ADC_SC1_COCO_MASK));
        g_ADCsampledata[g_sampleIndex][0] = ADC0->R[0];
        break;
case 2:.........
单步运行时没有刻意的等COCO标志,点的下一步直接转到下一句了。
你看看有啥问题吗?

使用特权

评论回复
9
shmily_xihua|  楼主 | 2015-4-28 11:43 | 只看该作者
shmily_xihua 发表于 2015-4-28 09:07
截取部分代码是这样的,
case 1:u32SC1aParameter = ADC_SC1_REG(ADC0,0) & 0xffffffe0;
         u32SC1 ...

问题解决了,是判断COCO标有问题,很感谢相助!

使用特权

评论回复
10
shmily_xihua|  楼主 | 2015-4-28 12:10 | 只看该作者
杨爱林林 发表于 2015-4-27 20:20
得确保每次采样完成  才能切换到下一次采样

谢谢,是转换完成标志的问题。

使用特权

评论回复
11
FSL_TICS_ZJJ| | 2015-4-28 12:59 | 只看该作者
shmily_xihua 发表于 2015-4-28 11:43
问题解决了,是判断COCO标有问题,很感谢相助!

非常感谢你关于Kinetis的技术问题。如果你没有其他问题,我们将此帖默认为已解决.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

57

帖子

0

粉丝