Formalizing code module structure and inheritance (Large Commit)

- Commenting cleaned up
- usb_keyboard_debug is not finished yet in terms of cleanup (needs DEBUB_PRINT #ifdef's)
- Added LoadFile script generation
- Formalized KeyIndex and USBKeys data containers
- Split parts of scan_loop into Macro, USB, and main.c
- Added interface to USB modules
- Added interface to Macro modules
- Added proper Debug module enable/disable
This commit is contained in:
Jacob Alexander 2011-09-29 22:22:19 -07:00
parent a0439f627b
commit c01efa2d53
29 changed files with 774 additions and 198 deletions

28
Debug/full/setup.cmake Normal file
View file

@ -0,0 +1,28 @@
###| CMake Kiibohd Controller Debug Module |###
#
# Written by Jacob Alexander in 2011 for the Kiibohd Controller
#
# Released into the Public Domain
#
###
###
# Module C files
#
#| XXX Requires the ../ due to how the paths are constructed
set( DEBUG_SRCS
../led/led.c
../print/print.c
)
###
# Module Specific Options
#
add_definitions(
-I${HEAD_DIR}/Debug/led
-I${HEAD_DIR}/Debug/print
)

52
Debug/led/led.c Normal file
View file

@ -0,0 +1,52 @@
/* Copyright (C) 2011 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
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
// ----- Includes -----
// AVR Includes
// Project Includes
#include "led.h"
// ----- Functions -----
// Error LED Setup
void init_errorLED()
{
// Use pin D6 as an output (LED)
DDRD |= (1<<6);
}
// Error LED Control
void errorLED( uint8_t on )
{
// Error LED On (D6)
if ( on ) {
PORTD |= (1<<6);
}
// Error LED Off
else {
PORTD &= ~(1<<6);
}
}

38
Debug/led/led.h Normal file
View file

@ -0,0 +1,38 @@
/* Copyright (C) 2011 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
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef __led_h
#define __led_h
// ----- Includes -----
// AVR Includes
#include <avr/io.h>
// ----- Functions -----
void init_errorLED( void );
void errorLED( uint8_t on );
#endif

28
Debug/led/setup.cmake Normal file
View file

@ -0,0 +1,28 @@
###| CMake Kiibohd Controller Debug Module |###
#
# Written by Jacob Alexander in 2011 for the Kiibohd Controller
#
# Released into the Public Domain
#
###
###
# Module C files
#
set( DEBUG_SRCS
led.c
)
###
# Module Specific Options
#
###
# Just in case, you only want this module and are using others as well
#
add_definitions( -I${HEAD_DIR}/Debug/off )

30
Debug/off/led.h Normal file
View file

@ -0,0 +1,30 @@
/* Copyright (C) 2011 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
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef __led_h
#define __led_h
// ----- Disabler Defines -----
#define init_errorLED()
#define errorLED(on)
#endif

70
Debug/off/print.h Normal file
View file

@ -0,0 +1,70 @@
/* Copyright (C) 2011 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
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef print_h__
#define print_h__
// ----- Disabler Defines -----
#define dPrint(c)
#define dPrintStr(c)
#define dPrintStrs(...)
#define dPrintStrNL(c)
#define dPrintStrsNL(...)
// Special Msg Constructs (Uses VT100 tags)
#define dPrintMsg(colour_code_str,msg,...)
#define printMsg(colour_code_str,msg,str)
// Info Messages
#define info_dPrint(...)
#define info_print(str)
// Warning Messages
#define warn_dPrint(...)
#define warn_print(str)
// Error Messages
#define erro_dPrint(...)
#define erro_print(str)
// Debug Messages
#define dbug_dPrint(...)
#define dbug_print(str)
// Static String Printing
#define print(s) _print(PSTR(s))
// Output Functions
#define _print(s)
#define usb_debug_putstr(s)
#define usb_debug_putstrs(s, ...)
// String Functions
#define hexToStr(hex, out)
#define int8ToStr(in, out)
#define int16ToStr(in, out)
#define hexToStr_op(in, out, op)
#define revsStr(in)
#define lenStr(in)
#endif

View file

@ -10,10 +10,7 @@
###
# Module C files
#
set( DEBUG_SRCS
print.c
)
#| None!
###

View file

@ -19,19 +19,18 @@
* THE SOFTWARE.
*/
// ----- Includes -----
// Compiler Includes
#include <stdarg.h>
// AVR Includes
#include <avr/io.h>
#include <avr/pgmspace.h>
// Project Includes
#include "print.h"
// Defines
// ----- Functions -----
// USB HID String Output
void usb_debug_putstr( char* s )
{

View file

@ -22,16 +22,23 @@
#ifndef print_h__
#define print_h__
// ----- Includes -----
// AVR Includes
#include <avr/pgmspace.h>
// Project Includes
#include "usb_keyboard_debug.h"
// Defines
// ----- Defines -----
#define NL "\r\n"
// ----- Functions and Corresponding Function Aliases -----
/* XXX
* Note that all the variadic functions below, take comma separated string lists, they are purposely not printf style (simplicity)
*/

28
Debug/print/setup.cmake Normal file
View file

@ -0,0 +1,28 @@
###| CMake Kiibohd Controller Debug Module |###
#
# Written by Jacob Alexander in 2011 for the Kiibohd Controller
#
# Released into the Public Domain
#
###
###
# Module C files
#
set( DEBUG_SRCS
print.c
)
###
# Module Specific Options
#
###
# Just in case, you only want this module and are using others as well
#
add_definitions( -I${HEAD_DIR}/Debug/off )