From a07ccdd60885b828edf79cf5b63e7982b965b982 Mon Sep 17 00:00:00 2001 From: Jacob Alexander Date: Wed, 6 Jul 2016 09:00:57 -0700 Subject: [PATCH] Moving defaultMap.kll to scancode_map.kll (less confusing) - Changing default name from defaultMap.kll to scancode_map.kll - Old name of defaultMap.kll will still work (and is the final fallback) - Updated all the main projects to use the new name - Updated BETKB (not entirely finished, but mostly complete) - Added sub-use of interconnect scancode cache for converters - Added infinity_led.bash No behaviour changes, just restructuring. --- Keyboards/ergodox.bash | 4 +- Keyboards/infinity.bash | 4 +- Keyboards/infinity_led.bash | 72 +++++++ Keyboards/template.bash | 4 +- Keyboards/whitefox.bash | 4 +- Lib/CMake/kll.cmake | 11 +- Macro/PartialMap/macro.c | 8 +- Macro/PartialMap/macro.h | 2 +- Scan/BETKB/scan_loop.c | 193 +++++++++++------- Scan/BETKB/scan_loop.h | 17 +- Scan/BETKB/scancode_map.kll | 99 +++++++++ Scan/BETKB/setup.cmake | 7 +- .../{defaultMap.kll => scancode_map.kll} | 0 Scan/MD1/{defaultMap.kll => scancode_map.kll} | 0 .../{defaultMap.kll => scancode_map.kll} | 0 Scan/UARTConnect/connect_scan.c | 2 +- .../{defaultMap.kll => scancode_map.kll} | 0 17 files changed, 325 insertions(+), 102 deletions(-) create mode 100755 Keyboards/infinity_led.bash create mode 100644 Scan/BETKB/scancode_map.kll rename Scan/MD1.1/{defaultMap.kll => scancode_map.kll} (100%) rename Scan/MD1/{defaultMap.kll => scancode_map.kll} (100%) rename Scan/MDErgo1/{defaultMap.kll => scancode_map.kll} (100%) rename Scan/WhiteFox/{defaultMap.kll => scancode_map.kll} (100%) diff --git a/Keyboards/ergodox.bash b/Keyboards/ergodox.bash index 85f85a2..1865dce 100755 --- a/Keyboards/ergodox.bash +++ b/Keyboards/ergodox.bash @@ -1,7 +1,7 @@ #!/usr/bin/env bash # This is a build script template # These build scripts are just a convenience for configuring your keyboard (less daunting than CMake) -# Jacob Alexander 2015 +# Jacob Alexander 2015-2016 @@ -18,7 +18,7 @@ BuildPath="ICED-L" ## KLL Configuration ## # Generally shouldn't be changed, this will affect every layer -BaseMap="defaultMap leftHand slave1 rightHand" +BaseMap="scancode_map leftHand slave1 rightHand" # This is the default layer of the keyboard # NOTE: To combine kll files into a single layout, separate them by spaces diff --git a/Keyboards/infinity.bash b/Keyboards/infinity.bash index b790dd5..79cb02a 100755 --- a/Keyboards/infinity.bash +++ b/Keyboards/infinity.bash @@ -1,7 +1,7 @@ #!/usr/bin/env bash # This is a build script template # These build scripts are just a convenience for configuring your keyboard (less daunting than CMake) -# Jacob Alexander 2015 +# Jacob Alexander 2015-2016 @@ -16,7 +16,7 @@ BuildPath="IC60" ## KLL Configuration ## # Generally shouldn't be changed, this will affect every layer -BaseMap="defaultMap" +BaseMap="scancode_map" # This is the default layer of the keyboard # NOTE: To combine kll files into a single layout, separate them by spaces diff --git a/Keyboards/infinity_led.bash b/Keyboards/infinity_led.bash new file mode 100755 index 0000000..c753b2f --- /dev/null +++ b/Keyboards/infinity_led.bash @@ -0,0 +1,72 @@ +#!/usr/bin/env bash +# This is a build script template +# These build scripts are just a convenience for configuring your keyboard (less daunting than CMake) +# Jacob Alexander 2016 + + + +################# +# Configuration # +################# + +# Feel free to change the variables in this section to configure your keyboard + +BuildPath="IC60" + +## KLL Configuration ## + +# Generally shouldn't be changed, this will affect every layer +BaseMap="scancode_map" + +# This is the default layer of the keyboard +# NOTE: To combine kll files into a single layout, separate them by spaces +# e.g. DefaultMap="mylayout mylayoutmod" +DefaultMap="md1Overlay stdFuncMap" + +# This is where you set the additional layers +# NOTE: Indexing starts at 1 +# NOTE: Each new layer is another array entry +# e.g. PartialMaps[1]="layer1 layer1mod" +# PartialMaps[2]="layer2" +# PartialMaps[3]="layer3" +PartialMaps[1]="hhkbpro2" + + + +########################## +# Advanced Configuration # +########################## + +# Don't change the variables in this section unless you know what you're doing +# These are useful for completely custom keyboards +# NOTE: Changing any of these variables will require a force build to compile correctly + +# Keyboard Module Configuration +ScanModule="MD1.1" +MacroModule="PartialMap" +OutputModule="pjrcUSB" +DebugModule="full" + +# Microcontroller +Chip="mk20dx128vlf5" + +# Compiler Selection +Compiler="gcc" + + + +######################## +# Bash Library Include # +######################## + +# Shouldn't need to touch this section + +# Check if the library can be found +if [ ! -f cmake.bash ]; then + echo "ERROR: Cannot find 'cmake.bash'" + exit 1 +fi + +# Load the library +source cmake.bash + diff --git a/Keyboards/template.bash b/Keyboards/template.bash index c522726..acbe954 100755 --- a/Keyboards/template.bash +++ b/Keyboards/template.bash @@ -1,7 +1,7 @@ #!/usr/bin/env bash # This is a build script template # These build scripts are just a convenience for configuring your keyboard (less daunting than CMake) -# Jacob Alexander 2015 +# Jacob Alexander 2015-2016 @@ -16,7 +16,7 @@ BuildPath="template" ## KLL Configuration ## # Generally shouldn't be changed, this will affect every layer -BaseMap="defaultMap" +BaseMap="scancode_map" # This is the default layer of the keyboard # NOTE: To combine kll files into a single layout, separate them by spaces diff --git a/Keyboards/whitefox.bash b/Keyboards/whitefox.bash index 049986a..ea32407 100755 --- a/Keyboards/whitefox.bash +++ b/Keyboards/whitefox.bash @@ -1,7 +1,7 @@ #!/usr/bin/env bash # This is a build script template # These build scripts are just a convenience for configuring your keyboard (less daunting than CMake) -# Jacob Alexander 2015 +# Jacob Alexander 2015-2016 @@ -16,7 +16,7 @@ BuildPath="WhiteFox" ## KLL Configuration ## # Generally shouldn't be changed, this will affect every layer -BaseMap="defaultMap" +BaseMap="scancode_map" # This is the default layer of the keyboard # NOTE: To combine kll files into a single layout, separate them by spaces diff --git a/Lib/CMake/kll.cmake b/Lib/CMake/kll.cmake index 36802e4..aae3d31 100644 --- a/Lib/CMake/kll.cmake +++ b/Lib/CMake/kll.cmake @@ -57,10 +57,15 @@ set ( pathname "${PROJECT_SOURCE_DIR}/${ScanModulePath}" ) string ( REPLACE " " ";" MAP_LIST ${BaseMap} ) # Change spaces to semicolons foreach ( MAP ${MAP_LIST} ) - # Only check the Scan Module for BaseMap .kll files, default to defaultMap.kll + # Only check the Scan Module for BaseMap .kll files, default to scancode_map.kll or defaultMap.kll if ( NOT EXISTS ${pathname}/${MAP}.kll ) - set ( BaseMap_Args ${BaseMap_Args} ${pathname}/defaultMap.kll ) - set ( KLL_DEPENDS ${KLL_DEPENDS} ${pathname}/defaultMap.kll ) + if ( EXISTS ${pathname}/scancode_map.kll ) + set ( BaseMap_Args ${BaseMap_Args} ${pathname}/scancode_map.kll ) + set ( KLL_DEPENDS ${KLL_DEPENDS} ${pathname}/scancode_map.kll ) + else () + set ( BaseMap_Args ${BaseMap_Args} ${pathname}/defaultMap.kll ) + set ( KLL_DEPENDS ${KLL_DEPENDS} ${pathname}/defaultMap.kll ) + endif () elseif ( EXISTS "${pathname}/${MAP}.kll" ) set ( BaseMap_Args ${BaseMap_Args} ${pathname}/${MAP}.kll ) set ( KLL_DEPENDS ${KLL_DEPENDS} ${pathname}/${MAP}.kll ) diff --git a/Macro/PartialMap/macro.c b/Macro/PartialMap/macro.c index cc92442..68eb42a 100644 --- a/Macro/PartialMap/macro.c +++ b/Macro/PartialMap/macro.c @@ -125,7 +125,7 @@ extern index_uint_t macroTriggerMacroPendingList[]; extern index_uint_t macroTriggerMacroPendingListSize; // Interconnect ScanCode Cache -#if defined(ConnectEnabled_define) +#if defined(ConnectEnabled_define) || defined(PressReleaseCache_define) // TODO This can be shrunk by the size of the max node 0 ScanCode TriggerGuide macroInterconnectCache[ MaxScanCode ]; uint8_t macroInterconnectCacheSize = 0; @@ -473,8 +473,8 @@ nat_ptr_t *Macro_layerLookup( TriggerGuide *guide, uint8_t latch_expire ) // Add an interconnect ScanCode // These are handled differently (less information is sent, hold/off states must be assumed) -#if defined(ConnectEnabled_define) -inline void Macro_interconnectAdd( void *trigger_ptr ) +#if defined(ConnectEnabled_define) || defined(PressReleaseCache_define) +void Macro_pressReleaseAdd( void *trigger_ptr ) { TriggerGuide *trigger = (TriggerGuide*)trigger_ptr; @@ -703,9 +703,11 @@ inline void Macro_process() if ( USBKeys_Sent != 0 ) return; +#if defined(ConnectEnabled_define) || defined(PressReleaseCache_define) #if defined(ConnectEnabled_define) // Check if there are any ScanCodes in the interconnect cache to process if ( Connect_master && macroInterconnectCacheSize > 0 ) +#endif { // Iterate over all the cache ScanCodes uint8_t currentInterconnectCacheSize = macroInterconnectCacheSize; diff --git a/Macro/PartialMap/macro.h b/Macro/PartialMap/macro.h index 2df411e..3ad9e4a 100644 --- a/Macro/PartialMap/macro.h +++ b/Macro/PartialMap/macro.h @@ -28,7 +28,7 @@ void Macro_analogState( uint8_t scanCode, uint8_t state ); void Macro_keyState( uint8_t scanCode, uint8_t state ); void Macro_ledState( uint8_t ledCode, uint8_t state ); -void Macro_interconnectAdd( void *trigger ); // triggers is of type TriggerGuide, void* for circular dependencies +void Macro_pressReleaseAdd( void *trigger ); // triggers is of type TriggerGuide, void* for circular dependencies void Macro_process(); void Macro_setup(); diff --git a/Scan/BETKB/scan_loop.c b/Scan/BETKB/scan_loop.c index 9a14594..28ce7ee 100644 --- a/Scan/BETKB/scan_loop.c +++ b/Scan/BETKB/scan_loop.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2012,2014 by Jacob Alexander +/* Copyright (C) 2012,2014,2016 by Jacob Alexander * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -25,7 +25,10 @@ #include // Project Includes +#include +#include #include +#include #include // Local Includes @@ -45,6 +48,19 @@ +// ----- Enums ----- + +// Keypress States +typedef enum KeyPosition { + KeyState_Off = 0, + KeyState_Press = 1, + KeyState_Hold = 2, + KeyState_Release = 3, + KeyState_Invalid, +} KeyPosition; + + + // ----- Variables ----- // Buffer used to inform the macro processing module which keys have been detected as pressed @@ -68,18 +84,31 @@ void removeKeyValue( uint8_t keyValue ); // ----- Interrupt Functions ----- // USART Receive Buffer Full Interrupt +#if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_) // AVR ISR(USART1_RX_vect) +#elif defined(_mk20dx128_) || defined(_mk20dx256_) // ARM +void uart0_status_isr() +#endif { cli(); // Disable Interrupts uint8_t keyValue = 0x00; uint8_t keyState = 0x00; +#if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_) // AVR // Read the scancode packet from the USART (1st to 8th bits) keyValue = UDR1; // Read the release/press bit (9th bit) XXX Unnecessary, and wrong it seems, parity bit? or something else? keyState = UCSR1B & 0x02; +#elif defined(_mk20dx128_) || defined(_mk20dx256_) // ARM + // UART0_S1 must be read for the interrupt to be cleared + if ( UART0_S1 & UART_S1_RDRF ) + { + // Only doing single byte FIFO here + keyValue = UART0_D; + } +#endif // High bit of keyValue, also represents press/release keyState = keyValue & 0x80 ? 0x00 : 0x02; @@ -93,19 +122,21 @@ ISR(USART1_RX_vect) { case 0x00: // Released dPrintStrs( tmpStr, "R " ); // Debug - - // Remove key from press buffer - removeKeyValue( keyValue & 0x7F ); break; case 0x02: // Pressed dPrintStrs( tmpStr, "P " ); // Debug - - // New key to process - processKeyValue( keyValue & 0x7F ); break; } + // Add key event to macro key buffer + TriggerGuide guide = { + .type = 0x00, + .state = keyState == 0x02 ? 0x01 : 0x03, + .scanCode = keyValue & 0x7F, + }; + Macro_pressReleaseAdd( &guide ); + sei(); // Re-enable Interrupts } @@ -114,11 +145,12 @@ ISR(USART1_RX_vect) // ----- Functions ----- // Setup -inline void scan_setup() +inline void Scan_setup() +#if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_) // AVR { // Setup the the USART interface for keyboard data input // NOTE: The input data signal needs to be inverted for the Teensy USART to properly work - + // Setup baud rate // 16 MHz / ( 16 * Baud ) = UBRR // Baud <- 0.823284 ms per bit, thus 1000 / 0.823284 = 1214.65004 -> 823.2824 @@ -148,122 +180,133 @@ inline void scan_setup() // Reset the keyboard before scanning, we might be in a wierd state scan_resetKeyboard(); } +#elif defined(_mk20dx128_) || defined(_mk20dx256_) // ARM +{ + // Setup the the UART interface for keyboard data input + SIM_SCGC4 |= SIM_SCGC4_UART0; // Disable clock gating + + // Pin Setup for UART0 + PORTB_PCR16 = PORT_PCR_PE | PORT_PCR_PS | PORT_PCR_PFE | PORT_PCR_MUX(3); // RX Pin + PORTB_PCR17 = PORT_PCR_DSE | PORT_PCR_SRE | PORT_PCR_MUX(3); // TX Pin + + // Setup baud rate - 1205 Baud + // 48 MHz / ( 16 * Baud ) = BDH/L + // Baud: 1215 -> 48 MHz / ( 16 * 1215 ) = 2469.1358 + // Thus baud setting = 2469 + // NOTE: If finer baud adjustment is needed see UARTx_C4 -> BRFA in the datasheet + uint16_t baud = 2469; // Max setting of 8191 + UART0_BDH = (uint8_t)(baud >> 8); + UART0_BDL = (uint8_t)baud; + + // 8 bit, Even Parity, Idle Character bit after stop + // NOTE: For 8 bit with Parity you must enable 9 bit transmission (pg. 1065) + // You only need to use UART0_D for 8 bit reading/writing though + // UART_C1_M UART_C1_PE UART_C1_PT UART_C1_ILT + UART0_C1 = UART_C1_M | UART_C1_PE | UART_C1_ILT; + + // Number of bytes in FIFO before TX Interrupt + UART0_TWFIFO = 1; + + // Number of bytes in FIFO before RX Interrupt + UART0_RWFIFO = 1; + + // TX FIFO Disabled, TX FIFO Size 1 (Max 8 datawords), RX FIFO Enabled, RX FIFO Size 1 (Max 8 datawords) + // TX/RX FIFO Size: + // 0x0 - 1 dataword + // 0x1 - 4 dataword + // 0x2 - 8 dataword + //UART0_PFIFO = UART_PFIFO_TXFE | /*TXFIFOSIZE*/ (0x0 << 4) | UART_PFIFO_RXFE | /*RXFIFOSIZE*/ (0x0); + + // Reciever Inversion Disabled, LSBF + // UART_S2_RXINV UART_S2_MSBF + UART0_S2 |= 0x00; + + // Transmit Inversion Disabled + // UART_C3_TXINV + UART0_C3 |= 0x00; + + // TX Disabled, RX Enabled, RX Interrupt Enabled + // UART_C2_TE UART_C2_RE UART_C2_RIE + UART0_C2 = UART_C2_RE | UART_C2_RIE | UART_C2_TE; + + // Add interrupt to the vector table + NVIC_ENABLE_IRQ( IRQ_UART0_STATUS ); + + // Reset the keyboard before scanning, we might be in a wierd state + Scan_resetKeyboard(); +} +#endif // Main Detection Loop // Not needed for the BETKB, this is just a busy loop -inline uint8_t scan_loop() +inline uint8_t Scan_loop() { return 0; } -void processKeyValue( uint8_t keyValue ) -{ - // Interpret scan code - switch ( keyValue ) - { - case 0x00: // Break code from input? - break; - default: - // Make sure the key isn't already in the buffer - for ( uint8_t c = 0; c < KeyIndex_BufferUsed + 1; c++ ) - { - // Key isn't in the buffer yet - if ( c == KeyIndex_BufferUsed ) - { - Macro_bufferAdd( keyValue ); - - // Only send data if enabled - if ( KeyIndex_Add_InputSignal ) - scan_sendData( KeyIndex_Add_InputSignal ); - break; - } - - // Key already in the buffer - if ( KeyIndex_Buffer[c] == keyValue ) - break; - } - break; - } -} - -void removeKeyValue( uint8_t keyValue ) -{ - // Check for the released key, and shift the other keys lower on the buffer - uint8_t c; - for ( c = 0; c < KeyIndex_BufferUsed; c++ ) - { - // Key to release found - if ( KeyIndex_Buffer[c] == keyValue ) - { - // Shift keys from c position - for ( uint8_t k = c; k < KeyIndex_BufferUsed - 1; k++ ) - KeyIndex_Buffer[k] = KeyIndex_Buffer[k + 1]; - - // Decrement Buffer - KeyIndex_BufferUsed--; - - break; - } - } - - // Error case (no key to release) - if ( c == KeyIndex_BufferUsed + 1 ) - { - errorLED( 1 ); - char tmpStr[6]; - hexToStr( keyValue, tmpStr ); - erro_dPrint( "Could not find key to release: ", tmpStr ); - } -} - // Send data uint8_t scan_sendData( uint8_t dataPayload ) { +#if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_) // AVR // Enable the USART Transmitter UCSR1B |= (1 << 3); +#elif defined(_mk20dx128_) || defined(_mk20dx256_) // ARM +#endif // Debug char tmpStr[6]; hexToStr( dataPayload, tmpStr ); info_dPrint( "Sending - ", tmpStr ); +#if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_) // AVR UDR1 = dataPayload; +#elif defined(_mk20dx128_) || defined(_mk20dx256_) // ARM + UART0_D = dataPayload; +#endif // Wait for the payload _delay_us( 800 ); +#if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_) // AVR // Disable the USART Transmitter UCSR1B &= ~(1 << 3); +#elif defined(_mk20dx128_) || defined(_mk20dx256_) // ARM +#endif return 0; } // Signal KeyIndex_Buffer that it has been properly read -void Scan_finishedWithBuffer( uint8_t sentKeys ) +void Scan_finishedWithMacro( uint8_t sentKeys ) { } // Signal that the keys have been properly sent over USB -void Scan_finishedWithUSBBuffer( uint8_t sentKeys ) +void Scan_finishedWithOutput( uint8_t sentKeys ) { } // Reset/Hold keyboard // NOTE: Does nothing with the BETKB -void scan_lockKeyboard( void ) +void Scan_lockKeyboard() { } // NOTE: Does nothing with the BETKB -void scan_unlockKeyboard( void ) +void Scan_unlockKeyboard() { } // Reset Keyboard -void scan_resetKeyboard( void ) +void Scan_resetKeyboard() { // Not a calculated valued... _delay_ms( 50 ); } +// NOTE: Does nothing with the BETKB +void Scan_currentChange( unsigned int current ) +{ +} + diff --git a/Scan/BETKB/scan_loop.h b/Scan/BETKB/scan_loop.h index fd5bfdc..325d3cb 100644 --- a/Scan/BETKB/scan_loop.h +++ b/Scan/BETKB/scan_loop.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2012,2014-2015 by Jacob Alexander +/* Copyright (C) 2012,2014-2016 by Jacob Alexander * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -48,16 +48,17 @@ extern volatile uint8_t KeyIndex_Add_InputSignal; // ----- Functions ----- // Functions used by main.c -void Scan_setup( void ); -uint8_t Scan_loop( void ); +void Scan_setup(); +uint8_t Scan_loop(); // Functions available to macro.c uint8_t Scan_sendData( uint8_t dataPayload ); -void Scan_finishedWithBuffer( uint8_t sentKeys ); -void Scan_finishedWithUSBBuffer( uint8_t sentKeys ); -void Scan_lockKeyboard( void ); -void Scan_unlockKeyboard( void ); -void Scan_resetKeyboard( void ); +void Scan_finishedWithMacro( uint8_t sentKeys ); +void Scan_finishedWithOutput( uint8_t sentKeys ); +void Scan_lockKeyboard(); +void Scan_unlockKeyboard(); +void Scan_resetKeyboard(); +void Scan_currentChange( unsigned int current ); diff --git a/Scan/BETKB/scancode_map.kll b/Scan/BETKB/scancode_map.kll new file mode 100644 index 0000000..a497d7b --- /dev/null +++ b/Scan/BETKB/scancode_map.kll @@ -0,0 +1,99 @@ +Name = BETKB; +Version = 0.1; +Author = "HaaTa (Jacob Alexander) 2016"; +KLL = 0.3d; + +# Modified Date +Date = 2016-07-06; + +# Options + +# Press/Release Cache +PressReleaseCache => PressReleaseCache_define; +PressReleaseCache = 1; + +# TODO - Not finished +S0x08 : U"Backspace"; +S0x09 : U"Tab"; + +S0x1B : U"Esc"; + +S0x20 : U"Space"; + +S0x27 : U"Quote"; + +S0x2C : U"Comma"; +S0x2D : U"Minus"; +S0x2E : U"Period"; +S0x2F : U"Slash"; +S0x30 : U"0"; +S0x31 : U"1"; +S0x32 : U"2"; +S0x33 : U"3"; +S0x34 : U"4"; +S0x35 : U"5"; +S0x36 : U"6"; +S0x37 : U"7"; +S0x38 : U"8"; +S0x39 : U"9"; +S0x3B : U"Semicolon"; +S0x3D : U"Equal"; +S0x5B : U"LBracket"; +S0x5C : U"Backslash"; +S0x5D : U"RBracket"; + +S0x60 : U"Backtick"; +S0x61 : U"A"; +S0x62 : U"B"; +S0x63 : U"C"; +S0x64 : U"D"; +S0x65 : U"E"; +S0x66 : U"F"; +S0x67 : U"G"; +S0x68 : U"H"; +S0x69 : U"I"; +S0x6A : U"J"; +S0x6B : U"K"; +S0x6C : U"L"; +S0x6D : U"M"; +S0x6E : U"N"; +S0x6F : U"O"; +S0x70 : U"P"; +S0x71 : U"Q"; +S0x72 : U"R"; +S0x73 : U"S"; +S0x74 : U"T"; +S0x75 : U"U"; +S0x76 : U"V"; +S0x77 : U"W"; +S0x78 : U"X"; +S0x79 : U"Y"; +S0x7A : U"Z"; + +S0x7F : U"Delete"; + +S0xB1 : U"P0"; +S0xB2 : U"P."; + +S0xC0 : U"P1"; +S0xC1 : U"P2"; +S0xC2 : U"P3"; +S0xC3 : U"PEnter"; + +S0xD0 : U"P4"; +S0xD1 : U"P5"; +S0xD2 : U"P6"; +S0xD3 : U"P,"; + +S0xE1 : U"P7"; +S0xE2 : U"P8"; +S0xE3 : U"P9"; +S0xE4 : U"P-"; + +S0xF1 : U"Up"; +S0xF2 : U"Down"; +S0xF3 : U"Left"; +S0xF4 : U"Right"; +S0xF5 : U"LShift"; +S0xF6 : U"Ctrl"; + diff --git a/Scan/BETKB/setup.cmake b/Scan/BETKB/setup.cmake index ffac8aa..447c6b8 100644 --- a/Scan/BETKB/setup.cmake +++ b/Scan/BETKB/setup.cmake @@ -1,6 +1,6 @@ ###| CMake Kiibohd Controller Scan Module |### # -# Written by Jacob Alexander in 2011,2014 for the Kiibohd Controller +# Written by Jacob Alexander in 2011,2014,2016 for the Kiibohd Controller # # Released into the Public Domain # @@ -13,7 +13,7 @@ # Module C files # -set( SCAN_SRCS +set( Module_SRCS scan_loop.c ) @@ -26,7 +26,8 @@ set( SCAN_SRCS ### # Compiler Family Compatibility # -set( ScanModuleCompatibility +set( ModuleCompatibility + arm avr ) diff --git a/Scan/MD1.1/defaultMap.kll b/Scan/MD1.1/scancode_map.kll similarity index 100% rename from Scan/MD1.1/defaultMap.kll rename to Scan/MD1.1/scancode_map.kll diff --git a/Scan/MD1/defaultMap.kll b/Scan/MD1/scancode_map.kll similarity index 100% rename from Scan/MD1/defaultMap.kll rename to Scan/MD1/scancode_map.kll diff --git a/Scan/MDErgo1/defaultMap.kll b/Scan/MDErgo1/scancode_map.kll similarity index 100% rename from Scan/MDErgo1/defaultMap.kll rename to Scan/MDErgo1/scancode_map.kll diff --git a/Scan/UARTConnect/connect_scan.c b/Scan/UARTConnect/connect_scan.c index 0365e5b..8f6d20a 100644 --- a/Scan/UARTConnect/connect_scan.c +++ b/Scan/UARTConnect/connect_scan.c @@ -688,7 +688,7 @@ uint8_t Connect_receive_ScanCode( uint8_t byte, uint16_t *pending_bytes, uint8_t } // Send ScanCode to macro module - Macro_interconnectAdd( &Connect_receive_ScanCodeBuffer ); + Macro_pressReleaseAdd( &Connect_receive_ScanCodeBuffer ); } break; diff --git a/Scan/WhiteFox/defaultMap.kll b/Scan/WhiteFox/scancode_map.kll similarity index 100% rename from Scan/WhiteFox/defaultMap.kll rename to Scan/WhiteFox/scancode_map.kll