查看: 3016|回复: 4

[求助] LPC54114 SDK2.2中DMIC模块代码的问题

[复制链接]
  • TA的每日心情
    奋斗
    2025-5-7 09:07
  • 签到天数: 353 天

    连续签到: 1 天

    [LV.8]以坛为家I

    141

    主题

    8056

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5785
    最后登录
    2025-5-7
    发表于 2017-5-5 22:30:54 | 显示全部楼层 |阅读模式
          DMIC 产生的的数据流可以被CPU或DMA读取,也可以直接发送到I2S。
    通过CPU或DMA读取时,是通过设置DMIC的FIFO控制寄存器的终端位或DMA读取。
    1.png
    在SDK2.2的驱动例程dmic_i2s_codec中出示化DMIC时。设置其工作模式:
    1. DMIC_SetOperationMode(DMIC0, kDMIC_OperationModePoll);
    复制代码
    工作模式时个枚举的类型:
    1. typedef enum _operation_mode
    2. {
    3.     kDMIC_OperationModePoll = 0U,      /*!< Polling mode */
    4.     kDMIC_OperationModeInterrupt = 1U, /*!< Interrupt mode */
    5.     kDMIC_OperationModeDma = 2U,       /*!< DMA mode */
    6. } operation_mode_t;
    复制代码
    设置工作模式原型:
    1. void DMIC_SetOperationMode(DMIC_Type *base, operation_mode_t mode)
    2. {
    3.     if (mode == kDMIC_OperationModeInterrupt)
    4.     {
    5.         /* Enable DMIC interrupt. */
    6.         base->CHANNEL[0].FIFO_CTRL |= DMIC_CHANNEL_FIFO_CTRL_INTEN(1);
    7.         base->CHANNEL[1].FIFO_CTRL |= DMIC_CHANNEL_FIFO_CTRL_INTEN(1);
    8.     }
    9.     if (mode == kDMIC_OperationModeDma)
    10.     {
    11.         /* enable DMA request*/
    12.         base->CHANNEL[0].FIFO_CTRL |= DMIC_CHANNEL_FIFO_CTRL_DMAEN(1);
    13.         base->CHANNEL[1].FIFO_CTRL |= DMIC_CHANNEL_FIFO_CTRL_DMAEN(1);
    14.     }
    15. }
    复制代码
    可见在原型中,并没有轮训模式。
    问题来了?有轮训模式吗?如果有,怎么个轮询数据法?


    我知道答案 目前已有4人回答
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24931
    最后登录
    2025-7-23
    发表于 2017-5-8 14:37:41 | 显示全部楼层
    从整个代码上看,对于DMIC,只实现DMIC 转换好的数据传输给I2S,这应该是自动完成的,在我的理解,是不需要额外轮训或者检测特定的位的。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2025-5-7 09:07
  • 签到天数: 353 天

    连续签到: 1 天

    [LV.8]以坛为家I

    141

    主题

    8056

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5785
    最后登录
    2025-5-7
     楼主| 发表于 2017-5-8 14:48:56 | 显示全部楼层
    小恩GG 发表于 2017-5-8 14:37
    从整个代码上看,对于DMIC,只实现DMIC 转换好的数据传输给I2S,这应该是自动完成的,在我的理解,是不需要 ...

    那就是说这个枚举的类型不没有用处了
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24931
    最后登录
    2025-7-23
    发表于 2017-5-8 16:45:43 | 显示全部楼层
    wambob 发表于 2017-5-8 14:48
    那就是说这个枚举的类型不没有用处了

    不是啊,只能说这里 KMDIC_OperationModePoll变量表示的并不是我们一般意义上等待,轮训操作。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2025-5-7 09:07
  • 签到天数: 353 天

    连续签到: 1 天

    [LV.8]以坛为家I

    141

    主题

    8056

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5785
    最后登录
    2025-5-7
     楼主| 发表于 2017-5-9 08:46:57 | 显示全部楼层
    小恩GG 发表于 2017-5-8 16:45
    不是啊,只能说这里 KMDIC_OperationModePoll变量表示的并不是我们一般意义上等待,轮训操作。 ...

    还是不理解
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-25 06:47 , Processed in 0.099493 second(s), 26 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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