⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dtmf_enc.c

📁 双音多频的DTMF信号编码程序(产生DTMF信号进行编码)
💻 C
字号:
/* In general:
*******************************************************                                         
*   DEQ:    y(n) = 2*cos(2pi*f/fs)*y(n-1) - y(n-2)    *
*   I.C.:   y(-1) = 0                                 *
*           y(-2) = -A*sin(2pi*f/fs)                  *
*   where   A  = desired amplitude of sine wave       *
*           f  = desired frequency of sine wave       *
*           fs = sampling frequency 16K               *
*                                                     *
* Example:                                            *
*       .word    cos(2pi*f/fs)*32768      ;coefficient*
*       .word    0			      ;y(-1)      *
*       .word    -A*sin(2pi*f/fs)*32768	;y(-2)      *
*                                                     *
*******************************************************
*/
#define MCBSP1_ADDR              0x0049;
#define MCBSP1_DRR               *(volatile unsigned int *)(MCBSP1_ADDR+0x00);
#define MCBSP1_DXR               *(volatile unsigned int *)(MCBSP1_ADDR+0x02);
#define MCBSP1_SPCR              *(volatile unsigned int *)(MCBSP1_ADDR+0x04);
#define MCBSP1_RCR               *(volatile unsigned int *)(MCBSP1_ADDR+0x06);
#define MCBSP1_XCR               *(volatile unsigned int *)(MCBSP1_ADDR+0x08);
#define MCBSP1_SRGR              *(volatile unsigned int *)(MCBSP1_ADDR+0x0A);
#define MCBSP1_MCR               *(volatile unsigned int *)(MCBSP1_ADDR+0x0B);
#define MCBSP1_RCER              *(volatile unsigned int *)(MCBSP1_ADDR+0x0C);
#define MCBSP1_XCER              *(volatile unsigned int *)(MCBSP1_ADDR+0x0D);
#define MCBSP1_PCR               *(volatile unsigned int *)(MCBSP1_ADDR+0x0E);

int	TblTone[24]={27978,0,-17056,489,0,-152,484,0,-168,477,0,-185,455,0,-234,443,0,-256,428,0,-297,410,0,-306};
DTMF_enc()
{
	int	i,j;
	long	m;
	int	*pTblTone;
	pTblTone=TblTone;
	MCBSP1_PCR=0xffef;
	for(;;)
	{
		i=*pTblTone;
 		m=((long)*pTblTone)*((long)*(pTblTone+1));
		j=(int)(m>>15);
		i=j*2-*(pTblTone+2);
		*(pTblTone+2)=*(pTblTone+1);
		*(pTblTone+1)=i;
	}
}
	
	
	
	
	



⌨️ 快捷键说明

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