📄 dtmf.cpp
字号:
}
// find max value of low freq
for (low_freq = 0, i = 1; i < 4; i ++)
{
if (s_dtmf_real[i] > s_dtmf_real[low_freq])
{
low_freq = i;
}
}
// find max value of high freq
for (high_freq = 4, i = 5; i < 8; i ++)
{
if (s_dtmf_real[i] > s_dtmf_real[high_freq])
{
high_freq = i;
}
}
// clean up for continuous decoding
s_dtmf_p = 0;
memset(s_dtmf_real, 0, 32);
memset(s_dtmf_image, 0, 32);
// combine low and high frequency and decode out dtmf code
if ((low_freq == 0) && (high_freq == 4))
{
return '1';
}
else if ((low_freq == 0) && (high_freq == 5))
{
return '2';
}
else if ((low_freq == 0) && (high_freq == 6))
{
return '3';
}
else if ((low_freq == 0) && (high_freq == 7))
{
return 'A';
}
else if ((low_freq == 1) && (high_freq == 4))
{
return '4';
}
else if ((low_freq == 1) && (high_freq == 5))
{
return '5';
}
else if ((low_freq == 1) && (high_freq == 6))
{
return '6';
}
else if ((low_freq == 1) && (high_freq == 7))
{
return 'B';
}
else if ((low_freq == 2) && (high_freq == 4))
{
return '7';
}
else if ((low_freq == 2) && (high_freq == 5))
{
return '8';
}
else if ((low_freq == 2) && (high_freq == 6))
{
return '9';
}
else if ((low_freq == 2) && (high_freq == 7))
{
return 'C';
}
else if ((low_freq == 3) && (high_freq == 4))
{
return '*';
}
else if ((low_freq == 3) && (high_freq == 5))
{
return '0';
}
else if ((low_freq == 3) && (high_freq == 6))
{
return '#';
}
else if ((low_freq == 3) && (high_freq == 7))
{
return 'D';
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -