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

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

?? 7960.c

?? 我里面有比較詳細的7960的PDF
?? C
字號:
#include "include.h"

//*************************************************************************************************
// 功能描述 : 初始化I/O
// 輸入參數 : 無
// 返回參數 : 無
// 說    明 : 
//*************************************************************************************************
void InitPort(void)
{
    EnableSet;

    TRFDirOUT;			        // 設置并口輸出0 
    TRFFunc;
    TRFWrite = 0x00;	                        //

    clkOFF;
    clkPINset;			        // CLK 輸出 

    irqPINset;
    irqEDGEset;			        // IRQ上升沿中斷

    LEDallOFF;
    LEDportSET;
    LEDpowerON;
    
    OOKdirIN;		                        // 設置OOK 端口   
}						

//*************************************************************************************************
// 功能描述 : 簡單結束并口通信
// 輸入參數 : 無
// 返回參數 : 無
// 說    明 : 
//*************************************************************************************************
void STOPcondition(void)
{
    TRFWrite |= 0x80;	
    clkON;
    TRFWrite = 0x00;
    clkOFF;
}						

//*************************************************************************************************
// 功能描述 : 徹底結束并口通信
// 輸入參數 : 無
// 返回參數 : 無
// 說    明 : 
//*************************************************************************************************
void STOPcont(void)
{
    TRFWrite = 0x00;
    TRFDirOUT;
    TRFWrite = 0x80;
    TRFWrite = 0x00;
}	

//*************************************************************************************************
// 功能描述 : 并口通信起始
// 輸入參數 : 無
// 返回參數 : 無
// 說    明 : 
//*************************************************************************************************
void STARTcondition(void)
{
    TRFWrite = 0x00;
    clkON;
    TRFWrite = 0xff;
    clkOFF;
}	

//*************************************************************************************************
// 功能描述 : 單個寫
// 輸入參數 : 內容指針,長度
// 返回參數 : 無
// 說    明 : 
//*************************************************************************************************
void WriteSingle(unsigned char *pbuf, unsigned char lenght)
{
    unsigned char i;
    STARTcondition();
    while(lenght > 0)
    {
        *pbuf = (0x1f &*pbuf);	                        // 設置地址為非連續寫  register address 
        for(i = 0; i < 2; i++)                          // 單個地址和數據寫操作
        {
            TRFWrite = *pbuf;	                        //發送命令和數據 
            clkON;
            clkOFF;
            pbuf++;
            lenght--;
        }
    }	
    STOPcondition();
}		

//*************************************************************************************************
// 功能描述 : 連續寫
// 輸入參數 : 內容指針,長度
// 返回參數 : 無
// 說    明 : 
//*************************************************************************************************
void WriteCont(unsigned char *pbuf, unsigned char lenght)
{
    STARTcondition();
    *pbuf = (0x20 | *pbuf);                             // 設置地址寫為連續模式   address, write, continous
    *pbuf = (0x3f & *pbuf);	                        // 設置寄存器地址 
    
    while(lenght > 0)
    {
        TRFWrite = *pbuf;	                        //發送命令
        clkON;
        clkOFF;
        pbuf++;
        lenght--;
    }						
    STOPcont();
}	 

//*************************************************************************************************
// 功能描述 : 單個讀
// 輸入參數 : 地址和長度
// 返回參數 : 無
// 說    明 : 
//*************************************************************************************************
void ReadSingle(unsigned char *pbuf, unsigned char lenght)
{
    STARTcondition();
    while(lenght > 0)
    {
        *pbuf = (0x40 | *pbuf);                         //地址, 讀,單個
        *pbuf = (0x5f & *pbuf);	                        //積存器地址 

        TRFWrite = *pbuf;	                        // 發送命令
        clkON;
        clkOFF;

        TRFDirIN;	                        // 上升沿讀取數據 
        clkON;
        *pbuf = TRFRead;
        clkOFF;

        TRFWrite = 0x00; 
        TRFDirOUT;

        pbuf++;
        lenght--;
    }	
    STOPcondition();
}		


//*************************************************************************************************
// 功能描述 : 連續讀
// 輸入參數 : 地址和長度
// 返回參數 : 無
// 說    明 : 
//*************************************************************************************************
void ReadCont(unsigned char *pbuf, unsigned char lenght)
{
    STARTcondition();
    *pbuf = (0x60 | *pbuf);                             //地址, 讀,連續 
    *pbuf = (0x7f & *pbuf);	                        //積存器地址
    TRFWrite = *pbuf;	                        //發送命令 
    clkON;
    clkOFF;
    TRFDirIN;		                        //上升沿讀取數據 

    while(lenght > 0)
    {
        clkON;
        *pbuf = TRFRead;

        clkOFF;
        pbuf++;
        lenght--;
    }						
    STOPcont();
}	

