示例#1
0
void 
CmtUsbDev::USB_Reset() {
  ISTR = 0;                                 /* Clear Interrupt Status */

  CNTR = CNTR_CTRM | CNTR_RESETM |
         (USB_SUSPEND_EVENT ? CNTR_SUSPM   : 0) |
         (USB_WAKEUP_EVENT  ? CNTR_WKUPM   : 0) |
         (USB_ERROR_EVENT   ? CNTR_ERRM    : 0) |
         (USB_ERROR_EVENT   ? CNTR_PMAOVRM : 0) |
         (USB_SOF_EVENT     ? CNTR_SOFM    : 0) |
         (USB_SOF_EVENT     ? CNTR_ESOFM   : 0);

  FreeBufAddr = EP_BUF_ADDR;

  BTABLE = 0x00;                            /* set BTABLE Address */

  /* Setup Control Endpoint 0 */
  
  pBUF_DSCR->ADDR_TX = FreeBufAddr;
  FreeBufAddr += USB_MAX_PACKET0;
  pBUF_DSCR->ADDR_RX = FreeBufAddr;
  FreeBufAddr += USB_MAX_PACKET0;
  if (USB_MAX_PACKET0 > 62) {
    pBUF_DSCR->COUNT_RX = ((USB_MAX_PACKET0 << 5) - 1) | 0x8000;
    } 
  else {
    pBUF_DSCR->COUNT_RX =   USB_MAX_PACKET0 << 9;
    }
  EPxREG(0) = EP_CONTROL | EP_RX_VALID;

  DADDR = DADDR_EF | 0;                     /* Enable USB Default Address */
  
  USB_ResetCore();
  }
示例#2
0
void USB_Suspend_Event (void) {
	//WDT_UpdateTimeOut(1000); //will reset after 1ms	
	//while(1);
	USB_ResetCore();
	USB_Connected = 0;
}
示例#3
0
void USB_Reset_Event (void) {
  USB_ResetCore();
	USB_Connected = 1;
}
示例#4
0
void USB_Reset_Event (void) {
  USB_ResetCore();
}
示例#5
0
void USB_Reset_Event (void) {
  USB_ResetCore();
  LED_Off (LED_RD | LED_WR | LED_CFG | LED_SUSP);
}
示例#6
0
void USB_Reset_Event (void) {
  USB_ResetCore();
  IOCLR1 = LED_CFG;                         /* Turn Off Cfg LED */
}