X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=main.c;h=d6b7ee65571f26988bd4adde17b0e417cf31e166;hb=662d1f557fadbe1173a451a09bd8397fd03a48f4;hp=7412fc6c99de56606dc9ebf8974e1a720bc37843;hpb=15ec4ff71c1f92ce2e20302195a91e0c8390ad8a;p=kiibohd-controller.git diff --git a/main.c b/main.c index 7412fc6..d6b7ee6 100644 --- a/main.c +++ b/main.c @@ -49,10 +49,6 @@ -// ----- Function Declarations ----- - - - // ----- Variables ----- // Timer Interrupt for flagging a send of the sampled key detection data to the USB host @@ -65,42 +61,7 @@ volatile uint8_t sendKeypresses = 0; // ----- Functions ----- -// Initial Pin Setup, make sure they are sane -inline void pinSetup(void) -{ - -// AVR -#if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_) - - // For each pin, 0=input, 1=output -#if defined(__AVR_AT90USB1286__) - DDRA = 0x00; -#endif - DDRB = 0x00; - DDRC = 0x00; - DDRD = 0x00; - DDRE = 0x00; - DDRF = 0x00; - - - // Setting pins to either high or pull-up resistor -#if defined(__AVR_AT90USB1286__) - PORTA = 0x00; -#endif - PORTB = 0x00; - PORTC = 0x00; - PORTD = 0x00; - PORTE = 0x00; - PORTF = 0x00; - -// ARM -#elif defined(_mk20dx128_) - // TODO - Should be cleared, but not that necessary due to the pin layout -#endif -} - - -inline void usbTimerSetup(void) +inline void usbTimerSetup() { // AVR #if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_) @@ -115,7 +76,7 @@ inline void usbTimerSetup(void) TIMSK0 = (1 << TOIE0); // ARM -#elif defined(_mk20dx128_) +#elif defined(_mk20dx128_) || defined(_mk20dx128vlf5_) || defined(_mk20dx256_) // ARM // 48 MHz clock by default // System Clock Gating Register Disable @@ -135,44 +96,40 @@ inline void usbTimerSetup(void) } -int main(void) +int main() { - // Configuring Pins - pinSetup(); - // Enable CLI - init_cli(); + CLI_init(); - // Setup Output Module - output_setup(); + // Setup Modules + Output_setup(); + Macro_setup(); + Scan_setup(); // Setup ISR Timer for flagging a kepress send to USB usbTimerSetup(); - // Setup the scanning module - //scan_setup(); - // Main Detection Loop while ( 1 ) { // Process CLI - process_cli(); + CLI_process(); // Acquire Key Indices // Loop continuously until scan_loop returns 0 cli(); - //while ( scan_loop() ); + while ( Scan_loop() ); sei(); // Run Macros over Key Indices and convert to USB Keys - process_macros(); + Macro_process(); // Send keypresses over USB if the ISR has signalled that it's time if ( !sendKeypresses ) continue; // Send USB Data - output_send(); + Output_send(); // Clear sendKeypresses Flag sendKeypresses = 0; @@ -185,8 +142,8 @@ int main(void) // USB Keyboard Data Send Counter Interrupt #if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_) // AVR ISR( TIMER0_OVF_vect ) -#elif defined(_mk20dx128_) // ARM -void pit0_isr(void) +#elif defined(_mk20dx128_) || defined(_mk20dx128vlf5_) || defined(_mk20dx256_) // ARM +void pit0_isr() #endif { sendKeypressCounter++; @@ -195,13 +152,9 @@ void pit0_isr(void) sendKeypresses = 1; } -#if defined(_mk20dx128_) // ARM +#if defined(_mk20dx128_) || defined(_mk20dx128vlf5_) || defined(_mk20dx256_) // ARM // Clear the interrupt flag PIT_TFLG0 = 1; #endif } - -// ----- CLI Command Functions ----- - -