static void init_usb() { // TODO the occupation does not work! // if (!occupyPin(UsbPinDPlus, PinUSB)) return; // if (!occupyPin(UsbPinDPlus, PinUSB)) return; // This is the hardware default, but make sure. setPinInput(UsbPinDPlus); setPinInput(UsbPinDMinus); disablePullup(UsbPinDPlus); disablePullup(UsbPinDMinus); usbInit(); usbDeviceDisconnect(); // enforce re-enumeration, do this while interrupts are disabled delay_ms(250); // fake USB disconnect for > 250 ms usbDeviceConnect(); // We don't use late_init.kernel.c sei(); }
bool is_keyboard_left(void) { #ifdef SPLIT_HAND_PIN // Test pin SPLIT_HAND_PIN for High/Low, if low it's right hand setPinInput(SPLIT_HAND_PIN); return readPin(SPLIT_HAND_PIN); #else #ifdef EE_HANDS return eeprom_read_byte(EECONFIG_HANDEDNESS); #else #ifdef MASTER_RIGHT return !is_keyboard_master(); #else return is_keyboard_master(); #endif #endif #endif }
static void unselect_rows(void) { for(uint8_t x = 0; x < MATRIX_ROWS; x++) { setPinInput(row_pins[x]); } }
static void initButton(Pin pin, ButtonType flags) { setPinInput(pin); if (flags & ButtonNeedsPullup) setPinOne(pin); // Enable internal pull up resistor }