查看: 1611|回复: 4

[已解决] 求助一个KEA系列ADC采样问题

[复制链接]
  • TA的每日心情
    开心
    2018-6-4 15:15
  • 签到天数: 1 天

    [LV.1]初来乍到

    20

    主题

    36

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    252
    最后登录
    2022-4-6
    发表于 2018-6-7 18:52:27 | 显示全部楼层 |阅读模式
    现在要采9个通道,而FIFO最大深度只有8,一个一个轮询有点占资源,有没有较为高效的方式

    最佳答案

    小小浮云 发表于 2018-6-8 19:12 FIFO,转换完成数据读上来后可以改变序列,将最后一个通道换成第9个吗?然后转换完后在将最后一个通道换 ... 楼主你好。 可以的,你可以参考下官方的KE 系列的ADC_FIFO_demo. 这个是 ...
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

    该用户从未签到

    656

    主题

    6312

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    20014
    最后登录
    2024-4-25
    发表于 2018-6-8 10:53:24 | 显示全部楼层
    这个是硬件决定的了,可以一个一个点采集,使用中断方式,会稍微快点。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-6-4 15:15
  • 签到天数: 1 天

    [LV.1]初来乍到

    20

    主题

    36

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    252
    最后登录
    2022-4-6
     楼主| 发表于 2018-6-8 19:12:43 | 显示全部楼层
    小恩GG 发表于 2018-6-8 10:53
    这个是硬件决定的了,可以一个一个点采集,使用中断方式,会稍微快点。

    FIFO,转换完成数据读上来后可以改变序列,将最后一个通道换成第9个吗?然后转换完后在将最后一个通道换成第8个,是否可行?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    656

    主题

    6312

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    20014
    最后登录
    2024-4-25
    发表于 2018-6-11 09:29:46 | 显示全部楼层
    小小浮云 发表于 2018-6-8 19:12
    FIFO,转换完成数据读上来后可以改变序列,将最后一个通道换成第9个吗?然后转换完后在将最后一个通道换 ...

    楼主你好。
    可以的,你可以参考下官方的KE 系列的ADC_FIFO_demo.
    这个是一个3级fifo:
            while(1)
            {
                /* set channel to start a new conversion */
                u8ADC_ConversionFlag = 0;
            ADC_SetChannel(ADC,ADC_CHANNEL_AD22_TEMPSENSOR);
            ADC_SetChannel(ADC,ADC_CHANNEL_AD29_VREFH);
            ADC_SetChannel(ADC,ADC_CHANNEL_AD30_VREFL);
            /* wait conversion complete */
            while( !u8ADC_ConversionFlag);

            printf("ADC conversion result as below:\n");
            for( u8Ch =0 ;u8Ch< u16ADC_ConversionCount; u8Ch ++)
            {

                printf("0x%x,",u16ADC_ConversionBuff[u8Ch]);
            }
            printf("\n");
            printf("input any character to start a new conversion!\n");
            u8Ch = UART_GetChar(TERM_PORT);
            u16ADC_ConversionCount = 0;
            }

    你可以弄成8级,每次选择好通告之后,等待转换完成,那么在新的一次转换中,你可以配置为你的第9通道,不过在读取值的时候,你需要分清楚。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4

    主题

    8

    帖子

    0

    注册会员

    Rank: 2

    积分
    163
    最后登录
    2022-11-23
    发表于 2022-10-19 19:21:17 | 显示全部楼层
    小恩GG 发表于 2018-6-11 09:29
    楼主你好。
    可以的,你可以参考下官方的KE 系列的ADC_FIFO_demo.
    这个是一个3级fifo:

    你好,我参考的官方例程,2级FIFO,只能进去一次中断,您帮看看是啥问题呀
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2024-4-25 15:05 , Processed in 0.151428 second(s), 27 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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