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

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

?? isr.c

?? 射頻芯片驅動
?? C
字號:
/** @file ISR.c
 *
 * @author Runar Kjellhaug
 *
 * @compiler This program has been tested with Keil C51 V7.50.
 *
 * @copyright
 * Copyright (c) 2005 Nordic Semiconductor. All Rights Reserved.
 *
 * The information contained herein is confidential property of Nordic Semiconductor. The use,
 * copying, transfer or disclosure of such information is prohibited except by express written
 * agreement with Nordic Semiconductor.
 * @endcopyright
 *
 * $Date: 2.03.06 15:25 $
 * $Revision: 22 $
 *
 */
//  Global defines & includes
#include <cygnal\c8051F320.h>
#include "include\usb.h"
#include "include\defines.h"
#include "include\nRF_API.h"
#include "include\LL_API.h"
#include "include\Protocol_API.h"

extern BYTE xdata RX_buffer[USB_RX_SIZE];
extern BYTE xdata RX_pload[RX_PLOAD_MAX_WIDTH];
extern BYTE xdata TX_pload[TX_PLOAD_MAX_WIDTH];
extern BYTE xdata TX_pload_width;
extern BYTE USB_Rx_Comp;
extern BYTE IRQ_Source;
extern BYTE Timer_Mode;
extern BYTE Trans_Tmr,Trans_Tmr_Ctr;
extern BYTE Sweep_Mode;
extern BYTE Sweep_Time_Ctr;
extern BYTE sw_low,sw_high,next_ch;
extern BYTE Sweep_Progress;
//extern BYTE RX_pipe_num;
extern BYTE Test_Mode;
extern BYTE Com_Mode;
extern BYTE xdata Table_Ptr;                                      // Pointer for Freq_table lookup
extern BYTE xdata Freq_table[FREQ_TABLE_SIZE];
extern BYTE Agil_Timeout;
extern BYTE LinkStatus[2];
extern BYTE LinkStat, LastStat;
extern BYTE TX_Update;
extern BYTE Led_Blink1,Led_Blink2,Led_Blink3,Led_Blink4;
extern UINT Link_Loss_Delay;
//****************************************
//
// Extern Interrupt0
// 外部中斷0的中斷服務函數
// Interrupt from nRF24L01
// data ready in RX-payload
//
// In _TESTMODE_:
// Read RX-payload, clear RX_DR....
//
//****************************************
void nRF24L01_IRQ(void) interrupt EXT_INT0
{
BYTE temp;
#ifndef _TESTMODE_
  temp = L01_Get_Status();                                        // Read status, get IRQ source & pipe#
  switch(temp & MASK_IRQ_FLAGS)                                   // Get IRQ source
  {
    case RX_DR:                                                   // Data Ready RX FIFO ?
      IRQ_Source = RX_DR;                                         // Flag for RX_DR
    break;

    case TX_DS:                                                   // Data Sent TX FIFO ?
      IRQ_Source = TX_DS;                                         // Flag for TX_DS
    break;

    case MAX_RT:                                                  // Max #of retries ?
      IRQ_Source = MAX_RT;                                        // Flag for MAX_RT
    break;

    default:                                                      // Default, clear IRQ flags
      L01_Clear_IRQ(MASK_IRQ_FLAGS);
    break;
  }

#else                                                             // _TESTMODE_, "production test"
  temp = L01_Clear_IRQ(MASK_IRQ_FLAGS);                           // Read status & clear IRQ flag's
  switch(temp & MASK_IRQ_FLAGS)
  {
    case MAX_RT:                                                  // Max Retries
      Led3 = 0;                                                   // DEBUG Led3 lit
    break;
    case TX_DS:                                                   // TX data sent
      Led4 = 0;                                                   // DEBUG Led4 lit
    break;
    case RX_DR:                                                   // RX data received
      Led4 = 0;                                                   // DEBUG Led4 lit
      L01_Read_RX_Pload(RX_pload);                                // Read data from current pipe
    break;
  }
#endif
}

//****************************************
//
// Timer2 Compare Match interrupt
//
// 
// 
//
// 
//
//****************************************
void T2_Comp_Match(void) interrupt T2_INTERRUPT
{

  if(Test_Mode)                                                   // Timer for Test_Mode?
  {
    if(Sweep_Mode)                                                // Sweep mode in Test Mode application
    {
      if(++Sweep_Time_Ctr == 20)                                  // Timeout Sweep counter, 20ms
      {
        Sweep_Time_Ctr = 0;                                       // Clear 'Sweep_Time_Ctr' on every match
        Led1 = ~Led1;                                             // _DEBUG_, every channel inc..

        CE_Pin(CE_LOW);                                           // Change channel, CE must be low
        L01_Set_Channel(next_ch);                                 // set next channel
        CE_Pin(CE_HIGH);                                          // Set CE high again

        if (++next_ch > sw_high)                                  // reach high channel
        {
          next_ch = sw_low;                                       // yes; current_ch = low channel
          Led2 = ~Led2;                                           // _DEBUG_, every "wrap"
        }
      }
    }
    else
    {
      if(Sweep_Progress)                                          // Terminate "Sweep_Mode"
      {
        CE_Pin(CE_LOW);                                           // End sweep mode with CE low
        Sweep_Progress = 0;                                       // Reset sweep in progress flag
        L01_Flush_TX();                                           // Flush TX to terminate further interrupts
        Sweep_Time_Ctr = 0;                                       // Clear Sweep_Time_Ctr on every match

#ifndef _TESTMODE_
        Write_Led(LED1, LED_OFF);                                 // Sweep mode terminated, clear Led1
        Write_Led(LED2, LED_OFF);                                 // Sweep mode terminated, clear Led1
#endif
      }
    }
  }
  
  if((Com_Mode == TX_MODE) && Timer_Mode)
  {
    if(Trans_Tmr == ++Trans_Tmr_Ctr)                            // timeout; TX packets interval
    {

      switch(LinkStat)
      {
        case LINK_LOSS:                                         // first attempt after link loss..
          CE_Pin(CE_PULSE);                                     // retransmitt!
        break;

        case LINK_ESTABLISH:                                    // normal operation
          L01_Write_TX_Pload(TX_pload, TX_pload_width);         // write new TX payload,
          CE_Pin(CE_PULSE);                                     // and transmitt packet.
          Trans_Tmr_Ctr = CLEAR;                                // clear Transmitt Timer
        break;

        case LINK_RELOST:                                       // do nothing if RELOST, i.e. channel scanning..

        break;
      }

    }

  }

  if(Com_Mode == RX_MODE)                                         // Timer mode for RX device
  {
    if(Trans_Tmr == ++Trans_Tmr_Ctr)                              // Timeout; Frequency Agility Timer
    {
      Blink_Led(LED3);
      LinkStatus[LINK_STATUS] = LINK_LOSS;                        // Message; LINK LOSS
      LinkStatus[LINK_CHANNEL] = L01_Get_Channel();               // on channel:LINK_CHANNEL
      LinkStat = LINK_LOSS;                                       // Current "Link Status = LINK_LOSS"

      CE_Pin(CE_LOW);                                             // CE low during channel switch
      if(++Table_Ptr == FREQ_TABLE_SIZE)                          // Increment freq_table pointer
      {
        Blink_Led(LED4);
        Table_Ptr = CLEAR;                                        // Wrap freq_table pointer
      }
      L01_Flush_RX();                                             // FAP timeout, Flush RX FIFO.
      L01_Set_Channel(Freq_table[Table_Ptr]);                     // Change channel
      CE_Pin(CE_HIGH);                                            // then set CE high again
      Agil_Timeout = TIMEOUT;                                     // default, agil_timeout, only reset by RX_DR
      Trans_Tmr_Ctr = CLEAR;                                      // Clear counter
    }

    Update_Link_Status();                                         // Link_Status used for "Events:" RX mode
    
    if(LinkStat == LINK_LOSS)
    {
      Link_Loss_Delay++;
    }
    else
    {
      Link_Loss_Delay = 0;
    }

  }
  TF2H = 0;                                                       // Reset T2 interrupt flag
}


/*****************************************
*
* Timer0 Overflow interrupt
*
* Used for CE pulse signal
* Timeout:12祍
* 定時器T0僅用于產生一個CE脈沖
* 
*
*****************************************/
void T0_Overflow(void) interrupt T0_INTERRUPT
{
  TR0 = 0;                                                        // Stop T0
  CE = 0;                                                         // Reset CE signal
}

