clean descriptor setting. Remove keyboard OUT Endpoint.
- to make descriptor get VID/PID/Version from config.h. - remove keyboard out endpoint. Instead host can use control request.example_keyboards
parent
3969ec09b4
commit
effa5914bf
@ -1,160 +1,160 @@
|
|||||||
# Hey Emacs, this is a -*- makefile -*-
|
# Hey Emacs, this is a -*- makefile -*-
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
# WinAVR Makefile Template written by Eric B. Weddington, Jörg Wunsch, et al.
|
# WinAVR Makefile Template written by Eric B. Weddington, Jörg Wunsch, et al.
|
||||||
# >> Modified for use with the LUFA project. <<
|
# >> Modified for use with the LUFA project. <<
|
||||||
#
|
#
|
||||||
# Released to the Public Domain
|
# Released to the Public Domain
|
||||||
#
|
#
|
||||||
# Additional material for this makefile was written by:
|
# Additional material for this makefile was written by:
|
||||||
# Peter Fleury
|
# Peter Fleury
|
||||||
# Tim Henigan
|
# Tim Henigan
|
||||||
# Colin O'Flynn
|
# Colin O'Flynn
|
||||||
# Reiner Patommel
|
# Reiner Patommel
|
||||||
# Markus Pfaff
|
# Markus Pfaff
|
||||||
# Sander Pool
|
# Sander Pool
|
||||||
# Frederik Rouleau
|
# Frederik Rouleau
|
||||||
# Carlos Lamas
|
# Carlos Lamas
|
||||||
# Dean Camera
|
# Dean Camera
|
||||||
# Opendous Inc.
|
# Opendous Inc.
|
||||||
# Denver Gingerich
|
# Denver Gingerich
|
||||||
#
|
#
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
# On command line:
|
# On command line:
|
||||||
#
|
#
|
||||||
# make all = Make software.
|
# make all = Make software.
|
||||||
#
|
#
|
||||||
# make clean = Clean out built project files.
|
# make clean = Clean out built project files.
|
||||||
#
|
#
|
||||||
# make coff = Convert ELF to AVR COFF.
|
# make coff = Convert ELF to AVR COFF.
|
||||||
#
|
#
|
||||||
# make extcoff = Convert ELF to AVR Extended COFF.
|
# make extcoff = Convert ELF to AVR Extended COFF.
|
||||||
#
|
#
|
||||||
# make program = Download the hex file to the device, using avrdude.
|
# make program = Download the hex file to the device, using avrdude.
|
||||||
# Please customize the avrdude settings below first!
|
# Please customize the avrdude settings below first!
|
||||||
#
|
#
|
||||||
# make dfu = Download the hex file to the device, using dfu-programmer (must
|
# make dfu = Download the hex file to the device, using dfu-programmer (must
|
||||||
# have dfu-programmer installed).
|
# have dfu-programmer installed).
|
||||||
#
|
#
|
||||||
# make flip = Download the hex file to the device, using Atmel FLIP (must
|
# make flip = Download the hex file to the device, using Atmel FLIP (must
|
||||||
# have Atmel FLIP installed).
|
# have Atmel FLIP installed).
|
||||||
#
|
#
|
||||||
# make dfu-ee = Download the eeprom file to the device, using dfu-programmer
|
# make dfu-ee = Download the eeprom file to the device, using dfu-programmer
|
||||||
# (must have dfu-programmer installed).
|
# (must have dfu-programmer installed).
|
||||||
#
|
#
|
||||||
# make flip-ee = Download the eeprom file to the device, using Atmel FLIP
|
# make flip-ee = Download the eeprom file to the device, using Atmel FLIP
|
||||||
# (must have Atmel FLIP installed).
|
# (must have Atmel FLIP installed).
|
||||||
#
|
#
|
||||||
# make doxygen = Generate DoxyGen documentation for the project (must have
|
# make doxygen = Generate DoxyGen documentation for the project (must have
|
||||||
# DoxyGen installed)
|
# DoxyGen installed)
|
||||||
#
|
#
|
||||||
# make debug = Start either simulavr or avarice as specified for debugging,
|
# make debug = Start either simulavr or avarice as specified for debugging,
|
||||||
# with avr-gdb or avr-insight as the front end 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.s = Just compile filename.c into the assembler code only.
|
||||||
#
|
#
|
||||||
# make filename.i = Create a preprocessed source file for use in submitting
|
# make filename.i = Create a preprocessed source file for use in submitting
|
||||||
# bug reports to the GCC project.
|
# bug reports to the GCC project.
|
||||||
#
|
#
|
||||||
# To rebuild project do "make clean" then "make all".
|
# To rebuild project do "make clean" then "make all".
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
||||||
# Directory common source filess exist
|
# Directory common source filess exist
|
||||||
TOP_DIR = ../..
|
TOP_DIR = ../..
|
||||||
|
|
||||||
# Directory keyboard dependent files exist
|
# Directory keyboard dependent files exist
|
||||||
TARGET_DIR = .
|
TARGET_DIR = .
|
||||||
|
|
||||||
# MCU name
|
# MCU name
|
||||||
#MCU = at90usb1287
|
#MCU = at90usb1287
|
||||||
MCU = atmega32u4
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
|
||||||
# Target architecture (see library "Board Types" documentation).
|
# Target architecture (see library "Board Types" documentation).
|
||||||
ARCH = AVR8
|
ARCH = AVR8
|
||||||
|
|
||||||
|
|
||||||
# Target board (see library "Board Types" documentation, NONE for projects not requiring
|
# Target board (see library "Board Types" documentation, NONE for projects not requiring
|
||||||
# LUFA board drivers). If USER is selected, put custom board drivers in a directory called
|
# LUFA board drivers). If USER is selected, put custom board drivers in a directory called
|
||||||
# "Board" inside the application directory.
|
# "Board" inside the application directory.
|
||||||
BOARD = USBKEY
|
BOARD = USBKEY
|
||||||
|
|
||||||
|
|
||||||
# Processor frequency.
|
# Processor frequency.
|
||||||
# This will define a symbol, F_CPU, in all source code files equal to the
|
# 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
|
# 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
|
# 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.
|
# 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
|
# 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
|
# 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
|
# 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
|
# reflect the processor speed set externally so that the code can use accurate
|
||||||
# software delays.
|
# software delays.
|
||||||
F_CPU = 16000000
|
F_CPU = 16000000
|
||||||
|
|
||||||
|
|
||||||
# Input clock frequency.
|
# Input clock frequency.
|
||||||
# This will define a symbol, F_USB, in all source code files equal to the
|
# 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
|
# 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
|
# 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
|
# 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'
|
# 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
|
# at the end, this will be done automatically to create a 32-bit value in your
|
||||||
# source code.
|
# source code.
|
||||||
#
|
#
|
||||||
# If no clock division is performed on the input clock inside the AVR (via the
|
# 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.
|
# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
|
||||||
F_USB = $(F_CPU)
|
F_USB = $(F_CPU)
|
||||||
|
|
||||||
|
|
||||||
# Target file name (without extension).
|
# Target file name (without extension).
|
||||||
TARGET = lufa
|
TARGET = lufa
|
||||||
|
|
||||||
|
|
||||||
# Path to the LUFA library
|
# Path to the LUFA library
|
||||||
LUFA_PATH = ../../protocol
|
LUFA_PATH = ../../protocol
|
||||||
|
|
||||||
# Create the LUFA source path variables by including the LUFA root makefile
|
# Create the LUFA source path variables by including the LUFA root makefile
|
||||||
include $(LUFA_PATH)/LUFA/makefile
|
include $(LUFA_PATH)/LUFA/makefile
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# List C source files here. (C dependencies are automatically generated.)
|
# List C source files here. (C dependencies are automatically generated.)
|
||||||
LSRC = $(TARGET).c \
|
LUFA_SRC = $(TARGET).c \
|
||||||
Descriptors.c \
|
descriptor.c \
|
||||||
$(LUFA_SRC_USB) \
|
$(LUFA_SRC_USB) \
|
||||||
$(LUFA_SRC_USBCLASS)
|
$(LUFA_SRC_USBCLASS)
|
||||||
|
|
||||||
SRC = $(subst $(LUFA_PATH)/LUFA/,,$(LSRC))
|
SRC = $(subst $(LUFA_PATH)/LUFA/,,$(LUFA_SRC))
|
||||||
SRC += keymap.c \
|
SRC += keymap.c \
|
||||||
matrix.c \
|
matrix.c \
|
||||||
led.c
|
led.c
|
||||||
CONFIG_H = config.h
|
CONFIG_H = config.h
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# LUFA library compile-time options and predefined tokens
|
# LUFA library compile-time options and predefined tokens
|
||||||
LUFA_OPTS = -D USB_DEVICE_ONLY
|
LUFA_OPTS = -D USB_DEVICE_ONLY
|
||||||
LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
|
LUFA_OPTS += -D FIXED_CONTROL_ENDPOINT_SIZE=8
|
||||||
LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
|
LUFA_OPTS += -D FIXED_NUM_CONFIGURATIONS=1
|
||||||
LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
|
LUFA_OPTS += -D USE_FLASH_DESCRIPTORS
|
||||||
LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
|
LUFA_OPTS += -D USE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
|
||||||
|
|
||||||
OPT_DEFS = -DF_CPU=$(F_CPU)UL
|
OPT_DEFS = -DF_CPU=$(F_CPU)UL
|
||||||
OPT_DEFS += -DF_USB=$(F_USB)UL
|
OPT_DEFS += -DF_USB=$(F_USB)UL
|
||||||
OPT_DEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
|
OPT_DEFS += -DBOARD=BOARD_$(BOARD) -DARCH=ARCH_$(ARCH)
|
||||||
OPT_DEFS += $(LUFA_OPTS)
|
OPT_DEFS += $(LUFA_OPTS)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Search Path
|
# Search Path
|
||||||
VPATH += $(TARGET_DIR)
|
VPATH += $(TARGET_DIR)
|
||||||
VPATH += $(LUFA_PATH)/LUFA
|
VPATH += $(LUFA_PATH)/LUFA
|
||||||
|
|
||||||
|
|
||||||
include $(TOP_DIR)/protocol.mk
|
include $(TOP_DIR)/protocol.mk
|
||||||
include $(TOP_DIR)/common.mk
|
include $(TOP_DIR)/common.mk
|
||||||
include $(TOP_DIR)/rules.mk
|
include $(TOP_DIR)/rules.mk
|
||||||
|
|
||||||
test:
|
test:
|
||||||
echo $(SRC)
|
echo $(SRC)
|
||||||
|
@ -1,84 +1,86 @@
|
|||||||
/*
|
/*
|
||||||
LUFA Library
|
LUFA Library
|
||||||
Copyright (C) Dean Camera, 2012.
|
Copyright (C) Dean Camera, 2012.
|
||||||
|
|
||||||
dean [at] fourwalledcubicle [dot] com
|
dean [at] fourwalledcubicle [dot] com
|
||||||
www.lufa-lib.org
|
www.lufa-lib.org
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
|
Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
|
||||||
Copyright 2010 Denver Gingerich (denver [at] ossguy [dot] com)
|
Copyright 2010 Denver Gingerich (denver [at] ossguy [dot] com)
|
||||||
|
|
||||||
Permission to use, copy, modify, distribute, and sell this
|
Permission to use, copy, modify, distribute, and sell this
|
||||||
software and its documentation for any purpose is hereby granted
|
software and its documentation for any purpose is hereby granted
|
||||||
without fee, provided that the above copyright notice appear in
|
without fee, provided that the above copyright notice appear in
|
||||||
all copies and that both that the copyright notice and this
|
all copies and that both that the copyright notice and this
|
||||||
permission notice and warranty disclaimer appear in supporting
|
permission notice and warranty disclaimer appear in supporting
|
||||||
documentation, and that the name of the author not be used in
|
documentation, and that the name of the author not be used in
|
||||||
advertising or publicity pertaining to distribution of the
|
advertising or publicity pertaining to distribution of the
|
||||||
software without specific, written prior permission.
|
software without specific, written prior permission.
|
||||||
|
|
||||||
The author disclaim all warranties with regard to this
|
The author disclaim all warranties with regard to this
|
||||||
software, including all implied warranties of merchantability
|
software, including all implied warranties of merchantability
|
||||||
and fitness. In no event shall the author be liable for any
|
and fitness. In no event shall the author be liable for any
|
||||||
special, indirect or consequential damages or any damages
|
special, indirect or consequential damages or any damages
|
||||||
whatsoever resulting from loss of use, data or profits, whether
|
whatsoever resulting from loss of use, data or profits, whether
|
||||||
in an action of contract, negligence or other tortious action,
|
in an action of contract, negligence or other tortious action,
|
||||||
arising out of or in connection with the use or performance of
|
arising out of or in connection with the use or performance of
|
||||||
this software.
|
this software.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** \file
|
/** \file
|
||||||
*
|
*
|
||||||
* Header file for Descriptors.c.
|
* Header file for Descriptors.c.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _DESCRIPTORS_H_
|
#ifndef _DESCRIPTORS_H_
|
||||||
#define _DESCRIPTORS_H_
|
#define _DESCRIPTORS_H_
|
||||||
|
|
||||||
#include <LUFA/Drivers/USB/USB.h>
|
#include <LUFA/Drivers/USB/USB.h>
|
||||||
#include <avr/pgmspace.h>
|
#include <avr/pgmspace.h>
|
||||||
|
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
USB_Descriptor_Configuration_Header_t Config;
|
USB_Descriptor_Configuration_Header_t Config;
|
||||||
|
|
||||||
// Keyboard HID Interface
|
// Keyboard HID Interface
|
||||||
USB_Descriptor_Interface_t HID1_KeyboardInterface;
|
USB_Descriptor_Interface_t HID0_KeyboardInterface;
|
||||||
USB_HID_Descriptor_HID_t HID1_KeyboardHID;
|
USB_HID_Descriptor_HID_t HID0_KeyboardHID;
|
||||||
USB_Descriptor_Endpoint_t HID1_ReportINEndpoint;
|
USB_Descriptor_Endpoint_t HID0_ReportINEndpoint;
|
||||||
USB_Descriptor_Endpoint_t HID1_ReportOUTEndpoint;
|
|
||||||
|
// Mouse HID Interface
|
||||||
// Mouse HID Interface
|
USB_Descriptor_Interface_t HID1_MouseInterface;
|
||||||
USB_Descriptor_Interface_t HID2_MouseInterface;
|
USB_HID_Descriptor_HID_t HID1_MouseHID;
|
||||||
USB_HID_Descriptor_HID_t HID2_MouseHID;
|
USB_Descriptor_Endpoint_t HID1_ReportINEndpoint;
|
||||||
USB_Descriptor_Endpoint_t HID2_ReportINEndpoint;
|
|
||||||
|
// Generic HID Interface
|
||||||
// Generic HID Interface
|
USB_Descriptor_Interface_t HID2_GenericInterface;
|
||||||
USB_Descriptor_Interface_t HID3_GenericInterface;
|
USB_HID_Descriptor_HID_t HID2_GenericHID;
|
||||||
USB_HID_Descriptor_HID_t HID3_GenericHID;
|
USB_Descriptor_Endpoint_t HID2_ReportINEndpoint;
|
||||||
USB_Descriptor_Endpoint_t HID3_ReportINEndpoint;
|
USB_Descriptor_Endpoint_t HID2_ReportOUTEndpoint;
|
||||||
USB_Descriptor_Endpoint_t HID3_ReportOUTEndpoint;
|
} USB_Descriptor_Configuration_t;
|
||||||
} USB_Descriptor_Configuration_t;
|
|
||||||
|
|
||||||
|
#define KEYBOARD_INTERFACE 0
|
||||||
// Endopoint number/size
|
#define MOUSE_INTERFACE 1
|
||||||
#define KEYBOARD_IN_EPNUM 1
|
#define GENERIC_INTERFACE 2
|
||||||
#define KEYBOARD_OUT_EPNUM 2
|
|
||||||
#define MOUSE_IN_EPNUM 3
|
// Endopoint number/size
|
||||||
#define GENERIC_IN_EPNUM 4
|
#define KEYBOARD_IN_EPNUM 1
|
||||||
#define GENERIC_OUT_EPNUM 5
|
#define MOUSE_IN_EPNUM 2
|
||||||
|
#define GENERIC_IN_EPNUM 3
|
||||||
#define HID_EPSIZE 8
|
#define GENERIC_OUT_EPNUM 4
|
||||||
#define GENERIC_EPSIZE 8
|
|
||||||
#define GENERIC_REPORT_SIZE 8
|
#define HID_EPSIZE 8
|
||||||
|
#define GENERIC_EPSIZE 8
|
||||||
|
#define GENERIC_REPORT_SIZE 8
|
||||||
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
|
|
||||||
const uint8_t wIndex,
|
|
||||||
const void** const DescriptorAddress)
|
uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
|
||||||
ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);
|
const uint8_t wIndex,
|
||||||
|
const void** const DescriptorAddress)
|
||||||
#endif
|
ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);
|
||||||
|
|
||||||
|
#endif
|
@ -1,78 +1,45 @@
|
|||||||
/*
|
/*
|
||||||
LUFA Library
|
LUFA Library
|
||||||
Copyright (C) Dean Camera, 2012.
|
Copyright (C) Dean Camera, 2012.
|
||||||
|
|
||||||
dean [at] fourwalledcubicle [dot] com
|
dean [at] fourwalledcubicle [dot] com
|
||||||
www.lufa-lib.org
|
www.lufa-lib.org
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
|
Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
|
||||||
Copyright 2010 Denver Gingerich (denver [at] ossguy [dot] com)
|
Copyright 2010 Denver Gingerich (denver [at] ossguy [dot] com)
|
||||||
|
|
||||||
Permission to use, copy, modify, distribute, and sell this
|
Permission to use, copy, modify, distribute, and sell this
|
||||||
software and its documentation for any purpose is hereby granted
|
software and its documentation for any purpose is hereby granted
|
||||||
without fee, provided that the above copyright notice appear in
|
without fee, provided that the above copyright notice appear in
|
||||||
all copies and that both that the copyright notice and this
|
all copies and that both that the copyright notice and this
|
||||||
permission notice and warranty disclaimer appear in supporting
|
permission notice and warranty disclaimer appear in supporting
|
||||||
documentation, and that the name of the author not be used in
|
documentation, and that the name of the author not be used in
|
||||||
advertising or publicity pertaining to distribution of the
|
advertising or publicity pertaining to distribution of the
|
||||||
software without specific, written prior permission.
|
software without specific, written prior permission.
|
||||||
|
|
||||||
The author disclaim all warranties with regard to this
|
The author disclaim all warranties with regard to this
|
||||||
software, including all implied warranties of merchantability
|
software, including all implied warranties of merchantability
|
||||||
and fitness. In no event shall the author be liable for any
|
and fitness. In no event shall the author be liable for any
|
||||||
special, indirect or consequential damages or any damages
|
special, indirect or consequential damages or any damages
|
||||||
whatsoever resulting from loss of use, data or profits, whether
|
whatsoever resulting from loss of use, data or profits, whether
|
||||||
in an action of contract, negligence or other tortious action,
|
in an action of contract, negligence or other tortious action,
|
||||||
arising out of or in connection with the use or performance of
|
arising out of or in connection with the use or performance of
|
||||||
this software.
|
this software.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _LUFA_H_
|
#ifndef _LUFA_H_
|
||||||
#define _LUFA_H_
|
#define _LUFA_H_
|
||||||
|
|
||||||
/* Includes: */
|
/* Includes: */
|
||||||
#include <avr/io.h>
|
#include <avr/io.h>
|
||||||
#include <avr/wdt.h>
|
#include <avr/wdt.h>
|
||||||
#include <avr/power.h>
|
#include <avr/power.h>
|
||||||
#include <avr/interrupt.h>
|
#include <avr/interrupt.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <LUFA/Version.h>
|
||||||
#include "Descriptors.h"
|
#include <LUFA/Drivers/USB/USB.h>
|
||||||
|
|
||||||
#include <LUFA/Version.h>
|
#endif
|
||||||
#include <LUFA/Drivers/USB/USB.h>
|
|
||||||
#include <LUFA/Drivers/Board/Joystick.h>
|
|
||||||
#include <LUFA/Drivers/Board/LEDs.h>
|
|
||||||
#include <LUFA/Drivers/Board/Buttons.h>
|
|
||||||
|
|
||||||
/* Macros: */
|
|
||||||
/** LED mask for the library LED driver, to indicate that the USB interface is not ready. */
|
|
||||||
#define LEDMASK_USB_NOTREADY LEDS_LED1
|
|
||||||
|
|
||||||
/** LED mask for the library LED driver, to indicate that the USB interface is enumerating. */
|
|
||||||
#define LEDMASK_USB_ENUMERATING (LEDS_LED2 | LEDS_LED3)
|
|
||||||
|
|
||||||
/** LED mask for the library LED driver, to indicate that the USB interface is ready. */
|
|
||||||
#define LEDMASK_USB_READY (LEDS_LED2 | LEDS_LED4)
|
|
||||||
|
|
||||||
/** LED mask for the library LED driver, to indicate that an error has occurred in the USB interface. */
|
|
||||||
#define LEDMASK_USB_ERROR (LEDS_LED1 | LEDS_LED3)
|
|
||||||
|
|
||||||
/* Function Prototypes: */
|
|
||||||
void SetupHardware(void);
|
|
||||||
void Keyboard_ProcessLEDReport(const uint8_t LEDStatus);
|
|
||||||
void Keyboard_HID_Task(void);
|
|
||||||
void Generic_HID_Task(void);
|
|
||||||
|
|
||||||
void EVENT_USB_Device_Connect(void);
|
|
||||||
void EVENT_USB_Device_Disconnect(void);
|
|
||||||
void EVENT_USB_Device_ConfigurationChanged(void);
|
|
||||||
void EVENT_USB_Device_ControlRequest(void);
|
|
||||||
void EVENT_USB_Device_StartOfFrame(void);
|
|
||||||
|
|
||||||
void Keyboard_send(USB_KeyboardReport_Data_t report);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue