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

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

?? main.c

?? BTF040開發評估板的使用說明書及相關例程
?? C
?? 第 1 頁 / 共 2 頁
字號:
unsigned char PHY_Init()
{
   unsigned char temp_char;
   unsigned char retval = 0;
   
   //--------------------------------------------------------------------------
   //以下部分為物理層自適應同步,詳見CP2200數據手冊
   //--------------------------------------------------------------------------

   
      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 ); //進行連接完整性與自適應配置
   
    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)          // 檢測自適應是否失敗 
	     {
      	  retval = LINK_ERROR;
	   	 } 
	  else 
   								       
      
           if(temp_char == ANCINT)	  // 檢測自適應是否通過
	         {
            	retval = 0;
	            IOPWR = 0x0C;   	  // 使能 Link LED and Activity LED 
         	 }
		   else     
             { 
              retval = LINK_ERROR;
    		 }

     return retval;
     
}

/***********************************************************************/
//數據鏈路層初始化
/***********************************************************************/

void MAC_Init(void)
{  

   //判斷是否為全雙工通訊,并進行相關設置 詳見CP2200數據手冊
   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);

   // 讀出廠前設置的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);           // 允許回環模式

}
/************************************************************************/
//訪問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;
}


/**************************************************************************/
//設置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;
}

/**************************************************************************/
// 以太網幀接收函數
/**************************************************************************/
void eth_rcve(UCHAR xdata * inbuf)
{
   ETH_HEADER xdata * eth;
   eth = (ETH_HEADER xdata *)inbuf;
   if (eth->frame_type < 1520)	   // 幀長度不能超過IEEE 802標準歸定
      {
	    return;      
      }
     
   switch (eth->frame_type)	      //根據接收到的數據包類型,選擇不同的處理方式
      {
	   case ARP_PACKET:
	        arp_rcve(inbuf);
	        break;
		      
	   case IP_PACKET:
	        ip_rcve(inbuf);
            break;
	   default:break;
      }
}

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

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

   int i; 
   unsigned int ramaddr;

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


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