//*************************************************************************************************
// 功能描述 : 發送命令
// 輸入參數 : 命令指針
// 返回參數 : 無
// 說    明 : 
//*************************************************************************************************
void DirectCommand(unsigned char *pbuf)
{
    STARTcondition();
    *pbuf = (0x80 | *pbuf);                                 //命令 
    *pbuf = (0x9f & *pbuf);	                            //命令碼
    TRFWrite = *pbuf;		            //發送命令 
    clkON;
    clkOFF;
    STOPcondition();
}	

//*************************************************************************************************
// 功能描述 : 直接寫數據
// 輸入參數 : 數據指針,長度
// 返回參數 : 無
// 說    明 : 
//*************************************************************************************************
void RAWwrite(unsigned char *pbuf, unsigned char lenght)
{
    STARTcondition();
    while(lenght > 0)
    {
        TRFWrite = *pbuf;	                            //發送命令 
        clkON;
        clkOFF;
        pbuf++;
        lenght--;
    }						
    STOPcont();
}	


//*************************************************************************************************
// 功能描述 : 初始化7860
// 輸入參數 : 無
// 返回參數 : 無
// 說    明 : 
//*************************************************************************************************
void Initial7960s(void)
{    
    unsigned char command[2];
    
    TRFDisable;                                                 // 復位TRF7960
    DelayMs(8);
    TRFEnable;
    
    command[0] = ModulatorControl;
    command[1] = 0x01;                                          //調制形式為 OOK  
    WriteSingle(command, 2);
    command[0] = ModulatorControl;
    ReadSingle(command, 1);
}

