diff --git a/hw/bsp/pic32mz/boards/olimex_emz64/olimex_emz64.c b/hw/bsp/pic32mz/boards/olimex_emz64/olimex_emz64.c index 0f6dc37e2..e47ec5f31 100644 --- a/hw/bsp/pic32mz/boards/olimex_emz64/olimex_emz64.c +++ b/hw/bsp/pic32mz/boards/olimex_emz64/olimex_emz64.c @@ -63,7 +63,7 @@ void led_init(void) // RB8 - LED // ANASELB RB8 not analog ANSELBCLR = TU_BIT(8); - // TRISH RH2 input + // TRISH RH2 output TRISBCLR = TU_BIT(8); // Initial value 0, LED off LATBCLR = TU_BIT(8); @@ -128,7 +128,7 @@ void board_led_write(bool state) uint32_t board_button_read(void) { - return (PORTB >> 12) & 1; + return ((PORTB >> 12) & 1) == 0; } int board_uart_write(void const * buf, int len) diff --git a/hw/bsp/pic32mz/boards/olimex_hmz144/olimex_hmz144.c b/hw/bsp/pic32mz/boards/olimex_hmz144/olimex_hmz144.c index 4ecbe75a1..93a8da5fb 100644 --- a/hw/bsp/pic32mz/boards/olimex_hmz144/olimex_hmz144.c +++ b/hw/bsp/pic32mz/boards/olimex_hmz144/olimex_hmz144.c @@ -60,7 +60,7 @@ void led_init(void) { // RH2 - LED // ANASELH no analog function on RH2 - // TRISH RH2 input + // TRISH RH2 output TRISHCLR = TU_BIT(2); // Initial value 0, LED off LATHCLR = TU_BIT(2); @@ -126,7 +126,7 @@ void board_led_write(bool state) uint32_t board_button_read(void) { - return (PORTB >> 12) & 1; + return ((PORTB >> 12) & 1) == 0; } int board_uart_write(void const * buf, int len) diff --git a/src/portable/microchip/pic32mz/dcd_pic32mz.c b/src/portable/microchip/pic32mz/dcd_pic32mz.c index 323d01a71..740e5edbb 100644 --- a/src/portable/microchip/pic32mz/dcd_pic32mz.c +++ b/src/portable/microchip/pic32mz/dcd_pic32mz.c @@ -163,6 +163,10 @@ void dcd_remote_wakeup(uint8_t rhport) USB_REGS->POWERbits.RESUME = 1; #if CFG_TUSB_OS != OPT_OS_NONE osal_task_delay(10); +#else + // TODO: Wait in non blocking mode + unsigned cnt = 2000; + while (cnt--) __asm__("nop"); #endif USB_REGS->POWERbits.RESUME = 0; }