changeset 43:fe50a5c186bb

Final SonyNEWS commit before sending device back
author Jacob Alexander <triplehaata@gmail.com>
date Mon, 19 Dec 2011 17:48:47 -0800
parents b0ca370c4341
children 511d7ad5b38e
files Macro/buffer/macro.c Scan/SonyNEWS/scan_loop.c Scan/SonyNEWS/scan_loop.h Scan/SonyNEWS/setup.cmake setup.cmake
diffstat 5 files changed, 38 insertions(+), 32 deletions(-) [+]
line wrap: on
line diff
--- a/Macro/buffer/macro.c	Sun Dec 18 19:21:19 2011 -0800
+++ b/Macro/buffer/macro.c	Mon Dec 19 17:48:47 2011 -0800
@@ -54,6 +54,7 @@
 
 inline void macro_finishedWithBuffer(void)
 {
+	/* BudKeypad
 	// Boot loader sequence state handler
 	switch ( KeyIndex_BufferUsed )
 	{
@@ -72,6 +73,7 @@
 	}
 
 	Bootloader_KeyDetected = 0;
+	*/
 }
 
 void jumpToBootloader(void)
@@ -213,6 +215,7 @@
 	}
 	return 1;
 	*/
+	/* BudKeypad
 	// Is this a bootloader sequence key?
 	if ( !Bootloader_KeyDetected
 	   && Bootloader_NextPositionReady
@@ -226,8 +229,8 @@
 	{
 		Bootloader_KeyDetected = 1;
 	}
-
-	return 1;
+	*/
+	return 0;
 }
 
 uint8_t sendCode = 0;
@@ -346,7 +349,7 @@
 	keyPressBufferRead( MODIFIER_MASK, sizeof(MODIFIER_MASK), KEYINDEX_MASK );
 
 	// Check for bootloader condition
-	if ( Bootloader_ConditionState == sizeof( Bootloader_ConditionSequence ) )
-		jumpToBootloader();
+	//if ( Bootloader_ConditionState == sizeof( Bootloader_ConditionSequence ) )
+	//	jumpToBootloader();
 }
 
--- a/Scan/SonyNEWS/scan_loop.c	Sun Dec 18 19:21:19 2011 -0800
+++ b/Scan/SonyNEWS/scan_loop.c	Mon Dec 19 17:48:47 2011 -0800
@@ -38,9 +38,14 @@
 // ----- Defines -----
 
 // Pinout Defines
-#define RESET_PORT PORTB
-#define RESET_DDR   DDRD
-#define RESET_PIN      0
+#define SPKR_PORT PORTD
+#define SPKR_DDR   DDRD
+#define SPKR_POS      1
+
+#define POWR_PORT PORTC
+#define POWR_DDR   DDRC
+#define POWR_POS      7
+
 
 
 // ----- Macros -----
@@ -50,9 +55,6 @@
 		if ( KeyIndex_BufferUsed < KEYBOARD_BUFFER ) \
 			KeyIndex_Buffer[KeyIndex_BufferUsed++] = byte
 
-#define UNSET_RESET()   RESET_DDR &= ~(1 << RESET_PIN)
-#define   SET_RESET()   RESET_DDR |=  (1 << RESET_PIN)
-
 
 
 // ----- Variables -----
@@ -89,11 +91,20 @@
 	// Asynchrounous USART mode
 	UCSR1C = 0x06;
 
+	// Set Speaker Pin to Pull-Up gives a low-volume click (XXX no other setting does, why?)
+	SPKR_DDR  &= ~(1 << SPKR_POS);
+	SPKR_PORT |= (1 << SPKR_POS);
+
+	// Set Power Pin (I've traced this back to the "Power On" Switch, but I don't really know what it's for)
+	// Configured as a Pull-up Input - This pin "can" be read as well, it will go to GND when the "Power On" switch is pressed, and will read ~5V otherwise
+	// XXX Currently not used by the controller
+	POWR_DDR  &= ~(1 << POWR_POS);
+	POWR_PORT |= (1 << POWR_POS); 
+
 	// Reset the keyboard before scanning, we might be in a wierd state
 	scan_resetKeyboard();
 }
 
