diff main.c @ 25:c2ef3daf39e1

Cleaning up main.c - main.c is now mostly complete - Required fixes to matrix.c (some are temporary)
author Jacob Alexander <haata@users.sf.net>
date Fri, 30 Sep 2011 01:30:34 -0700
parents 2d65da455ef3
children c06a5ebb4fca
line wrap: on
line diff
--- a/main.c	Thu Sep 29 22:22:19 2011 -0700
+++ b/main.c	Fri Sep 30 01:30:34 2011 -0700
@@ -23,18 +23,15 @@
 
 // AVR Includes
 #include <avr/io.h>
-#include <avr/pgmspace.h>
 #include <avr/interrupt.h>
 
 // Project Includes
-//#include "usb_keys.h"
-#include "scan_loop.h"
-//#include "layouts.h"
-//#include "usb_keyboard.h"
+#include <macro.h>
+#include <scan_loop.h>
+#include <usb_com.h>
 
-#include "usb_keyboard_debug.h"
-#include "print.h"
-#include "led.h"
+#include <led.h>
+#include <print.h>
 
 
 
@@ -90,6 +87,7 @@
 
 	// Configuring Pins
 	pinSetup();
+	init_errorLED();
 
 	// Setup USB Module
 	usb_setup();
@@ -101,24 +99,36 @@
 	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;
 	}
 }