//启动一次识别 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; }
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; }