X-Git-Url: https://git.friedersdorff.com/?a=blobdiff_plain;f=tmk.c;h=f7042bd6fbe2754267d8d48e0c41c72f4c7be1b1;hb=37ced39ae2ecfc945c21526faffb2449577bbeb7;hp=c01972514d36527a98a450c251503ca94c3e9ffd;hpb=54b5bafaacf0d7863b7bdb84dd69cbc80db77956;p=max%2Ftmk_keyboard.git diff --git a/tmk.c b/tmk.c index c0197251..f7042bd6 100644 --- a/tmk.c +++ b/tmk.c @@ -24,36 +24,35 @@ * THE SOFTWARE. */ -// TODO: clean unused headers #include #include -#include #include #include #include "usb.h" -#include "usb_keyboard.h" -#include "usb_mouse.h" +#include "matrix_skel.h" +#include "key_process.h" #include "print.h" -#include "matrix.h" -#include "keymap.h" +#include "debug.h" +#include "util.h" +#include "controller.h" +#include "timer.h" #include "jump_bootloader.h" -#include "key_process.h" #define CPU_PRESCALE(n) (CLKPR = 0x80, CLKPR = (n)) -// TODO: should go to hardware dependent file -// for Teensy/Teensy++ 2.0 -#define LED_CONFIG (DDRD |= (1<<6)) -#define LED_ON (PORTD |= (1<<6)) -#define LED_OFF (PORTD &= ~(1<<6)) - -uint16_t idle_count=0; +bool debug_enable = false; +bool debug_matrix = false; +bool debug_keyboard = false; +bool debug_mouse = false; int main(void) { + DEBUG_LED_CONFIG; + DEBUG_LED_OFF; + // set for 16 MHz clock CPU_PRESCALE(0); @@ -63,41 +62,31 @@ int main(void) usb_init(); while (!usb_configured()) /* wait */ ; - // Wait an extra second for the PC's operating system to load drivers - // and do whatever it does to actually be ready for input - // needs such long time in my PC. - /* wait for debug print. no need for normal use */ - for (int i =0; i < 6; i++) { - LED_CONFIG; - LED_ON; - _delay_ms(500); - LED_OFF; - _delay_ms(500); - } - - // Configure timer 0 to generate a timer overflow interrupt every - // 256*1024 clock cycles, or approx 61 Hz when using 16 MHz clock - // This demonstrates how to use interrupts to implement a simple - // inactivity timeout. - TCCR0A = 0x00; - TCCR0B = 0x05; - TIMSK0 = (1<= 4) { +#ifdef DEBUG_LED + for (int i = 0; i < 6; i++) { + DEBUG_LED_CONFIG; + DEBUG_LED_ON; + _delay_ms(500); + DEBUG_LED_OFF; + _delay_ms(500); + } +#else + _delay_ms(5000); +#endif + print_enable = true; + print("jump to bootloader...\n"); + _delay_ms(1000); + jump_bootloader(); // not return + } + while (1) { proc_matrix(); _delay_ms(2); } } - - -// This interrupt routine is run approx 61 times per second. -// A very simple inactivity timeout is implemented, where we -// will send a space character and print a message to the -// hid_listen debug message window. -ISR(TIMER0_OVF_vect) -{ - idle_count++; -}