亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? work.c

?? 這也是本人參與實驗室項目編寫的實現dvb-mpeg2碼流解復用中和碼流相關的源代碼
?? C
字號:
/***************************************************************************/
/*                                                                         */
/*     work . C                                                            */
/*                                                                         */
/*                                                                         */
/***************************************************************************/



/***************************************************************************/

#include "54regs.h"			//54寄存器定義
#include "defdef.h"			//宏定義
#include "stdio.h"

/***************************************************************************/



/***************************************************************************/
/*                                                                         */
/*     定義函數		                                                       */
/*                                                                         */
/*                                                                         */
/*                                                                         */
/***************************************************************************/



void initial(void);              //系統初始化
void resetfifo(void);            //各FIFO清零
void loaddata(void);             //搬移數據(A000H---7000H)
void readin(void);
int  getpid(int a ,int b);
void pcr_to_fpga();
void padding1(void);             //給各FIFO填空包
void padding2(void);
void padding3(void);
void padding4(void);
void padding5(void);
void padding6(void);
void padding7(void);




/***************************************************************************/



//變量
/***************************************************************************/
int receiveTS[0x1000];                  //存放讀取的TS流
int ramdata[0x1000];                    //存放RAM搬移數據(A000H---)
int pid;                          //讀取ts流的pid值
int tempdata;                     //臨時讀取的數據,判斷節目是否改變                                      
int halfflag;                     //半滿標志
int cycnum;                       //分發七個包時設置為循環變量 0--7
int incnum;                       //分發七個包時設置為增長變量 0--1504
int ii;                           //主函數中所用循環變量,子函數中用i 
int siflag=0;                     //標志是否正在上傳SI信息
int sinum;                        //計上傳SI包數
int siaddr;                       //上傳SI包起始地址
int tsflag=0;                     //標志讀取的TS流是否已上傳
/***************************************************************************/



