OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7614|回复: 25

SIDO播放MP3加上网络控制

[复制链接]

3

主题

16

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2013-6-28
在线时间
0 小时
发表于 2013-7-16 15:12:28 | 显示全部楼层 |阅读模式

 是这样,战舰开发板上的MP3历程和网络历程已经合在一起,SD卡改成SDIO模式,现在可以通过网络发送歌曲名进行播放。

问题是这样,当歌曲正在播放的时候,网络有数据发送的时候就会卡死,感觉是是中断优先级的问题,
相关代码:
res = f_read(fmp3, databuf, 4096, (UINT*)&br);//读出4096个字节  
 i = 0;
   do//主播放循环
   {    
        if(VS_Send_MusicData(databuf + i)== 0)//给VS10XX发送音频数据
        {
             i+=32;
        }
    //在此处添加代码
        if(tcp_server_sta&(1<<6))//收到新的数据
        {
             if( 0 == strcmp("+", (const TCHAR*)tcp_server_sta))
             {
                  if(vsset.mvol<250)
                  {
                        vsset.mvol+=5;
                        VS_Set_Vol(vsset.mvol); 
                  }else vsset.mvol=250;
              tcp_server_sta&=~(1<<6);//标记数据被处理
      }
在播放的同时监视网络的数据
下面是NVIC_Configuration()函数:
//  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级


 NVIC_InitTypeDef NVIC_InitStructure;
 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
 NVIC_InitStructure.NVIC_IRQChannel = SDIO_IRQn;
 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;//抢占优先级1
 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //子优先级2
 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
 NVIC_Init(&NVIC_InitStructure); 
我想在播放Mp3的时候可以接收到网络的数据并且处理,这里应该如何配置呢?

再此先谢过,大家了。小弟弄好之后会将代码上传。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-16 16:49:32 | 显示全部楼层
仿真,看下死在哪里,再找原因.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2013-7-9
在线时间
3 小时
发表于 2013-7-16 17:14:03 | 显示全部楼层
帮顶下,MARK。原子哥是觉得哪里的问题呢?
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2013-7-9
在线时间
3 小时
发表于 2013-7-16 17:55:07 | 显示全部楼层
回复【2楼】正点原子:

仿真,看下死在哪里,再找原因.

---------------------------------
最近也在用这个和LZ相似的内容,想问下原子哥,在不上系统的情况下,裸奔。能不能网络传输个控制代码打断MP3执行,也就是完成切换歌曲的功能。这个方法能不能实现呢?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-16 21:22:23 | 显示全部楼层
可以
回复 支持 反对

使用道具 举报

3

主题

16

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2013-6-28
在线时间
0 小时
 楼主| 发表于 2013-7-17 09:39:13 | 显示全部楼层
原子哥,我感觉是中断的问题,两个历程都是有中断的,问题是正在播放歌曲的时候网络那头一有事件就会卡一段时间,之后SD就不好用了打不开目录和文件了,
网络模块的NVIC_Configuration();函数
void NVIC_Configuration(void)
{

  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级

}
这个是论坛上一朋友上传的SIOD模式的MP3中的NVIC_Configuration();函数
void NVIC_Configuration(void)
{
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级     NVIC_InitStructure.NVIC_IRQChannel = SDIO_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;//抢占优先级1
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //子优先级2
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
小弟一直都对中断很迷糊,不知道这两个怎样合在一起才对,想实现播放Mp3的时候可以接受到网络传过来的数据,并且不影响歌曲的播放。

一会发代码。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-17 10:04:29 | 显示全部楼层
中断尽量短,越短越好.
另外,如果你处理网络数据要很多时间,那就只能上OS了,让MP3任务优先级最高,这样可以保证MP3任务的流程进行.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

3

主题

16

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2013-6-28
在线时间
0 小时
 楼主| 发表于 2013-7-17 11:15:19 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
原子哥,在网络历程中我找不到中断时如何设置的,不知道在哪里去改优先级,历程中是移植的u-ip1.0只是在网络有数据的时候判断下是什么不会执行,如果要切歌就退出函数,
在历程中调用了NVIC_Configuration();   //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
只有一句代码
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
需要怎么配置呢?还是u-ip1.0这个协议在哪里设置过了
回复 支持 反对

使用道具 举报

3

主题

16

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2013-6-28
在线时间
0 小时
 楼主| 发表于 2013-7-17 11:20:50 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
原子哥,我看到u-ip里开了一个定时器6是不是它接收网络数据是靠这个终端触发的呢?没有设置中断分组
   NVIC_InitStructure.NVIC_IRQChannel = TIM6_IRQn;  //TIM3中断
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;  //先占优先级0级
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;  //从优先级3级
这个是SDIO的
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
NVIC_InitStructure.NVIC_IRQChannel = SDIO_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;//抢占优先级1
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //子优先级2
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
应该怎么配置才对呢?网络的不打断SIOD?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-17 11:30:34 | 显示全部楼层
SDIO用中断么???
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

3

主题

16

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2013-6-28
在线时间
0 小时
 楼主| 发表于 2013-7-17 11:41:33 | 显示全部楼层
回复【10楼】正点原子:
---------------------------------
用啊,这个例子中用了,不加中断不行的。
void SDIO_IRQHandler(void)
{
      SD_ProcessIRQSrc();
}
回复 支持 反对

使用道具 举报

3

主题

16

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2013-6-28
在线时间
0 小时
 楼主| 发表于 2013-7-17 11:58:06 | 显示全部楼层
回复【11楼】duchunpeng:
---------------------------------
原子哥,如果用你的音乐播放器实验的可以和网络的合在一起么
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-17 14:04:22 | 显示全部楼层
回复【12楼】duchunpeng:
---------------------------------
我没这么做过.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

3

主题

16

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2013-6-28
在线时间
0 小时
 楼主| 发表于 2013-7-17 17:31:29 | 显示全部楼层
回复【13楼】正点原子:
---------------------------------
看来,只有自己试了,想做个通过手机发命令,下位机播放的。
看来没那么简单啊。那个Uip也不知道咋回事,一有时间就会给Mp3弄死=-=
回复 支持 反对

使用道具 举报

3

主题

16

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2013-6-28
在线时间
0 小时
 楼主| 发表于 2013-7-17 17:33:24 | 显示全部楼层
回复【13楼】正点原子:
---------------------------------
原子哥,邮箱可以告诉下么,我的代码怎么传不上来呢
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-17 17:51:55 | 显示全部楼层
点击左侧的回复文章,可以进行高级回复,里面有附件上传的功能.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

3

主题

16

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2013-6-28
在线时间
0 小时
 楼主| 发表于 2013-7-19 10:14:33 | 显示全部楼层
回复【16楼】正点原子:
---------------------------------
原子哥,ENC28J60_Write_Op(ENC28J60 _BIT_FIELD_SET,EIE,EIE_INTIE|EIE_PKTIE);
这句是使能中断,如果我去掉了还能接受到数据么,如果我不去掉的话,那么在你以太网历程里的中断服务函数在哪里呢?
还有uip_newdata函数是怎么收到数据的呢,只是通过那个0.5秒定时器去查询的么?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-19 10:52:52 | 显示全部楼层
回复【17楼】duchunpeng:
---------------------------------
我们例程是通过查询的方式做的,没用到中断.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

3

主题

16

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2013-6-28
在线时间
0 小时
 楼主| 发表于 2013-7-19 11:00:46 | 显示全部楼层
回复【18楼】正点原子:
---------------------------------
那原子哥,如果我这样,我把ENC28J60_Write_Op(ENC28J60 _BIT_FIELD_SET,EIE,EIE_INTIE|EIE_PKTIE);设置中断使能这句去掉的话,用查询的方式,在播放MP3的时候还会可以接受数据了么?  目前没有去掉,但是只要是TCP有数据就会卡死的然后导致SD卡失败。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-19 11:11:06 | 显示全部楼层
应该可以,你试试吧.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

3

主题

16

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2013-6-28
在线时间
0 小时
 楼主| 发表于 2013-7-19 11:18:35 | 显示全部楼层
回复【20楼】正点原子:
---------------------------------
哦好的,就是说卡死是因为允许中断引起的呗。谢谢原子哥啊。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-19 12:28:08 | 显示全部楼层
回复【21楼】duchunpeng:
---------------------------------
那不是哦.
我们例程没用到中断,芯片会输出,你芯片没去处理,不会导致死机的.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

8

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
92
金钱
92
注册时间
2012-10-31
在线时间
0 小时
发表于 2013-7-19 16:25:27 | 显示全部楼层
回复【楼主位】duchunpeng:
---------------------------------
楼主你好,你的SDIO能一次性写入4096个字节吗???
回复 支持 反对

使用道具 举报

3

主题

16

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2013-6-28
在线时间
0 小时
 楼主| 发表于 2013-7-26 17:25:16 | 显示全部楼层
回复【23楼】gujie:
---------------------------------
我没写,我是一次读的4096个
回复 支持 反对

使用道具 举报

3

主题

16

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2013-6-28
在线时间
0 小时
 楼主| 发表于 2013-7-26 17:29:16 | 显示全部楼层
回复【22楼】正点原子:
---------------------------------原子哥弄好了,代码为啥穿不上来恩,一直显示保存中!是我网速的问题么?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-26 18:04:28 | 显示全部楼层
回复【25楼】duchunpeng:
---------------------------------
网速慢,得多等一点时间了,呵呵.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-16 11:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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