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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? main.c

?? 工業(yè)以太網(wǎng)測(cè)控板資料FX04核心編程模塊
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
//CP2200片選置高
/***********************************************************************/
void CP220x_RST_High(void)
{
   char SFRPAGE_SAVE = SFRPAGE;       
   SFRPAGE = CONFIG_PAGE;

   // P4 |= 0x20; 
	 P5 |= 0x2;               // Allow /RST to rise   while(!(P5 & 0x2));                      
   SFRPAGE=SFRPAGE_SAVE;
}
/***********************************************************************/
//物理層出始化

/***********************************************************************/
unsigned char PHY_Init()
{
   unsigned char temp_char;
   unsigned char retval = 0;
   
   //--------------------------------------------------------------------------
   //以下部分為物理層自適應(yīng)同步,詳見(jiàn)CP2200數(shù)據(jù)手冊(cè)
   //--------------------------------------------------------------------------

   
      PHYCN = 0x00;  // 禁止物理層寄存器
   
   
      TXPWR = 0x80;
      PHYCF = ( SMSQ | JABBER | ADPAUSE | AUTOPOL );

      // 使能物理層 
      PHYCN = PHYEN;
     
      // 物理層上電
          
      PHYCN = ( PHYEN | TXEN | RXEN ); //  使能傳輸與接收寄存器
   	  // 喚醒中斷
     
           
      temp_char = INT1;

 
     

   //--------------------------------------------------------------------------
   //以下是物理層初始化
   //--------------------------------------------------------------------------
   
   
    PHYCN = 0x00; //禁止物理層寄存器
  
   
    PHYCF = ( SMSQ | LINKINTG | JABBER | AUTONEG | ADPAUSE | AUTOPOL ); //進(jìn)行連接完整性與自適應(yīng)配置
   
    PHYCN = PHYEN;//使能物理層
    PHYCN = ( PHYEN | TXEN | RXEN ); //  使能傳輸與接收寄存器
  

   
      temp_char = INT1;
          
      while(1){
         
                if(INT1RD & (ANCINT | ANFINT))break; 	 // 判斷初始化是成功
		  	     
               }

      temp_char = INT1RD;
      temp_char &= (ANCINT | ANFINT);

      
      if(temp_char & ANFINT)          // 檢測(cè)自適應(yīng)是否失敗 
	     {
      	  retval = LINK_ERROR;
	   	 } 
	  else 
   								       
      
           if(temp_char == ANCINT)	  // 檢測(cè)自適應(yīng)是否通過(guò)
	         {
            	retval = 0;
	            IOPWR = 0x0C;   	  // 使能 Link LED and Activity LED 
         	 }
		   else     
             { 
              retval = LINK_ERROR;
    		 }

     return retval;
     
}

/***********************************************************************/
//數(shù)據(jù)鏈路層初始化
/***********************************************************************/

void MAC_Init(void)
{  

   //判斷是否為全雙工通訊,并進(jìn)行相關(guān)設(shè)置 詳見(jiàn)CP2200數(shù)據(jù)手冊(cè)
   if(PHYCN & 0x10)
     {
      MAC_Write(MACCF, 0x40B3);
      MAC_Write(IPGT, 0x0015);
      } 
   else 
     {
	  MAC_Write(MACCF, 0x4012);
      MAC_Write(IPGT, 0x0012); 
	 }
      MAC_Write(IPGR, 0x0C12);
      MAC_Write(MAXLEN, 0x05EE);

   // 讀出廠前設(shè)置的MAC地址
   FLASHADDRH = 0x1F;
   FLASHADDRL = 0xFA;

   MYMAC.Char[0] = FLASHAUTORD;
   MYMAC.Char[1] = FLASHAUTORD;
   MYMAC.Char[2] = FLASHAUTORD;
   MYMAC.Char[3] = FLASHAUTORD;
   MYMAC.Char[4] = FLASHAUTORD;
   MYMAC.Char[5] = FLASHAUTORD;      
   my_hwaddr[0]=MYMAC.Char[0];
   my_hwaddr[1]=MYMAC.Char[1];
   my_hwaddr[2]=MYMAC.Char[2];
   my_hwaddr[3]=MYMAC.Char[3];
   my_hwaddr[4]=MYMAC.Char[4];
   my_hwaddr[5]=MYMAC.Char[5];
  
   MAC_SetAddress(&MYMAC); 

   MAC_Write(MACCN, 0x0001);           // 允許回環(huán)模式

}
/************************************************************************/
//訪問(wèn)MAC間接寄存器
/************************************************************************/
void MAC_Write(unsigned char mac_reg_offset, unsigned int mac_reg_data)
{   
   MACADDR = mac_reg_offset;              
   MACDATAH = (mac_reg_data >> 8);    // Copy High Byte
   MACDATAL = (mac_reg_data & 0xFF);  // Copy Low Byte
   MACRW = 0;
   
   return;
}


/**************************************************************************/
//設(shè)置MAC地址
/**************************************************************************/
void MAC_SetAddress(MACADDRESS* pMAC)
{
   UINT1 temp_int;

   temp_int.Char[0] = pMAC->Char[5];
   temp_int.Char[1] = pMAC->Char[4];
   MAC_Write(MACAD0, temp_int.Int);
   
   temp_int.Char[0] = pMAC->Char[3];
   temp_int.Char[1] = pMAC->Char[2];
   MAC_Write(MACAD1, temp_int.Int);
   
   temp_int.Char[0] = pMAC->Char[1];
   temp_int.Char[1] = pMAC->Char[0];
   MAC_Write(MACAD2, temp_int.Int);
   
   return;
}

/**************************************************************************/
// 以太網(wǎng)幀接收函數(shù)
/**************************************************************************/
void eth_rcve(UCHAR xdata * inbuf)
{
   ETH_HEADER xdata * eth;
   eth = (ETH_HEADER xdata *)inbuf;
   if (eth->frame_type < 1520)	   // 幀長(zhǎng)度不能超過(guò)IEEE 802標(biāo)準(zhǔn)歸定
      {
	    return;      
      }
     
   switch (eth->frame_type)	      //根據(jù)接收到的數(shù)據(jù)包類(lèi)型,選擇不同的處理方式
      {
	   case ARP_PACKET:
	        arp_rcve(inbuf);
	        break;
		      
	   case IP_PACKET:
	        ip_rcve(inbuf);
            break;
	   default:break;
      }
}

/*************************************************************************/
//以太網(wǎng)幀傳輸函數(shù)--------傳輸層
/*************************************************************************/
void eth_send(UCHAR xdata * outbuf, UCHAR * hwaddr, UINT ptype, UINT len)
{
	ETH_HEADER xdata * eth;
   
   eth = (ETH_HEADER xdata *)outbuf;
	  
	//加入14位的以太網(wǎng)數(shù)據(jù)幀頭標(biāo)識(shí)
	memcpy(eth->dest_hwaddr, hwaddr, 6);
	memcpy(eth->source_hwaddr, my_hwaddr, 6); 
    eth->frame_type = ptype;
	CP220x_Send(outbuf, len + 14); // 增加數(shù)據(jù)包長(zhǎng)度
}

/*************************************************************************/
// CP2200發(fā)送函數(shù)
/*************************************************************************/
void CP220x_Send( UCHAR xdata * outbuf, UINT len)
{

   int i; 
   unsigned int ramaddr;

                                        // 定義宏來(lái)增加地址指針
   #define INC_RAMADDR  ramaddr++; \
                        RAMADDRH = (ramaddr >> 8);\
                        RAMADDRL = (ramaddr & 0x00FF);


   
   while(TXBUSY);                       //等待傳輸結(jié)束
      
       TXSTARTH = 0x00;
       TXSTARTL = 0x00;
	   RAMADDRH = 0x00;				    //地址設(shè)為零
       RAMADDRL = 0x00;
       ramaddr = 0x0000;
	        
       for(i = 0; i < len; i++)
	      {
           RAMTXDATA = outbuf[i];
           INC_RAMADDR
          }
      
       while(ramaddr < 64)			  	//將不足64字節(jié)長(zhǎng)度的數(shù)據(jù)填充到64字節(jié)
	    {
          RAMTXDATA = 0;
          INC_RAMADDR
        }
      
        ramaddr--;			        
        TXENDH = (ramaddr >> 8);		  //將RAM地址減一后賦給TXEND使其地址為)X0040
        TXENDL = (ramaddr & 0x00FF);
        TXSTARTH = 0x00;
        TXSTARTL = 0x00;                  //將TXSTAR地址歸零
        TXCN = 0x01;	                  //向TXGO寫(xiě)1開(kāi)始傳輸
}

/****************************************************************/
//CP2200芯片接收數(shù)據(jù)函數(shù)
/****************************************************************/
UCHAR xdata * rcve_frame(void)

{
   bit rx_ok;
   bit skip = 0;
   UINT1 cplen;   
   unsigned int i;
   UCHAR xdata * buf;

   unsigned char interrupt_read;
   unsigned char valid_bits;
   unsigned char num_packets;

   
   interrupt_read = INT1;
   interrupt_read = INT0;	                   //清中斷標(biāo)志
   
   
   if( interrupt_read & RXINT)                 //判斷接收中斷是否產(chǎn)生
   {   
      
      valid_bits = TLBVALID;     			   //對(duì)接收數(shù)據(jù)包進(jìn)行統(tǒng)計(jì)
	    for(num_packets = 0; valid_bits; num_packets++)      
          {                                 
           valid_bits &= valid_bits - 1; 
          }
   
     
        if( num_packets >= 7) 			      //接收區(qū)超過(guò)7個(gè)數(shù)據(jù)包,停止接收
          {
           RXCN = RXINH;           
          }
	}

      //以下步驟參考CP2200數(shù)據(jù)手冊(cè)的接收部分              
      rx_ok = (CPINFOL & RXOK) && (CPINFOH & RXVALID);
      
      if(rx_ok)
	  {
   		cplen.Char[0] = CPLENH;
        cplen.Char[1] = CPLENL;
	    buf=inbuf1;
	       
      }
      else
	   { 
	    cplen.Int = 0;
        skip = 1;      
	    buf = NULL;
       }   
	      
      if(1)
	  {	     
           for(i = 0; i < cplen.Int; i++)
		     {
              buf[i] = RXAUTORD;
             }
	  	   rcve_buf_allocated = TRUE;
	   } 
	   else 
	   { 
          cplen.Int = 0;
          skip = 1; 
        }
      
     if(skip)
      {
       RXCN |= 0x02;                   
      } 

     else 
       {
        RXCN |= 0x04;                   
       }
	    
     if(TLBVALID == 0x00)
       {
        RXCN = 0x00;   
       }
   
     return(buf);
}


?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91免费观看国产| 欧美日韩在线三区| 久久精品网站免费观看| 青青国产91久久久久久| 欧美日韩高清一区| 一二三区精品视频| 欧洲一区二区三区在线| 一区二区三区在线免费视频 | 亚洲欧美日韩国产手机在线| 成人激情av网| 国产精品成人一区二区艾草 | 日韩一区二区免费高清| 日韩精品一二三四| 欧美一区二区在线播放| 免费在线视频一区| 日韩欧美成人午夜| 激情图片小说一区| 国产清纯白嫩初高生在线观看91 | 国产河南妇女毛片精品久久久| 精品电影一区二区三区| 国产一区二三区好的| 2020国产精品久久精品美国| 国产乱淫av一区二区三区| 国产偷国产偷亚洲高清人白洁| 国产精品一区二区视频| 国产精品天天看| 91在线观看一区二区| 亚洲欧美乱综合| 欧美日韩一区二区三区免费看| 亚洲成a人v欧美综合天堂下载 | 欧美一区二区免费视频| 激情国产一区二区| 国产精品青草久久| 色综合天天视频在线观看| 亚洲综合区在线| 7777精品伊人久久久大香线蕉的| 视频一区二区三区在线| 久久综合狠狠综合久久激情| 国产激情一区二区三区四区| 综合分类小说区另类春色亚洲小说欧美| 色爱区综合激月婷婷| 亚洲国产精品天堂| 欧美一级欧美三级在线观看| 国产综合色在线视频区| 国产精品久久777777| 欧美在线免费观看亚洲| 蜜臀a∨国产成人精品| 国产欧美日本一区视频| 色综合久久精品| 喷水一区二区三区| 欧美激情中文不卡| 欧洲精品中文字幕| 老鸭窝一区二区久久精品| 欧美激情一区二区三区| 欧美午夜精品一区二区蜜桃| 精一区二区三区| 中文字幕不卡的av| 欧美日韩三级在线| 国产精品888| 亚洲一区视频在线| 久久伊99综合婷婷久久伊| 一本到一区二区三区| 免费在线看一区| **欧美大码日韩| 91精品欧美一区二区三区综合在| 国产精品77777| 亚洲成人777| 亚洲国产电影在线观看| 欧美日韩专区在线| 国产成人综合亚洲网站| 香蕉成人啪国产精品视频综合网| 欧美精品一区二区三区在线| 色噜噜久久综合| 国产一区二区三区在线观看精品 | 国产成人自拍高清视频在线免费播放| 亚洲精品免费在线观看| 日韩欧美在线一区二区三区| fc2成人免费人成在线观看播放| 日韩电影免费在线| 中文字幕 久热精品 视频在线| 在线不卡a资源高清| 99精品一区二区三区| 久久99精品久久只有精品| 亚洲精品国产精品乱码不99| www日韩大片| 在线播放中文字幕一区| 91小视频在线观看| 国产一区二区精品在线观看| 午夜视频久久久久久| 亚洲图片你懂的| 精品国产91亚洲一区二区三区婷婷| 一本一本久久a久久精品综合麻豆| 韩国成人在线视频| 日韩电影在线观看一区| 伊人开心综合网| 国产欧美日本一区视频| 日韩欧美美女一区二区三区| 日本高清不卡在线观看| 成人av资源网站| 国模冰冰炮一区二区| 日韩精品欧美精品| 亚洲宅男天堂在线观看无病毒| 国产欧美日韩另类视频免费观看| 日韩欧美亚洲国产另类| 欧美午夜寂寞影院| 一本大道久久a久久精品综合| 国产91清纯白嫩初高中在线观看 | 欧美aa在线视频| 亚洲一卡二卡三卡四卡无卡久久 | 自拍偷拍欧美精品| 日本一二三不卡| 久久久久久久免费视频了| 欧美一区二区三区视频在线观看| 色综合一个色综合| 本田岬高潮一区二区三区| 国产一区二区三区精品视频| 麻豆一区二区三| 免费高清在线一区| 日韩av电影一区| 亚洲不卡在线观看| 亚洲国产一区二区三区青草影视| 亚洲欧美成人一区二区三区| 日本一区二区三级电影在线观看| 久久九九久久九九| 精品va天堂亚洲国产| 欧美不卡激情三级在线观看| 欧美一区在线视频| 91精品一区二区三区在线观看| 欧美日本不卡视频| 欧美日韩精品一区二区三区四区 | 欧美精品一二三| 欧美美女网站色| 欧美日韩精品欧美日韩精品一| 在线免费精品视频| 欧美日韩在线精品一区二区三区激情 | 日本特黄久久久高潮| 婷婷国产v国产偷v亚洲高清| 一区二区国产盗摄色噜噜| 亚洲综合免费观看高清完整版在线| 亚洲美女偷拍久久| 一区二区三区四区国产精品| 亚洲综合色网站| 亚洲成人综合网站| 日本不卡123| 捆绑调教美女网站视频一区| 美脚の诱脚舐め脚责91 | 欧美一区二区在线观看| 欧美成人猛片aaaaaaa| 久久免费美女视频| 欧美国产日韩在线观看| 成人免费一区二区三区在线观看| 亚洲男同1069视频| 亚洲综合精品久久| 免费在线一区观看| 国产老肥熟一区二区三区| 成人免费毛片嘿嘿连载视频| 91麻豆自制传媒国产之光| 欧美性三三影院| 欧美一区二区精品| 国产午夜精品美女毛片视频| 国产精品久久网站| 亚洲另类春色校园小说| 天堂午夜影视日韩欧美一区二区| 蜜臀av性久久久久av蜜臀妖精| 国产一区二三区| av成人免费在线观看| 欧美日韩美少妇 | 99精品久久免费看蜜臀剧情介绍| 色av一区二区| 日韩一区二区免费在线电影| 国产日韩精品久久久| 亚洲精品精品亚洲| 美女脱光内衣内裤视频久久网站 | 97超碰欧美中文字幕| 欧美日韩国产另类一区| 久久青草国产手机看片福利盒子 | 欧美极品xxx| 亚洲国产一区二区视频| 韩国午夜理伦三级不卡影院| 波多野结衣中文一区| 欧美精品视频www在线观看| 久久久久久亚洲综合| 一区二区三区鲁丝不卡| 精品一区免费av| 99久久99久久精品免费观看 | 日韩欧美电影一二三| 自拍偷拍国产亚洲| 蜜桃视频免费观看一区| 99热精品一区二区| 欧美一区二区三级| 国产精品的网站| 蜜臀久久久99精品久久久久久| 成人在线视频首页| 欧美日韩不卡在线| 亚洲国产精品成人综合色在线婷婷 | 亚洲成人tv网| 丁香天五香天堂综合| 在线不卡欧美精品一区二区三区| 国产精品私人影院| 日本最新不卡在线|