main.c

来自「Express DSP compliant C55x DTMF detector」· C语言 代码 · 共 694 行 · 第 1/2 页

C
694
字号
	for (k = 0; k< 100; k++)
	{
		
		fill_rand(asRx, STD_FR_SZ, 4000);
		dtmf_move_data_in (&DtmfDbC, &DtmfScC, asRx);
		dtmf_filter_2k (&DtmfDbC, &DtmfScC);
		dtmf_filter_lo (&DtmfDbC, &DtmfScC);
		dtmf_filter_hi (&DtmfDbC, &DtmfScC);
		memcpy(&DtmfDbA, &DtmfDbC, sizeof(DtmfDbC));
		memcpy(&DtmfScA, &DtmfScC, sizeof(DtmfScC));
		
		dtmf_filter_dial (&DtmfDbA, &DtmfScA);
		dtmf_filter_dialC(&DtmfDbC, &DtmfScC);
		if(compare_sc()) sErr++;
		if(compare_db()) sErr++;
	}
#elif (DBG_IT == 9)
	for (k = 0; k< 100; k++)
	{
		
		fill_rand(asRx, STD_FR_SZ, 4000);
		dtmf_move_data_in (&DtmfDbC, &DtmfScC, asRx);
		dtmf_filter_2k (&DtmfDbC, &DtmfScC);
		dtmf_filter_lo (&DtmfDbC, &DtmfScC);
		dtmf_filter_hi (&DtmfDbC, &DtmfScC);
		dtmf_filter_dial (&DtmfDbC, &DtmfScC);
		memcpy(&DtmfDbA, &DtmfDbC, sizeof(DtmfDbC));
		memcpy(&DtmfScA, &DtmfScC, sizeof(DtmfScC));
		
		dtmf_dft_lo_main (&DtmfDbA, &DtmfScA);
		dtmf_dft_lo_mainC(&DtmfDbC, &DtmfScC);
		if(compare_sc()) sErr++;
		if(compare_db()) sErr++;
	}
#elif (DBG_IT == 10)
	for (k = 0; k< 100; k++)
	{
		
		fill_rand(asRx, STD_FR_SZ, 4000);
		dtmf_move_data_in (&DtmfDbC, &DtmfScC, asRx);
		dtmf_filter_2k (&DtmfDbC, &DtmfScC);
		dtmf_filter_lo (&DtmfDbC, &DtmfScC);
		dtmf_filter_hi (&DtmfDbC, &DtmfScC);
		dtmf_filter_dial (&DtmfDbC, &DtmfScC);
		dtmf_dft_lo_main (&DtmfDbC, &DtmfScC);
		DtmfScC.sLoFreqNo = rand() % 4;
		memcpy(&DtmfDbA, &DtmfDbC, sizeof(DtmfDbC));
		memcpy(&DtmfScA, &DtmfScC, sizeof(DtmfScC));
		
		dtmf_dft_lo_dev (&DtmfDbA, &DtmfScA);
		dtmf_dft_lo_devC(&DtmfDbC, &DtmfScC);
		if(compare_sc()) sErr++;
		if(compare_db()) sErr++;
	}
#elif (DBG_IT == 11)
	for (k = 0; k< 100; k++)
	{
		
		fill_rand(asRx, STD_FR_SZ, 4000);
		dtmf_move_data_in (&DtmfDbC, &DtmfScC, asRx);
		dtmf_filter_2k (&DtmfDbC, &DtmfScC);
		dtmf_filter_lo (&DtmfDbC, &DtmfScC);
		dtmf_filter_hi (&DtmfDbC, &DtmfScC);
		dtmf_filter_dial (&DtmfDbC, &DtmfScC);
		memcpy(&DtmfDbA, &DtmfDbC, sizeof(DtmfDbC));
		memcpy(&DtmfScA, &DtmfScC, sizeof(DtmfScC));
		
		dtmf_dft_hi_main (&DtmfDbA, &DtmfScA);
		dtmf_dft_hi_mainC(&DtmfDbC, &DtmfScC);
		if(compare_sc()) sErr++;
		if(compare_db()) sErr++;
	}
