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

📄 brxint0.c

📁 这是tms320f28***语音录放程序.
💻 C
字号:
//#include "init_5409.h"    
#include "mmdrv.h"        
#include "delay.h"
extern int flag_tx_re; 
extern int addr;     
extern unsigned int data_buf[5];  
extern unsigned int ping_buf[80];
extern unsigned int pong_buf[80]; 
unsigned int *bufptr=0;  
unsigned int dec_buf[80];
unsigned int input_add=0; 
unsigned int output_add=0;  

extern unsigned int outbuf[0x6000];   
extern unsigned int out_ping[80]; 
extern unsigned int out_pong[80];


unsigned int enc_flag=0; 
unsigned int rl_flag=0;
void init_tx_interrupt()   //transmit interrupt
{
 	IMR =0x20;			//bxint0=bit5=1 brint0=bit4=0
	asm("\trsbx\tintm ");

}    

void init_re_interrupt()   //receive interrupt
{
 	IMR =0x10;			//bxint0=bit5=0 brint0=bit4=1
	asm("\trsbx\tintm ");

} 
void stop_interrupt()   //receive interrupt
{
 	IMR =0x00;			//bxint0=bit5=0 brint0=bit4=0
	asm("\tssbx\tintm ");

}    
interrupt void BRINT0_isr()
{
int i;   
static unsigned int tx_count=0;
         MCBSP0_DXR1=0xaaaa;     /* DXR1 = txdata */ 
#if 1
     if(input_add==0)
     {
  
 	    ping_buf[flag_tx_re] = MCBSP0_DRR1;
	    MCBSP0_DXR1 = ping_buf[flag_tx_re]; 	      
 	     rl_flag++;
 	     if(rl_flag&1)
 	       flag_tx_re++ ;    
 	   if(flag_tx_re==640)
	   {  
	     bufptr=ping_buf; 
	     flag_tx_re=0;   
	     input_add = 1;
	     enc_flag=1;  
	     
	   }   
    }   
    else
    {
 	    pong_buf[flag_tx_re] = MCBSP0_DRR1;           
 	    MCBSP0_DXR1 = pong_buf[flag_tx_re];  
 	    rl_flag++;
 	    if(rl_flag&1)
 	      flag_tx_re++ ;    
 	  if(flag_tx_re==640)
	  {
	    bufptr=pong_buf;
	    flag_tx_re=0; 
	    input_add = 0;
	    enc_flag=1;  
	  }   
   }      
#endif
}

interrupt void BXINT0_isr()
{
int i=0;     
static unsigned int count =0;
static unsigned int baseaddress =0; 
input_add=0;

#if 1    
//	  MCBSP0_DXR1=0xaaaa;  
    if(output_add==0)
     {
 	   MCBSP0_DXR1 = ping_buf[flag_tx_re];  
 	   rl_flag++;
 	   if(rl_flag&1)
 	     flag_tx_re++ ;    
 	   if(flag_tx_re==80)
	   {  
	     flag_tx_re=0; 
	     output_add = 1;   
	     enc_flag=1;  
	     
	   }   
    }   
    else
    {
 	  MCBSP0_DXR1=pong_buf[flag_tx_re] ; 
 	  rl_flag++;
 	  if(rl_flag&1)
 	    flag_tx_re++ ;     
 	  if(flag_tx_re==80)
	  {
	    flag_tx_re=0; 
	    output_add = 0; 
	    enc_flag=1;  
	  }   
   }      

#endif     
#if 0
		i = get_code(0x28000L+addr);
        MCBSP0_DXR1=i;     /* DXR1 = txdata */ 
        count++;
        if(!(count&1))
	    addr++;     
#endif
}

⌨️ 快捷键说明

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