parent
92d0a71af7
commit
72d3270547
@ -1,126 +0,0 @@
|
|||||||
#----------------------------------------------------------------------------
|
|
||||||
# On command line:
|
|
||||||
#
|
|
||||||
# make all = Make software.
|
|
||||||
#
|
|
||||||
# make clean = Clean out built project files.
|
|
||||||
#
|
|
||||||
# make coff = Convert ELF to AVR COFF.
|
|
||||||
#
|
|
||||||
# make extcoff = Convert ELF to AVR Extended COFF.
|
|
||||||
#
|
|
||||||
# make program = Download the hex file to the device.
|
|
||||||
# Please customize your programmer settings(PROGRAM_CMD)
|
|
||||||
#
|
|
||||||
# make teensy = Download the hex file to the device, using teensy_loader_cli.
|
|
||||||
# (must have teensy_loader_cli installed).
|
|
||||||
#
|
|
||||||
# make dfu = Download the hex file to the device, using dfu-programmer (must
|
|
||||||
# have dfu-programmer installed).
|
|
||||||
#
|
|
||||||
# make flip = Download the hex file to the device, using Atmel FLIP (must
|
|
||||||
# have Atmel FLIP installed).
|
|
||||||
#
|
|
||||||
# make dfu-ee = Download the eeprom file to the device, using dfu-programmer
|
|
||||||
# (must have dfu-programmer installed).
|
|
||||||
#
|
|
||||||
# make flip-ee = Download the eeprom file to the device, using Atmel FLIP
|
|
||||||
# (must have Atmel FLIP installed).
|
|
||||||
#
|
|
||||||
# make debug = Start either simulavr or avarice as specified for debugging,
|
|
||||||
# with avr-gdb or avr-insight as the front end for debugging.
|
|
||||||
#
|
|
||||||
# make filename.s = Just compile filename.c into the assembler code only.
|
|
||||||
#
|
|
||||||
# make filename.i = Create a preprocessed source file for use in submitting
|
|
||||||
# bug reports to the GCC project.
|
|
||||||
#
|
|
||||||
# To rebuild project do "make clean" then "make all".
|
|
||||||
#----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
# Target file name (without extension).
|
|
||||||
TARGET = usb_hid_test
|
|
||||||
|
|
||||||
TMK_DIR = ../../..
|
|
||||||
|
|
||||||
# Directory keyboard dependent files exist
|
|
||||||
TARGET_DIR = .
|
|
||||||
|
|
||||||
# MCU name
|
|
||||||
MCU = atmega32u4
|
|
||||||
|
|
||||||
|
|
||||||
# Processor frequency.
|
|
||||||
# This will define a symbol, F_CPU, in all source code files equal to the
|
|
||||||
# processor frequency in Hz. You can then use this symbol in your source code to
|
|
||||||
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
|
|
||||||
# automatically to create a 32-bit value in your source code.
|
|
||||||
#
|
|
||||||
# This will be an integer division of F_USB below, as it is sourced by
|
|
||||||
# F_USB after it has run through any CPU prescalers. Note that this value
|
|
||||||
# does not *change* the processor frequency - it should merely be updated to
|
|
||||||
# reflect the processor speed set externally so that the code can use accurate
|
|
||||||
# software delays.
|
|
||||||
F_CPU = 16000000
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# LUFA specific
|
|
||||||
#
|
|
||||||
# Target architecture (see library "Board Types" documentation).
|
|
||||||
ARCH = AVR8
|
|
||||||
# Input clock frequency.
|
|
||||||
# This will define a symbol, F_USB, in all source code files equal to the
|
|
||||||
# input clock frequency (before any prescaling is performed) in Hz. This value may
|
|
||||||
# differ from F_CPU if prescaling is used on the latter, and is required as the
|
|
||||||
# raw input clock is fed directly to the PLL sections of the AVR for high speed
|
|
||||||
# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
|
|
||||||
# at the end, this will be done automatically to create a 32-bit value in your
|
|
||||||
# source code.
|
|
||||||
#
|
|
||||||
# If no clock division is performed on the input clock inside the AVR (via the
|
|
||||||
# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
|
|
||||||
F_USB = $(F_CPU)
|
|
||||||
# Interrupt driven control endpoint task
|
|
||||||
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Build Options
|
|
||||||
# comment out to disable the options.
|
|
||||||
#
|
|
||||||
# Console for debug
|
|
||||||
OPT_DEFS += -DCONSOLE_ENABLE
|
|
||||||
|
|
||||||
# Boot Section Size in bytes
|
|
||||||
# Teensy halfKay 512
|
|
||||||
# Atmel DFU loader 4096
|
|
||||||
# LUFA bootloader 4096
|
|
||||||
#OPT_DEFS += -DBOOT_SIZE=4096
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
SRC = test.cpp
|
|
||||||
SRC += common/debug.c
|
|
||||||
SRC += common/print.c
|
|
||||||
|
|
||||||
CONFIG_H = config.h
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Search Path
|
|
||||||
VPATH += $(TARGET_DIR)
|
|
||||||
VPATH += $(TMK_DIR)
|
|
||||||
VPATH += $(TMK_DIR)/common
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# program Leonardo
|
|
||||||
PROGRAM_CMD = avrdude -p$(MCU) -cavr109 -P$(DEV) -b57600 -Uflash:w:$(TARGET).hex
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
include $(TMK_DIR)/protocol/usb_hid.mk
|
|
||||||
include $(TMK_DIR)/protocol/lufa.mk
|
|
||||||
include $(TMK_DIR)/rules.mk
|
|
@ -1,30 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2012 Jun Wako <wakojun@gmail.com>
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#define VENDOR_ID 0xFEED
|
|
||||||
#define PRODUCT_ID 0xCAFE
|
|
||||||
#define DEVICE_VER 0x0814
|
|
||||||
#define MANUFACTURER t.m.k.
|
|
||||||
#define PRODUCT USB to USB keyboard converter
|
|
||||||
|
|
||||||
#define DESCRIPTION Product from t.m.k. keyboard firmware project
|
|
||||||
|
|
||||||
/* matrix size */
|
|
||||||
#define MATRIX_ROWS 32
|
|
||||||
#define MATRIX_COLS 8
|
|
@ -1,92 +0,0 @@
|
|||||||
#include <avr/io.h>
|
|
||||||
#include <avr/wdt.h>
|
|
||||||
#include <avr/power.h>
|
|
||||||
#include <util/delay.h>
|
|
||||||
#include <Arduino.h>
|
|
||||||
|
|
||||||
// USB HID host
|
|
||||||
#include "Usb.h"
|
|
||||||
#include "hid.h"
|
|
||||||
#include "hidboot.h"
|
|
||||||
#include "parser.h"
|
|
||||||
|
|
||||||
// LUFA
|
|
||||||
#include "lufa.h"
|
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
#include "leonardo_led.h"
|
|
||||||
|
|
||||||
|
|
||||||
static USB usb_host;
|
|
||||||
static HIDBoot<HID_PROTOCOL_KEYBOARD> kbd(&usb_host);
|
|
||||||
static KBDReportParser kbd_parser;
|
|
||||||
|
|
||||||
static void LUFA_setup(void)
|
|
||||||
{
|
|
||||||
/* Disable watchdog if enabled by bootloader/fuses */
|
|
||||||
MCUSR &= ~(1 << WDRF);
|
|
||||||
wdt_disable();
|
|
||||||
|
|
||||||
/* Disable clock division */
|
|
||||||
clock_prescale_set(clock_div_1);
|
|
||||||
|
|
||||||
// Leonardo needs. Without this USB device is not recognized.
|
|
||||||
USB_Disable();
|
|
||||||
|
|
||||||
USB_Init();
|
|
||||||
|
|
||||||
// for Console_Task
|
|
||||||
USB_Device_EnableSOFEvents();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void HID_setup()
|
|
||||||
{
|
|
||||||
// Arduino Timer startup: wiring.c
|
|
||||||
init();
|
|
||||||
|
|
||||||
if (usb_host.Init() == -1) {
|
|
||||||
debug("HID init: failed\n");
|
|
||||||
LED_TX_OFF;
|
|
||||||
}
|
|
||||||
|
|
||||||
_delay_ms(200);
|
|
||||||
|
|
||||||
kbd.SetReportParser(0, (HIDReportParser*)&kbd_parser);
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(void)
|
|
||||||
{
|
|
||||||
// LED for debug
|
|
||||||
LED_TX_INIT;
|
|
||||||
LED_TX_ON;
|
|
||||||
|
|
||||||
print_enable = true;
|
|
||||||
debug_enable = true;
|
|
||||||
debug_matrix = true;
|
|
||||||
debug_keyboard = true;
|
|
||||||
debug_mouse = true;
|
|
||||||
|
|
||||||
LUFA_setup();
|
|
||||||
sei();
|
|
||||||
|
|
||||||
// wait for startup of sendchar routine
|
|
||||||
while (USB_DeviceState != DEVICE_STATE_Configured) ;
|
|
||||||
if (debug_enable) {
|
|
||||||
_delay_ms(1000);
|
|
||||||
}
|
|
||||||
|
|
||||||
HID_setup();
|
|
||||||
|
|
||||||
debug("init: done\n");
|
|
||||||
for (;;) {
|
|
||||||
usb_host.Task();
|
|
||||||
|
|
||||||
#if !defined(INTERRUPT_CONTROL_ENDPOINT)
|
|
||||||
// LUFA Task for control request
|
|
||||||
USB_USBTask();
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
Loading…
Reference in New Issue