From 05c20112e9a273738ffec2fa66bd2809ca888611 Mon Sep 17 00:00:00 2001 From: Jacob Alexander Date: Fri, 30 Sep 2011 01:30:34 -0700 Subject: [PATCH] Cleaning up main.c - main.c is now mostly complete - Required fixes to matrix.c (some are temporary) --- Macro/basic/macro.c | 4 ++-- Scan/matrix/matrix.c | 9 ++++++- Scan/matrix/setup.cmake | 1 + main.c | 52 ++++++++++++++++++++++++----------------- 4 files changed, 42 insertions(+), 24 deletions(-) diff --git a/Macro/basic/macro.c b/Macro/basic/macro.c index f962091..a74cf30 100644 --- a/Macro/basic/macro.c +++ b/Macro/basic/macro.c @@ -24,9 +24,9 @@ // AVR Includes // Project Includes -#include -#include #include +#include +#include // Keymaps #include diff --git a/Scan/matrix/matrix.c b/Scan/matrix/matrix.c index aa4af23..644cf45 100644 --- a/Scan/matrix/matrix.c +++ b/Scan/matrix/matrix.c @@ -21,6 +21,9 @@ // ----- Includes ----- +// AVR Includes +#include + // Local Includes #include "matrix.h" @@ -93,9 +96,10 @@ void matrix_pinSetup( uint8_t *matrix ) uint8_t ddrF = 0x00; // Loop through all the pin assignments, for the initial pin settings - int row, col; + //int row, col; // Rows + /* for ( row = 1; row < sizeof(matrix); row++ ) { switch ( matrix[row][col] ) { PIN_CASE(A): @@ -136,6 +140,7 @@ void matrix_pinSetup( uint8_t *matrix ) continue; } } + */ // Setting the pins DDRA = ddrA; @@ -158,6 +163,7 @@ void matrix_scan( uint8_t *matrix, uint8_t *detectArray ) { // Column Scan #if scanMode == scanCol + /* uint8_t col = 1; uint8_t row = 1; for ( ; col < sizeof(matrix[1]); col++ ) { @@ -176,6 +182,7 @@ void matrix_scan( uint8_t *matrix, uint8_t *detectArray ) PIN_TEST_COL(PINF); } } + */ #endif // Row Scan diff --git a/Scan/matrix/setup.cmake b/Scan/matrix/setup.cmake index 8fb34b6..b529a51 100644 --- a/Scan/matrix/setup.cmake +++ b/Scan/matrix/setup.cmake @@ -12,6 +12,7 @@ # set( SCAN_SRCS + matrix.c scan_loop.c ) diff --git a/main.c b/main.c index 5867964..537e0ad 100644 --- a/main.c +++ b/main.c @@ -23,18 +23,15 @@ // AVR Includes #include -#include #include // Project Includes -//#include "usb_keys.h" -#include "scan_loop.h" -//#include "layouts.h" -//#include "usb_keyboard.h" +#include +#include +#include -#include "usb_keyboard_debug.h" -#include "print.h" -#include "led.h" +#include +#include @@ -90,6 +87,7 @@ int main(void) // Configuring Pins pinSetup(); + init_errorLED(); // Setup USB Module usb_setup(); @@ -101,24 +99,36 @@ int main(void) TIMSK0 = (1 << TOIE0); // Main Detection Loop - while ( 1 ) { - //scan_loop(); + uint8_t ledTimer = 15; // Enable LED for a short time + while ( 1 ) + { + while ( 1 ) + { + // Acquire Key Indices + scan_loop(); + + // Send keypresses over USB if the ISR has signalled that it's time + if ( !sendKeypresses ) + continue; + + // Run Macros over Key Indices and convert to USB Keys + process_macros(); + + // Send USB Data + usb_send(); + + // Clear sendKeypresses Flag + sendKeypresses = 0; + + // Indicate Error, if valid + errorLED( ledTimer ); + } // Loop should never get here (indicate error) - errorLED( 1 ); + ledTimer = 255; // HID Debug Error message erro_print("Detection loop error, this is very bad...bug report!"); - - // Send keypresses over USB if the ISR has signalled that it's time - if ( !sendKeypresses ) - continue; - - // Send USB Data - usb_send(); - - // Clear sendKeypresses Flag - sendKeypresses = 0; } }