📄 analy.c
字号:
}
}while(getpidflag==0);
}
void caculaterate()
{
int i;
num1=0;
num2=0;
num3=0;
num4=0;
timer=0;
siaddr=0x9010;
tempdata=0;
for(i=0;i<0x60;i++)
{
DtoP(siaddr++,&tempdata,0);
}
loaddata();
halfflag=porte006; //读取半满标志
for(;;) //判断IN_FIFO是否半满
{ //值为0x0040时未半满
//半满时读取
halfflag=porte006;
if(halfflag!=0x0040)
break;
}
{
asm (" STM #0x34,TCR ");
//asm (" STM #0x7cff,PRD ");
asm (" STM #0x0f9ff,PRD ");
asm (" STM #0x24,TCR ");
asm (" STM #0x0FFFF,IFR ");
asm (" STM #0x0008,IMR ");
////*TCR=0x34; //设定计时器计时1ms
////*PRD=0x16; //开中断
////*TCR=0x24; //计数开始
////*IFR=0xffff;
////*IMR=0x0008;
asm (" RSBX INTM ");
}
while(timer<1000)
{//while
halfflag=porte006; //读取半满标志
for(;;) //判断IN_FIFO是否半满
{ //值为0x0040时未半满
//半满时读取
halfflag=porte006;
if(halfflag!=0x0040)
break;
}
resetfifo();
for(;;) //读取同步
{
receiveTS[0]=port00;
receiveTS[0]=receiveTS[0]&0x80ff;
if(receiveTS[0]==0x8047)
break;
}
readin();
pid=getpid(receiveTS[1],receiveTS[2]);
num4++; //总码率
if(pid!=0x1fff)
{//if
//first
/*
if ((pid==ramdata[0x0])||
(pid==ramdata[0x1])||
(pid==ramdata[0x2])||
(pid==ramdata[0x3])||
(pid==ramdata[0x4])||
(pid==ramdata[0x5])||
(pid==ramdata[0x6])||
(pid==ramdata[0x7])||
(pid==ramdata[0x8])||
(pid==ramdata[0x9]))
{
num1++;
}
if ((pid==ramdata[0x10])||
(pid==ramdata[0x11])||
(pid==ramdata[0x12])||
(pid==ramdata[0x13])||
(pid==ramdata[0x14])||
(pid==ramdata[0x15])||
(pid==ramdata[0x16])||
(pid==ramdata[0x17])||
(pid==ramdata[0x18])||
(pid==ramdata[0x19]))
{
num2++;
}
if ((pid==ramdata[0x20])||
(pid==ramdata[0x21])||
(pid==ramdata[0x22])||
(pid==ramdata[0x23])||
(pid==ramdata[0x24])||
(pid==ramdata[0x25])||
(pid==ramdata[0x26])||
(pid==ramdata[0x27])||
(pid==ramdata[0x28])||
(pid==ramdata[0x29]))
{
num3++;
}
if ((pid==ramdata[0x30])||
(pid==ramdata[0x31])||
(pid==ramdata[0x32])||
(pid==ramdata[0x33])||
(pid==ramdata[0x34])||
(pid==ramdata[0x35])||
(pid==ramdata[0x36])||
(pid==ramdata[0x37])||
(pid==ramdata[0x38])||
(pid==ramdata[0x39]))
{
num4++;
} */
//second
/*
if ((pid==ramdata[0x0])||
(pid==ramdata[0x1])||
(pid==ramdata[0x2])||
(pid==ramdata[0x3])||
(pid==ramdata[0x4]))
{
num1++;
}
if ((pid==ramdata[0x10])||
(pid==ramdata[0x11])||
(pid==ramdata[0x12])||
(pid==ramdata[0x13]))
{
num2++;
}
if ((pid==ramdata[0x20])||
(pid==ramdata[0x21])||
(pid==ramdata[0x22])||
(pid==ramdata[0x23]))
{
num3++;
}
if ((pid==ramdata[0x30])||
(pid==ramdata[0x31])||
(pid==ramdata[0x32])||
(pid==ramdata[0x33]))
{
num4++;
} */
//third
if ((pid==ramdata[0x0])||
(pid==ramdata[0x1])||
(pid==ramdata[0x2])||
(pid==ramdata[0x3])||
(pid==ramdata[0x4])||
(pid==ramdata[0x5])||
(pid==ramdata[0x6])||
(pid==ramdata[0x7])||
(pid==ramdata[0x8])||
(pid==ramdata[0x9]))
{
num1++;
}
if ((pid==ramdata[0x10])||
(pid==ramdata[0x11])||
(pid==ramdata[0x12])||
(pid==ramdata[0x13])||
(pid==ramdata[0x14])||
(pid==ramdata[0x15])||
(pid==ramdata[0x16])||
(pid==ramdata[0x17])||
(pid==ramdata[0x18])||
(pid==ramdata[0x19]))
{
num2++;
}
if ((pid==ramdata[0x20])||
(pid==ramdata[0x21])||
(pid==ramdata[0x22])||
(pid==ramdata[0x23])||
(pid==ramdata[0x24])||
(pid==ramdata[0x25])||
(pid==ramdata[0x26])||
(pid==ramdata[0x27])||
(pid==ramdata[0x28])||
(pid==ramdata[0x29]))
{
num3++;
}
}//if
}//while
{
asm (" STM #0x34,TCR "); //停止计时器计时
asm (" RSBX INTM "); //所有中断被禁止
}
tempdata=0;
DtoP(0x8002,&tempdata,0); //修改上传下传标志
DtoP(0x8004,&tempdata,0);
tempdata=1;
DtoP(0x9002,&tempdata,0);
tempdata=2;
DtoP(0x9004,&tempdata,0);
DtoP(0x9011,&num1,0);
DtoP(0x9012,&num2,0);
DtoP(0x9013,&num3,0);
DtoP(0x9014,&num4,0);
tempdata=0x3333;
DtoP(0x900a,&tempdata,0);
DtoP(0x900b,&tempdata,0);
DtoP(0x900c,&tempdata,0);
DtoP(0x900d,&tempdata,0);
}
void interrupt tint(void)
{
timer++;
}
void wait(void)
{
int i;
int ii;
for(i=0;i<2500;i++)
for(ii=0;ii<2500;ii++)
{
asm(" nop ");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -