#include "Arduino.h" void usbHostPower(UsbHostPower_t mode){ static UsbHostPower_t m = USB_HOST_POWER_OFF; if(m == mode){ return; } if(mode == USB_HOST_POWER_OFF){ digitalWrite(LIMIT_EN, LOW); if(m == USB_HOST_POWER_VBUS){ digitalWrite(DEV_VBUS_EN, LOW); } else if(m == USB_HOST_POWER_BAT){ digitalWrite(BOOST_EN, LOW); } } else if(mode == USB_HOST_POWER_VBUS){ if(m == USB_HOST_POWER_BAT){ digitalWrite(BOOST_EN, LOW); } digitalWrite(DEV_VBUS_EN, HIGH); } else if(mode == USB_HOST_POWER_BAT){ if(m == USB_HOST_POWER_VBUS){ digitalWrite(DEV_VBUS_EN, LOW); } digitalWrite(BOOST_EN, HIGH); } if(mode != USB_HOST_POWER_OFF){ digitalWrite(LIMIT_EN, HIGH); } m = mode; } void usbHostEnable(bool enable){ digitalWrite(USB_HOST_EN, enable); } extern "C" void initVariant(void){ // Route USB to Device Side pinMode(BOOST_EN, OUTPUT); digitalWrite(BOOST_EN, LOW); pinMode(LIMIT_EN, OUTPUT); digitalWrite(LIMIT_EN, LOW); pinMode(DEV_VBUS_EN, OUTPUT); digitalWrite(DEV_VBUS_EN, LOW); pinMode(USB_HOST_EN, OUTPUT); digitalWrite(USB_HOST_EN, LOW); // Turn Off LCD pinMode(LCD_RST, OUTPUT); digitalWrite(LCD_RST, LOW); pinMode(LCD_BL, OUTPUT); digitalWrite(LCD_BL, LOW); }