📄 transflow.bak
字号:
#include <reg51.h>
#include <absacc.h>
extern unsigned char xdata send_liul[32],send_occ[32];
extern unsigned int xdata loop_ratio[32];
extern unsigned char xdata T;
extern unsigned int xdata data_address;
extern unsigned int xdata address;
extern unsigned int xdata tr_flagaddr;
trans_volum()
{
unsigned char i;
data_address=XBYTE[0XA021]<<8+XBYTE[0XA022]+1;
address=data_address;
data_address=data_address+70; //应答数据长度1字节
if(data_address>0xa07f0)data_address=data_address-0xa7f0+0xa080;
while((XBYTE[0xa023]==0)&&(XBYTE[0xa024]==1)){}; //等待FGPA修改头尾
XBYTE[0xa023]=0x01; //CPU修改头尾
XBYTE[0xa024]=0X00;
data_address=(XBYTE[0XA021]<<8)+XBYTE[0XA022]+1;
address=data_address;
data_address=data_address+70; //应答数据长度1字节
if(data_address>0xa07f0)data_address=data_address-0x7f0+0x80;
data_address--;
XBYTE[0XA021]=data_address>>8; //
XBYTE[0XA022]=data_address;
XBYTE[0XA023]=0X00; //CPU修改头尾结束
XBYTE[0XA024]=0X00;
for(i=0;i<6;i++){
tr_flagaddr=0XA030+5*i;
if(XBYTE[tr_flagaddr]==0x87)break;
}
XBYTE[tr_flagaddr+1]=address>>8; //发送数据的首地址
XBYTE[tr_flagaddr+2]=address;
XBYTE[tr_flagaddr+3]=data_address>>8; //发送数据的尾地址
XBYTE[tr_flagaddr+4]=data_address;
address=address+0xa000; //发送应答数据
XBYTE[address]=0XFD; //
address++;
XBYTE[address]=XBYTE[0XC008];
address++;
XBYTE[address]=XBYTE[0XC007];
address++;
XBYTE[address]=XBYTE[0XC004];
address++;
XBYTE[address]=XBYTE[0XC002];
address++;
XBYTE[address]=XBYTE[0XC000];
address++;
for(i=0;i<32;i++){
XBYTE[address+i]=send_liul[i]; //发送流量
address++;
send_occ[i]=(loop_ratio[i]*10/1000)/T;
XBYTE[address+i]=send_occ[i]; //发送占有率
}
XBYTE[tr_flagaddr]=0x01;
for(i=0;i<32;i++){
send_liul[i]=0;
send_occ[i]=0;
loop_ratio[i]=0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -