完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
UCOSIII +原子哥WAV播放的代码,可以正常播放,但是偶尔会死机。后来查发现一直死在while(wavtransferend==0) 这里,这时候一直在delay_ms(5),因为这里的delay_ms没有任务调度,我改成了系统延时发现还是一样,经常跑到while(wavtransferend==0)这里死机了。其它任务也不执行也就是没有切换任务 ,那这个等待WAV传输的时候到底要不要允许任务切换呢?还有为什么delay_ms这里在改成系统延时后任务也没有切换而是一直跑死在这里,求解大神解答下疑惑~
其它的,这里我创建了3个任务,一个GUI任务,一个刷触屏任务,再一个就是音乐播放任务,优先级顺序为触屏任务>音乐播放任务>GUI任务。 [C] 纯文本查看 复制代码 if(res==0) { f_lseek(audiodev.file, wavctrl.datastart); //跳过文件头 fillnum=wav_buffill(audiodev.i2***uf1,WAV_I2S_TX_DMA_BUFSIZE,wavctrl.bps); fillnum=wav_buffill(audiodev.i2***uf2,WAV_I2S_TX_DMA_BUFSIZE,wavctrl.bps); audio_start(); while(res==0) { while(wavtransferend==0) //等待wav传输完成; { delay_ms(5); } wavtransferend=0; |
|
相关推荐
10个回答
|
|
拿综合实验测试,现象是一样的,就是当在播放器界面播放音乐时把SD卡拔出,这时就可能会卡死,触屏无作用,LED也不闪了。
|
|
|
|
|
|
|
|
|
|
|
|
目前的问题是:虽然对卡死的地方作超时跳出,但现在任务无法挂起自身一直在执行,且任务不切换了。。。
|
|
|
|
没人吗?自己顶顶
|
|
|
|
改用信号量啊,传输完成直接发送信号量不成吗
|
|
|
|
试过啊,没用,改成信号量后,等待信号量时也不等待了,直接往下执行。就像是改成挂起时,挂起了也没用一样,还在往下执行。
|
|
|
|
楼主问题解决了吗?我今天也碰到了,跟你描述一样的问题
|
|
|
|
没动静了。。。帮顶
|
|
|
|
请问 楼主解决了吗?我也是碰到这个问题了,请问咋解决的啊?
|
|
|
|
只有小组成员才能发言,加入小组>>
807 浏览 0 评论
1159 浏览 1 评论
2534 浏览 5 评论
2867 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2717 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1097浏览 3评论
197浏览 2评论
463浏览 2评论
376浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
458浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 17:04 , Processed in 1.300414 second(s), Total 66, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号