查看: 4901|回复: 11

[已解决] KL25Z ADC转换结果对应的寄存器ADC0_Rn的配置问题

[复制链接]

该用户从未签到

32

主题

138

帖子

0

中级会员

Rank: 3Rank: 3

积分
390
最后登录
2017-12-29
发表于 2017-3-31 17:22:15 | 显示全部楼层 |阅读模式
本帖最后由 胡孟龙 于 2017-3-31 17:37 编辑

当我是使用多通道的ADC采集时,每个通道的数据是怎么存储的,怎么一一对应的?比如以下面这段ADC”Pingpang“模式的采集为例,取数据的那两句程序已经标红:
void ADC0_Isr(void)
{
        if (( ADC0_SC1A & ADC_SC1_COCO_MASK ) == ADC_SC1_COCO_MASK)//A通道转换完成
         {  // check which of the two conversions just triggered
          ADC0B_indicator_SetVal(ADC0B_indicator_DeviceData);//红灯灭                    // do this asap
          ADC0A_indicator_ClrVal(ADC0A_indicator_DeviceData);//绿灯亮
          result0A = ADC0_RA;             // this will clear the COCO bit that is also the interrupt flag
          cycle_flags |= ADC0A_DONE ;
          TPM1_STATUS |= TPM_STATUS_CH0F_MASK;//CH0F标志清除
         
         }
         else if (( ADC0_SC1B & ADC_SC1_COCO_MASK ) == ADC_SC1_COCO_MASK)//B通道转换完成
         {
          ADC0A_indicator_SetVal(ADC0A_indicator_DeviceData);//绿灯灭
          ADC0B_indicator_ClrVal(ADC0B_indicator_DeviceData);//红灯亮
          result0B = ADC0_RB;
          cycle_flags |= ADC0B_DONE ;
          TPM1_STATUS |= TPM_STATUS_CH1F_MASK;//CH1F标志清除
          Temperature=ADC_Calculate(result0A,result0B);
         }
}

我对照芯片手册看了半天也没搞明白是怎么对应的。
源程序这里下载:
https://www.nxpic.org.cn/module/foru ... 0%E4%BE%8B%E7%A8%8B

急求解答~

最佳答案

胡孟龙 发表于 2017-4-1 15:23 您好,反复阅读文档终于发现如何设置ADC两通道采样时的Rn对应关系,如下图: 多路跟A, B两组寄存器是不同的概念,如果A,B更像是为了支持同时采样而设计的功能,而多路采样则是为了分 ...
回复

使用道具 举报

  • TA的每日心情
    开心
    2017-3-31 13:54
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    6

    主题

    12

    帖子

    0

    新手上路

    Rank: 1

    积分
    48
    最后登录
    2017-5-20
    发表于 2017-3-31 17:43:15 | 显示全部楼层
    Temperature=ADC_Calculate(result0A,result0B);
    这一条是读取数据,返回A,B通道的数据
    开心每一天
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    723

    主题

    6382

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    25450
    最后登录
    2025-9-4
    发表于 2017-3-31 20:57:01 | 显示全部楼层
    KL 系列支持 A B两组控制状态寄存器和数据结果存储器,两组唯一的区别是B组只支持硬件触发模式,由于两组寄存器内各个bit代表意义一样,所以在参考书手册就在一起介绍了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    32

    主题

    138

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    390
    最后登录
    2017-12-29
     楼主| 发表于 2017-4-1 09:17:04 | 显示全部楼层
    hhxf 发表于 2017-3-31 17:43
    Temperature=ADC_Calculate(result0A,result0B);
    这一条是读取数据,返回A,B通道的数据
    ...

    您好,您说的对。但是我想问的是这个“Pingpang”程序使用1个ADC去采集温度和bandgap两个同通道的数据的时候,如何去区分数据是存在ADC0_RB还是ADC_RA的?
    还有就是正常情况下,一个ADC不是只能采集一路数据吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    32

    主题

    138

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    390
    最后登录
    2017-12-29
     楼主| 发表于 2017-4-1 09:18:27 | 显示全部楼层
    小恩GG 发表于 2017-3-31 20:57
    KL 系列支持 A B两组控制状态寄存器和数据结果存储器,两组唯一的区别是B组只支持硬件触发模式,由于两组寄 ...

    您好,您说的对。但是我想问的是这个“Pingpang”程序使用1个ADC去采集温度和bandgap两个同通道的数据的时候,如何去区分数据是存在ADC0_RB还是ADC_RA的?【从哪里可以看到这两路的采集时硬件触发还是软件触发的?】
    还有就是正常情况下,一个ADC不是只能采集一路数据吗?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-3-31 13:54
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    6

    主题

    12

    帖子

    0

    新手上路

    Rank: 1

    积分
    48
    最后登录
    2017-5-20
    发表于 2017-4-1 13:47:50 | 显示全部楼层
    胡孟龙 发表于 2017-4-1 09:18
    您好,您说的对。但是我想问的是这个“Pingpang”程序使用1个ADC去采集温度和bandgap两个同通道的数据的 ...

    读取的时候是数组,前一个是A,后一个是B
    开心每一天
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    32

    主题

    138

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    390
    最后登录
    2017-12-29
     楼主| 发表于 2017-4-1 14:30:59 | 显示全部楼层
    hhxf 发表于 2017-4-1 13:47
    读取的时候是数组,前一个是A,后一个是B

    什么数组?哪来的数组啊?还有就是我知道前一个是A后一个是B。但是如何建立这种对应关系的我不懂,比如我用一个ADC去采集两路数据,从哪去找我采集的两路数据
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    32

    主题

    138

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    390
    最后登录
    2017-12-29
     楼主| 发表于 2017-4-1 15:23:09 | 显示全部楼层
    小恩GG 发表于 2017-3-31 20:57
    KL 系列支持 A B两组控制状态寄存器和数据结果存储器,两组唯一的区别是B组只支持硬件触发模式,由于两组寄 ...

    您好,反复阅读文档终于发现如何设置ADC两通道采样时的Rn对应关系,如下图:

    ADC Channel的对应关系

    ADC Channel的对应关系


    但是,又有了一个疑问,您说支持A、B两组数据结果存储器,那么该如何实现大于两路ADC采集呢?数据不就无处放了吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    32

    主题

    138

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    390
    最后登录
    2017-12-29
     楼主| 发表于 2017-4-1 15:24:18 | 显示全部楼层
    胡孟龙 发表于 2017-4-1 14:30
    什么数组?哪来的数组啊?还有就是我知道前一个是A后一个是B。但是如何建立这种对应关系的我不懂,比如我 ...

    8楼找到了结果,但是又有了新的疑惑,欢迎交流
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    723

    主题

    6382

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    25450
    最后登录
    2025-9-4
    发表于 2017-4-5 09:15:33 | 显示全部楼层
    胡孟龙 发表于 2017-4-1 15:23
    您好,反复阅读文档终于发现如何设置ADC两通道采样时的Rn对应关系,如下图:

    多路跟A, B两组寄存器是不同的概念,如果A,B更像是为了支持同时采样而设计的功能,而多路采样则是为了分时去采样多路引脚。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-6 17:56 , Processed in 0.113527 second(s), 32 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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