查看: 7109|回复: 3

[S32] S32K144,ADC采样多通道问题

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

    连续签到: 1 天

    [LV.1]初来乍到

    7

    主题

    63

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    299
    最后登录
    2019-1-2
    发表于 2018-3-6 16:04:02 | 显示全部楼层 |阅读模式
    使用示例ADC_HwTrigger_Example,在其基础上增加一个通道采样
    /*******************原代码*****************/
    void ADC_IRQHandler(void)
    {
            /* Get channel result from ADC channel */
            ADC_DRV_GetChanResult(ADC_INSTANCE, 0U, (uint16_t *)&adcRawValue);
            /* Set ADC conversion complete flag */
            adcConvDone = true;
    }

    主函数中相关设置:
    adConv1_ChnConfig0.channel = ADC_CHN;
    ADC_DRV_ConfigConverter(ADC_INSTANCE, &adConv1_ConvConfig0);
    ADC_DRV_ConfigChan(ADC_INSTANCE, 0UL, &adConv1_ChnConfig0);

    /*******************原代码*****************/

    /*******************增加代码*****************/
    主函数增加两行代码:
    adConv1_ChnConfig1.channel = 3U;
    ADC_DRV_ConfigChan(ADC_INSTANCE, 1UL, &adConv1_ChnConfig1);

    中断函数增加一行代码:
    ADC_DRV_GetChanResult(ADC_INSTANCE, 1U, (uint16_t *)&adcRawValue_2);
    /*******************增加代码*****************/

    结果始终无法得到adcRawValue_2的值,于是不增加代码,直接将原代码0UL(两处chanIndex)改为1UL,发现程序无法进入中断函数,只有0可以正常。
    示例程序中还有相关PDB的设置,不知道有没有影响。
    搞不懂该如何进行多通道采样设置(均为ADC1)

    最佳答案

    chanyim 发表于 2018-3-7 09:47 使用ADC_SwTrigger_Example, 将 /* Configure ADC channel and software trigger a conversion */ 只有SC1A支持软件触发,SC1B-SC1n不支持软件触发。 [attach]441450[/attach] [atta ...
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]初来乍到

    7

    主题

    63

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    299
    最后登录
    2019-1-2
     楼主| 发表于 2018-3-7 09:47:27 | 显示全部楼层
    使用ADC_SwTrigger_Example,

    /* Configure ADC channel and software trigger a conversion */
    ADC_DRV_ConfigChan(ADC_INSTANCE, 0U, &adConv1_ChnConfig0);
    /* Wait for the conversion to be done */
    ADC_DRV_WaitConvDone(ADC_INSTANCE);
    /* Store the channel result into a local variable */
    ADC_DRV_GetChanResult(ADC_INSTANCE, 0U, &adcRawValue);
    改为
    /* Configure ADC channel and software trigger a conversion */
    ADC_DRV_ConfigChan(ADC_INSTANCE, 1U, &adConv1_ChnConfig1);
    /* Wait for the conversion to be done */
    ADC_DRV_WaitConvDone(ADC_INSTANCE);
    /* Store the channel result into a local variable */
    ADC_DRV_GetChanResult(ADC_INSTANCE, 1U, &adcRawValue);
    无法获取采样值adcRawValue,很困惑
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]初来乍到

    7

    主题

    63

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    299
    最后登录
    2019-1-2
     楼主| 发表于 2018-3-7 10:17:58 | 显示全部楼层
    后采用切换通道的方法可以正常采样:
    adConv1_ChnConfig0.channel = 10U;
    ADC_DRV_ConfigChan(ADC_INSTANCE, 0U, &adConv1_ChnConfig0);
    ADC_DRV_WaitConvDone(ADC_INSTANCE);
    ADC_DRV_GetChanResult(ADC_INSTANCE, 0U, (uint16_t *)&adcRawValue);
    delay();
    adConv1_ChnConfig0.channel = 3U;
    ADC_DRV_ConfigChan(ADC_INSTANCE, 0U, &adConv1_ChnConfig0);
    ADC_DRV_WaitConvDone(ADC_INSTANCE);
    ADC_DRV_GetChanResult(ADC_INSTANCE, 0U, (uint16_t *)&adcRawValue);
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]初来乍到

    59

    主题

    2888

    帖子

    10

    金牌会员

    Rank: 6Rank: 6

    积分
    6020
    最后登录
    2020-9-28
    发表于 2018-3-7 10:34:37 | 显示全部楼层
    chanyim 发表于 2018-3-7 09:47
    使用ADC_SwTrigger_Example,

    /* Configure ADC channel and software trigger a conversion */

    只有SC1A支持软件触发,SC1B-SC1n不支持软件触发。
    ADC_DRV_ConfigChan.PNG
    SC1n.PNG
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-21 00:18 , Processed in 0.161834 second(s), 26 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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