Browse Source

Handle disconnect device from hub

main
PaulStoffregen 7 years ago
parent
commit
98701a268f
1 changed files with 18 additions and 2 deletions
  1. +18
    -2
      hub.cpp

+ 18
- 2
hub.cpp View File

port_doing_reset = port; port_doing_reset = port;
} }
} else { } else {
stop_debounce_timer(port);
state = PORT_DISCONNECT; state = PORT_DISCONNECT;
} }
break; break;
else if (status & 0x0400) speed = 2; else if (status & 0x0400) speed = 2;
port_doing_reset_speed = speed; port_doing_reset_speed = speed;
resettimer.start(25000); resettimer.start(25000);
} else if (!(status & 0x0001)) {
send_clearstatus_connect(port);
USBHub::reset_busy = false;
state = PORT_DISCONNECT;
} }
break; break;
case PORT_RECOVERY: case PORT_RECOVERY:
if (!(status & 0x0001)) {
send_clearstatus_connect(port);
USBHub::reset_busy = false;
state = PORT_DISCONNECT;
}
break; break;
case PORT_ACTIVE: case PORT_ACTIVE:
if (!(status & 0x0001)) {
disconnect_Device(devicelist[port-1]);
devicelist[port-1] = NULL;
send_clearstatus_connect(port);
state = PORT_DISCONNECT;
}
break; break;
} }
} }
} }


// TODO: testing only!!! // TODO: testing only!!!
static uint32_t count=0;
if (++count > 36) while (1) ; // stop here
//static uint32_t count=0;
//if (++count > 36) while (1) ; // stop here
} }


void USBHub::start_debounce_timer(uint32_t port) void USBHub::start_debounce_timer(uint32_t port)

Loading…
Cancel
Save