查看: 1951|回复: 3

[其他] 每天解决一个问题16:小谈YL-KL26Z中Demo_SD_SPI

[复制链接]
  • TA的每日心情
    擦汗
    2021-9-9 22:51
  • 签到天数: 415 天

    连续签到: 1 天

    [LV.9]以坛为家II

    79

    主题

    3088

    帖子

    21

    金牌会员

    Rank: 6Rank: 6

    积分
    5181
    最后登录
    2022-5-23
    发表于 2015-9-9 21:09:29 | 显示全部楼层 |阅读模式
    本帖最后由 ALTIUM2 于 2015-9-9 21:09 编辑

    每天解决一个问题16:小谈YL-KL26Z中Demo_SD_SPI



      很开森,申请的YL-KL26Z成功了,于是抽空偷偷的把YL-KL26Z光盘历程瞅瞅,下面和大家一起看看。

    *********************************************************************************************************
    void PIT_IRQHandler(void)
    {
            PIT_TFLG0 |= PIT_TFLG_TIF_MASK;                                     /* ?????                   */
            if(adcGetUint()<AD_Sample_Num/3)                                      //根据adc采样值来设置LED的状态,显示音量档位
            {
                    Led5Set(1);
                    Led6Set(0);
                    Led7Set(0);               
            }
            else if(adcGetUint()<2*AD_Sample_Num/3)
            {
                    Led5Set(1);
                    Led6Set(1);
                    Led7Set(0);
            }
            else
            {
                    Led5Set(1);
                    Led6Set(1);
                    Led7Set(1);                        
            }        
            Volume=Volume_Num*adcGetUint()>>16;                                   //计算音量
            dacTrigger(Buffer[FIFO_out]/(Volume_Num-Volume));        
            FIFO_out++;                                                          //播放缓冲区指针+1
            if(FIFO_out>2047)                                                   //′播放缓冲区下标溢出  
            {
                    FIFO_out=0;                                                  //重置下标
            }
    }
    *********************************************************************************************************

    这是Demo中播放SD卡音乐的PIT中断服务程序。

    功能分析:
    1.利用 PIT 定时器产生16K的定时。


    2.在PIT中AD检测电位计的大小,从而判断音量设置大小。


    3.根据音量大小设置DA输出的大小,从而控制音量的大小。


    4.DA输出的内容是Buffer中的数据,Buffer是从SD卡中读取的。


    之我见:
    首先我看了这段程序之后,我觉得很欠妥,实时性很不好,所以大家在产品设计中最好不要这么做,Demo就算了。


    小问题1:PIT注释
    wav参数.jpg
    这是wav文件参数,16K的采样速率,8bit数据,所以在播放时要16K速率播放


    PIT设置.jpg

    PIT的时钟频率为24MHZ,当设置24000000时延时为1S,3000为8K,1500为16K,所以应该为16速率。
    官方标注的是8K,实际应该为16K。

    小问题2:音量采集的速率

    adcGetUint();是音量调节电位计的AD采用函数
    采集函数.jpg


    可以看到最恶劣的情况这函数被调用了3次,实际AD采集时间还是很久的,想想是多么浪费。
    还有音量调节会有这么快的速度吗?16KHZ,答案是否定的。

    我觉得可以用标志位定时采集,这样比较的合理。

    altium2.gif











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

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16701
    最后登录
    1970-1-1
    发表于 2015-9-9 22:17:27 | 显示全部楼层
    恭喜恭喜
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2021-9-9 22:51
  • 签到天数: 415 天

    连续签到: 1 天

    [LV.9]以坛为家II

    79

    主题

    3088

    帖子

    21

    金牌会员

    Rank: 6Rank: 6

    积分
    5181
    最后登录
    2022-5-23
     楼主| 发表于 2015-9-9 22:19:07 | 显示全部楼层

      谢谢,期待早日邮寄到手啊
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-2-9 14:16
  • 签到天数: 17 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    25

    主题

    1785

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2250
    最后登录
    2024-6-11
    发表于 2015-9-10 09:31:27 | 显示全部楼层
    不错啊,板子已经申请到了。。。恭喜啊
    freescaleic.org.png
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-20 22:19 , Processed in 0.096464 second(s), 25 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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