#elif (DBG_IT == 12)
	for (k = 0; k< 100; k++)
	{
		
		fill_rand(asRx, STD_FR_SZ, 4000);
		dtmf_move_data_in (&DtmfDbC, &DtmfScC, asRx);
		dtmf_filter_2k (&DtmfDbC, &DtmfScC);
		dtmf_filter_lo (&DtmfDbC, &DtmfScC);
		dtmf_filter_hi (&DtmfDbC, &DtmfScC);
		dtmf_filter_dial (&DtmfDbC, &DtmfScC);
		dtmf_dft_lo_main (&DtmfDbC, &DtmfScC);
		DtmfScC.sHiFreqNo = rand() % 4;
		memcpy(&DtmfDbA, &DtmfDbC, sizeof(DtmfDbC));
		memcpy(&DtmfScA, &DtmfScC, sizeof(DtmfScC));
		
		dtmf_dft_hi_dev (&DtmfDbA, &DtmfScA);
		dtmf_dft_hi_devC(&DtmfDbC, &DtmfScC);
		if(compare_sc()) sErr++;
		if(compare_db()) sErr++;
	}
#elif (DBG_IT == 13)
	for (k = 0; k< 100; k++)
	{
		
		fill_rand(asRx, STD_FR_SZ, 4000);
		dtmf_move_data_in (&DtmfDbC, &DtmfScC, asRx);
		dtmf_filter_2k (&DtmfDbC, &DtmfScC);
		dtmf_filter_lo (&DtmfDbC, &DtmfScC);
		dtmf_filter_hi (&DtmfDbC, &DtmfScC);
		dtmf_filter_dial (&DtmfDbC, &DtmfScC);
		dtmf_dft_lo_main (&DtmfDbC, &DtmfScC);
		DtmfScC.sLoFreqNo = rand() % 4;
		dtmf_dft_lo_dev (&DtmfDbC, &DtmfScC);
		memcpy(&DtmfDbA, &DtmfDbC, sizeof(DtmfDbC));
		memcpy(&DtmfScA, &DtmfScC, sizeof(DtmfScC));
		
		dtmf_freq_lo (&DtmfDbA, &DtmfScA);
		dtmf_freq_loC(&DtmfDbC, &DtmfScC);
		if(compare_sc()) sErr++;
		if(compare_db()) sErr++;
	}
#elif (DBG_IT == 14)
	for (k = 0; k< 100; k++)
	{
		
		fill_rand(asRx, STD_FR_SZ, 4000);
		dtmf_move_data_in (&DtmfDbC, &DtmfScC, asRx);
		dtmf_filter_2k (&DtmfDbC, &DtmfScC);
		dtmf_filter_lo (&DtmfDbC, &DtmfScC);
		dtmf_filter_hi (&DtmfDbC, &DtmfScC);
		dtmf_filter_dial (&DtmfDbC, &DtmfScC);
		dtmf_dft_hi_main (&DtmfDbC, &DtmfScC);
		DtmfScC.sHiFreqNo = rand() % 4;
		dtmf_dft_hi_dev (&DtmfDbC, &DtmfScC);
		memcpy(&DtmfDbA, &DtmfDbC, sizeof(DtmfDbC));
		memcpy(&DtmfScA, &DtmfScC, sizeof(DtmfScC));
		
		dtmf_freq_hi (&DtmfDbA, &DtmfScA);
		dtmf_freq_hiC(&DtmfDbC, &DtmfScC);
		if(compare_sc()) sErr++;
		if(compare_db()) sErr++;
	}
#elif (DBG_IT == 15)
	for (k = 0; k< 100; k++)
	{
		
		fill_rand(asRx, STD_FR_SZ, 4000);
		dtmf_move_data_in (&DtmfDbC, &DtmfScC, asRx);
		dtmf_filter_2k (&DtmfDbC, &DtmfScC);
		dtmf_filter_lo (&DtmfDbC, &DtmfScC);
		dtmf_filter_hi (&DtmfDbC, &DtmfScC);
		dtmf_filter_dial (&DtmfDbC, &DtmfScC);
		dtmf_dft_lo_main (&DtmfDbC, &DtmfScC);
		fill_rand(DtmfScC.asLoMainEn, 4, 5000);
		memcpy(&DtmfDbA, &DtmfDbC, sizeof(DtmfDbC));
		memcpy(&DtmfScA, &DtmfScC, sizeof(DtmfScC));
		
		dtmf_sort_lo (&DtmfDbA, &DtmfScA);
		dtmf_sort_loC(&DtmfDbC, &DtmfScC);
		if(compare_sc()) sErr++;
		if(compare_db()) sErr++;
	}
