?? brxint0.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 + -