Exemple #1
0
//启动一次识别
unsigned char RunASR(void)
{
	unsigned char i=0;
	unsigned char j=0;
	unsigned char asrflag=0;
	for (i=0; i<5; i++)	//
	{
		LD_Init_ASR();
		OSTimeDly(1);	
		if (LD_AsrAddFixed()==0)
		{
			LD_Reset();			//
			OSTimeDly(1);		//
			continue;
		}
		j= LD_AsrRun();
		if (j == 0)
		{
			LD_Reset();			//
			OSTimeDly(1);		//
			continue;
		}
		asrflag=1;
		break;					//
	}	
	return asrflag;
}
Exemple #2
0
uint8 RunASR(char cmd)
{
	uint8 i=0;
	uint8 j;
	uint8 asrflag=0;
	for (i=0; i<5; i++)			//	防止由于硬件原因导致LD3320芯片工作不正常,所以一共尝试5次启动ASR识别流程
	{
		LD_AsrStart();
		delay_ms(10);
		if (LD_AsrAddFixed(cmd)==0)
		{
			LD_reset();			//	LD3320芯片内部出现不正常,立即重启LD3320芯片
			delay_ms(10);			//	并从初始化开始重新ASR识别流程
			continue;
		}
		LD_TEST();
		delay_ms(10);
		j= LD_AsrRun();
		if (j == 0)
		{
			LD_reset();			//	LD3320芯片内部出现不正常,立即重启LD3320芯片
			delay_ms(10);			//	并从初始化开始重新ASR识别流程
			continue;
		}

		asrflag=1;
		break;					//	ASR流程启动成功,退出当前for循环。开始等待LD3320送出的中断信号
	}

	return asrflag;
}