diff main.c @ 16:f74b797ac060

Parts of the upcoming rewrite
author Jacob Alexander <triplehaata@gmail.com>
date Thu, 22 Sep 2011 23:33:56 -0700
parents 8b6ef979a50e
children 85bc68be98df
line wrap: on
line diff
--- a/main.c	Wed Sep 07 18:04:06 2011 -0700
+++ b/main.c	Thu Sep 22 23:33:56 2011 -0700
@@ -24,7 +24,8 @@
 #include <avr/interrupt.h>
 #include <util/delay.h>
 #include "usb_keys.h"
-#include "layouts.h"
+#include "scan_loop.h"
+//#include "layouts.h"
 //#include "usb_keyboard.h"
 
 // TEMP INCLUDES
@@ -33,10 +34,6 @@
 
 #define CPU_PRESCALE(n)	(CLKPR = 0x80, CLKPR = (n))
 
-// Number of keys
-#define KEYBOARD_SIZE 63
-#define KEYPAD_SIZE 16
-
 
 // Debouncing Defines
 #define SAMPLE_THRESHOLD 110
@@ -46,6 +43,10 @@
 // Verified Keypress Defines
 #define USB_TRANSFER_DIVIDER 10 // 1024 == 1 Send of keypresses per second, 1 == 1 Send of keypresses per ~1 millisecond
 
+/*
+// Number of keys
+#define KEYBOARD_SIZE 63
+#define KEYPAD_SIZE 16
 
 // Drive Pin Defines
 #define DRIVE_reg_1 PORTD
@@ -219,8 +220,7 @@
 
 // NOTE: Highest Bit: Valid keypress (0x80 is valid keypress)
 //        Other Bits: Pressed state sample counter
-uint8_t keyDetectArray[KEYBOARD_SIZE + 1];
-uint8_t keypadDetectArray[KEYPAD_SIZE + 1];
+uint8_t keyboardDetectArray[KEYBOARD_SIZE + 1];
 
 // Interrupt Variables
 uint16_t sendKeypressCounter = 0;
@@ -242,30 +242,47 @@
 		DET_GROUP(9,1)
 	}
 }
+*/
+
+// Error LED Control
+void errorLED( uint8_t on )
+{
+	// Error LED On
+	if ( on ) {
+		DDRD  |= (1<<6);
+		PORTD |= (1<<6);
+	}
+	// Error LED Off
+	else {
+		DDRD  &= ~(1<<6);
+		PORTD &= ~(1<<6);
+	}
+}
 
 
 
-// XXX This part is configurable
+// Initial Pin Setup
+// If the matrix is properly set, this function does not need to be changed
 inline void pinSetup(void)
 {
 	// For each pin, 0=input, 1=output
 	DDRA = 0x00;
 	DDRB = 0x00;
 	DDRC = 0x00;
-	DDRD = 0xFC;
-	DDRE = 0x43;
+	DDRD = 0x40; // LED Setup
+	DDRE = 0x00;
 	DDRF = 0x00;
 
 
 	// Setting pins to either high or pull-up resistor
-	PORTA = 0xFF;
-	PORTB = 0xFF;
-	PORTC = 0x01;
-	PORTD = 0xFF;
-	PORTE = 0xC3;
-	PORTF = 0xFF;
+	PORTA = 0x00;
+	PORTB = 0x00;
+	PORTC = 0x00;
+	PORTD = 0x40; // LED Enable
+	PORTE = 0x00;
+	PORTF = 0x00;
 }
-
+/*
 // Given a sampling array, and the current number of detected keypress
 // Add as many keypresses from the sampling array to the USB key send array as possible.
 void keyPressDetection( uint8_t *keys, uint8_t *validKeys, uint8_t numberOfKeys, uint8_t *modifiers, uint8_t numberOfModifiers, uint8_t *map ) {
@@ -297,6 +314,7 @@
 		}
 	}
 }
+*/
 
 int main( void )
 {
@@ -323,6 +341,16 @@
 	TIMSK0 = (1 << TOIE0);
 
 	// Main Detection Loop
+	while ( 1 ) {
+		scan_loop();
+
+		// Loop should never get here (indicate error)
+		errorLED( 1 );
+
+		// TODO HID Debug message
+	}
+}
+/*
 	int8_t group = 1;
 	uint8_t count = 0;
 	for ( ;;group++ ) {
@@ -420,6 +448,7 @@
 
 	return 0;
 }
+*/
 
 // Timer Interrupt for flagging a send of the sampled key detection data to the USB host
 ISR( TIMER0_OVF_vect )