X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=main.c;h=3b48941dfca0ed1e647378b51b8998fa1138362c;hb=0013d7a4f31d35ad054369037e20b683085c6116;hp=36e8597f37f41b6d79e1f2d472804c8122e11165;hpb=f61225c3210d915284254bb5f1eb18f632ccaebf;p=kiibohd-controller.git diff --git a/main.c b/main.c index 36e8597..3b48941 100644 --- a/main.c +++ b/main.c @@ -1,15 +1,15 @@ -/* Copyright (C) 2011 by Jacob Alexander - * +/* Copyright (C) 2011-2014 by Jacob Alexander + * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: - * + * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. - * + * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE @@ -19,34 +19,57 @@ * THE SOFTWARE. */ -#include -#include -#include -#include -#include "usb_keyboard.h" +// ----- Includes ----- -#define CPU_PRESCALE(n) (CLKPR = 0x80, CLKPR = (n)) +// Compiler Includes +#include + +// Project Includes +#include +#include +#include + +#include +#include +#include + + + +// ----- Functions ----- int main() { - // set for 16 MHz clock - CPU_PRESCALE( 0 ); + // AVR - Teensy Set Clock speed to 16 MHz +#if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_) + CLKPR = 0x80; + CLKPR = 0x00; +#endif - // Configuring Pins - // TODO + // Enable CLI + CLI_init(); - // Initialize the USB, and then wait for the host to set configuration. - // If the Teensy is powered without a PC connected to the USB port, - // this will wait forever. - 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 - _delay_ms(1000); + // Setup Modules + Output_setup(); + Macro_setup(); + Scan_setup(); // Main Detection Loop - // TODO - // usb_keyboard_press(KEY_B, KEY_SHIFT); + while ( 1 ) + { + // Process CLI + CLI_process(); + + // Acquire Key Indices + // Loop continuously until scan_loop returns 0 + cli(); + while ( Scan_loop() ); + sei(); + + // Run Macros over Key Indices and convert to USB Keys + Macro_process(); + + // Sends USB data only if changed + Output_send(); + } }