|
楼主 |
发表于 2006-6-20 13:34:30
|
显示全部楼层
数据初始化,帮助函数
const unsigned char Tone_K = TONE_K;
const unsigned char Tone_Y2 = TONE_Y2;
////////////////////////////////////////////////////////////////
// InitDTMFGenerator
// 初始化音调发生器。
//
// 输入参数: 无
// 返回值: 无
//
// 注释:
//
////////////////////////////////////////////////////////////////
void InitDTMFGenerator( void )
{
bEnableGen = DISABLE;
k[0] = k[1] = 0;
y1[0] = y1[1] = 128;
y2[0] = y2[1] = 128;
bEnableGen = ENABLE;
}
////////////////////////////////////////////////////////////////
// SendDTMF
// 发送DTMF信号。
//
// 输入参数: code 发送的符号,1-10代表数字1-9,0,11=*,
// 12=#,13-15=ABC,0=D,其他则关闭DTMF信号。
// 也可以直接输入字符'0'-'9','*','#','A'-'D'
// 其他值则关闭发送
// 返回值: 无
//
// 注意:二进制0发送DTMF信号'D',二进制10才发送信号'0'。
//
////////////////////////////////////////////////////////////////
void SendDTMF( unsigned char code ) // Code = D1234567890*#ABC ~0-15
{
static const unsigned char aCodeMap[] = "D1234567890*#ABC";
static const unsigned char K_L[] = { K_L4, K_L1, K_L1, K_L1, K_L2, K_L2, K_L2, K_L3, K_L3, K_L3, K_L4, K_L4, K_L4, K_L1, K_L2, K_L3, 0 };
static const unsigned char Y2L[] = { Y2L4, Y2L1, Y2L1, Y2L1, Y2L2, Y2L2, Y2L2, Y2L3, Y2L3, Y2L3, Y2L4, Y2L4, Y2L4, Y2L1, Y2L2, Y2L3, 128 };
static const unsigned char K_H[] = { K_H4, K_H1, K_H2, K_H3, K_H1, K_H2, K_H3, K_H1, K_H2, K_H3, K_H2, K_H1, K_H3, K_H4, K_H4, K_H4, 0 };
static const unsigned char Y2H[] = { Y2H4, Y2H1, Y2H2, Y2H3, Y2H1, Y2H2, Y2H3, Y2H1, Y2H2, Y2H3, Y2H2, Y2H1, Y2H3, Y2H4, Y2H4, Y2H4, 128 };
unsigned char n;
if( code < 16 )
{
n = code;
}
else
{
for( n = 0; n < 16; ++n )
{
if( code == aCodeMap[ n ] )
break;
}
}
bEnableGen = DISABLE;
k[0] = K_L[ n ];
k[1] = K_H[ n ];
y2[0]= Y2L[ n ];
y2[1]= Y2H[ n ];
y1[0] = y1[1] = 128;
bEnableGen = ENABLE;
}
////////////////////////////////////////////////////////////////
// SendTone
// 发送单音信号
//
// 输入参数: tone 当tone=ENABLE时,发送450Hz的单音信号,
// 其他值则关闭发送。
// 返回值: 无
//
// 注释:
//
////////////////////////////////////////////////////////////////
void SendTone( unsigned char tone )
{
bEnableGen = DISABLE;
if( tone == ENABLE )
{
k[0] = Tone_K;
y2[0] = Tone_Y2;
}
else
{
k[0] = 0;
y2[0] = 128;
}
y1[0] = 128;
k[1] = 0;
y2[1] = 128;
y1[1] = 128;
bEnableGen = ENABLE;
}
-----此内容被mored于2006-06-20,13:38:04编辑过 |
|