Exemplo n.º 1
0
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();
}
Exemplo n.º 2
0
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
}
Exemplo n.º 3
0
static void unselect_rows(void)
{
    for(uint8_t x = 0; x < MATRIX_ROWS; x++) {
        setPinInput(row_pins[x]);
    }
}
Exemplo n.º 4
0
static void initButton(Pin pin, ButtonType flags) {
	setPinInput(pin);
	if (flags & ButtonNeedsPullup)
	    setPinOne(pin); // Enable internal pull up resistor
}