|
我在程序中建立了3个任务:
void App_TaskStart()
{
#if OS_TASK_STAT_EN
OSStatInit(); //----ͳ¼ÆÈÎÎñ³õʼ»¯º¯Êý
#endif
Sem_Play=OSSemCreate(0); //´´½¨ÐźÅÁ¿
App_TaskCreate(); //½¨Á¢ÆäËûµÄÈÎÎñ
while(!0)
{
OSTimeDlyHMSM(0,0,0,500);
}
}
/*****´´½¨ÆäËûÈÎÎñ****/
void App_TaskCreate() //½¨Á¢ÆäËûµÄÈÎÎñ
{
OSTaskCreate(APP_TASK_Touch,NULL,&APP_TASK_T[APP_TASK_Size-1],APP_TASK_Touch_Pro);
OSTaskCreate(APP_TASK_Disp ,NULL,&APP_TASK_D[APP_TASK_Size-1],APP_TASK_Disp_Pro) ;
OSTaskCreate(APP_TASK_Play ,NULL,&APP_TASK_P[APP_TASK_Size-1],APP_TASK_Play_Pro) ;
}
优先级分别为4,5,6
现在的问题是当我点击下一首时程序就死在MP3播放里面的搜索文件名:
oid MP3_Play()
{
uint16_t count=0;
char lfn[70]; //Ö§³Ö³¤Îļþ
char j=0;
char path[100]={""}; //¸ùĿ¼
UINT br=1;
BYTE buff[512]; //ÿ´ÎÖµ¶Áȡһ¸öÉÈÇø
filinfo.lfname = lfn; /*Ϊ³¤ÎļþÃû·ÖÅä¿Õ¼ä*/
filinfo.lfsize = sizeof(lfn); /*¿Õ¼ä´óС*/
/***ÅжÏÎļþÊÇ·ñÓÐЧ*****/
///printf("\rmp3_play\n");
if(f_opendir(&dirs,path)==FR_OK) //´ò¿ªÄ¿Â¼
{
//printf("path\r\n");
while (f_readdir(&dirs,&filinfo)==0) //´ò¿ªµÄÎļþ´æÔÚ
{ OSTimeDlyHMSM(0,0,0,20);
OSSemPend(Sem_Play,0,&err);
printf("\rexisting\n");
//if ( filinfo.fattrib & AM_ARC ) /* ÅжÏÊÇ·ñΪ´æµµÐÍÎĵµ */
{
if(filinfo.lfname[0] == NULL && filinfo.fname !=NULL) /*µ±³¤ÎļþÃû³ÆÎª¿Õ£¬¶ÌÎļþÃû·Ç¿Õʱת»»*/
filinfo.lfname =filinfo.fname;
.........
.......
}
可是我已经调了OSTimeDLY()了
对了,我是参考了你们的那个MP3程序的,就不知什么问题,
有时可以有时不行, |
|