完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近在做一个mp6遇到一些问题。就是在用按键触发外部中断实现上下一曲 见我的程序结构如下 main() { while(1) { loop: opengile(,,n); //打开文件 readfile(); //读取文件 n++; } } interupt() { if(...) n++; goto loop; } n为mp3文件的序号 文件在被读取的时候 是连续的,也就是这个程序会执行很久 就是想在按键按下后 就在中断里把n加一 然后跳转到打开文件的函数那儿 进行打开下一个文件 理论上 这样是很完美的。可是我这样做 程序就出错了 看下面错误提示 |
|
相关推荐
7个回答
|
|
额 mp3 打错了!!!
|
|
|
|
可以设置一个变量A=1;
================= redfile 方法里判断 if (A=1) { 读取文件 } ================= 在中断函数里写 A=0; ++++++++++++++++++++++++ 你的 opengile 方法名写错了 应该是 openfile |
|
|
|
goto只能跳转到同一个函数的label处,不能跳转到其它函数,如果硬要跳转的话,估计只能用汇编了
|
|
|
|
不要随意使用goto语句。有人觉得goto语句只是相当于汇编的JUMP而随意使用,结果导致程序经常出错跑飞,而且排错也非常困难。
对于你的情况,我不知道你的readfile()函数是怎么写的。在我做的MP3中,所有按键识别如上下曲、音量加减均播放函数里嵌入,完全不会影响播放效果。顺便说一下我的MP3硬件配置:STC12LE5A60S2,30.00MHz晶振,VS1003B模块,12846OLED,中文字库芯片,DS1302。完美播放320码率MP3 |
|
|
|
|
|
|
|
good:lol
|
|
|
|
goto不能跨函数调用,否则会导致逻辑混乱而跑飞,根据我的判断,goto之后是不在while里的,慎用goto
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
503 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1756 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
1183 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
1053 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
1287 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12020 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 18:02 , Processed in 0.648099 second(s), Total 51, Slave 44 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号