⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usbtask.h

📁 基于UCOS-II制作的MP3
💻 H
字号:
//USB TASK


static  bdata   bit     disconnected;
static  idata   Byte    usb_resume_counter;




/*F**************************************************************************
* NAME: usb_task_init
*----------------------------------------------------------------------------
* PARAMS:
*
* return:
*----------------------------------------------------------------------------
* PURPOSE: 
*   USB task initialization
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE: 
*----------------------------------------------------------------------------
* REQUIREMENTS: 
*****************************************************************************/
void usb_task_init (void)
{
  disconnected = 0;
  clock_usb_init();                         /* for suspend detection */
  usb_init();
}


/*F**************************************************************************
* NAME: usb_task
*----------------------------------------------------------------------------
* PARAMS:
*
* return:
*----------------------------------------------------------------------------
* PURPOSE: 
*   USB task
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*   In order to avoid spurious connection, resume is done after the resume
*   event has been detected at least #USB_WAIT_NB_RESUME times.
*----------------------------------------------------------------------------
* REQUIREMENTS: 
*****************************************************************************/
void usb_task (void)
{
  if (Usb_suspend())                        /* -- if suspend flag -- */
  {
    if (disconnected == 0)
    {
      disconnected = 1;
      clock_disable();
     // mode_exit_download();
     // usb_resume_counter = USB_WAIT_NB_RESUME;
    }

    if (Usb_resume())                       /* check if resume */
    {
      if (usb_resume_counter == 0)
      {
       // mode_set_download();
        clock_usb_init();
       // print_mode_mass();                    /* display mass storage icon */
       // print_screen(MASS_SCREEN);            /* display storage screen */
        disconnected = 0;
        Usb_clear_SPINT();
        Usb_clear_WUPCPU();
        Usb_clear_SOFINT();
      }
      else
      {
        Usb_clear_WUPCPU();
        Usb_clear_SOFINT();
        usb_resume_counter--;
      }
    }
  }
  else
  {
    if (Usb_reset())                        /* if end of reset */
    { 
      Usb_enable_SPINT();                   /* Suspend interrupt enable */
      disconnected = 0;
      Usb_clear_rx_bank();
      Usb_clear_WUPCPU();
      Usb_clear_SPINT();
      Usb_clear_EORINT();

     // ms_multiple_drive = FALSE;            /* multiple disk support init */
     // gl_sbc_wr_protect = Kbd_key_locked(); /* set write protect flag */
     // Sbc_chip_init();                      /* on-board memory SCSI driver init */
     // Sbc_card_init();                      /* card memory SCSI driver init */


    }

    if (UEPINT != 0)                        /* new command */
    {
      Usb_select_ep(EP_CONTROL);
      if (Usb_setup_received())
      {
        usb_enumeration_process();
      }
      Usb_select_ep(EP_OUT);
      if (Usb_rx_complete())
      { 
       // gl_sbc_wr_protect = Kbd_key_locked(); /* set write protect flag */
        Usb_enable_int();
       // usb_mass_storage_cbw();
       // usb_mass_storage_csw();
        Usb_disable_int();
      }
    }
  }
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -