金牌会员
 
- 积分
- 2296
- 金钱
- 2296
- 注册时间
- 2017-5-22
- 在线时间
- 214 小时
|
2金钱
void wav_recorder(void)
{ { u8 res;
u8 key;
u8 rval=0;
__WaveHeader *wavhead=0;
DIR recdir; //Ŀ¼
u8 *pname=0;
u8 timecnt=0; //¼Æê±Æ÷
u32 recsec=0; //¼òôê±¼ä
while(f_opendir(&recdir,"0:/RECORDER"))//′ò¿a¼òôÎļt¼D
{
Show_Str(30,230,240,16,"RECORDERÎļt¼D′íÎó!",16,0);
delay_ms(200);
LCD_Fill(30,230,240,246,WHITE); //Çå3yÏÔê¾
delay_ms(200);
f_mkdir("0:/RECORDER"); //′′½¨¸ÃĿ¼
}
i2srecbuf1=mymalloc(SRAMIN,I2S_RX_DMA_BUF_SIZE);//I2S¼òôÄú′æ1éêÇë
i2srecbuf2=mymalloc(SRAMIN,I2S_RX_DMA_BUF_SIZE);//I2S¼òôÄú′æ2éêÇë
f_rec=(FIL *)mymalloc(SRAMIN,sizeof(FIL)); //¿a±ùFIL×Ö½úμÄÄú′æÇøóò
wavhead=(__WaveHeader*)mymalloc(SRAMIN,sizeof(__WaveHeader));//¿a±ù__WaveHeader×Ö½úμÄÄú′æÇøóò
pname=mymalloc(SRAMIN,30); //éêÇë30¸ö×Ö½úÄú′æ,ààËÆ"0:RECORDER/REC00001.wav"
if(!i2srecbuf1||!i2srecbuf2||!f_rec||!wavhead||!pname)rval=1; if(rval==0)
{
recoder_enter_rec_mode(); //½øèë¼òôÄ£ê½,′Ëê±¶ú»ú¿éòÔìyμ½ßäí·2é¼ˉμ½μÄòôÆμ
pname[0]=0; //pnameûóDèÎoÎÎļtÃû
while(rval==0)
{
key=KEY_Scan(0);
switch(key)
{
case KEY2_PRES: //STOP&SAVE
if(rec_sta&0X80)//óD¼òô
{
rec_sta=0; //1رÕ¼òô
wavhead->riff.ChunkSize=wavsize+36; 这里的36是什么数,Chunk块标志符+数据大小是24
wavhead->data.ChunkSize=wavsize;
|
|