示例#1
0
文件: main.c 项目: eleqian/WiDSO
int main(void)
{
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

    // disable JTAG,use SWD only
    GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);

    timebase_init();
    led_init();
    vcp_init();
    
    // for debug use
    if (!key_is_pressed()) {
        USB_HW_Config();
        USB_Init();
    }

    led_flash(1000, 100, 0);

    while (1) {
        led_update();
        if (bDeviceState == CONFIGURED)
        {
            if (key_is_pressed()) {
                GPIO_ResetBits(GPIOB, GPIO_Pin_2);
                GPIO_ResetBits(GPIOB, GPIO_Pin_1);
                while (key_is_pressed());
                GPIO_SetBits(GPIOB, GPIO_Pin_2);
            }
        }
    }
}
示例#2
0
static void handle_mouse_key_event(Key mappedKey, uint8_t keyState) {
    if (key_toggled_off(keyState)) {
	    if (mappedKey.keyCode & KEY_MOUSE_UP || mappedKey.keyCode & KEY_MOUSE_DOWN) {
		MouseWrapper.mouseActiveForCyclesY=0;
	    }
	    if (mappedKey.keyCode & KEY_MOUSE_LEFT || mappedKey.keyCode & KEY_MOUSE_RIGHT) {
		MouseWrapper.mouseActiveForCyclesX=0;
	    } 
    }

    if (!key_is_pressed(keyState))
        return;

    if (mappedKey.keyCode & KEY_MOUSE_UP) {
        MouseWrapper.move(0,-1);
    } else if (mappedKey.keyCode & KEY_MOUSE_DOWN) {
        MouseWrapper.move(0,1);
    }

    if (mappedKey.keyCode & KEY_MOUSE_LEFT) {
        MouseWrapper.move(-1,0);
    } else if (mappedKey.keyCode & KEY_MOUSE_RIGHT) {
        MouseWrapper.move(1,0);
    }
}
boolean key_toggled_on(byte keyState)
{
  if (key_is_pressed(keyState) &&  key_was_not_pressed(keyState)) {
    return true;
  } else {
    return false;
  }
}
示例#4
0
void handle_key_event(byte row, byte col, uint8_t *switchState) {
    //for every newly pressed button, figure out what logical key it is and send a key down event
    // for every newly released button, figure out what logical key it is and send a key up event

    Key mappedKey = keymaps[temporary_keymap][row][col];

    if (keymaps[primary_keymap][row][col].flags & SWITCH_TO_KEYMAP) {
        handle_keymap_key_event(*switchState, keymaps[primary_keymap][row][col]);
    }
    if (mappedKey.flags & SYNTHETIC_KEY) {
        handle_synthetic_key_event(*switchState, mappedKey);
    } else if (key_is_pressed(*switchState)) {
        press_key(mappedKey);
    }
}
示例#5
0
void handle_mouse_key_event(uint8_t switchState, Key mappedKey) {
    if (key_is_pressed(switchState)) {
        if (mappedKey.rawKey & KEY_MOUSE_UP) {
            MouseWrapper.move(0,-1);
        }
        if (mappedKey.rawKey & KEY_MOUSE_DOWN) {
            MouseWrapper.move(0,1);
        }
        if (mappedKey.rawKey & KEY_MOUSE_LEFT) {
            MouseWrapper.move(-1,0);
        }
        if (mappedKey.rawKey & KEY_MOUSE_RIGHT) {
            MouseWrapper.move(1,0);
        }
    }
}
boolean key_is_not_pressed (byte keyState)
{
return !key_is_pressed(keyState);
}