- Very small updates to files, mostly modifying to remove name duplicationssimple
@@ -1,4 +1,4 @@ | |||
/* Copyright (C) 2011 by Jacob Alexander | |||
/* Copyright (C) 2011-2013 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 | |||
@@ -34,8 +34,17 @@ | |||
// USB HID String Output | |||
void usb_debug_putstr( char* s ) | |||
{ | |||
#if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_) // AVR | |||
while ( *s != '\0' ) | |||
usb_debug_putchar( *s++ ); | |||
#elif defined(_mk20dx128_) // ARM | |||
// Count characters until NULL character, then send the amount counted | |||
uint32_t count = 0; | |||
while ( s[count] != '\0' ) | |||
count++; | |||
usb_serial_write( s, count ); | |||
#endif | |||
} | |||
// Multiple string Output | |||
@@ -64,6 +73,7 @@ void usb_debug_putstrs( char* first, ... ) | |||
// Print a constant string | |||
void _print(const char *s) | |||
{ | |||
#if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_) // AVR | |||
char c; | |||
// Acquire the character from flash, and print it, as long as it's not NULL | |||
@@ -74,6 +84,9 @@ void _print(const char *s) | |||
usb_debug_putchar('\r'); | |||
usb_debug_putchar(c); | |||
} | |||
#elif defined(_mk20dx128_) // ARM | |||
usb_debug_putstr( (char*)s ); | |||
#endif | |||
} | |||
@@ -32,7 +32,7 @@ | |||
#elif defined(_mk20dx128_) | |||
#include "arm/usb_keyboard.h" | |||
#include "arm/usb_serial.h" | |||
#endif | |||
@@ -24,11 +24,15 @@ | |||
// Additional includes should only be added to this file if they should be added to *all* Macro modules. | |||
// ----- Includes ----- | |||
#ifndef __MACROLIB_H | |||
#define __MACROLIB_H | |||
// ----- Includes ----- | |||
#include <Lib/Interrupts.h> | |||
// ARM | |||
#if defined(_mk20dx128_) | |||
@@ -43,7 +47,6 @@ | |||
// AVR | |||
#if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_) | |||
#include <avr/interrupt.h> | |||
#include <util/delay.h> | |||
#endif |
@@ -24,10 +24,14 @@ | |||
// Additional includes should only be added to this file if they should be added to *all* Scan modules. | |||
#ifndef __MAINLIB_H | |||
#define __MAINLIB_H | |||
// ----- Includes ----- | |||
#ifndef __MACROLIB_H | |||
#define __MACROLIB_H | |||
#include <Lib/Interrupts.h> | |||
// ARM | |||
#if defined(_mk20dx128_) | |||
@@ -43,7 +47,6 @@ | |||
#if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_) | |||
#include <avr/io.h> | |||
#include <avr/interrupt.h> | |||
#endif | |||
@@ -24,11 +24,15 @@ | |||
// Additional includes should only be added to this file if they should be added to *all* Scan modules. | |||
// ----- Includes ----- | |||
#ifndef __SCANLIB_H | |||
#define __SCANLIB_H | |||
// ----- Includes ----- | |||
#include <Lib/Interrupts.h> | |||
// ARM | |||
#if defined(_mk20dx128_) | |||
@@ -43,7 +47,6 @@ | |||
// AVR | |||
#if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_) | |||
#include <avr/interrupt.h> | |||
#include <avr/io.h> | |||
#include <util/delay.h> | |||
@@ -24,10 +24,10 @@ | |||
// Additional includes should only be added to this file if they should be added to *all* Scan modules. | |||
// ----- Includes ----- | |||
#ifndef __USBLIB_H | |||
#define __USBLIB_H | |||
#ifndef __MACROLIB_H | |||
#define __MACROLIB_H | |||
// ----- Includes ----- | |||
// ARM | |||
#if defined(_mk20dx128_) |
@@ -77,6 +77,7 @@ inline void macro_finishedWithBuffer( uint8_t sentKeys ) | |||
void jumpToBootloader(void) | |||
{ | |||
#if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_) // AVR | |||
cli(); | |||
// disable watchdog, if enabled | |||
// disable all peripherals | |||
@@ -110,6 +111,7 @@ void jumpToBootloader(void) | |||
PORTA = 0; PORTB = 0; PORTC = 0; PORTD = 0; PORTE = 0; PORTF = 0; | |||
asm volatile("jmp 0x1FC00"); | |||
#endif | |||
#endif | |||
} | |||
// Given a sampling array, and the current number of detected keypress |
@@ -33,7 +33,7 @@ | |||
// ----- Defines ----- | |||
#define KEYBOARD_SIZE 0x7F // 127 - Size of the array space for the keyboard(max index) | |||
#define KEYBOARD_KEYS 0x7F // 127 - Size of the array space for the keyboard(max index) | |||
#define KEYBOARD_BUFFER 24 // Max number of key signals to buffer | |||
@@ -36,7 +36,7 @@ | |||
// ----- Key Settings ----- | |||
#define KEYBOARD_SIZE 16 // # of keys | |||
#define KEYBOARD_KEYS 16 // # of keys | |||
#define MAX_ROW_SIZE 16 // # of keys in the largest row | |||
#define MAX_COL_SIZE 1 // # of keys in the largest column | |||
@@ -33,7 +33,7 @@ | |||
// ----- Defines ----- | |||
#define KEYBOARD_SIZE 0x68 // 104 - Size of the array space for the keyboard(max index) | |||
#define KEYBOARD_KEYS 0x68 // 104 - Size of the array space for the keyboard(max index) | |||
#define KEYBOARD_BUFFER 24 // Max number of key signals to buffer | |||
@@ -108,7 +108,6 @@ ISR(USART1_RX_vect) | |||
inline void scan_setup() | |||
{ | |||
// 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 |
@@ -33,7 +33,7 @@ | |||
// ----- Defines ----- | |||
#define KEYBOARD_SIZE 0x7F // 127 - Size of the array space for the keyboard(max index) | |||
#define KEYBOARD_KEYS 0x7F // 127 - Size of the array space for the keyboard(max index) | |||
#define KEYBOARD_BUFFER 24 // Max number of key signals to buffer | |||
@@ -33,7 +33,7 @@ | |||
// ----- Defines ----- | |||
#define KEYBOARD_SIZE 0x7F // 127 - Size of the array space for the keyboard(max index) | |||
#define KEYBOARD_KEYS 0x7F // 127 - Size of the array space for the keyboard(max index) | |||
#define KEYBOARD_BUFFER 24 // Max number of key signals to buffer | |||
@@ -36,7 +36,7 @@ | |||
// ----- Key Settings ----- | |||
#define KEYBOARD_SIZE 63 // # of keys | |||
#define KEYBOARD_KEYS 63 // # of keys | |||
#define MAX_ROW_SIZE 12 // # of keys in the largest row | |||
#define MAX_COL_SIZE 9 // # of keys in the largest column | |||
@@ -36,7 +36,7 @@ | |||
// ----- Key Settings ----- | |||
#define KEYBOARD_SIZE 90 // # of keys (It actually has 78, but there are markings up to 81 on the PCB and scan lines enough for 90 | |||
#define KEYBOARD_KEYS 90 // # of keys (It actually has 78, but there are markings up to 81 on the PCB and scan lines enough for 90 | |||
#define MAX_ROW_SIZE 6 // # of rows | |||
#define MAX_COL_SIZE 15 // # of columns | |||
@@ -33,7 +33,7 @@ | |||
// ----- Defines ----- | |||
#define KEYBOARD_SIZE 0x4c // 76 - Size of the array space for the keyboardr(max index) | |||
#define KEYBOARD_KEYS 0x4c // 76 - Size of the array space for the keyboardr(max index) | |||
#define KEYBOARD_BUFFER 24 // Max number of key signals to buffer | |||
@@ -33,7 +33,7 @@ | |||
// ----- Defines ----- | |||
#define KEYBOARD_SIZE 0x62 // 98 - Size of the array space for the keyboard(max index) | |||
#define KEYBOARD_KEYS 0x62 // 98 - Size of the array space for the keyboard(max index) | |||
#define KEYBOARD_BUFFER 24 // Max number of key signals to buffer | |||
@@ -36,7 +36,7 @@ | |||
// ----- Key Settings ----- | |||
#define KEYBOARD_SIZE 85 // # of keys (It actually has 66, but there are markings up to 80 on the PCB); 85 due to there being 5 "switch" keys, that have no numbers | |||
#define KEYBOARD_KEYS 85 // # of keys (It actually has 66, but there are markings up to 80 on the PCB); 85 due to there being 5 "switch" keys, that have no numbers | |||
#define MAX_ROW_SIZE 9 // # of keys in the largest row | |||
#define MAX_COL_SIZE 9 // # of keys in the largest column | |||
@@ -33,7 +33,7 @@ | |||
// ----- Defines ----- | |||
#define KEYBOARD_SIZE 0x68 // 104 - Size of the array space for the keyboard(max index) | |||
#define KEYBOARD_KEYS 0x68 // 104 - Size of the array space for the keyboard(max index) | |||
#define KEYBOARD_BUFFER 24 // Max number of key signals to buffer | |||
@@ -33,7 +33,7 @@ | |||
// ----- Defines ----- | |||
#define KEYBOARD_SIZE 0xFF // 255 - Size of the array space for the keyboard(max index) | |||
#define KEYBOARD_KEYS 0xFF // 255 - Size of the array space for the keyboard(max index) | |||
#define KEYBOARD_BUFFER 24 // Max number of key signals to buffer | |||
@@ -33,7 +33,7 @@ | |||
// ----- Defines ----- | |||
#define KEYBOARD_SIZE 0x5A // 90 - Size of the array space for the keyboardr(max index) | |||
#define KEYBOARD_KEYS 0x5A // 90 - Size of the array space for the keyboardr(max index) | |||
#define KEYBOARD_BUFFER 24 // Max number of key signals to buffer | |||
@@ -33,7 +33,7 @@ | |||
// ----- Defines ----- | |||
#define KEYBOARD_SIZE 0x68 // 104 - Size of the array space for the keyboard(max index) | |||
#define KEYBOARD_KEYS 0x68 // 104 - Size of the array space for the keyboard(max index) | |||
#define KEYBOARD_BUFFER 24 // Max number of key signals to buffer | |||
@@ -38,7 +38,7 @@ | |||
// -- Example for scanCol -- | |||
/* | |||
#define KEYBOARD_SIZE 16 // # of keys | |||
#define KEYBOARD_KEYS 16 // # of keys | |||
#define MAX_ROW_SIZE 16 // # of keys in the largest row | |||
#define MAX_COL_SIZE 1 // # of keys in the largest column | |||
*/ | |||
@@ -46,7 +46,7 @@ | |||
// -- Example for scanRow -- | |||
/* | |||
#define KEYBOARD_SIZE 16 // # of keys | |||
#define KEYBOARD_KEYS 16 // # of keys | |||
#define MAX_ROW_SIZE 1 // # of keys in the largest row | |||
#define MAX_COL_SIZE 16 // # of keys in the largest column | |||
*/ | |||
@@ -54,7 +54,7 @@ | |||
// -- Example for scanRow_powrCol, scanCol_powrRow, and scanDual -- | |||
/* | |||
#define KEYBOARD_SIZE 69 // # of keys | |||
#define KEYBOARD_KEYS 69 // # of keys | |||
#define MAX_ROW_SIZE 8 // # of keys in the largest row | |||
#define MAX_COL_SIZE 9 // # of keys in the largest column | |||
*/ |
@@ -67,7 +67,7 @@ uint8_t scan_count = 0; | |||
// This is where the matrix scan data is held, as well as debouncing is evaluated to, which (depending on the read value) is handled | |||
// by the macro module | |||
uint8_t KeyIndex_Array[KEYBOARD_SIZE + 1]; | |||
uint8_t KeyIndex_Array[KEYBOARD_KEYS + 1]; | |||
@@ -45,8 +45,8 @@ | |||
// NOTE: Highest Bit: Valid keypress (0x80 is valid keypress) | |||
// Other Bits: Pressed state sample counter | |||
extern uint8_t KeyIndex_Array [KEYBOARD_SIZE + 1]; | |||
static const uint8_t KeyIndex_Size = KEYBOARD_SIZE; | |||
extern uint8_t KeyIndex_Array [KEYBOARD_KEYS + 1]; | |||
static const uint8_t KeyIndex_Size = KEYBOARD_KEYS; | |||
extern volatile uint8_t KeyIndex_Buffer[KEYBOARD_BUFFER]; | |||
extern volatile uint8_t KeyIndex_BufferUsed; |
@@ -29,6 +29,7 @@ elseif ( ${COMPILER_FAMILY} MATCHES "arm" ) | |||
arm/usb_dev.c | |||
arm/usb_keyboard.c | |||
arm/usb_mem.c | |||
arm/usb_serial.c | |||
) | |||
endif ( ${COMPILER_FAMILY} MATCHES "avr" ) |
@@ -32,6 +32,7 @@ | |||
#include "avr/usb_keyboard_debug.h" | |||
#elif defined(_mk20dx128_) | |||
#include "arm/usb_keyboard.h" | |||
#include "arm/usb_dev.h" | |||
#endif | |||
// Local Includes |
@@ -38,6 +38,7 @@ | |||
// You can change these to give your code its own name. | |||
// TODO Add to Teensy 3 | |||
#define STR_MANUFACTURER L"MfgName" | |||
#define STR_PRODUCT L"Keyboard" | |||
@@ -47,7 +48,8 @@ | |||
// INF file is needed to load the driver. These numbers need to | |||
// match the INF file. | |||
#define VENDOR_ID 0x16C0 | |||
#define PRODUCT_ID 0x047D | |||
#define PRODUCT_ID 0x0487 // New ID for Teensy 3 | |||
//#define PRODUCT_ID 0x047D // Old ID for Teensy 2 | |||
@@ -55,6 +55,7 @@ message( "${CPU}" ) | |||
#| Mostly for convenience functions like interrupt handlers | |||
set( COMPILER_SRCS | |||
Lib/${CHIP}.c | |||
Lib/delay.c | |||
) | |||