//*************************************************************************************************
// 功能描述 : IRQ中斷處理
// 輸入參數 : FIFO狀態
// 返回參數 : 無
// 說    明 : 
//*************************************************************************************************
void InterruptHandlerReader(unsigned char *Register)
{
// TX IRQ 
     if(*Register == 0xA0)                                      //正在發送,并且FIFO只剩下3字節
     {					
         i_reg = 0x00;
     }
     else if(*Register == BIT7)                                 // 在TX開始時置位,TX完畢后產生中斷,發送完畢
     {				
         i_reg = 0x00;
         *Register = Reset;	                                // FIFO 復位
         DirectCommand(Register);
     }
// RX IRQ 
    else if(*Register == 0x60)                                  //  FIFO 中數據超過 75% (9 bytes) 
    {         			
         i_reg = 0x01;                                          // 仍然是接收狀態
         buf[RXTXstate] = FIFO;
         ReadCont(&buf[RXTXstate], 9);	                // 從 FIFO 讀 9 bytes 
         RXTXstate = RXTXstate + 9;
         if(irqPORT & irqPIN)       
         {
              *Register = IRQStatus;	                // IRQ 狀態積存器地址 
              ReadSingle(Register, 1);	
              irqCLR;

              if(*Register == 0x40)                             // 接收完成
              {	
                   *Register = FIFOStatus;
                   ReadSingle(Register, 1);		//判斷在FIFO中剩余的BYTES
                   *Register = 0x0F & (*Register + 0x01);       //
                   buf[RXTXstate] = FIFO;		//將接收的內容放到正確的緩存中
                                                                                                                                                                                                                             
                   ReadCont(&buf[RXTXstate], *Register);
                   RXTXstate = RXTXstate + *Register;

                   *Register = TXLenghtByte2;		 //判斷是否有數據損壞 
                   ReadSingle(Register, 1);		 //判斷損壞的位數 

                   if((*Register & BIT0) == BIT0)
                   {
                        *Register = (*Register >> 1) & 0x07;	// 隱藏前面無關的5位
                        *Register = 8 - *Register;              //壞掉的位數
                        buf[RXTXstate - 1] &= 0xFF << *Register;
                   }			
                   i_reg = 0xFF;		//接收結束
                   *Register = Reset;		// FIFO 復位
                   DirectCommand(Register);
              }
              else if(*Register == 0x50)                        //CRC錯誤
              {				//接收結束,并且錯誤 
                   i_reg = 0x02;
              }
         }
         else                                                   // 接收完畢中斷
         {
              Register[0] = IRQStatus;
              ReadSingle(Register, 2);	                
              if(Register[0] == 0x00)
              {
                 i_reg = 0xFF;
              }
         }
    }
    else if(*Register == BIT6)                                  // RX結束
    {	                     
        if(RXErrorFlag == RXERROR)                              // CRC錯誤 BIT60x0f
         {
              i_reg = 0x02;                                     // RX 完成
              return;
         }

         *Register = FIFOStatus;
         ReadSingle(Register, 1);		//確定FIFI中剩余的字節數
         *Register = (0x0F & *Register) + 0x01;                 // data bytes + addr
         buf[RXTXstate] = FIFO;			// 將接收的數據放入緩存中;
                                                                                                                                                                                        
         ReadCont(&buf[RXTXstate], *Register);
         RXTXstate = RXTXstate + *Register;

        *Register = TXLenghtByte2;		//判斷是否有數據損壞
         ReadSingle(Register, 1);		//判斷損壞的位數
         if((*Register & BIT0) == BIT0)
         {
              *Register = (*Register >> 1) & 0x07;	// 隱藏前面無關的5位
              *Register = 8 -*Register;
              buf[RXTXstate - 1] &= 0xFF << *Register;
         } 					
         *Register = Reset;			//接收完成復位FIFO
         DirectCommand(Register);
         i_reg = 0xFF;			//最后接收的字節
    }
    else if((*Register & BIT4) == BIT4)                         // CRC錯誤
    {						
         if((*Register & BIT5) == BIT5)                         // 是否有FIFO益出中斷
         {
              i_reg = 0x01;	                                // 正在RX 
              RXErrorFlag = RXERROR;
         }
         else
         {
              i_reg = 0x02;	                                // RX結束 無FIFO益出
         }
    }
    else if((*Register & BIT2) == BIT2)                         // byte framing 錯誤
    {					
         if((*Register & BIT5) == BIT5)
         {
             i_reg = 0x01;	                                 //正在RX 
             RXErrorFlag = RXERROR;
         }
         else
         {
              i_reg = 0x02;	                                //RX結束
         }
    }
    else if(*Register == BIT0)
    {			                //無應答中斷
         i_reg = 0x00;
    }
    else
    {			                //其他中斷處理 
        i_reg = 0x02;
        
        *Register = StopDecoders;	                //接收完成復位FIFO
        DirectCommand(Register);
        
        *Register = Reset;
        DirectCommand(Register);
        
        *Register = IRQStatus;		                
        ReadSingle(Register, 1);	                
        irqCLR;
    }
}	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久91精品国产一区二区精品| 一区二区成人在线| 亚洲伦理在线免费看| 蜜臀久久99精品久久久久久9 | 香蕉久久一区二区不卡无毒影院| 视频一区视频二区中文字幕| 成人av免费在线观看| 欧美va亚洲va香蕉在线| 亚洲观看高清完整版在线观看| 国产一区二区视频在线播放| 51久久夜色精品国产麻豆| 亚洲欧洲日本在线| 国产成人亚洲综合a∨婷婷| 欧美日韩成人综合在线一区二区| 国产精品电影一区二区| 极品瑜伽女神91| 欧美一级欧美三级在线观看| 亚洲一区电影777| 99久久免费精品高清特色大片| 精品成人a区在线观看| 91小视频在线免费看| 久久精品在这里| 麻豆精品蜜桃视频网站| 91精品国产一区二区三区| 亚洲国产aⅴ天堂久久| 色av成人天堂桃色av| 综合久久国产九一剧情麻豆| 国产精一区二区三区| 久久亚洲精品小早川怜子| 久久精品国产亚洲aⅴ| 日韩欧美国产不卡| 久久激情五月婷婷| 精品日韩欧美一区二区| 精品一区二区三区在线视频| 欧美一区二区精品在线| 蜜桃av噜噜一区二区三区小说| 在线综合亚洲欧美在线视频| 婷婷亚洲久悠悠色悠在线播放| 欧美日韩专区在线| 三级精品在线观看| 91精品在线免费观看| 久久aⅴ国产欧美74aaa| 久久久久高清精品| 91网上在线视频| 亚洲亚洲精品在线观看| 欧美肥妇bbw| 久久精品国产一区二区三区免费看| 日韩精品一区国产麻豆| 国产成人精品三级| 国产精品三级av| 91搞黄在线观看| 色综合天天综合狠狠| 一区二区三区四区中文字幕| 欧美无砖专区一中文字| 精品中文av资源站在线观看| 国产亚洲综合性久久久影院| eeuss影院一区二区三区| 亚洲综合色自拍一区| 日韩免费视频一区二区| 风间由美一区二区三区在线观看| 亚洲精选视频免费看| 777午夜精品视频在线播放| 日韩电影在线免费观看| 欧美日韩精品欧美日韩精品一综合| 亚洲成人免费av| 日韩欧美自拍偷拍| 成人永久看片免费视频天堂| 亚洲色图在线视频| 欧美一区二区三区啪啪| 99久久久久久| 喷白浆一区二区| 国产精品美女一区二区在线观看| 欧美亚洲自拍偷拍| 国产精品99久久久久| 一区二区三区在线免费| 日韩精品在线网站| 在线观看91精品国产入口| 国精品**一区二区三区在线蜜桃| 亚洲欧美乱综合| 久久蜜桃av一区精品变态类天堂 | 91精品麻豆日日躁夜夜躁| 国产高清不卡二三区| 亚洲一级在线观看| 欧美激情中文字幕一区二区| 欧美三片在线视频观看| 成人高清免费在线播放| 久久精品国产秦先生| 亚洲久本草在线中文字幕| 26uuu精品一区二区在线观看| 色欧美日韩亚洲| 国产精品一二三区| 久草精品在线观看| 石原莉奈在线亚洲二区| 亚洲欧美激情在线| 国产精品三级电影| 欧美激情艳妇裸体舞| 欧美电影免费观看高清完整版| 欧美午夜精品久久久久久孕妇| 成人在线视频一区二区| 黄色成人免费在线| 强制捆绑调教一区二区| 亚洲一区在线播放| 日韩码欧中文字| 欧美韩日一区二区三区四区| 久久人人超碰精品| 日韩欧美一区电影| 欧美一区二区三区在线观看 | 欧美一级日韩免费不卡| 欧美日韩久久久一区| 色婷婷久久久亚洲一区二区三区 | 日韩二区三区在线观看| 一区二区三区四区不卡视频| 《视频一区视频二区| 国产精品少妇自拍| 亚洲国产精品二十页| 久久久亚洲综合| 精品国产一区二区在线观看| 精品国产伦一区二区三区免费| 欧美一区二区三区白人| 欧美一级二级三级乱码| 91精品午夜视频| 欧美电影免费观看高清完整版在| 欧美成人r级一区二区三区| 日韩欧美国产一区二区在线播放| 日韩色视频在线观看| 亚洲精品一区二区三区福利| 久久女同互慰一区二区三区| 中文字幕欧美日韩一区| 一区在线播放视频| 亚洲精品视频在线| 亚洲成人www| 蜜桃视频在线一区| 粗大黑人巨茎大战欧美成人| 成人av免费在线观看| 在线观看免费成人| 欧美一区二区在线观看| 精品国产乱码久久久久久牛牛| 久久久久久久性| 亚洲欧美色一区| 免费观看在线综合色| 国产原创一区二区三区| 99视频热这里只有精品免费| 欧美在线一二三四区| 精品国产乱码久久久久久图片| 欧美高清在线一区| 亚洲va韩国va欧美va精品| 久久av中文字幕片| 91在线观看一区二区| 欧美日韩国产在线观看| 久久精品无码一区二区三区| 亚洲免费伊人电影| 美女视频第一区二区三区免费观看网站| 国产一区二区在线视频| 91啪亚洲精品| 欧美va在线播放| 一区二区不卡在线视频 午夜欧美不卡在| 亚洲国产cao| 国产99久久久国产精品潘金网站| 色综合久久综合| 精品国产一区二区三区忘忧草 | 久久综合狠狠综合| 亚洲精品高清视频在线观看| 全部av―极品视觉盛宴亚洲| 成人av第一页| 精品国产123| 亚洲高清久久久| 成人av午夜电影| 欧美成人a∨高清免费观看| 一区二区三区四区在线播放 | 久久精品网站免费观看| 天天综合色天天综合色h| 波多野结衣欧美| 久久久久综合网| 美女尤物国产一区| 欧美在线观看18| 日韩美女视频一区二区 | 国产色爱av资源综合区| 日韩国产一区二| 在线观看亚洲精品视频| 中文字幕av在线一区二区三区| 另类小说一区二区三区| 欧美另类高清zo欧美| 亚洲视频资源在线| 成人a免费在线看| 国产日韩欧美精品综合| 精品一区二区在线观看| 欧美一区二区精美| 免费看黄色91| 欧美一区午夜视频在线观看| 洋洋av久久久久久久一区| 成人美女视频在线观看| 欧美不卡123| 久久99精品国产| 欧美一级艳片视频免费观看| 午夜激情一区二区| 337p亚洲精品色噜噜| 午夜精品爽啪视频| 91精品国产入口| 九九精品视频在线看| 欧美成人一级视频|