-
 // Main Detection Loop
 // Not needed for the Sony NEWS, this is just a busy loop
 inline uint8_t scan_loop()
@@ -140,7 +151,7 @@
 			erro_dPrint( "Could not find key to release: ", tmpStr );
 		}
 	}
-	// Press or Repeat Rate
+	// Press or Repeated Key
 	else
 	{
 		// Make sure the key isn't already in the buffer
@@ -178,20 +189,12 @@
 
 	// Process the scancode
 	if ( keyValue != 0x00 )
-	processKeyValue( keyValue );
+		processKeyValue( keyValue );
 
 	sei(); // Re-enable Interrupts
 }
 
-// Send data TODO
-//
-// Keyboard Input Guide for Micro Switch 8304
-// 0xBX is for LED F1,F2,Over Type,Lock
-// 0xAX is for LED F3,F8,F9,F10
-// 0x92 resets keyboard (LED off, echo scancode mode off)
-// 0x9E sets echo scancode mode from (0x81 to 0xFF; translates to 0x01 to 0x7F)
-// Other echos: 0x15~0x19 send 0x15~0x19, 0x40 sends 0x40 (as well as 0x44,0x45, 0x80)
-// 0x8C Acks the keyboard and gets 0x70 sent back (delayed)
+// Send data to keyboard
 uint8_t scan_sendData( uint8_t dataPayload )
 {
 	// Debug
@@ -212,24 +215,23 @@
 
 // Reset/Hold keyboard TODO
 // Warning! This will cause the keyboard to not send any data, so you can't disable with a keypress
-// The Micro Switch 8304 has a dedicated reset line
 void scan_lockKeyboard( void )
 {
-	//UNSET_RESET();
 }
 
 void scan_unlockKeyboard( void )
 {
-	//SET_RESET();
 }
 
-// Reset Keyboard TODO
+// Reset Keyboard
 void scan_resetKeyboard( void )
 {
-	// Reset command for the 8304
-	//scan_sendData( 0x92 );
-
 	// Empty buffer, now that keyboard has been reset
 	KeyIndex_BufferUsed = 0;
 }
 
+void scan_finishedWithUSBBuffer( void )
+{
+	return;
+}
+
--- a/Scan/SonyNEWS/scan_loop.h	Sun Dec 18 19:21:19 2011 -0800
+++ b/Scan/SonyNEWS/scan_loop.h	Mon Dec 19 17:48:47 2011 -0800
@@ -55,6 +55,7 @@
 // Functions available to macro.c
 uint8_t scan_sendData( uint8_t dataPayload );
 
+void scan_finishedWithUSBBuffer( void );
 void scan_finishedWithBuffer( void );
 void scan_lockKeyboard( void );
 void scan_unlockKeyboard( void );
--- a/Scan/SonyNEWS/setup.cmake	Sun Dec 18 19:21:19 2011 -0800
+++ b/Scan/SonyNEWS/setup.cmake	Mon Dec 19 17:48:47 2011 -0800
@@ -42,7 +42,7 @@
 #| Keymap Settings
 add_definitions(
 	-DMODIFIER_MASK=sonynews_ModifierMask
-	-DKEYINDEX_MASK=sonynews_ColemakMap
-	#-DKEYINDEX_MASK=sonynews_DefaultMap
+	#-DKEYINDEX_MASK=sonynews_ColemakMap
+	-DKEYINDEX_MASK=sonynews_DefaultMap
 )
 
--- a/setup.cmake	Sun Dec 18 19:21:19 2011 -0800
+++ b/setup.cmake	Mon Dec 19 17:48:47 2011 -0800
@@ -20,7 +20,7 @@
 #| Please the {Scan,Macro,USB,Debug}/module.txt for information on the modules and how to create new ones
 
 ##| Deals with acquiring the keypress information and turning it into a key index
-set(  ScanModule  "BudKeypad" )
+set(  ScanModule  "SonyNEWS" )
 
 ##| Uses the key index and potentially applies special conditions to it, mapping it to a usb key code
 set( MacroModule  "buffer"  )