#elif (DBG_IT == 16)
	for (k = 0; k< 100; k++)
	{
		
		fill_rand(asRx, STD_FR_SZ, 4000);
		dtmf_move_data_in (&DtmfDbC, &DtmfScC, asRx);
		dtmf_filter_2k (&DtmfDbC, &DtmfScC);
		dtmf_filter_lo (&DtmfDbC, &DtmfScC);
		dtmf_filter_hi (&DtmfDbC, &DtmfScC);
		dtmf_filter_dial (&DtmfDbC, &DtmfScC);
		dtmf_dft_hi_main (&DtmfDbC, &DtmfScC);
		fill_rand(DtmfScC.asHiMainEn, 4, 5000);
		memcpy(&DtmfDbA, &DtmfDbC, sizeof(DtmfDbC));
		memcpy(&DtmfScA, &DtmfScC, sizeof(DtmfScC));
		
		dtmf_sort_hi (&DtmfDbA, &DtmfScA);
		dtmf_sort_hiC(&DtmfDbC, &DtmfScC);
		if(compare_sc()) sErr++;
		if(compare_db()) sErr++;
	}
#elif (DBG_IT == 17)
	for (k = 0; k< 100; k++)
	{
		
		fill_rand(asRx, STD_FR_SZ, 4000);
		dtmf_move_data_in (&DtmfDbC, &DtmfScC, asRx);
		memcpy(&DtmfDbA, &DtmfDbC, sizeof(DtmfDbC));
		memcpy(&DtmfScA, &DtmfScC, sizeof(DtmfScC));
		
		dtmf_frame_en (&DtmfDbA, &DtmfScA);
		dtmf_frame_enC(&DtmfDbC, &DtmfScC);
		if(compare_sc()) sErr++;
		if(compare_db()) sErr++;
	}
#elif (DBG_IT == 18)
	for (k = 0; k< 100; k++)
	{
		
		fill_rand(asRx, STD_FR_SZ, 4000);
		dtmf_move_data_in 	(&DtmfDbA, &DtmfScA, asRx);
		dtmf_move_data_inC 	(&DtmfDbC, &DtmfScC, asRx);
		
		dtmf_2k_filter   	(&DtmfDbA, &DtmfScA);
		dtmf_2k_filterC   	(&DtmfDbC, &DtmfScC);
		
		dtmf_lo_filter   	(&DtmfDbA, &DtmfScA);
		dtmf_lo_filterC   	(&DtmfDbC, &DtmfScC);
		
		dtmf_hi_filter   	(&DtmfDbA, &DtmfScA);
		dtmf_hi_filterC   	(&DtmfDbC, &DtmfScC);
		
		DtmfScA.sSumEn   = 	dtmf_en2log(DtmfScA.slLoBpEn + DtmfScA.slHiBpEn);
    	DtmfDbA.v.asSumEn[0] = DtmfScA.sSumEn;
		
		DtmfScC.sSumEn   = 	dtmf_en2logC(DtmfScC.slLoBpEn + DtmfScC.slHiBpEn);
    	DtmfDbC.v.asSumEn[0] = DtmfScC.sSumEn;
		
		dtmf_dial_filter 	(&DtmfDbA, &DtmfScA);
		dtmf_dial_filterC 	(&DtmfDbC, &DtmfScC);
		
		dtmf_lo_dft_main 	(&DtmfDbA, &DtmfScA);
		dtmf_lo_dft_mainC 	(&DtmfDbC, &DtmfScC);
		
		dtmf_lo_sort     	(&DtmfDbA, &DtmfScA);
		dtmf_lo_sortC     	(&DtmfDbC, &DtmfScC);
		
		dtmf_lo_dft_dev  	(&DtmfDbA, &DtmfScA);
		dtmf_lo_dft_devC  	(&DtmfDbC, &DtmfScC);
		
		dtmf_lo_freq     	(&DtmfDbA, &DtmfScA);
		dtmf_lo_freqC     	(&DtmfDbC, &DtmfScC);
		
		dtmf_hi_dft_main 	(&DtmfDbA, &DtmfScA);
		dtmf_hi_dft_mainC 	(&DtmfDbC, &DtmfScC);
		
		dtmf_hi_sort     	(&DtmfDbA, &DtmfScA);
		dtmf_hi_sortC     	(&DtmfDbC, &DtmfScC);
		
		dtmf_hi_dft_dev  	(&DtmfDbA, &DtmfScA);
		dtmf_hi_dft_devC  	(&DtmfDbC, &DtmfScC);
		
		dtmf_hi_freq     	(&DtmfDbA, &DtmfScA);
		dtmf_hi_freqC     	(&DtmfDbC, &DtmfScC);
		
		dtmf_frame_en 	 	(&DtmfDbA, &DtmfScA);
		dtmf_frame_enC 	 	(&DtmfDbC, &DtmfScC);
		
//		_test				(&DtmfDbA, &DtmfScA);
//		_test				(&DtmfDbC, &DtmfScC);

		dtmf_move_data_out 	(&DtmfDbA, &DtmfScA);
		dtmf_move_data_outC	(&DtmfDbC, &DtmfScC);
		
//		sA = dtmf_state_machine 	(&DtmfDbA, &DtmfScA);	
//		sC = dtmf_state_machine 	(&DtmfDbC, &DtmfScC);	
		
//		if (sA - sC) sErr++;
		if(compare_sc()) sErr++;
		if(compare_db()) sErr++;
	}
#elif (DBG_IT == 19)
	for (k = 0; k< 100; k++)
	{
		
		fill_rand(asRx, STD_FR_SZ, 4000);
		dtmf_move_data_in 	(&DtmfDbC, &DtmfScC, asRx);
		dtmf_filter_2k   	(&DtmfDbC, &DtmfScC);
		dtmf_filter_lo   	(&DtmfDbC, &DtmfScC);
		dtmf_filter_hi   	(&DtmfDbC, &DtmfScC);
		dtmf_filter_dial 	(&DtmfDbC, &DtmfScC);
		dtmf_dft_lo_main 	(&DtmfDbC, &DtmfScC);
		dtmf_sort_lo     	(&DtmfDbC, &DtmfScC);
		dtmf_dft_lo_dev  	(&DtmfDbC, &DtmfScC);
		dtmf_freq_lo     	(&DtmfDbC, &DtmfScC);
		
		dtmf_dft_hi_main 	(&DtmfDbC, &DtmfScC);
		dtmf_sort_hi     	(&DtmfDbC, &DtmfScC);
		dtmf_dft_hi_dev  	(&DtmfDbC, &DtmfScC);
		dtmf_freq_hi     	(&DtmfDbC, &DtmfScC);
		dtmf_frame_en 	 	(&DtmfDbC, &DtmfScC);
		memcpy(&DtmfDbA, &DtmfDbC, sizeof(DtmfDbC));
		memcpy(&DtmfScA, &DtmfScC, sizeof(DtmfScC));
		
		dtmf_move_data_out (&DtmfDbA, &DtmfScA);
		dtmf_move_data_outC(&DtmfDbC, &DtmfScC);
		if(compare_sc()) sErr++;
		if(compare_db()) sErr++;
	}
#elif (DBG_IT == 20)

    DTMF_MIKET_init_db(&DtmfDbA, (IDTMF_tCfg *)&IDTMF_MIKET_DefaultCfg);
    TG_MIKET_init(&TgDb);
	tg_config_tone();

	for (k = 0; k < _RUN_SZ; k++)
	{
		S16 sState;
		
		fill_rand(asRx, STD_FR_SZ, 1000);
		sState = TG_MIKET_process(&TgDb, &TgSc, asRx); 
		if (sState == 0)
		{
			tg_config_tone();
		}
		memset(&DtmfScA, 0, sizeof(DtmfScA));
		asReply[k] = DTMF_MIKET_process(&DtmfDbA, &DtmfScA, asRx);
	}
#elif (DBG_IT == 102)
/*	DTMF_create(&DtmfDbA);
	DTMF_create(&DtmfDbC); */

	dtmf_config();

    DTMF_MIKET_init_db(&DtmfDbA, &DtmfCfg);
    DTMF_MIKET_init_db(&DtmfDbC, &DtmfCfg); 
//    DtmfStatus.pCfg = &DtmfCfg;
//    DTMF_MIKET_control(&DtmfDbA, IDTMF_CMD_CFG, &DtmfStatus);
//    DTMF_MIKET_control(&DtmfDbC, IDTMF_CMD_CFG, &DtmfStatus);
    
    TG_MIKET_init(&TgDb);
	tg_config_tone();

	for (k = 0; k < DTMF_RUN_SZ; k++)
	{
		S16 sState;
		
		fill_rand(asRx, STD_FR_SZ, 1000);
		sState = TG_MIKET_process(&TgDb, &TgSc, asRx); 
		if (sState == 0)
		{
			tg_config_tone();
		}
		memset(&DtmfScA, 0, sizeof(DtmfScA));
		memset(&DtmfScC, 0, sizeof(DtmfScC));
		DTMF_MIKET_processC(&DtmfDbC, &DtmfScC, asRx);   
		asReply[k] = DTMF_MIKET_process(&DtmfDbA, &DtmfScA, asRx);

		if(compare_db()) sErr++;
		if(compare_sc()) sErr++; 
		
	}
#elif (DBG_IT == 103)
#endif
	stop_asm();	
	{
		for(;;)
		{
			slCntr++;
			dtmf_en2log(slCntr);
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?