完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
各位高手,小弟正在基于一款DSP芯片(TMS320F28335)开发应用程序,具体任务是:采集语音信息、通过串口控制播放采集的语音或者播放报警音乐,存储采集的语音数据至SD卡。采集语音、播放语音和播放报警音乐是在一个MCBSP中断处理程序中实现的,串口接收控制命令是在串口接收中断处理程序中实现的,存储语音至SD卡是在一个定时器0中断程序中实现的。为了确保及时将语音数据写入SD卡中,在存储语音的中断程序中调用了f_sync函数。测试的时候发现,报警音乐的播放变得断断续续的。去掉f_sync函数,播放就正常了,但是,语音数据又无法写入SD卡中。请教各位高手:怎样既能保证报警音乐正常播放,又能保证语音数据存储至SD卡中。谢谢各位了。部分代码如下: Main函数中的主循环: while(1) { for(temp=30000;temp>0;temp-=100) { for(i=0;i<2;i++) { y=5000; delay(temp); y=-5000; delay(temp); } } } MCBSP中断处理子程序: interrupt void ISRMcbspSend(void) { PieCtrlRegs.PIEACK.all =PIEACK_GROUP6; temp_audio=McbspaRegs.DRR1.all; DA_rptr++; if(DA_rptr>=500) DA_rptr=0; ADbuf[DA_rptr]=temp_audio; //保存录音数据 if(play_mode==0) McbspaRegs.DXR1.all = y; //警报声的幅值 else McbspaRegs.DXR1.all = temp_audio; //放音 } 串口接收中断处理子程序: interrupt void ISRSciRecv(void) { Uint16 ReceivedChar; PieCtrlRegs.PIEACK.all = PIEACK_GROUP9; /*当中断9组中有中断被发送至CPU,则其他中断阻塞*/ ReceivedChar = ScibRegs.SCIRXBUF.all; /*读出2字节数据*/ if (ReceivedChar == 'e') { play_mode = 1; } else if (ReceivedChar == 'd') { play_mode = 0; } else { ; } } 基于定时器中断的SD卡写入子程序: interrupt void ISRtimer0(void) { Uint8 textFileBuffer[2]; //Acknowledge this interrupt to receive more interrupts from group 1 PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; /*当中断1组有中断被发送至CPU,则其他中断阻塞*/ CpuTimer0Regs.TCR.bit.TIF=1; /*定时到了指定时间,标志位置位,写入1清除标志*/ CpuTimer0Regs.TCR.bit.TRB=1; /*重载Timer0的定时数据*/ /*将语音数据写入SD卡*/ textFileBuffer[0] = temp_audio &0x00ff; textFileBuffer[1] = (temp_audio >> 8)& 0x00ff; res= f_write(&fsrc , textFileBuffer , sizeof(textFileBuffer) , &br); /*写入音频数据至SD卡*/ if (res != FR_OK) { asm(" ESTOP0"); } f_sync (&fsrc); |
|
相关推荐
1个回答
|
|
1.采用DMA,2考虑加一个实时操作系统
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
基于 DSP5509 进行数字图像处理中 Sobel 算子边缘检测的硬件连接电路图
2343 浏览 0 评论
681 浏览 0 评论
普中科技F28335开发板中,如何使用aic23播放由代码生成的正弦波
2780 浏览 0 评论
3541 浏览 1 评论
1194 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 12:29 , Processed in 0.562695 second(s), Total 73, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号