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 + -
显示快捷键?