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

📄 analy.c

📁 这是本人参与实验室项目编写的实现dvb-mpeg2码流解复用中和码流相关的源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
       }
    }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 + -