/*****************************************
*
* Timer1 Overflow interrupt
*
* Used for Led blink..
* Timeout:248祍
*
* 
*
*****************************************/
void T1_Overflow(void) interrupt T1_INTERRUPT
{
  if(Led_Blink1 == 1)     // LED1
  {
    Led1 = 1;
    Led_Blink1--;
  }  
  if(Led_Blink1 == 2)
    Led_Blink1--;

  if(Led_Blink2 == 1)     // LED2
  {
    Led2 = 1;
    Led_Blink2--;
  }  
  if(Led_Blink2 == 2)
    Led_Blink2--;

  if(Led_Blink3 == 1)     // LED3
  {
    Led3 = 1;
    Led_Blink3--;
  }  
  if(Led_Blink3 == 2)
    Led_Blink3--;

  if(Led_Blink4 == 1)     // LED4
  {
    Led4 = 1;
    Led_Blink4--;
  }  
  if(Led_Blink4 == 2)
    Led_Blink4--;

}

/*****************************************
*
* USB Interrupt Service Rutine
*
* 
* 
*
* 
*
*****************************************/
void USB_Interrupt(void) interrupt USB_INTERRUPT
{
  BYTE INTVAL = Get_Interrupt_Source();
  if (INTVAL & RX_COMPLETE)
  {
    Block_Read(RX_buffer,USB_RX_SIZE);
    USB_Rx_Comp = 1;
  }

  if (INTVAL & DEV_SUSPEND)
  {
//    Suspend_Device();                                           // ..suspend has been disabled..
  }

  if (INTVAL & DEV_CONFIGURED)
  {
    Port_Init();
  }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久久久99精品| 欧美日韩高清一区二区三区| 日韩欧美久久久| 精品在线免费视频| 亚洲视频一二三区| 欧美成人欧美edvon| 高清免费成人av| 五月激情综合婷婷| 日本一区二区久久| 91精品欧美综合在线观看最新| 丁香另类激情小说| 蜜桃在线一区二区三区| 亚洲女女做受ⅹxx高潮| 久久久久高清精品| 欧美极品少妇xxxxⅹ高跟鞋| 久久久精品中文字幕麻豆发布| 久久亚洲精华国产精华液| 91成人网在线| 成人手机在线视频| 91麻豆国产自产在线观看| 精品一区二区三区久久久| 成人美女在线观看| 色偷偷88欧美精品久久久| 国内精品久久久久影院薰衣草| 一区二区三区四区激情| 国产精品久久久久久久久久久免费看 | 捆绑调教美女网站视频一区| 自拍偷拍欧美激情| 亚洲国产另类av| 亚洲天堂精品视频| 青青草国产成人av片免费| 亚洲综合精品久久| 亚洲欧美日韩精品久久久久| 婷婷中文字幕综合| 成人黄色777网| 丁香天五香天堂综合| 在线观看日韩一区| 欧美色偷偷大香| 欧美日韩一级黄| 久久精品网站免费观看| 欧美激情一区二区三区在线| 亚洲成人av中文| 天天影视网天天综合色在线播放 | 蜜桃视频一区二区| 97se亚洲国产综合在线| 成人美女视频在线观看18| 正在播放一区二区| 一区二区三区四区亚洲| 久久99精品国产.久久久久久| 色哟哟在线观看一区二区三区| 欧美成人福利视频| 亚洲bt欧美bt精品| 91在线精品一区二区| www激情久久| 美女精品一区二区| 欧美日韩免费不卡视频一区二区三区| 国产婷婷色一区二区三区| 日本在线不卡视频| 国产宾馆实践打屁股91| 这里是久久伊人| 亚洲国产精品天堂| 91麻豆.com| 中文字幕一区二区三区四区| 亚洲午夜久久久久久久久久久| 国产精品 欧美精品| 色婷婷综合五月| 国产精品福利一区| 欧美精品在线视频| 2023国产精品| 久久 天天综合| 日韩精品中文字幕在线一区| 爽爽淫人综合网网站| 国产成人在线网站| 久久精品人人爽人人爽| 韩国一区二区在线观看| 精品国产免费久久| 亚洲精品第1页| 激情综合色综合久久| 欧美一级搡bbbb搡bbbb| 亚洲色图制服诱惑| 91美女福利视频| 亚洲欧美精品午睡沙发| 91蝌蚪porny成人天涯| 综合亚洲深深色噜噜狠狠网站| 懂色av噜噜一区二区三区av| 久久精品亚洲麻豆av一区二区| 蜜乳av一区二区三区| 精品欧美一区二区在线观看| 国产美女在线精品| 欧美精品丝袜中出| 久久不见久久见中文字幕免费| 欧美mv日韩mv国产网站| 成人av高清在线| 亚洲综合小说图片| 日韩精品中文字幕在线不卡尤物| 九一久久久久久| 国产精品美女视频| 国产又粗又猛又爽又黄91精品| 国产日韩精品一区二区三区| 青青草原综合久久大伊人精品| 亚洲欧美aⅴ...| 欧美日韩aaaaa| 国产麻豆午夜三级精品| 国产精品麻豆网站| 欧美日韩一区三区四区| 久久99日本精品| 国产精品美女久久久久高潮| 欧美系列亚洲系列| 亚洲视频狠狠干| 欧美高清视频www夜色资源网| 老司机精品视频在线| 国产精品美女久久久久aⅴ国产馆| 欧美做爰猛烈大尺度电影无法无天| 天天综合网天天综合色| 国产精品沙发午睡系列990531| 欧美伊人久久久久久午夜久久久久| 偷拍亚洲欧洲综合| 中文在线资源观看网站视频免费不卡| 欧美视频在线观看一区| 国产成人av电影在线观看| 午夜视黄欧洲亚洲| 国产精品传媒入口麻豆| 日韩视频一区二区在线观看| 奇米一区二区三区| 国产精品成人在线观看| 日韩午夜激情视频| 在线观看欧美精品| 岛国一区二区三区| 久久精品国产网站| 亚洲va天堂va国产va久| 国产精品麻豆欧美日韩ww| 精品免费国产二区三区| 欧美日韩一区三区四区| 成人精品国产一区二区4080| 激情欧美日韩一区二区| 天天色 色综合| 一区二区三区蜜桃| 中文成人综合网| 国产亚洲人成网站| 久久亚洲春色中文字幕久久久| 欧美精品免费视频| 欧美少妇性性性| 在线观看一区二区视频| 99久久精品一区二区| 福利一区二区在线| 国产不卡视频在线播放| 国产一区二区精品久久91| 免费成人av在线| 日本一区中文字幕| 日韩精品一卡二卡三卡四卡无卡| 樱花草国产18久久久久| 亚洲男人的天堂av| 日韩毛片视频在线看| 中文字幕在线不卡视频| 国产精品久久久久永久免费观看 | 亚洲第一成年网| 香蕉成人伊视频在线观看| 亚洲亚洲精品在线观看| 亚洲一卡二卡三卡四卡无卡久久 | 久久精品综合网| 国产精品无码永久免费888| 国产精品沙发午睡系列990531| 欧美高清在线精品一区| 亚洲欧洲www| 亚洲一区精品在线| 日韩av不卡一区二区| 久久疯狂做爰流白浆xx| 国产成人亚洲综合a∨婷婷 | 欧美色中文字幕| 欧美日韩高清不卡| 日韩欧美自拍偷拍| 久久综合狠狠综合久久激情| 国产欧美日韩在线看| 亚洲素人一区二区| 亚洲福中文字幕伊人影院| 婷婷综合久久一区二区三区| 激情五月婷婷综合| 成人h动漫精品一区二区| 色天天综合色天天久久| 51精品国自产在线| 中文一区二区在线观看| 一区二区三区在线高清| 日av在线不卡| 成人免费看片app下载| 日本精品视频一区二区| 日韩免费视频一区二区| 国产精品日韩成人| 日本亚洲欧美天堂免费| 成人午夜激情在线| 欧美老年两性高潮| 国产精品久久三| 日本亚洲免费观看| 99久久精品免费观看| 欧美一区二区视频在线观看2020| 久久久不卡网国产精品一区| 亚洲男人电影天堂| 国产成人自拍网| 日韩欧美成人一区二区| 亚洲欧美日韩中文字幕一区二区三区| 天堂精品中文字幕在线|