打印

探索者综合实验里面的音乐播放,把延时修改成信号量,效果还行

[复制链接]
297|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
大碴子味|  楼主 | 2018-7-30 11:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
wavplay.c里面231-237行

OSSemPend(sem,0,&errer);
//                                        while(wavtransferend==0)
//                                        {
//                                                delay_ms(1000/OS_TICKS_PER_SEC);
//                                        }

//wavtransferend=0;

然后在DMA中断里发送信号量
//wavtransferend=1;
OSSemPost(sem);

感觉修改之前还是延时查询的思路,这样任务切换次数多,而用了信号量的话,只有DMA中断完成后才切换到音乐这个进程,我在中断中加了static变量通过串口观察这个中断间隔是40+到200+毫秒的时间,而采用每5ms的查询将浪费切换,不知道这么想对不对啊,版主请指正一下,暂时修改后可以正常播放音乐

另外是不是查询有其他的好处,而我还不知道,请版主指教了,毕竟我刚学不久

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

372

主题

372

帖子

0

粉丝