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

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

?? usb_task.c

?? ATMEL at90usb128 usb audio driver for win-avr
?? C
?? 第 1 頁 / 共 2 頁
字號:

// ---- REDUCED HOST ONLY USB MODE ---------------------------------------------
#elif ((USB_DEVICE_FEATURE == DISABLE)&& (USB_HOST_FEATURE == ENABLED))
   usb_host_task();
// -----------------------------------------------------------------------------

//! ---- ERROR, NO MODE ENABLED -------------------------------------------------
#elif ((USB_DEVICE_FEATURE == DISABLE)&& (USB_HOST_FEATURE == DISABLE))
   #error  at least one of USB_DEVICE_FEATURE or USB_HOST_FEATURE should be enabled
   #error  otherwise the usb task has nothing to do ...
#endif
// -----------------------------------------------------------------------------

}

//! @brief USB interrupt subroutine
//!
//! This function is called each time a USB interrupt occurs.
//! The following USB DEVICE events are taken in charge:
//! - VBus On / Off
//! - Start Of Frame
//! - Suspend
//! - Wake-Up
//! - Resume
//! - Reset
//! - Start of frame
//!
//! The following USB HOST events are taken in charge:
//! - Device connection
//! - Device Disconnection
//! - Start Of Frame
//! - ID pin change
//! - SOF (or Keep alive in low speed) sent
//! - Wake up on USB line detected
//!
//! For each event, the user can launch an action by completing
//! the associate define (See conf_usb.h file to add action upon events)
//!
//! Note: Only interrupts events that are enabled are processed
//!
//! @param none
//!
//! @return none
#ifdef AVRGCC
 ISR(USB_GEN_vect)
