From 1de02c1f15ca1c04aae0bde818b01ea40cf32120 Mon Sep 17 00:00:00 2001 From: tmk Date: Fri, 24 Sep 2010 15:01:21 +0900 Subject: [PATCH] add jump_bootloader. --- Makefile | 3 ++- jump_bootloader.c | 35 +++++++++++++++++++++++++++++++++++ jump_bootloader.h | 6 ++++++ mykey.c | 12 ++++++++++-- usb_keyboard.h | 10 ++++++++++ 5 files changed, 63 insertions(+), 3 deletions(-) create mode 100644 jump_bootloader.c create mode 100644 jump_bootloader.h diff --git a/Makefile b/Makefile index 7473d3c312..c9c668d415 100644 --- a/Makefile +++ b/Makefile @@ -51,7 +51,8 @@ SRC = $(TARGET).c \ usb_device.c \ usb_keyboard.c \ usb_debug.c \ - print.c + print.c \ + jump_bootloader.c # MCU name, you MUST set this to match the board you are using diff --git a/jump_bootloader.c b/jump_bootloader.c new file mode 100644 index 0000000000..f60c3596a5 --- /dev/null +++ b/jump_bootloader.c @@ -0,0 +1,35 @@ +// this code from: +// http://www.pjrc.com/teensy/jump_to_bootloader.html +#include +#include +#include + +void jump_bootloader() { + cli(); + // disable watchdog, if enabled + // disable all peripherals + UDCON = 1; + USBCON = (1< 6) { //Rollover } @@ -128,7 +136,7 @@ int main(void) // print matrix state for debug if (modified) { - print("r/c 01234567\n"); + print("\nr/c 01234567\n"); for (row = 0; row < MATRIX_ROWS; row++) { phex(row); print(": "); pbin_reverse(matrix[row]); @@ -159,6 +167,6 @@ ISR(TIMER0_OVF_vect) idle_count++; if (idle_count > 61 * 8) { idle_count = 0; - //print("Timer Event :)\n"); + print("."); } } diff --git a/usb_keyboard.h b/usb_keyboard.h index 3a9e51ce4b..cd8ec4a9d1 100644 --- a/usb_keyboard.h +++ b/usb_keyboard.h @@ -10,6 +10,16 @@ #define KEYBOARD_SIZE 8 #define KEYBOARD_BUFFER EP_DOUBLE_BUFFER +// modifier bits +#define MOD_LCTRL (1<<0) +#define MOD_LSHIFT (1<<1) +#define MOD_LALT (1<<2) +#define MOD_LGUI (1<<3) +#define MOD_RCTRL (1<<4) +#define MOD_RSHIFT (1<<5) +#define MOD_RALT (1<<6) +#define MOD_RGUI (1<<7) + extern uint8_t keyboard_modifier_keys; extern uint8_t keyboard_keys[6];