查看: 11288|回复: 6

[S32] s32k144,adc多通道采集问题

[复制链接]
  • TA的每日心情
    开心
    2018-11-23 14:51
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    7

    主题

    63

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    299
    最后登录
    2019-1-2
    发表于 2018-7-24 19:12:31 | 显示全部楼层 |阅读模式
    本帖最后由 chanyim 于 2018-7-24 19:13 编辑

    ADC1SE2,ADC1SE3,ADC1SE6三个数据采集量,需要连续循环不断采集
    若是一个采集量可以设置软件触发,设置连续采集
    adConv1_ChnConfig0.channel = 2U;
    ADC_DRV_ConfigChan(FSL_ADCONV1, 0U, &adConv1_ChnConfig0);
    while(1)
    {
    ADC_DRV_GetChanResult(FSL_ADCONV1, 0U, (uint16_t *)&key_1);

    }
    可以在循环里面不断得到key_1值;

    但是有3个量,很想这么做:
    adConv1_ChnConfig0.channel = 2U;
    ADC_DRV_ConfigChan(FSL_ADCONV1, 0U, &adConv1_ChnConfig0);
    adConv1_ChnConfig1.channel = 3U;
    ADC_DRV_ConfigChan(FSL_ADCONV1, 1U, &adConv1_ChnConfig1);

    adConv1_ChnConfig2.channel = 6U;
    ADC_DRV_ConfigChan(FSL_ADCONV1, 2U, &adConv1_ChnConfig2);

    while(1)
    {
    ADC_DRV_GetChanResult(FSL_ADCONV1, 0U, (uint16_t *)&key_1);
    ADC_DRV_GetChanResult(FSL_ADCONV1, 1U, (uint16_t *)&key_2);
    ADC_DRV_GetChanResult(FSL_ADCONV1, 2U, (uint16_t *)&key_3);
    }
    在循环里面不断得到key_1,2,3值,但是行不通,只有key_1值正确,貌似是因为只有0U支持软触发,其它不支持;

    无奈之举:

    while(1)
    {
    adConv1_ChnConfig0.channel = 2U;
    ADC_DRV_ConfigChan(FSL_ADCONV1, 0U, &adConv1_ChnConfig0);
    ADC_DRV_WaitConvDone(FSL_ADCONV1);
    ADC_DRV_GetChanResult(FSL_ADCONV1, 0U, (uint16_t *)&key_1);

    adConv1_ChnConfig0.channel = 3U;
    ADC_DRV_ConfigChan(FSL_ADCONV1, 0U, &adConv1_ChnConfig0);
    ADC_DRV_WaitConvDone(FSL_ADCONV1);
    ADC_DRV_GetChanResult(FSL_ADCONV1, 0U, (uint16_t *)&key_2);

    adConv1_ChnConfig0.channel = 6U;
    ADC_DRV_ConfigChan(FSL_ADCONV1, 0U, &adConv1_ChnConfig0);
    ADC_DRV_WaitConvDone(FSL_ADCONV1);
    ADC_DRV_GetChanResult(FSL_ADCONV1, 0U, (uint16_t *)&key_3);
    }
    3行wait有点耗时(不加wait容易出错),放到定时器里也感觉不合适,求指点。

    最佳答案

    chanyim 发表于 2018-7-25 11:56 以pit为例,每次中断都要转换(X为1,2,6) adConv1_ChnConfig0.channel = XU; ADC_DRV_ConfigChan(FSL_AD ... 楼主你好 请尝试使用PDB0 Channel0 的pretrigger去硬件触发预先在SC1A ...
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2021-12-23 09:57
  • 签到天数: 1587 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    5

    主题

    3048

    帖子

    23

    金牌会员

    Rank: 6Rank: 6

    积分
    8416
    最后登录
    2025-4-23
    发表于 2018-7-25 10:45:43 | 显示全部楼层
    PIT/PDB+DMA触发
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-11-23 14:51
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    7

    主题

    63

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    299
    最后登录
    2019-1-2
     楼主| 发表于 2018-7-25 11:56:40 | 显示全部楼层

    以pit为例,每次中断都要转换(X为1,2,6)
    adConv1_ChnConfig0.channel = XU;
    ADC_DRV_ConfigChan(FSL_ADCONV1, 0U, &adConv1_ChnConfig0);
    ADC_DRV_WaitConvDone(FSL_ADCONV1);再在主循环里面读值;

    希望做成3个通道设定好,ADC_DRV_ConfigChan配置只配一次,然后循环读值
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-2 06:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2018-7-27 15:10:36 | 显示全部楼层
    chanyim 发表于 2018-7-25 11:56
    以pit为例,每次中断都要转换(X为1,2,6)
    adConv1_ChnConfig0.channel = XU;
    ADC_DRV_ConfigChan(FSL_AD ...

    楼主你好
    请尝试使用PDB0 Channel0 的pretrigger去硬件触发预先在SC1A - aSC1P里配置好的ADC通道。
    PDB pretrigger ADC.png
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    4

    帖子

    0

    新手上路

    Rank: 1

    积分
    19
    最后登录
    2019-3-20
    发表于 2019-2-26 14:44:25 | 显示全部楼层
    你好,刚好我也遇到了这样的问题,现在有解决了吗?能否互相讨论一下,或者把你代码发来参考下
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    13

    帖子

    0

    注册会员

    Rank: 2

    积分
    191
    最后登录
    2024-9-26
    发表于 2019-3-13 17:29:01 | 显示全部楼层
    您好,我目前在用S32K144,调试12路ADC的采集问题。目前已经实现了通过PDB CH0通道采集8路ADC通道,但是想用PDB CH1通道采集剩余通道时,并没有成功。可以交流下吗,我Q:853727979.微信:baifenliangzi
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2019-9-15 17:24
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    0

    主题

    3

    帖子

    0

    新手上路

    Rank: 1

    积分
    18
    最后登录
    2019-12-12
    发表于 2019-11-15 10:42:52 | 显示全部楼层
    yjxwyyve1988 发表于 2019-3-13 17:29
    您好,我目前在用S32K144,调试12路ADC的采集问题。目前已经实现了通过PDB CH0通道采集8路ADC通道,但是想 ...

    你好,您现在12路ADC采集软件弄通了吗?我也在做18路的ADC采集,你能给指点下吗?或者把程序发我参考下,谢谢!
    昨夜未睡好,现在犯困中,然。。。睡不着
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-23 19:32 , Processed in 0.098128 second(s), 28 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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