#else
#pragma vector = USB_GENERAL_vect
__interrupt void usb_general_interrupt()
#endif
{
   #if (USB_HOST_PIPE_INTERRUPT_TRANSFER == ENABLE)
   U8 i;
   U8 save_pipe_nb;
   #endif
// ---------- DEVICE events management -----------------------------------
#if (USB_DEVICE_FEATURE == ENABLED)
  //- VBUS state detection
   if (Is_usb_vbus_transition() && Is_usb_vbus_interrupt_enabled())
   {
      Usb_ack_vbus_transition();
      if (Is_usb_vbus_high())
      {
         usb_connected = TRUE;
         Usb_vbus_on_action();
         Usb_send_event(EVT_USB_POWERED);
			Usb_enable_reset_interrupt();
         usb_start_device();
			Usb_attach();
      }
      else
      {
         Usb_vbus_off_action();
         usb_connected = FALSE;
         usb_configuration_nb = 0;
         Usb_send_event(EVT_USB_UNPOWERED);
      }
   }
  // - Device start of frame received
   if (Is_usb_sof() && Is_sof_interrupt_enabled())
   {
      Usb_ack_sof();
      Usb_sof_action();
   }
  // - Device Suspend event (no more USB activity detected)
   if (Is_usb_suspend() && Is_suspend_interrupt_enabled())
   {
      Usb_ack_suspend();
      Usb_enable_wake_up_interrupt();
      Usb_ack_wake_up();                 // clear wake up to detect next event
      Usb_freeze_clock();
      Usb_send_event(EVT_USB_SUSPEND);
      Usb_suspend_action();
   }
  // - Wake up event (USB activity detected): Used to resume
   if (Is_usb_wake_up() && Is_swake_up_interrupt_enabled())
   {
      Usb_unfreeze_clock();
      Usb_ack_wake_up();
      Usb_disable_wake_up_interrupt();
      Usb_wake_up_action();
      Usb_send_event(EVT_USB_WAKE_UP);
   }
  // - Resume state bus detection
   if (Is_usb_resume() && Is_resume_interrupt_enabled())
   {
      Usb_disable_wake_up_interrupt();
      Usb_ack_resume();
      Usb_disable_resume_interrupt();
      Usb_resume_action();
      Usb_send_event(EVT_USB_RESUME);
   }
  // - USB bus reset detection
   if (Is_usb_reset()&& Is_reset_interrupt_enabled())
   {
      Usb_ack_reset();
      usb_init_device();
      Usb_reset_action();
      Usb_send_event(EVT_USB_RESET);
   }
#endif// End DEVICE FEATURE MODE

// ---------- HOST events management -----------------------------------
#if (USB_HOST_FEATURE == ENABLED && USB_DEVICE_FEATURE == ENABLED)
  // - ID pin change detection
   if(Is_usb_id_transition()&&Is_usb_id_interrupt_enabled())
   {
      if(Is_usb_id_device())
      { g_usb_mode=USB_MODE_DEVICE;}
      else
      { g_usb_mode=USB_MODE_HOST;}
      Usb_ack_id_transition();
      if( g_usb_mode != g_old_usb_mode) // Basic Debounce
      {
         if(Is_usb_id_device()) // Going to device mode
         {
            Usb_send_event(EVT_USB_DEVICE_FUNCTION);
         }
         else                   // Going to host mode
         {
            Usb_send_event(EVT_USB_HOST_FUNCTION);
         }
         Usb_id_transition_action();
         LOG_STR_CODE(log_id_change);
         #if ( ID_PIN_CHANGE_GENERATE_RESET == ENABLE)
        // Hot ID transition generates wdt reset
            #ifndef  AVRGCC
               Wdt_change_16ms(); while(1);
            #else
               Wdt_change_enable(); while(1);
            #endif
         #endif
      }
   }
#endif
#if (USB_HOST_FEATURE == ENABLED)
  // - The device has been disconnected
   if(Is_device_disconnection() && Is_host_device_disconnection_interrupt_enabled())
   {
      host_disable_all_pipe();
      Host_ack_device_disconnection();
      device_state=DEVICE_DISCONNECTED;
      Usb_send_event(EVT_HOST_DISCONNECTION);
      LOG_STR_CODE(log_device_disconnect);
      Host_device_disconnection_action();
   }
  // - Device connection
   if(Is_device_connection() && Is_host_device_connection_interrupt_enabled())
   {
      Host_ack_device_connection();
      host_disable_all_pipe();
      Host_device_connection_action();
   }
  // - Host Start of frame has been sent
   if (Is_host_sof() && Is_host_sof_interrupt_enabled())
   {
      Host_ack_sof();
      Usb_send_event(EVT_HOST_SOF);
      private_sof_counter++;

      // delay timeout management for interrupt tranfer mode in host mode
      #if ((USB_HOST_PIPE_INTERRUPT_TRANSFER==ENABLE) && (TIMEOUT_DELAY_ENABLE==ENABLE))
      if (private_sof_counter>=250)   // Count 1/4 sec
      {
         private_sof_counter=0;
         for(i=0;i<MAX_EP_NB;i++)
         {
            if(it_pipe_str[i].enable==ENABLE)
            {
               save_pipe_nb=Host_get_selected_pipe();
               Host_select_pipe(i);
               if((++it_pipe_str[i].timeout>TIMEOUT_DELAY) && (Host_get_pipe_type()!=TYPE_INTERRUPT))
               {
                  it_pipe_str[i].enable=DISABLE;
                  it_pipe_str[i].status=PIPE_DELAY_TIMEOUT;
                  Host_stop_pipe_interrupt(i);
                  if (is_any_interrupt_pipe_active()==FALSE)    // If no more transfer is armed
                  {
                     if (g_sav_int_sof_enable==FALSE)
                     {
                        Host_disable_sof_interrupt();
                     }
                  }
                  it_pipe_str[i].handle(PIPE_DELAY_TIMEOUT,it_pipe_str[i].nb_byte_processed);
               }
               Host_select_pipe(save_pipe_nb);
            }
         }
      }
      #endif  // (USB_HOST_PIPE_INTERRUPT_TRANSFER==ENABLE) && (TIMEOUT_DELAY_ENABLE==ENABLE))
      Host_sof_action();
   }
  // - Host Wake-up has been received
   if (Is_host_hwup() && Is_host_hwup_interrupt_enabled())
   {
      Host_disable_hwup_interrupt();  // Wake up interrupt should be disable host is now wake up !
      // CAUTION HWUP can be cleared only when USB clock is active (not frozen)!
      Pll_start_auto();               // First Restart the PLL for USB operation
      Wait_pll_ready();               // Get sure pll is lock
      Usb_unfreeze_clock();           // Enable clock on USB interface
      Host_ack_hwup();                // Clear HWUP interrupt flag
      Usb_send_event(EVT_HOST_HWUP);  // Send software event
      Host_hwup_action();             // Map custom action
   }
#endif // End HOST FEATURE MODE
}