void main()
{//main

   
   initial();            //系統初始化
   resetfifo();          //各FIFO清零
   loaddata();           //搬移數據(A000H---7000H)
   
   pcr_to_fpga();
   
   padding1();           //給各FIFO填空包
   padding2();
   padding3();
   padding4();
   padding5();
   padding6();
 
   

pro_work:
  
   //tsflag=0;
   
   PtoD(0x8001,&tempdata,0);
   PtoD(0x8002,&tempdata,0);
   PtoD(0x8003,&tempdata,0);
   PtoD(0x8000,&tempdata,0);   //判斷節目是否改變  
   if(tempdata==0x0055)
      {
         //tempdata=0;
         loaddata();
         tempdata=0;
         DtoP(0x8000,&tempdata,0);
      }
  
     padding7();
     
     
   halfflag=porte006;           //讀取半滿標志
   
   if(halfflag==0x0001)
      padding1();
   if(halfflag==0x0002)
      padding2();
   if(halfflag==0x0004)
      padding3();
   if(halfflag==0x0008)
      padding4();
   if(halfflag==0x0010)
      padding5();
   if(halfflag==0x0020)
      padding6(); 
      
      
                  //判斷IN_FIFO是否半滿
                         //值為0x0040時未半滿
                          //半滿時讀取
    halfflag=porte006;
    if(halfflag==0x0040)
       goto  pro_work;

    
     
    
    
     for(;;)             //讀取同步
    {
   
    receiveTS[0]=port00;
    receiveTS[0]=receiveTS[0]&0x80ff;
    if(receiveTS[0]==0x8047)
      break;
    
    } 
    
    
    readin();       //開始數據的讀取放到receiveTS[]中

    incnum=0;
  
    for(cycnum=0;cycnum<8;cycnum++)
  
    {    //開始分發八個TS包  
    
      tsflag=0;
      pid=getpid(receiveTS[incnum+1],receiveTS[incnum+2]);
           
           
//**********判斷MCU提供的各路節目的PID,各ES的PID與AR0是否相同,分發TS包

  
            if ((tsflag==0)&((pid==ramdata[0x11])||
                (pid==ramdata[0x12])||
                (pid==ramdata[0x13])))
               {
                    for(ii=0;ii<188;ii++)
                    {
                       port01=receiveTS[incnum++];                  
                    }
                    
                    tsflag=1;
               }
               
               
            if ((tsflag==0)&((pid==ramdata[0x21])||
                (pid==ramdata[0x22])||
                (pid==ramdata[0x23])))
               {
                    for(ii=0;ii<188;ii++)
                    {
                       port02=receiveTS[incnum++];                  
                    }
                    
                    tsflag=1;
               } 
             
             
            if ((tsflag==0)&((pid==ramdata[0x31])||
                (pid==ramdata[0x32])))
               {
                    for(ii=0;ii<188;ii++)
                    {
                       port03=receiveTS[incnum++];                  
                    }
                    
                    tsflag=1;
               }                         
             
             
            if ((tsflag==0)&((pid==ramdata[0x41])||
                (pid==ramdata[0x42])))
               {
                    for(ii=0;ii<188;ii++)
                    {
                       port04=receiveTS[incnum++];                  
                    }
                    
                    tsflag=1;
               }
             
             
            if ((tsflag==0)&((pid==ramdata[0x51])||
                (pid==ramdata[0x52])))
               {
                    for(ii=0;ii<188;ii++)
                    {
                       port05=receiveTS[incnum++];                  
                    }
                    
                    tsflag=1;
               }    
                          
             
            if ((tsflag==0)&((pid==ramdata[0x61])||
                (pid==ramdata[0x62])))
               {
                    for(ii=0;ii<188;ii++)
                    {
                       port06=receiveTS[incnum++];                  
                    }
                    
                    tsflag=1;
               } 
               
                 
               
            if ((tsflag==0)&(pid==0x1fff))
               {
    
                    
                    incnum=incnum+188;   //丟包處理
                    tsflag=1;
                    
               }               
               
               
//**********分發MCU提供的PAT、PMT表


            if ((tsflag==0)&(pid==0))
               {
                    for(ii=0;ii<376;ii++)
                    {
                       port01=ramdata[0x0100+ii]; 
                       port02=ramdata[0x0300+ii];
                       port03=ramdata[0x0500+ii];
                       port04=ramdata[0x0700+ii];
                       port05=ramdata[0x0900+ii];
                       port06=ramdata[0x0b00+ii];                       
                    }
                    
                    tsflag=1;
                    incnum=incnum+188;   //丟包處理
                    
               }
               
               
           
//**********上傳SI包(每50包通知MCU讀取一次)
            if ((tsflag==0)&((pid==ramdata[0x05])||
                (pid==ramdata[0x06])||
                (pid==ramdata[0x07])||
                (pid==ramdata[0x08])||
                (pid==ramdata[0x09])))
                
                {
                   if (siflag==0)
                   
                      {  
                        sinum=0;  
                        siaddr=0x9100; 
                        siflag=1;                  
                      }     //如果沒有在上傳SI信息,則將上傳參數初始化
                     
                   // siflag=1;                                                                                     
                   
                       for(ii=0;ii<188;ii++)
                       {
                          DtoP(siaddr++,&receiveTS[incnum++],0);                  
                       }
                    
                    sinum++;
                    
                      if(sinum==40)
                        {
                         
                            tempdata=0x9100;
                            DtoP(0x0ffff,&tempdata,0);
  
                        }
                      
                     if(sinum==80)
                       {
                          tempdata=0x0ae60;
                          DtoP(0x0ffff,&tempdata,0);
                          
                          //sinum=0;  
                          //siaddr=0x9100; 
                          siflag=0;                         
                       }
                       
                       tsflag=1;

                 }
                 
                 
                 
            if(tsflag==0)
            incnum=incnum+188;   //丟包處理
            
  
  
  
    } //分發八個TS包結束              
  
    goto pro_work;   

}//main





void initial()
{



/**初始化系統**************/

/**配置C5402系統寄存器*****/

			   asm ("   STM		#0x2f92,SWWSR	");
			   ////*SWWSR=0x2f92;         //0010 1111 1001 0010
			   asm ("   STM     #0x0002,BSCR	");                       //I/O等待2個時鐘,數據和程序空間無等待???
               ////*BSCR=0x0000;          //為塊切換等待0個時鐘
               asm ("   STM		#0x0ffe8,PMST	");
               //*PMST=0x0ffe8;
		       ////*PMST=0xffe8;          //0x17e8=0001 0111 1110 1000
		                                //0x1780=0001 0111 1000 0000
		       //*ST0=0x1800;           //復位數據頁指針,DP數據存儲器頁面指針
		       //*ST1=0x2900;           //0001 1000 0000 0000
		                              //0010 1001 0000 0000 兩者均為復位后的值
                                      //屏蔽全局中斷
    
/**使所有的中斷無效*******/
		         asm ("   STM    #0x0000,IMR	");
		         asm ("   STM    #0x0FFFF,IFR	");
		                              //INTM已通過ST1初始化置1
				////*IMR=0x0000;          //屏蔽所有的中斷
				////*IFR=0x0FFFF;         //清除中斷標志寄存器
				
/**時鐘方案選擇***********/
                
			    asm ("   STM		#0x9007,CLKMD	");
				////*CLKMD=0x9007;        //設置DSP時鐘到160MHz 6.25ns
				                      //1001 0000 0000 0111 
				                      //工作在PLL模式,PLL模式開
				                      //PLL計數器為0  乘法系數為10

/**設置定時器控制寄存器***/
                asm ("   STM		#0x0010,TCR	  ");
			    ////*TCR=0x0010;          //片內定時器0停止


}




