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

📄 main.c

📁 dsp的定时器
💻 C
字号:
#include "stdio.h"

#define TIM (int*)0x24
#define PRD (int*)0x25
#define TCR (int*)0x26
#define IMR (int*)0x0
#define ST1 (int*)0x7

#define DTMF_YES (int *)0x400  //表示有DTMF信号产生
#define DTMF_NUM (int *)0x401  //表示所产生的DTMF的值
#define HZ450_YES (int *)0x402 //表示有450HZ的电信信号产生
#define HZ450_KIND (int *)0x403 //表示产生的电信信号的种类

#define busytone 5    //忙音


int SPACE_450=0;
int SPACE_DTMF=0;
int temp450=0;
int tempdtmf=0;
int one450=0;
int zero450=0;
int onedtmf=0;                                                                
int zerodtmf=0;
int sect=0; 



/////////////////////   
intr_g_enable()
{
 	asm("\tRSBX	INTM");
}
///////////////////////
intr_g_disable()
{
	asm("\tSSBX	INTM");
}
///////////////////////////////
void interrupter_Initial(void) 
{   
        *IMR = 0x8;
        intr_g_enable();
} 
///////////////////////////////////////
void CLK_Initial()
{
       *PRD = 0xffff;
       
}

void CLK_Enable()
{
        *TCR = 0xfef;
}

void main()
{
	CLK_Initial();
	interrupter_Initial();
	CLK_Enable();
}

interrupt void My_Clk_ISR()
{
	SPACE_450 = *HZ450_YES;
	SPACE_DTMF = *DTMF_YES;
	/////////////////////////// 
	if(SPACE_450==1)
		one450 = one450+1;
	else if(SPACE_450==0)
		zero450 = zero450+1; 
	///	
	if(SPACE_DTMF==1)
		onedtmf = onedtmf+1;
	else if(SPACE_DTMF==0)
		zerodtmf = zerodtmf+1;
	/// 	
	if(temp450!=SPACE_450)
	{     
		sect++;
		if(sect==2)
		{
			if(one450>33&&one450<37&&zero450>33&&zero450<37)//busy tone
				*HZ450_KIND = busytone;
				
			//其他电信信号 ......			
		    
		    sect=0;
		}  
		 
	}
		
       		
      
////////////////////////// 
temp450 = SPACE_450;
tempdtmf = SPACE_DTMF; 
	   
/*end of timer isr*/
} 

                    
                    

⌨️ 快捷键说明

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