初级会员
- 积分
- 81
- 金钱
- 81
- 注册时间
- 2017-2-27
- 在线时间
- 15 小时
|
楼主 |
发表于 2017-7-13 20:26:20
|
显示全部楼层
同样的一个函数,我写在main函数下执行是可以的,但是做成进程函数就会卡住了。
void ReadCard_Task(void *p_arg)
{
/* System Clocks Configuration */
int ipos = -1; OS_ERR err;
CPU_SR_ALLOC();
while (1)
{
printf("½øÈë222222222222222222222\r\n");
//(for test)if(FindCard(0x52)==0)
{
memset(BuffCardRead,0x00,sizeof(BuffCardRead));
// //(for test)0Ϊ¿éºÅif(OneKeyReadCard(0,BuffCardRead)==0) //
{
Halt();
HexToStr((BYTE *)gsCardNumberTmp,BuffCardRead,4);//4Byte = 8char
strcpy(gsCardNumberTmp,"40906327");//for test
if (strlen(gsCardNumberTmp)>3)
{
//OS_CRITICAL_ENTER(); //½øÈëÁÙ½çÇø
HashRecord(gsCardNumberTmp);
//OS_CRITICAL_EXIT(); //½øÈëÁÙ½çÇø
//OSTimeDlyHMSM(0,0,1,0,OS_OPT_TIME_HMSM_STRICT,&err); //ÑÓʱ1s
ipos = GetHashTablePos(gsCardNumberTmp, pTestHashTable);//¶ÁÈ¡ÎĵµÀïÃæµÄÊý¾Ý
if(-1 != ipos)
{
AudioPlayNumber(pTestHashTable[ipos].sData);
printf("¿ØÖƵç»ú");
CtrolMotor();
}
else
{
printf("·Ç·¨µÄ³µÅÆ¿¨ºÅ");
printf("BuffCardRead=%s",BuffCardRead);
printf("\r\n");
}
myfree(SRAMIN,pTestHashTable);//ÊÍ·ÅÄÚ´æ
pTestHashTable = NULL;
}
else
{
printf("¿¨ÓÐÎÊÌâ");
}
}
}
//OS_CRITICAL_EXIT();
//OSTimeDlyHMSM(0,0,1,0,OS_OPT_TIME_HMSM_STRICT,&err); //ÑÓʱ1s
delay_ms(500);
就是这样的一个函数,现在是进程回调函数执行几次就卡了,但是做成普通函数,放在main函数里面就可以的,里面有一个文档处理函数,跟踪是发现fopen的时候不往下走了,各位大侠帮忙看看,谢谢 |
|