void resetfifo()
{
 
 porte005=0x8011;

}



void loaddata()
{
    int data;
    int start=0x0a000;
    int i;
    for(i=0;i<0x1000;i++)
    {
       
   	   PtoD(start,&data,0);
   	   ramdata[i]=data;
   	   start++;
   	   
   	 }                               

}



void readin()
{
   int i;
   for(i=1;i<1504;i++)
   {
     receiveTS[i]=port00;  
   }
}



int getpid(int a ,int b)

{   int apid;
    int bpid;
    apid=a<<8;
    bpid=b;
    apid=(apid|bpid)&0x1fff;
    return apid;
}

void pcr_to_fpga()
{
    portf000=ramdata[0x2];
    portf000=ramdata[0x3];
    portf000=ramdata[0x4];
    portf000=ramdata[0x5];
    portf000=ramdata[0x6];
    portf000=ramdata[0x7];
    portf000=ramdata[0x8];
    portf000=ramdata[0x9];
    portf000=ramdata[0x0a];
    portf000=ramdata[0x0b];
    portf000=ramdata[0x0c];
    portf000=ramdata[0x0d];
}
  

void padding1()
{ 
   int i;
   port01=0x8047;
   port01=0x001f;
   port01=0x00ff;
   port01=0x0010;
   
   for(i=0;i<184;i++)
     {
     port01=0x00ff;
     }
}




void padding2()
{  
   int i;
   port02=0x8047;
   port02=0x001f;
   port02=0x00ff;
   port02=0x0010;
   
   for(i=0;i<184;i++)
     {
     port02=0x00ff;
     }

}




void padding3()
{  
   int i;
   port03=0x8047;
   port03=0x001f;
   port03=0x00ff;
   port03=0x0010;
   for(i=0;i<184;i++)
     {
     port03=0x00ff;
     }
}




void padding4()
{  
   int i;
   port04=0x8047;
   port04=0x001f;
   port04=0x00ff;
   port04=0x0010;
   
   for(i=0;i<184;i++)
     {
     port04=0x00ff;
     }

}




void padding5()
{ 
   int i;
   port05=0x8047;
   port05=0x001f;
   port05=0x00ff;
   port05=0x0010;
   
   for(i=0;i<184;i++)
     {
     port05=0x00ff;
     }

}




void padding6()
{  
   int i;
   port06=0x8047;
   port06=0x001f;
   port06=0x00ff;
   port06=0x0010;
   
   for(i=0;i<184;i++)
     {
     port06=0x00ff;
     }

}





void padding7()
{ 
   int i;
   port07=0x8047;
   port07=0x001f;
   port07=0x00ff;
   port07=0x0010;
   
   //for(i=0;i<184;i++)
   for(i=0;i<4;i++)
     {
     port07=0x00ff;
     }
}



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
eeuss鲁片一区二区三区在线看 | 日韩精品一区二区三区四区 | 色狠狠一区二区| 粉嫩蜜臀av国产精品网站| 国产美女主播视频一区| 精品一区二区三区视频| 激情综合色播激情啊| 久久99热狠狠色一区二区| 美洲天堂一区二卡三卡四卡视频| 日韩电影在线免费观看| 免费黄网站欧美| 国内精品国产三级国产a久久| 久久精品国产99| 国产精品一区二区在线观看网站| 国产成人欧美日韩在线电影 | 日本一区二区免费在线观看视频 | 欧美老年两性高潮| 欧美一区二区精美| 精品国产99国产精品| 久久精品视频网| 中文字幕一区三区| 亚洲福利一二三区| 久久精品国产网站| 国产成人一区在线| 91丨porny丨首页| 欧美日本不卡视频| 精品成人一区二区三区四区| 久久精子c满五个校花| 亚洲日本青草视频在线怡红院| 亚洲黄色小视频| 男女男精品视频网| 懂色av中文一区二区三区| 日本韩国欧美在线| 日韩丝袜美女视频| 国产精品理伦片| 视频一区免费在线观看| 国产精品亚洲一区二区三区妖精 | 99re66热这里只有精品3直播| 在线观看亚洲专区| 精品国产一区二区三区久久影院| 中文欧美字幕免费| 亚洲成人动漫在线免费观看| 国内精品久久久久影院一蜜桃| 99久久精品国产麻豆演员表| 欧美日韩精品一区二区三区| 精品999在线播放| 亚洲精品视频在线| 精品一二三四区| 欧美影院一区二区| 国产亚洲va综合人人澡精品| 一区二区三区四区亚洲| 国产综合色在线| 欧洲国内综合视频| 亚洲国产精品成人综合| 午夜一区二区三区视频| 成人福利电影精品一区二区在线观看 | 国产麻豆视频一区| 欧美性极品少妇| 国产无一区二区| 午夜在线电影亚洲一区| 成人网在线免费视频| 91精品婷婷国产综合久久| 国产精品成人午夜| 极品瑜伽女神91| 欧美伦理电影网| 日韩理论片在线| 高清日韩电视剧大全免费| 欧美日韩国产电影| 悠悠色在线精品| 国产69精品一区二区亚洲孕妇| 91精品国产免费| 亚洲电影一区二区| 色综合天天视频在线观看| 久久久国产午夜精品| 免费成人你懂的| 欧美色综合网站| 亚洲黄色录像片| 91亚洲午夜精品久久久久久| 久久中文娱乐网| 久久精品99久久久| 欧美电影一区二区| 亚洲第一激情av| 色婷婷久久久亚洲一区二区三区 | 亚洲成人av在线电影| 91麻豆免费看| 亚洲天堂成人网| 99在线精品一区二区三区| 久久亚区不卡日本| 久草热8精品视频在线观看| 欧美久久久久久久久| 亚洲影视在线观看| 欧美综合一区二区三区| 日韩伦理免费电影| 成人激情开心网| 国产欧美日韩视频在线观看| 国产综合一区二区| 26uuu精品一区二区在线观看| 天天综合天天综合色| 欧美三级在线播放| 亚洲一区在线看| 欧美亚洲国产一区二区三区va| 国产精品久久综合| 94-欧美-setu| 亚洲精品国产成人久久av盗摄| 成人a免费在线看| 自拍偷拍国产精品| 欧美亚洲免费在线一区| 亚洲国产精品久久艾草纯爱 | 亚洲精品乱码久久久久久久久 | 99精品视频在线播放观看| 中文字幕第一区第二区| 成人在线综合网| 亚洲婷婷在线视频| 日本高清免费不卡视频| 亚洲宅男天堂在线观看无病毒| 欧美性受xxxx黑人xyx性爽| 亚洲大片免费看| 欧美高清一级片在线| 青青草97国产精品免费观看| 日韩欧美黄色影院| 国产成人在线观看免费网站| 国产精品三级av在线播放| 一本色道久久综合亚洲精品按摩| 一区二区在线免费观看| 欧美羞羞免费网站| 喷水一区二区三区| 久久久久一区二区三区四区| 懂色av一区二区三区蜜臀| 17c精品麻豆一区二区免费| 欧美性videosxxxxx| 蜜桃精品视频在线| 国产精品日韩成人| 欧美亚洲愉拍一区二区| 久久国产欧美日韩精品| 国产欧美日韩另类视频免费观看| 一本大道久久a久久综合| 天堂va蜜桃一区二区三区| www激情久久| 北条麻妃国产九九精品视频| 亚洲午夜三级在线| 欧美电影免费观看高清完整版| 成人丝袜高跟foot| 午夜精品影院在线观看| www成人在线观看| 91久久精品一区二区三| 美女性感视频久久| 中文字幕一区二区三区乱码在线| 欧美日韩国产片| 国产宾馆实践打屁股91| 一个色妞综合视频在线观看| 日韩免费一区二区三区在线播放| 国产999精品久久| 午夜精品福利一区二区三区av| 欧美精品一区二区三区蜜桃视频| av色综合久久天堂av综合| 日韩精品一级二级| 麻豆视频观看网址久久| 欧美国产精品一区二区| 欧美日韩亚洲综合在线| 国产91精品入口| 丝袜美腿亚洲综合| 国产精品短视频| 欧美电影精品一区二区| 在线看国产一区| 成人综合婷婷国产精品久久蜜臀 | 99国产精品久久久| 美美哒免费高清在线观看视频一区二区| 国产欧美精品一区二区三区四区 | xvideos.蜜桃一区二区| 在线观看免费视频综合| 国产精品99久久久久久似苏梦涵| 午夜欧美2019年伦理| 亚洲色图欧美偷拍| 欧美国产综合一区二区| 日韩欧美资源站| 欧美无人高清视频在线观看| 成人黄色在线看| 国产精品亚洲第一区在线暖暖韩国| 亚洲一区二区三区在线看| 国产精品久久久久久妇女6080| 日韩欧美不卡在线观看视频| 欧美午夜不卡在线观看免费| 91天堂素人约啪| 粉嫩av亚洲一区二区图片| 精品综合免费视频观看| 天天av天天翘天天综合网| 亚洲欧美日本韩国| 国产精品国产三级国产a| 久久―日本道色综合久久| 日韩视频一区在线观看| 欧美伊人久久大香线蕉综合69| 色综合色综合色综合| 成人在线视频一区| 国产v综合v亚洲欧| 国产精品99久久久久久宅男| 激情综合色播激情啊| 国产在线精品一区二区夜色| 日本 国产 欧美色综合| 午夜成人免费电影| 丝袜亚洲精品中文字幕一区|