/****************************************************************/
//CP2200芯片接收數據函數
/****************************************************************/
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;	                   //清中斷標志
   
   
   if( interrupt_read & RXINT)                 //判斷接收中斷是否產生
   {   
      
      valid_bits = TLBVALID;     			   //對接收數據包進行統計
	    for(num_packets = 0; valid_bits; num_packets++)      
          {                                 
           valid_bits &= valid_bits - 1; 
          }
   
     
        if( num_packets >= 7) 			      //接收區超過7個數據包,停止接收
          {
           RXCN = RXINH;           
          }
	}

      //以下步驟參考CP2200數據手冊的接收部分              
      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);
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产午夜亚洲精品羞羞网站| 欧美人妖巨大在线| 国产日韩欧美电影| 丰满岳乱妇一区二区三区| 久久精品欧美日韩| eeuss鲁片一区二区三区在线观看| 久久久99久久精品欧美| 国产成人鲁色资源国产91色综 | 7777精品伊人久久久大香线蕉的| 伊人色综合久久天天人手人婷| 欧美伊人精品成人久久综合97| 午夜精品福利一区二区三区av| 日韩精品专区在线| 国产91综合一区在线观看| 国产精品拍天天在线| 91啪在线观看| 视频一区欧美精品| 久久久精品黄色| 91无套直看片红桃| 日产欧产美韩系列久久99| 欧美精品一区二区三区蜜桃视频 | 久久精品国内一区二区三区| 久久久亚洲高清| 色丁香久综合在线久综合在线观看| 日韩福利视频导航| 亚洲国产精品成人综合| 欧美日韩一区二区在线观看| 久久国产免费看| 18涩涩午夜精品.www| 3d成人动漫网站| 国产成人免费视频网站高清观看视频| 亚洲色图在线看| 精品国产伦理网| 色老综合老女人久久久| 黑人巨大精品欧美一区| 一区二区三区在线不卡| 欧美mv日韩mv| 91福利精品第一导航| 国产一区999| 天天综合色天天| 国产精品不卡一区二区三区| 日韩午夜在线播放| 色婷婷av一区二区| 国产在线精品一区二区三区不卡| 亚洲久本草在线中文字幕| 精品国产成人在线影院 | 99riav一区二区三区| 狠狠色丁香久久婷婷综| 亚洲国产精品一区二区www在线| 久久久不卡影院| 日韩一区二区视频| 色老综合老女人久久久| 国产成人综合在线观看| 免费高清在线一区| 午夜久久福利影院| 亚洲精品国产一区二区三区四区在线| 精品va天堂亚洲国产| 欧美疯狂性受xxxxx喷水图片| 91丨九色丨国产丨porny| 狠狠色丁香婷婷综合久久片| 三级欧美在线一区| 一区二区三区四区精品在线视频| 国产三区在线成人av| 精品国精品自拍自在线| 7777精品伊人久久久大香线蕉的 | 欧美v亚洲v综合ⅴ国产v| 欧美午夜精品电影| 日本韩国一区二区三区| 99天天综合性| a级高清视频欧美日韩| 国产91精品一区二区麻豆亚洲| 久久www免费人成看片高清| 奇米一区二区三区| 美女一区二区视频| 久久精品国产网站| 久久99久久99小草精品免视看| 五月激情六月综合| 天涯成人国产亚洲精品一区av| 亚洲国产另类av| 日日嗨av一区二区三区四区| 青青青伊人色综合久久| 免费av成人在线| 美女视频一区在线观看| 久久精品二区亚洲w码| 秋霞电影一区二区| 激情五月婷婷综合| 国产精品一区二区男女羞羞无遮挡 | 国产精品成人午夜| 亚洲欧洲性图库| 一区二区三国产精华液| 午夜精品久久久久久久99樱桃| 丝袜a∨在线一区二区三区不卡 | 免费观看成人av| 国产在线看一区| 国产69精品久久久久777| av成人免费在线| 日本韩国一区二区三区视频| 9191国产精品| 精品国产免费一区二区三区四区 | 久久久久久久久久久久久夜| 欧美经典一区二区| 亚洲女子a中天字幕| 日日夜夜免费精品| 精品无人码麻豆乱码1区2区 | 亚洲永久精品大片| 蜜桃视频在线观看一区二区| 国产精品一色哟哟哟| 色噜噜狠狠成人网p站| 欧美一级午夜免费电影| 亚洲精品日日夜夜| 亚洲成人在线网站| 精品一区二区三区日韩| av男人天堂一区| 精品视频1区2区| 久久久www成人免费毛片麻豆| 亚洲精品v日韩精品| 久久av资源网| 色综合久久久久综合| 日韩一二三四区| 亚洲日本一区二区| 蜜臀精品一区二区三区在线观看| 国产成人av一区二区三区在线观看| 日本韩国欧美一区| 亚洲精品在线观看视频| 亚洲精品亚洲人成人网在线播放| 麻豆一区二区99久久久久| 色综合久久天天| 欧美不卡一二三| 亚洲精品福利视频网站| 国产精品一区三区| 欧美精选在线播放| 中文字幕一区二区三| 精品一区二区av| 在线亚洲高清视频| 国产欧美日韩精品一区| 日本aⅴ免费视频一区二区三区| 99久久免费精品高清特色大片| 日韩免费高清视频| 亚洲国产另类av| 成人涩涩免费视频| 日韩视频免费观看高清完整版| 亚洲三级在线观看| 国产999精品久久| 欧美成人激情免费网| 亚洲成国产人片在线观看| av激情综合网| 国产女同互慰高潮91漫画| 精品无人区卡一卡二卡三乱码免费卡| 91久久线看在观草草青青| 欧美经典一区二区| 极品瑜伽女神91| 制服丝袜中文字幕一区| 一区二区三区欧美日| 92精品国产成人观看免费| 国产视频一区在线观看| 国产永久精品大片wwwapp| 日韩欧美国产一区在线观看| 日韩高清一区在线| 欧美日韩中文一区| 悠悠色在线精品| 不卡影院免费观看| 国产精品久久久久久久久久久免费看| 国产做a爰片久久毛片| 日韩亚洲欧美综合| 青青草91视频| 欧美变态tickle挠乳网站| 老色鬼精品视频在线观看播放| 欧美老肥妇做.爰bbww视频| 亚洲国产日韩综合久久精品| 91久久精品一区二区| 亚洲一区二区三区四区中文字幕| 色吊一区二区三区| 一区二区三区日韩欧美| 91成人免费网站| 亚洲综合网站在线观看| 精品国产一区二区三区久久影院 | 久久九九99视频| 国产精品一区在线观看乱码 | 91精品国产综合久久蜜臀| 三级一区在线视频先锋| 日韩免费一区二区| 国产永久精品大片wwwapp| 国产欧美日韩卡一| 91丨porny丨蝌蚪视频| 一区二区三区中文字幕电影| 欧美日韩精品三区| 蜜桃一区二区三区在线观看| 久久综合九色综合97_久久久| 国产白丝网站精品污在线入口| 中文字幕一区二区在线播放| 91久久一区二区| 日本不卡一区二区| 久久久夜色精品亚洲| 95精品视频在线| 日韩 欧美一区二区三区| 久久亚洲精精品中文字幕早川悠里| 高清shemale亚洲人妖| 亚洲精品国产高清久久伦理二区| 欧美一区二区三区在线| 国产美女久久久久|