extern void suspend_action(void)
{
   Enable_interrupt();
   Enter_power_down_mode();
}

extern void host_suspend_action(void)
{
   //Enter_power_down_mode();  //For example...
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美理论片在线| 国产精品美女久久久久久| 亚洲欧美激情在线| 91麻豆国产福利在线观看| 亚洲欧美自拍偷拍色图| 91在线播放网址| 亚洲成在人线免费| 日韩一区二区精品| 国产另类ts人妖一区二区| 国产欧美一区二区精品性色超碰| 国产大陆亚洲精品国产| 最新成人av在线| 欧美区视频在线观看| a美女胸又www黄视频久久| 亚洲欧美日韩国产中文在线| 欧美性淫爽ww久久久久无| 日韩福利电影在线观看| 久久综合狠狠综合久久综合88| 天天综合网 天天综合色| 久久日韩精品一区二区五区| 91在线免费看| 日本va欧美va精品| 国产精品久久久久久一区二区三区 | 亚洲国产精品精华液ab| 亚洲v中文字幕| 欧美日本乱大交xxxxx| 久久国产尿小便嘘嘘| 久久精品夜色噜噜亚洲a∨| 成人午夜激情片| 夜色激情一区二区| 欧美日本在线观看| 精品一区二区成人精品| 久久久久国产精品厨房| zzijzzij亚洲日本少妇熟睡| 一区二区三区在线观看动漫| 日韩欧美亚洲一区二区| www.视频一区| 老司机免费视频一区二区三区| 中文字幕av一区二区三区高| 91精品国产综合久久久久久漫画| 国产盗摄女厕一区二区三区| 性做久久久久久免费观看欧美| 国产日产欧产精品推荐色| 欧美视频在线播放| 久久福利资源站| 精品国产三级电影在线观看| 日本vs亚洲vs韩国一区三区二区| 99热这里都是精品| 午夜精品在线看| ●精品国产综合乱码久久久久| 日韩视频免费观看高清在线视频| 97se亚洲国产综合在线| 国产在线播放一区| 日本伊人精品一区二区三区观看方式| 成人免费在线播放视频| 精品福利二区三区| 欧美久久免费观看| 欧美性受xxxx黑人xyx性爽| 成人av网在线| 粉嫩久久99精品久久久久久夜 | 一本色道综合亚洲| 麻豆91在线观看| 国产精品热久久久久夜色精品三区| 中文字幕一区日韩精品欧美| 99久久综合狠狠综合久久| 国产在线精品视频| 久久精品国产一区二区| 视频一区二区三区在线| 亚洲综合激情另类小说区| 中文字幕一区二区三| 久久久精品国产免费观看同学| 日韩精品一区国产麻豆| 91精品国产一区二区| 欧美日韩三级一区二区| 欧美日韩三级一区| 欧美女孩性生活视频| 欧美亚洲日本国产| 欧美日韩国产高清一区二区| 欧美日韩一卡二卡三卡| 欧美精品一级二级三级| 777奇米四色成人影色区| 欧美精品第一页| 3atv一区二区三区| 日韩午夜激情免费电影| 91精品婷婷国产综合久久| 7777精品伊人久久久大香线蕉完整版| 欧美人与性动xxxx| 午夜精品福利久久久| 中文字幕av一区 二区| 欧美精品第1页| 91啦中文在线观看| 国产欧美精品一区二区色综合| 色综合天天综合网天天看片| 亚洲国产视频a| 久久精品人人爽人人爽| 欧美国产视频在线| 欧美一区二区三区白人| 日韩欧美色电影| 日韩一区欧美小说| 中文字幕av一区 二区| 中文字幕精品三区| 精品99一区二区| 亚洲色图在线播放| 日日夜夜一区二区| 精品在线播放午夜| 91一区二区三区在线观看| 欧美丝袜自拍制服另类| 久久蜜桃av一区精品变态类天堂 | 精品国产sm最大网站| 亚洲日本va在线观看| 免费看精品久久片| 91蜜桃婷婷狠狠久久综合9色| 日韩一区二区三区观看| 亚洲成人av一区二区三区| 国产乱子伦一区二区三区国色天香| 亚洲午夜影视影院在线观看| 1024成人网色www| 26uuu国产电影一区二区| 精品国产青草久久久久福利| 欧美高清在线一区| 亚洲高清免费观看高清完整版在线观看| 日日摸夜夜添夜夜添国产精品| 国内精品伊人久久久久av一坑| 福利91精品一区二区三区| 色综合久久久久久久久| 5566中文字幕一区二区电影| 国产精品网站在线播放| 亚洲成人www| 国产91丝袜在线播放| 欧美色爱综合网| 欧美激情中文字幕| 婷婷综合五月天| av电影天堂一区二区在线观看| 欧美高清www午色夜在线视频| 中文字幕第一区| 久久精品国内一区二区三区| 色偷偷一区二区三区| 久久久久久久久蜜桃| 午夜精品久久久久久不卡8050| 成人av在线资源网站| 精品精品欲导航| 午夜a成v人精品| 色先锋aa成人| 中文字幕综合网| 国产成人av一区二区三区在线| 欧美一区二区三区免费大片| 一个色综合av| 91亚洲永久精品| 国产精品久久精品日日| 黄色资源网久久资源365| 7878成人国产在线观看| 一区二区三区欧美日| 91在线视频免费91| 国产精品视频在线看| 国产麻豆精品theporn| 欧美成人a∨高清免费观看| 日韩精品午夜视频| 一本色道久久综合亚洲aⅴ蜜桃 | 国产精品羞羞答答xxdd| 日韩女优毛片在线| 日韩专区中文字幕一区二区| 欧美性做爰猛烈叫床潮| 亚洲一区二区黄色| 欧美最猛黑人xxxxx猛交| 亚洲欧美日本韩国| 色综合婷婷久久| 亚洲曰韩产成在线| 欧美日韩高清一区二区| 亚洲午夜私人影院| 欧美日韩亚洲不卡| 日韩av中文字幕一区二区三区 | 精品国产电影一区二区| 精品在线免费观看| 国产视频一区在线播放| 国产ts人妖一区二区| 国产精品日产欧美久久久久| 99免费精品视频| 一区二区三区美女视频| 在线观看国产日韩| 日本不卡一区二区三区高清视频| 日韩欧美亚洲国产另类| 国产毛片精品视频| 国产精品久线观看视频| 91美女视频网站| 亚洲成人av一区二区三区| 日韩免费一区二区三区在线播放| 久久国产剧场电影| 欧美国产一区二区| 欧美综合久久久| 日韩精品免费专区| 精品久久久久久久久久久院品网| 国产精品一色哟哟哟| 中文字幕中文在线不卡住| 日本道色综合久久| 美女一区二区三区| 欧美国产欧美亚州国产日韩mv天天看完整| 成人国产精品免费观看| 亚洲成国产人片在线观看| 欧美不卡在线视频| eeuss鲁片一区二区三区在线看|