From 8858438a770c1c982f33b296447ca77176c751f7 Mon Sep 17 00:00:00 2001 From: Jack Humbert <jack.humb@gmail.com> Date: Sun, 9 Jul 2017 21:26:51 -0400 Subject: Squashed 'lib/lufa/' changes from f2bd51f4e..bbdc9ac40 bbdc9ac40 Merge pull request #1 from fredizzimo/fix_line_endings 75ba27b8d Fix xml file line endings 7a8237259 Merge commit '5a3397d17ec917c7be5d5109e01a3a84a355cb1b' 713c65b5b Merge commit 'cedfbfcb1a9ad9cf93816f1952fc4bf7c55fbb61' 00e20c453 delete old lufa git-subtree-dir: lib/lufa git-subtree-split: bbdc9ac40c2ff543bbaf3870d407d0a96c945c1a --- Bootloaders/CDC/asf.xml | 322 ++-- Bootloaders/DFU/asf.xml | 312 ++-- Bootloaders/HID/asf.xml | 246 +-- Bootloaders/MassStorage/BootloaderAPITable.S | 204 +-- Bootloaders/MassStorage/asf.xml | 312 ++-- Bootloaders/MassStorage/makefile | 150 +- Bootloaders/Printer/BootloaderAPITable.S | 182 +-- Bootloaders/Printer/asf.xml | 318 ++-- Bootloaders/Printer/makefile | 124 +- Demos/Device/ClassDriver/AudioInput/asf.xml | 104 +- Demos/Device/ClassDriver/AudioOutput/asf.xml | 100 +- Demos/Device/ClassDriver/DualVirtualSerial/asf.xml | 124 +- Demos/Device/ClassDriver/GenericHID/asf.xml | 126 +- Demos/Device/ClassDriver/Joystick/asf.xml | 124 +- Demos/Device/ClassDriver/Keyboard/asf.xml | 124 +- Demos/Device/ClassDriver/KeyboardMouse/asf.xml | 124 +- .../ClassDriver/KeyboardMouseMultiReport/asf.xml | 122 +- Demos/Device/ClassDriver/MIDI/asf.xml | 124 +- Demos/Device/ClassDriver/MassStorage/asf.xml | 134 +- .../Device/ClassDriver/MassStorageKeyboard/asf.xml | 140 +- Demos/Device/ClassDriver/Mouse/asf.xml | 124 +- Demos/Device/ClassDriver/RNDISEthernet/asf.xml | 168 +- Demos/Device/ClassDriver/VirtualSerial/asf.xml | 124 +- .../ClassDriver/VirtualSerialMassStorage/asf.xml | 140 +- .../Device/ClassDriver/VirtualSerialMouse/asf.xml | 128 +- Demos/Device/LowLevel/AudioInput/asf.xml | 104 +- Demos/Device/LowLevel/AudioOutput/asf.xml | 102 +- Demos/Device/LowLevel/DualVirtualSerial/asf.xml | 124 +- Demos/Device/LowLevel/GenericHID/asf.xml | 126 +- Demos/Device/LowLevel/Joystick/asf.xml | 124 +- Demos/Device/LowLevel/Keyboard/asf.xml | 124 +- Demos/Device/LowLevel/KeyboardMouse/asf.xml | 124 +- Demos/Device/LowLevel/MIDI/asf.xml | 124 +- Demos/Device/LowLevel/MassStorage/asf.xml | 134 +- Demos/Device/LowLevel/Mouse/asf.xml | 124 +- Demos/Device/LowLevel/RNDISEthernet/asf.xml | 172 +- Demos/Device/LowLevel/VirtualSerial/asf.xml | 126 +- Demos/DualRole/ClassDriver/MouseHostDevice/asf.xml | 112 +- .../Host/ClassDriver/AndroidAccessoryHost/asf.xml | 98 +- Demos/Host/ClassDriver/AudioInputHost/asf.xml | 96 +- Demos/Host/ClassDriver/AudioOutputHost/asf.xml | 104 +- .../ClassDriver/JoystickHostWithParser/asf.xml | 96 +- Demos/Host/ClassDriver/KeyboardHost/asf.xml | 96 +- .../ClassDriver/KeyboardHostWithParser/asf.xml | 96 +- Demos/Host/ClassDriver/MIDIHost/asf.xml | 100 +- Demos/Host/ClassDriver/MassStorageHost/asf.xml | 96 +- Demos/Host/ClassDriver/MouseHost/asf.xml | 96 +- Demos/Host/ClassDriver/MouseHostWithParser/asf.xml | 96 +- Demos/Host/ClassDriver/PrinterHost/asf.xml | 96 +- Demos/Host/ClassDriver/RNDISEthernetHost/asf.xml | 96 +- Demos/Host/ClassDriver/StillImageHost/asf.xml | 96 +- Demos/Host/ClassDriver/VirtualSerialHost/asf.xml | 96 +- Demos/Host/LowLevel/AndroidAccessoryHost/asf.xml | 110 +- Demos/Host/LowLevel/AudioInputHost/asf.xml | 100 +- Demos/Host/LowLevel/AudioOutputHost/asf.xml | 108 +- Demos/Host/LowLevel/GenericHIDHost/asf.xml | 100 +- Demos/Host/LowLevel/JoystickHostWithParser/asf.xml | 104 +- Demos/Host/LowLevel/KeyboardHost/asf.xml | 100 +- Demos/Host/LowLevel/KeyboardHostWithParser/asf.xml | 104 +- Demos/Host/LowLevel/MIDIHost/asf.xml | 104 +- Demos/Host/LowLevel/MassStorageHost/asf.xml | 106 +- Demos/Host/LowLevel/MouseHost/asf.xml | 100 +- Demos/Host/LowLevel/MouseHostWithParser/asf.xml | 104 +- Demos/Host/LowLevel/PrinterHost/asf.xml | 106 +- Demos/Host/LowLevel/RNDISEthernetHost/asf.xml | 106 +- Demos/Host/LowLevel/StillImageHost/asf.xml | 108 +- Demos/Host/LowLevel/VirtualSerialHost/asf.xml | 100 +- LUFA/CodeTemplates/DeviceTemplate/asf.xml | 110 +- LUFA/CodeTemplates/HostTemplate/asf.xml | 82 +- LUFA/DoxygenPages/BuildSystem.txt | 562 +++---- LUFA/Drivers/Board/AVR8/QMK/Board.h | 130 +- LUFA/Drivers/Board/AVR8/QMK/LEDs.h | 388 ++--- LUFA/StudioIntegration/Docbook/placeholder.txt | 2 +- LUFA/StudioIntegration/HV1/lufa_hv1_transform.xslt | 90 +- .../HV1/lufa_studio_help_styling.css | 106 +- LUFA/StudioIntegration/VSIX/[Content_Types].xml | 26 +- LUFA/StudioIntegration/VSIX/asf-manifest.xml | 36 +- LUFA/StudioIntegration/VSIX/extension.vsixmanifest | 64 +- LUFA/StudioIntegration/VSIX/generate_caches.py | 76 +- LUFA/StudioIntegration/lufa.xml | 192 +-- LUFA/StudioIntegration/lufa_common.xml | 68 +- LUFA/StudioIntegration/lufa_drivers_board.xml | 228 +-- .../StudioIntegration/lufa_drivers_board_names.xml | 1706 ++++++++++---------- LUFA/StudioIntegration/lufa_drivers_misc.xml | 114 +- LUFA/StudioIntegration/lufa_drivers_peripheral.xml | 396 ++--- LUFA/StudioIntegration/lufa_drivers_usb.xml | 64 +- LUFA/StudioIntegration/lufa_drivers_usb_class.xml | 64 +- LUFA/StudioIntegration/lufa_drivers_usb_core.xml | 170 +- .../lufa_drivers_usb_core_avr8.xml | 86 +- .../lufa_drivers_usb_core_uc3.xml | 84 +- .../lufa_drivers_usb_core_xmega.xml | 72 +- LUFA/StudioIntegration/lufa_platform.xml | 120 +- LUFA/StudioIntegration/lufa_platform_uc3.xml | 52 +- LUFA/StudioIntegration/lufa_platform_xmega.xml | 46 +- LUFA/StudioIntegration/lufa_toolchain.xml | 90 +- Projects/AVRISP-MKII/asf.xml | 182 +-- Projects/Benito/asf.xml | 106 +- Projects/HIDReportViewer/asf.xml | 96 +- Projects/LEDNotifier/asf.xml | 102 +- Projects/MIDIToneGenerator/asf.xml | 100 +- Projects/Magstripe/asf.xml | 104 +- Projects/MediaController/asf.xml | 100 +- Projects/MissileLauncher/asf.xml | 98 +- Projects/RelayBoard/asf.xml | 94 +- Projects/SerialToLCD/asf.xml | 102 +- Projects/TempDataLogger/asf.xml | 144 +- Projects/USBtoSerial/asf.xml | 102 +- Projects/Webserver/asf.xml | 192 +-- 108 files changed, 7742 insertions(+), 7742 deletions(-) diff --git a/Bootloaders/CDC/asf.xml b/Bootloaders/CDC/asf.xml index 72f3ff04c..02e7063c6 100644 --- a/Bootloaders/CDC/asf.xml +++ b/Bootloaders/CDC/asf.xml @@ -1,161 +1,161 @@ -<asf xmlversion="1.0"> - <project caption="CDC Bootloader - 128KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.cdc.avr8.128_4" force-caption="true" workspace-name="lufa_cdc_128kb_4kb_"> - <require idref="lufa.bootloaders.cdc"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <config name="config.compiler.optimization.level" value="size"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - - <build type="define" name="BOOT_START_ADDR" value="0x1F000"/> - <build type="linker-config" subtype="flags" value="--section-start=.text=0x1F000"/> - - <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FFA0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FFE0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FFF8"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> - </project> - - <project caption="CDC Bootloader - 64KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.cdc.avr8.64_4" force-caption="true" workspace-name="lufa_cdc_64kb_4kb_"> - <require idref="lufa.bootloaders.cdc"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb647"/> - <config name="lufa.drivers.board.name" value="none"/> - - <config name="config.compiler.optimization.level" value="size"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - - <build type="define" name="BOOT_START_ADDR" value="0xF000"/> - <build type="linker-config" subtype="flags" value="--section-start=.text=0xF000"/> - - <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0xFFA0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0xFFE0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0xFFF8"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> - </project> - - <project caption="CDC Bootloader - 32KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.cdc.avr8.32_4" force-caption="true" workspace-name="lufa_cdc_32kb_4kb_"> - <require idref="lufa.bootloaders.cdc"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="atmega32u4"/> - <config name="lufa.drivers.board.name" value="none"/> - - <config name="config.compiler.optimization.level" value="size"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - - <build type="define" name="BOOT_START_ADDR" value="0x7000"/> - <build type="linker-config" subtype="flags" value="--section-start=.text=0x7000"/> - - <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x7FA0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x7FE0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x7FF8"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> - </project> - - <project caption="CDC Bootloader - 16KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.cdc.avr8.16_4" force-caption="true" workspace-name="lufa_cdc_16kb_4kb_"> - <require idref="lufa.bootloaders.cdc"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="atmega16u2"/> - <config name="lufa.drivers.board.name" value="none"/> - - <config name="config.compiler.optimization.level" value="size"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - - <build type="define" name="BOOT_START_ADDR" value="0x3000"/> - <build type="linker-config" subtype="flags" value="--section-start=.text=0x3000"/> - - <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x3FA0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x3FE0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x3FF8"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> - </project> - - <project caption="CDC Bootloader - 8KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.cdc.avr8.8_4" force-caption="true" workspace-name="lufa_cdc_8kb_4kb_"> - <require idref="lufa.bootloaders.cdc"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="atmega8u2"/> - <config name="lufa.drivers.board.name" value="none"/> - - <config name="config.compiler.optimization.level" value="size"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - - <build type="define" name="BOOT_START_ADDR" value="0x1000"/> - <build type="linker-config" subtype="flags" value="--section-start=.text=0x1000"/> - - <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FA0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FE0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FF8"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> - </project> - - <module type="application" id="lufa.bootloaders.cdc" caption="CDC Bootloader"> - <info type="description" value="summary"> - CDC Class Bootloader, capable of reprogramming a device using avrdude or other AVR109 protocol compliant software when plugged into a host. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Bootloaders"/> - <keyword value="USB Device"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="include-path" value="."/> - <build type="c-source" value="BootloaderCDC.c"/> - <build type="header-file" value="BootloaderCDC.h"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="Descriptors.h"/> - <build type="c-source" value="BootloaderAPI.c"/> - <build type="header-file" value="BootloaderAPI.h"/> - <build type="asm-source" value="BootloaderAPITable.S"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - <build type="header-file" value="Config/AppConfig.h"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="BootloaderCDC.txt"/> - <build type="distribute" subtype="user-file" value="LUFA CDC Bootloader.inf"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="CDC Bootloader - 128KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.cdc.avr8.128_4" force-caption="true" workspace-name="lufa_cdc_128kb_4kb_"> + <require idref="lufa.bootloaders.cdc"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x1F000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x1F000"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FFA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FFE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FFF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <project caption="CDC Bootloader - 64KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.cdc.avr8.64_4" force-caption="true" workspace-name="lufa_cdc_64kb_4kb_"> + <require idref="lufa.bootloaders.cdc"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb647"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0xF000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0xF000"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0xFFA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0xFFE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0xFFF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <project caption="CDC Bootloader - 32KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.cdc.avr8.32_4" force-caption="true" workspace-name="lufa_cdc_32kb_4kb_"> + <require idref="lufa.bootloaders.cdc"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="atmega32u4"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x7000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x7000"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x7FA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x7FE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x7FF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <project caption="CDC Bootloader - 16KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.cdc.avr8.16_4" force-caption="true" workspace-name="lufa_cdc_16kb_4kb_"> + <require idref="lufa.bootloaders.cdc"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="atmega16u2"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x3000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x3000"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x3FA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x3FE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x3FF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <project caption="CDC Bootloader - 8KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.cdc.avr8.8_4" force-caption="true" workspace-name="lufa_cdc_8kb_4kb_"> + <require idref="lufa.bootloaders.cdc"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="atmega8u2"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x1000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x1000"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <module type="application" id="lufa.bootloaders.cdc" caption="CDC Bootloader"> + <info type="description" value="summary"> + CDC Class Bootloader, capable of reprogramming a device using avrdude or other AVR109 protocol compliant software when plugged into a host. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Bootloaders"/> + <keyword value="USB Device"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="include-path" value="."/> + <build type="c-source" value="BootloaderCDC.c"/> + <build type="header-file" value="BootloaderCDC.h"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="Descriptors.h"/> + <build type="c-source" value="BootloaderAPI.c"/> + <build type="header-file" value="BootloaderAPI.h"/> + <build type="asm-source" value="BootloaderAPITable.S"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + <build type="header-file" value="Config/AppConfig.h"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="BootloaderCDC.txt"/> + <build type="distribute" subtype="user-file" value="LUFA CDC Bootloader.inf"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Bootloaders/DFU/asf.xml b/Bootloaders/DFU/asf.xml index 6f3312b76..f56aba69f 100644 --- a/Bootloaders/DFU/asf.xml +++ b/Bootloaders/DFU/asf.xml @@ -1,156 +1,156 @@ -<asf xmlversion="1.0"> - <project caption="DFU Bootloader - 128KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.dfu.avr8.128_4" force-caption="true" workspace-name="lufa_dfu_128kb_4kb_"> - <require idref="lufa.bootloaders.dfu"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <config name="config.compiler.optimization.level" value="size"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - - <build type="define" name="BOOT_START_ADDR" value="0x1F000"/> - <build type="linker-config" subtype="flags" value="--section-start=.text=0x1F000"/> - - <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FFA0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FFE0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FFF8"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> - </project> - - <project caption="DFU Bootloader - 64KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.dfu.avr8.64_4" force-caption="true" workspace-name="lufa_dfu_64kb_4kb_"> - <require idref="lufa.bootloaders.dfu"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb647"/> - <config name="lufa.drivers.board.name" value="none"/> - - <config name="config.compiler.optimization.level" value="size"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - - <build type="define" name="BOOT_START_ADDR" value="0xF000"/> - <build type="linker-config" subtype="flags" value="--section-start=.text=0xF000"/> - - <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0xFFA0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0xFFE0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0xFFF8"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> - </project> - - <project caption="DFU Bootloader - 32KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.dfu.avr8.32_4" force-caption="true" workspace-name="lufa_dfu_32kb_4kb_"> - <require idref="lufa.bootloaders.dfu"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="atmega32u4"/> - <config name="lufa.drivers.board.name" value="none"/> - - <config name="config.compiler.optimization.level" value="size"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - - <build type="define" name="BOOT_START_ADDR" value="0x7000"/> - <build type="linker-config" subtype="flags" value="--section-start=.text=0x7000"/> - - <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x7FA0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x7FE0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x7FF8"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> - </project> - - <project caption="DFU Bootloader - 16KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.dfu.avr8.16_4" force-caption="true" workspace-name="lufa_dfu_16kb_4kb_"> - <require idref="lufa.bootloaders.dfu"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="atmega16u2"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - - <build type="define" name="BOOT_START_ADDR" value="0x3000"/> - <build type="linker-config" subtype="flags" value="--section-start=.text=0x3000"/> - - <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x3FA0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x3FE0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x3FF8"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> - </project> - - <project caption="DFU Bootloader - 8KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.dfu.avr8.8_4" force-caption="true" workspace-name="lufa_dfu_8kb_4kb_"> - <require idref="lufa.bootloaders.dfu"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="atmega8u2"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - - <build type="define" name="BOOT_START_ADDR" value="0x1000"/> - <build type="linker-config" subtype="flags" value="--section-start=.text=0x1000"/> - - <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FA0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FE0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FF8"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> - </project> - - <module type="application" id="lufa.bootloaders.dfu" caption="DFU Bootloader"> - <info type="description" value="summary"> - DFU Class Bootloader, capable of reprogramming a device using the Atmel FLIP or other AVR DFU programming software when plugged into a host. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Bootloaders"/> - <keyword value="USB Device"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="include-path" value="."/> - <build type="c-source" value="BootloaderDFU.c"/> - <build type="header-file" value="BootloaderDFU.h"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="Descriptors.h"/> - <build type="c-source" value="BootloaderAPI.c"/> - <build type="header-file" value="BootloaderAPI.h"/> - <build type="asm-source" value="BootloaderAPITable.S"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - <build type="header-file" value="Config/AppConfig.h"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="BootloaderDFU.txt"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="DFU Bootloader - 128KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.dfu.avr8.128_4" force-caption="true" workspace-name="lufa_dfu_128kb_4kb_"> + <require idref="lufa.bootloaders.dfu"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x1F000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x1F000"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FFA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FFE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FFF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <project caption="DFU Bootloader - 64KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.dfu.avr8.64_4" force-caption="true" workspace-name="lufa_dfu_64kb_4kb_"> + <require idref="lufa.bootloaders.dfu"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb647"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0xF000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0xF000"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0xFFA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0xFFE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0xFFF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <project caption="DFU Bootloader - 32KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.dfu.avr8.32_4" force-caption="true" workspace-name="lufa_dfu_32kb_4kb_"> + <require idref="lufa.bootloaders.dfu"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="atmega32u4"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x7000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x7000"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x7FA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x7FE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x7FF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <project caption="DFU Bootloader - 16KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.dfu.avr8.16_4" force-caption="true" workspace-name="lufa_dfu_16kb_4kb_"> + <require idref="lufa.bootloaders.dfu"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="atmega16u2"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x3000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x3000"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x3FA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x3FE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x3FF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <project caption="DFU Bootloader - 8KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.dfu.avr8.8_4" force-caption="true" workspace-name="lufa_dfu_8kb_4kb_"> + <require idref="lufa.bootloaders.dfu"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="atmega8u2"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x1000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x1000"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <module type="application" id="lufa.bootloaders.dfu" caption="DFU Bootloader"> + <info type="description" value="summary"> + DFU Class Bootloader, capable of reprogramming a device using the Atmel FLIP or other AVR DFU programming software when plugged into a host. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Bootloaders"/> + <keyword value="USB Device"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="include-path" value="."/> + <build type="c-source" value="BootloaderDFU.c"/> + <build type="header-file" value="BootloaderDFU.h"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="Descriptors.h"/> + <build type="c-source" value="BootloaderAPI.c"/> + <build type="header-file" value="BootloaderAPI.h"/> + <build type="asm-source" value="BootloaderAPITable.S"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + <build type="header-file" value="Config/AppConfig.h"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="BootloaderDFU.txt"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Bootloaders/HID/asf.xml b/Bootloaders/HID/asf.xml index 9394b1353..c67b9419e 100644 --- a/Bootloaders/HID/asf.xml +++ b/Bootloaders/HID/asf.xml @@ -1,123 +1,123 @@ -<asf xmlversion="1.0"> - <project caption="HID Bootloader - 128KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.hid.avr8.128_4" force-caption="true" workspace-name="lufa_hid_128kb_4kb_"> - <require idref="lufa.bootloaders.hid"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <config name="config.compiler.optimization.level" value="size"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - - <build type="define" name="BOOT_START_ADDR" value="0x1F000"/> - <build type="linker-config" subtype="flags" value="--section-start=.text=0x1F000"/> - </project> - - <project caption="HID Bootloader - 64KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.hid.avr8.64_4" force-caption="true" workspace-name="lufa_hid_64kb_4kb_"> - <require idref="lufa.bootloaders.hid"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb647"/> - <config name="lufa.drivers.board.name" value="none"/> - - <config name="config.compiler.optimization.level" value="size"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - - <build type="define" name="BOOT_START_ADDR" value="0xF000"/> - <build type="linker-config" subtype="flags" value="--section-start=.text=0xF000"/> - </project> - - <project caption="HID Bootloader - 32KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.hid.avr8.32_4" force-caption="true" workspace-name="lufa_hid_32kb_4kb_"> - <require idref="lufa.bootloaders.hid"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="atmega32u4"/> - <config name="lufa.drivers.board.name" value="none"/> - - <config name="config.compiler.optimization.level" value="size"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - - <build type="define" name="BOOT_START_ADDR" value="0x7000"/> - <build type="linker-config" subtype="flags" value="--section-start=.text=0x7000"/> - </project> - - <project caption="HID Bootloader - 16KB FLASH / 2KB Boot - AVR8 Architecture" id="lufa.bootloaders.hid.avr8.16_2" force-caption="true" workspace-name="lufa_hid_16kb_2kb_"> - <require idref="lufa.bootloaders.hid"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="atmega16u2"/> - <config name="lufa.drivers.board.name" value="none"/> - - <config name="config.compiler.optimization.level" value="size"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - - <build type="define" name="BOOT_START_ADDR" value="0x3800"/> - <build type="linker-config" subtype="flags" value="--section-start=.text=0x3800"/> - </project> - - <project caption="HID Bootloader - 8KB FLASH / 2KB Boot - AVR8 Architecture" id="lufa.bootloaders.hid.avr8.8_2" force-caption="true" workspace-name="lufa_hid_8kb_2kb_"> - <require idref="lufa.bootloaders.hid"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="atmega8u2"/> - <config name="lufa.drivers.board.name" value="none"/> - - <config name="config.compiler.optimization.level" value="size"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - - <build type="define" name="BOOT_START_ADDR" value="0x1800"/> - <build type="linker-config" subtype="flags" value="--section-start=.text=0x1800"/> - </project> - - <module type="application" id="lufa.bootloaders.hid" caption="HID Bootloader"> - <info type="description" value="summary"> - HID Class Bootloader, capable of reprogramming a device via a custom cross-platform command line utility when plugged into a host. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Bootloaders"/> - <keyword value="USB Device"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="include-path" value="."/> - <build type="c-source" value="BootloaderHID.c"/> - <build type="header-file" value="BootloaderHID.h"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="Descriptors.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="BootloaderHID.txt"/> - <build type="distribute" subtype="directory" value="HostLoaderApp"/> - <build type="distribute" subtype="directory" value="HostLoaderApp_Python"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="HID Bootloader - 128KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.hid.avr8.128_4" force-caption="true" workspace-name="lufa_hid_128kb_4kb_"> + <require idref="lufa.bootloaders.hid"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x1F000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x1F000"/> + </project> + + <project caption="HID Bootloader - 64KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.hid.avr8.64_4" force-caption="true" workspace-name="lufa_hid_64kb_4kb_"> + <require idref="lufa.bootloaders.hid"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb647"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0xF000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0xF000"/> + </project> + + <project caption="HID Bootloader - 32KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.hid.avr8.32_4" force-caption="true" workspace-name="lufa_hid_32kb_4kb_"> + <require idref="lufa.bootloaders.hid"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="atmega32u4"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x7000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x7000"/> + </project> + + <project caption="HID Bootloader - 16KB FLASH / 2KB Boot - AVR8 Architecture" id="lufa.bootloaders.hid.avr8.16_2" force-caption="true" workspace-name="lufa_hid_16kb_2kb_"> + <require idref="lufa.bootloaders.hid"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="atmega16u2"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x3800"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x3800"/> + </project> + + <project caption="HID Bootloader - 8KB FLASH / 2KB Boot - AVR8 Architecture" id="lufa.bootloaders.hid.avr8.8_2" force-caption="true" workspace-name="lufa_hid_8kb_2kb_"> + <require idref="lufa.bootloaders.hid"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="atmega8u2"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x1800"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x1800"/> + </project> + + <module type="application" id="lufa.bootloaders.hid" caption="HID Bootloader"> + <info type="description" value="summary"> + HID Class Bootloader, capable of reprogramming a device via a custom cross-platform command line utility when plugged into a host. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Bootloaders"/> + <keyword value="USB Device"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="include-path" value="."/> + <build type="c-source" value="BootloaderHID.c"/> + <build type="header-file" value="BootloaderHID.h"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="BootloaderHID.txt"/> + <build type="distribute" subtype="directory" value="HostLoaderApp"/> + <build type="distribute" subtype="directory" value="HostLoaderApp_Python"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Bootloaders/MassStorage/BootloaderAPITable.S b/Bootloaders/MassStorage/BootloaderAPITable.S index 30165700d..44eb15ea9 100644 --- a/Bootloaders/MassStorage/BootloaderAPITable.S +++ b/Bootloaders/MassStorage/BootloaderAPITable.S @@ -1,102 +1,102 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2017. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org -*/ - -/* - Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in - all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the - software without specific, written prior permission. - - The author disclaims all warranties with regard to this - software, including all implied warranties of merchantability - and fitness. In no event shall the author be liable for any - special, indirect or consequential damages or any damages - whatsoever resulting from loss of use, data or profits, whether - in an action of contract, negligence or other tortious action, - arising out of or in connection with the use or performance of - this software. -*/ - -#if AUX_BOOT_SECTION_SIZE > 0 -#warning Using a AUX bootloader section in addition to the defined bootloader space (see documentation). - -; Trampoline to jump over the AUX bootloader section to the start of the bootloader, -; on devices where an AUX bootloader section is used. -.section .boot_aux_trampoline, "ax" -.global Boot_AUX_Trampoline -Boot_AUX_Trampoline: - jmp BOOT_START_ADDR -#endif - -; Trampolines to actual API implementations if the target address is outside the -; range of a rjmp instruction (can happen with large bootloader sections) -.section .apitable_trampolines, "ax" -.global BootloaderAPI_Trampolines -BootloaderAPI_Trampolines: - - BootloaderAPI_ErasePage_Trampoline: - jmp BootloaderAPI_ErasePage - BootloaderAPI_WritePage_Trampoline: - jmp BootloaderAPI_WritePage - BootloaderAPI_FillWord_Trampoline: - jmp BootloaderAPI_FillWord - BootloaderAPI_ReadSignature_Trampoline: - jmp BootloaderAPI_ReadSignature - BootloaderAPI_ReadFuse_Trampoline: - jmp BootloaderAPI_ReadFuse - BootloaderAPI_ReadLock_Trampoline: - jmp BootloaderAPI_ReadLock - BootloaderAPI_WriteLock_Trampoline: - jmp BootloaderAPI_WriteLock - BootloaderAPI_UNUSED1: - ret - BootloaderAPI_UNUSED2: - ret - BootloaderAPI_UNUSED3: - ret - BootloaderAPI_UNUSED4: - ret - BootloaderAPI_UNUSED5: - ret - - - -; API function jump table -.section .apitable_jumptable, "ax" -.global BootloaderAPI_JumpTable -BootloaderAPI_JumpTable: - - rjmp BootloaderAPI_ErasePage_Trampoline - rjmp BootloaderAPI_WritePage_Trampoline - rjmp BootloaderAPI_FillWord_Trampoline - rjmp BootloaderAPI_ReadSignature_Trampoline - rjmp BootloaderAPI_ReadFuse_Trampoline - rjmp BootloaderAPI_ReadLock_Trampoline - rjmp BootloaderAPI_WriteLock_Trampoline - rjmp BootloaderAPI_UNUSED1 ; UNUSED ENTRY 1 - rjmp BootloaderAPI_UNUSED2 ; UNUSED ENTRY 2 - rjmp BootloaderAPI_UNUSED3 ; UNUSED ENTRY 3 - rjmp BootloaderAPI_UNUSED4 ; UNUSED ENTRY 4 - rjmp BootloaderAPI_UNUSED5 ; UNUSED ENTRY 5 - - - -; Bootloader table signatures and information -.section .apitable_signatures, "ax" -.global BootloaderAPI_Signatures -BootloaderAPI_Signatures: - - .long BOOT_START_ADDR ; Start address of the bootloader - .word 0xDF30 ; Signature for the MS class bootloader, V1 - .word 0xDCFB ; Signature for a LUFA class bootloader +/* + LUFA Library + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +*/ + +/* + Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com) + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that the copyright notice and this + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the + software without specific, written prior permission. + + The author disclaims all warranties with regard to this + software, including all implied warranties of merchantability + and fitness. In no event shall the author be liable for any + special, indirect or consequential damages or any damages + whatsoever resulting from loss of use, data or profits, whether + in an action of contract, negligence or other tortious action, + arising out of or in connection with the use or performance of + this software. +*/ + +#if AUX_BOOT_SECTION_SIZE > 0 +#warning Using a AUX bootloader section in addition to the defined bootloader space (see documentation). + +; Trampoline to jump over the AUX bootloader section to the start of the bootloader, +; on devices where an AUX bootloader section is used. +.section .boot_aux_trampoline, "ax" +.global Boot_AUX_Trampoline +Boot_AUX_Trampoline: + jmp BOOT_START_ADDR +#endif + +; Trampolines to actual API implementations if the target address is outside the +; range of a rjmp instruction (can happen with large bootloader sections) +.section .apitable_trampolines, "ax" +.global BootloaderAPI_Trampolines +BootloaderAPI_Trampolines: + + BootloaderAPI_ErasePage_Trampoline: + jmp BootloaderAPI_ErasePage + BootloaderAPI_WritePage_Trampoline: + jmp BootloaderAPI_WritePage + BootloaderAPI_FillWord_Trampoline: + jmp BootloaderAPI_FillWord + BootloaderAPI_ReadSignature_Trampoline: + jmp BootloaderAPI_ReadSignature + BootloaderAPI_ReadFuse_Trampoline: + jmp BootloaderAPI_ReadFuse + BootloaderAPI_ReadLock_Trampoline: + jmp BootloaderAPI_ReadLock + BootloaderAPI_WriteLock_Trampoline: + jmp BootloaderAPI_WriteLock + BootloaderAPI_UNUSED1: + ret + BootloaderAPI_UNUSED2: + ret + BootloaderAPI_UNUSED3: + ret + BootloaderAPI_UNUSED4: + ret + BootloaderAPI_UNUSED5: + ret + + + +; API function jump table +.section .apitable_jumptable, "ax" +.global BootloaderAPI_JumpTable +BootloaderAPI_JumpTable: + + rjmp BootloaderAPI_ErasePage_Trampoline + rjmp BootloaderAPI_WritePage_Trampoline + rjmp BootloaderAPI_FillWord_Trampoline + rjmp BootloaderAPI_ReadSignature_Trampoline + rjmp BootloaderAPI_ReadFuse_Trampoline + rjmp BootloaderAPI_ReadLock_Trampoline + rjmp BootloaderAPI_WriteLock_Trampoline + rjmp BootloaderAPI_UNUSED1 ; UNUSED ENTRY 1 + rjmp BootloaderAPI_UNUSED2 ; UNUSED ENTRY 2 + rjmp BootloaderAPI_UNUSED3 ; UNUSED ENTRY 3 + rjmp BootloaderAPI_UNUSED4 ; UNUSED ENTRY 4 + rjmp BootloaderAPI_UNUSED5 ; UNUSED ENTRY 5 + + + +; Bootloader table signatures and information +.section .apitable_signatures, "ax" +.global BootloaderAPI_Signatures +BootloaderAPI_Signatures: + + .long BOOT_START_ADDR ; Start address of the bootloader + .word 0xDF30 ; Signature for the MS class bootloader, V1 + .word 0xDCFB ; Signature for a LUFA class bootloader diff --git a/Bootloaders/MassStorage/asf.xml b/Bootloaders/MassStorage/asf.xml index f1d550d1e..700ffa26f 100644 --- a/Bootloaders/MassStorage/asf.xml +++ b/Bootloaders/MassStorage/asf.xml @@ -1,156 +1,156 @@ -<asf xmlversion="1.0"> - <project caption="Mass Storage Bootloader - 128KB FLASH / 8KB Boot - AVR8 Architecture" id="lufa.bootloaders.mass_storage.avr8.128_8" force-caption="true" workspace-name="lufa_ms_128kb_8kb_"> - <require idref="lufa.bootloaders.mass_storage"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <config name="config.compiler.optimization.level" value="size"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - - <build type="define" name="BOOT_START_ADDR" value="0x1E000"/> - <build type="linker-config" subtype="flags" value="--section-start=.text=0x1E000"/> - - <build type="define" name="AUX_BOOT_SECTION_SIZE" value="0"/> - - <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FFA0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FFE0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FFF8"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> - </project> - - <project caption="Mass Storage Bootloader - 64KB FLASH / 8KB Boot - AVR8 Architecture" id="lufa.bootloaders.mass_storage.avr8.64_8" force-caption="true" workspace-name="lufa_ms_64kb_8kb_"> - <require idref="lufa.bootloaders.mass_storage"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb647"/> - <config name="lufa.drivers.board.name" value="none"/> - - <config name="config.compiler.optimization.level" value="size"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - - <build type="define" name="BOOT_START_ADDR" value="0xE000"/> - <build type="linker-config" subtype="flags" value="--section-start=.text=0xE000"/> - - <build type="define" name="AUX_BOOT_SECTION_SIZE" value="0"/> - - <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0xFFA0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0xFFE0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0xFFF8"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> - </project> - - <project caption="Mass Storage Bootloader - 32KB FLASH / 4KB Boot (2KB AUX) - AVR8 Architecture" id="lufa.bootloaders.mass_storage.avr8.32_4" force-caption="true" workspace-name="lufa_ms_32kb_4kb_"> - <require idref="lufa.bootloaders.mass_storage"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="atmega32u4"/> - <config name="lufa.drivers.board.name" value="none"/> - - <config name="config.compiler.optimization.level" value="size"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - - <build type="define" name="BOOT_START_ADDR" value="0x7000"/> - <build type="linker-config" subtype="flags" value="--section-start=.text=0x7000"/> - - <build type="define" name="AUX_BOOT_SECTION_SIZE" value="2048"/> - <build type="linker-config" subtype="flags" value="--section-start=.boot_aux=0x6810"/> - <build type="linker-config" subtype="flags" value="--section-start=.boot_aux_trampoline=0x6800"/> - <build type="linker-config" subtype="flags" value="--undefined=Boot_AUX_Trampoline"/> - - <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x7FA0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x7FE0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x7FF8"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> - </project> - - <project caption="Mass Storage Bootloader - 16KB FLASH / 4KB Boot (2KB AUX) - AVR8 Architecture" id="lufa.bootloaders.mass_storage.avr8.16_4" force-caption="true" workspace-name="lufa_ms_16kb_4kb_"> - <require idref="lufa.bootloaders.mass_storage"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="atmega16u2"/> - <config name="lufa.drivers.board.name" value="none"/> - - <config name="config.compiler.optimization.level" value="size"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - - <build type="define" name="BOOT_START_ADDR" value="0x3000"/> - <build type="linker-config" subtype="flags" value="--section-start=.text=0x3000"/> - - <build type="define" name="AUX_BOOT_SECTION_SIZE" value="2048"/> - <build type="linker-config" subtype="flags" value="--section-start=.boot_aux=0x2810"/> - <build type="linker-config" subtype="flags" value="--section-start=.boot_aux_trampoline=0x2800"/> - <build type="linker-config" subtype="flags" value="--undefined=Boot_AUX_Trampoline"/> - - <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x3FA0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x3FE0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x3FF8"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> - </project> - - <module type="application" id="lufa.bootloaders.mass_storage" caption="Mass Storage Bootloader"> - <info type="description" value="summary"> - Mass Storage Class Bootloader, capable of reprogramming a device via binary BIN files copied to the virtual FAT12 file-system it creates when plugged into a host. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Bootloaders"/> - <keyword value="USB Device"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="include-path" value="."/> - <build type="c-source" value="BootloaderMassStorage.c"/> - <build type="header-file" value="BootloaderMassStorage.h"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="Descriptors.h"/> - <build type="c-source" value="BootloaderAPI.c"/> - <build type="header-file" value="BootloaderAPI.h"/> - <build type="asm-source" value="BootloaderAPITable.S"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - <build type="header-file" value="Config/AppConfig.h"/> - - <build type="include-path" value="Lib"/> - <build type="header-file" value="Lib/VirtualFAT.h"/> - <build type="c-source" value="Lib/VirtualFAT.c"/> - <build type="header-file" value="Lib/SCSI.h"/> - <build type="c-source" value="Lib/SCSI.c"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="BootloaderMassStorage.txt"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Mass Storage Bootloader - 128KB FLASH / 8KB Boot - AVR8 Architecture" id="lufa.bootloaders.mass_storage.avr8.128_8" force-caption="true" workspace-name="lufa_ms_128kb_8kb_"> + <require idref="lufa.bootloaders.mass_storage"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x1E000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x1E000"/> + + <build type="define" name="AUX_BOOT_SECTION_SIZE" value="0"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FFA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FFE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FFF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <project caption="Mass Storage Bootloader - 64KB FLASH / 8KB Boot - AVR8 Architecture" id="lufa.bootloaders.mass_storage.avr8.64_8" force-caption="true" workspace-name="lufa_ms_64kb_8kb_"> + <require idref="lufa.bootloaders.mass_storage"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb647"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0xE000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0xE000"/> + + <build type="define" name="AUX_BOOT_SECTION_SIZE" value="0"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0xFFA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0xFFE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0xFFF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <project caption="Mass Storage Bootloader - 32KB FLASH / 4KB Boot (2KB AUX) - AVR8 Architecture" id="lufa.bootloaders.mass_storage.avr8.32_4" force-caption="true" workspace-name="lufa_ms_32kb_4kb_"> + <require idref="lufa.bootloaders.mass_storage"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="atmega32u4"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x7000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x7000"/> + + <build type="define" name="AUX_BOOT_SECTION_SIZE" value="2048"/> + <build type="linker-config" subtype="flags" value="--section-start=.boot_aux=0x6810"/> + <build type="linker-config" subtype="flags" value="--section-start=.boot_aux_trampoline=0x6800"/> + <build type="linker-config" subtype="flags" value="--undefined=Boot_AUX_Trampoline"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x7FA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x7FE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x7FF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <project caption="Mass Storage Bootloader - 16KB FLASH / 4KB Boot (2KB AUX) - AVR8 Architecture" id="lufa.bootloaders.mass_storage.avr8.16_4" force-caption="true" workspace-name="lufa_ms_16kb_4kb_"> + <require idref="lufa.bootloaders.mass_storage"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="atmega16u2"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x3000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x3000"/> + + <build type="define" name="AUX_BOOT_SECTION_SIZE" value="2048"/> + <build type="linker-config" subtype="flags" value="--section-start=.boot_aux=0x2810"/> + <build type="linker-config" subtype="flags" value="--section-start=.boot_aux_trampoline=0x2800"/> + <build type="linker-config" subtype="flags" value="--undefined=Boot_AUX_Trampoline"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x3FA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x3FE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x3FF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <module type="application" id="lufa.bootloaders.mass_storage" caption="Mass Storage Bootloader"> + <info type="description" value="summary"> + Mass Storage Class Bootloader, capable of reprogramming a device via binary BIN files copied to the virtual FAT12 file-system it creates when plugged into a host. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Bootloaders"/> + <keyword value="USB Device"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="include-path" value="."/> + <build type="c-source" value="BootloaderMassStorage.c"/> + <build type="header-file" value="BootloaderMassStorage.h"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="Descriptors.h"/> + <build type="c-source" value="BootloaderAPI.c"/> + <build type="header-file" value="BootloaderAPI.h"/> + <build type="asm-source" value="BootloaderAPITable.S"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + <build type="header-file" value="Config/AppConfig.h"/> + + <build type="include-path" value="Lib"/> + <build type="header-file" value="Lib/VirtualFAT.h"/> + <build type="c-source" value="Lib/VirtualFAT.c"/> + <build type="header-file" value="Lib/SCSI.h"/> + <build type="c-source" value="Lib/SCSI.c"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="BootloaderMassStorage.txt"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Bootloaders/MassStorage/makefile b/Bootloaders/MassStorage/makefile index 7f0ec82a7..f3948e754 100644 --- a/Bootloaders/MassStorage/makefile +++ b/Bootloaders/MassStorage/makefile @@ -1,75 +1,75 @@ -# -# LUFA Library -# Copyright (C) Dean Camera, 2017. -# -# dean [at] fourwalledcubicle [dot] com -# www.lufa-lib.org -# -# -------------------------------------- -# LUFA Project Makefile. -# -------------------------------------- - -# Run "make help" for target help. - -MCU = at90usb1287 -ARCH = AVR8 -BOARD = USBKEY -F_CPU = 8000000 -F_USB = $(F_CPU) -OPTIMIZATION = s -TARGET = BootloaderMassStorage -SRC = $(TARGET).c Descriptors.c BootloaderAPI.c BootloaderAPITable.S Lib/SCSI.c Lib/VirtualFAT.c $(LUFA_SRC_USB) $(LUFA_SRC_USBCLASS) -LUFA_PATH = ../../LUFA -CC_FLAGS = -DUSE_LUFA_CONFIG_HEADER -IConfig/ -DBOOT_START_ADDR=$(BOOT_START_OFFSET) -LD_FLAGS = -Wl,--section-start=.text=$(BOOT_START_OFFSET) $(BOOT_API_LD_FLAGS) - -# Flash size and bootloader section sizes of the target, in KB. These must -# match the target's total FLASH size and the bootloader size set in the -# device's fuses. -FLASH_SIZE_KB = 128 -BOOT_SECTION_SIZE_KB = 8 - -# Bootloader address calculation formulas -# Do not modify these macros, but rather modify the dependent values above. -CALC_ADDRESS_IN_HEX = $(shell printf "0x%X" $$(( $(1) )) ) -BOOT_START_OFFSET = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) - $(BOOT_SECTION_SIZE_KB)) * 1024 ) -BOOT_SEC_OFFSET = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) * 1024) - ($(strip $(1))) ) - -# Bootloader linker section flags for relocating the API table sections to -# known FLASH addresses - these should not normally be user-edited. -BOOT_SECTION_LD_FLAG = -Wl,--section-start=$(strip $(1))=$(call BOOT_SEC_OFFSET, $(3)) -Wl,--undefined=$(strip $(2)) -BOOT_API_LD_FLAGS = $(call BOOT_SECTION_LD_FLAG, .apitable_trampolines, BootloaderAPI_Trampolines, 96) -BOOT_API_LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .apitable_jumptable, BootloaderAPI_JumpTable, 32) -BOOT_API_LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .apitable_signatures, BootloaderAPI_Signatures, 8) - -# Check if the bootloader needs an AUX section, located before the real bootloader section to store some of the -# bootloader code. This is required for 32KB and smaller devices, where the actual bootloader is 6KB but the maximum -# bootloader section size is 4KB. The actual usable application space will be reduced by 6KB for these devices. -ifeq ($(BOOT_SECTION_SIZE_KB),8) - CC_FLAGS += -DAUX_BOOT_SECTION_SIZE=0 -else - AUX_BOOT_SECTION_SIZE_KB = (6 - $(BOOT_SECTION_SIZE_KB)) - - CC_FLAGS += -DAUX_BOOT_SECTION_SIZE='($(AUX_BOOT_SECTION_SIZE_KB) * 1024)' - LD_FLAGS += -Wl,--section-start=.boot_aux=$(call BOOT_SEC_OFFSET, (($(BOOT_SECTION_SIZE_KB) + $(AUX_BOOT_SECTION_SIZE_KB)) * 1024 - 16)) - LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .boot_aux_trampoline, Boot_AUX_Trampoline, ($(BOOT_SECTION_SIZE_KB) + $(AUX_BOOT_SECTION_SIZE_KB)) * 1024) -endif - -# Default target -all: - -# Include LUFA-specific DMBS extension modules -DMBS_LUFA_PATH ?= $(LUFA_PATH)/Build/LUFA -include $(DMBS_LUFA_PATH)/lufa-sources.mk -include $(DMBS_LUFA_PATH)/lufa-gcc.mk - -# Include common DMBS build system modules -DMBS_PATH ?= $(LUFA_PATH)/Build/DMBS/DMBS -include $(DMBS_PATH)/core.mk -include $(DMBS_PATH)/cppcheck.mk -include $(DMBS_PATH)/doxygen.mk -include $(DMBS_PATH)/dfu.mk -include $(DMBS_PATH)/gcc.mk -include $(DMBS_PATH)/hid.mk -include $(DMBS_PATH)/avrdude.mk -include $(DMBS_PATH)/atprogram.mk +# +# LUFA Library +# Copyright (C) Dean Camera, 2017. +# +# dean [at] fourwalledcubicle [dot] com +# www.lufa-lib.org +# +# -------------------------------------- +# LUFA Project Makefile. +# -------------------------------------- + +# Run "make help" for target help. + +MCU = at90usb1287 +ARCH = AVR8 +BOARD = USBKEY +F_CPU = 8000000 +F_USB = $(F_CPU) +OPTIMIZATION = s +TARGET = BootloaderMassStorage +SRC = $(TARGET).c Descriptors.c BootloaderAPI.c BootloaderAPITable.S Lib/SCSI.c Lib/VirtualFAT.c $(LUFA_SRC_USB) $(LUFA_SRC_USBCLASS) +LUFA_PATH = ../../LUFA +CC_FLAGS = -DUSE_LUFA_CONFIG_HEADER -IConfig/ -DBOOT_START_ADDR=$(BOOT_START_OFFSET) +LD_FLAGS = -Wl,--section-start=.text=$(BOOT_START_OFFSET) $(BOOT_API_LD_FLAGS) + +# Flash size and bootloader section sizes of the target, in KB. These must +# match the target's total FLASH size and the bootloader size set in the +# device's fuses. +FLASH_SIZE_KB = 128 +BOOT_SECTION_SIZE_KB = 8 + +# Bootloader address calculation formulas +# Do not modify these macros, but rather modify the dependent values above. +CALC_ADDRESS_IN_HEX = $(shell printf "0x%X" $$(( $(1) )) ) +BOOT_START_OFFSET = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) - $(BOOT_SECTION_SIZE_KB)) * 1024 ) +BOOT_SEC_OFFSET = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) * 1024) - ($(strip $(1))) ) + +# Bootloader linker section flags for relocating the API table sections to +# known FLASH addresses - these should not normally be user-edited. +BOOT_SECTION_LD_FLAG = -Wl,--section-start=$(strip $(1))=$(call BOOT_SEC_OFFSET, $(3)) -Wl,--undefined=$(strip $(2)) +BOOT_API_LD_FLAGS = $(call BOOT_SECTION_LD_FLAG, .apitable_trampolines, BootloaderAPI_Trampolines, 96) +BOOT_API_LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .apitable_jumptable, BootloaderAPI_JumpTable, 32) +BOOT_API_LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .apitable_signatures, BootloaderAPI_Signatures, 8) + +# Check if the bootloader needs an AUX section, located before the real bootloader section to store some of the +# bootloader code. This is required for 32KB and smaller devices, where the actual bootloader is 6KB but the maximum +# bootloader section size is 4KB. The actual usable application space will be reduced by 6KB for these devices. +ifeq ($(BOOT_SECTION_SIZE_KB),8) + CC_FLAGS += -DAUX_BOOT_SECTION_SIZE=0 +else + AUX_BOOT_SECTION_SIZE_KB = (6 - $(BOOT_SECTION_SIZE_KB)) + + CC_FLAGS += -DAUX_BOOT_SECTION_SIZE='($(AUX_BOOT_SECTION_SIZE_KB) * 1024)' + LD_FLAGS += -Wl,--section-start=.boot_aux=$(call BOOT_SEC_OFFSET, (($(BOOT_SECTION_SIZE_KB) + $(AUX_BOOT_SECTION_SIZE_KB)) * 1024 - 16)) + LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .boot_aux_trampoline, Boot_AUX_Trampoline, ($(BOOT_SECTION_SIZE_KB) + $(AUX_BOOT_SECTION_SIZE_KB)) * 1024) +endif + +# Default target +all: + +# Include LUFA-specific DMBS extension modules +DMBS_LUFA_PATH ?= $(LUFA_PATH)/Build/LUFA +include $(DMBS_LUFA_PATH)/lufa-sources.mk +include $(DMBS_LUFA_PATH)/lufa-gcc.mk + +# Include common DMBS build system modules +DMBS_PATH ?= $(LUFA_PATH)/Build/DMBS/DMBS +include $(DMBS_PATH)/core.mk +include $(DMBS_PATH)/cppcheck.mk +include $(DMBS_PATH)/doxygen.mk +include $(DMBS_PATH)/dfu.mk +include $(DMBS_PATH)/gcc.mk +include $(DMBS_PATH)/hid.mk +include $(DMBS_PATH)/avrdude.mk +include $(DMBS_PATH)/atprogram.mk diff --git a/Bootloaders/Printer/BootloaderAPITable.S b/Bootloaders/Printer/BootloaderAPITable.S index 76f37bf49..d8358c31c 100644 --- a/Bootloaders/Printer/BootloaderAPITable.S +++ b/Bootloaders/Printer/BootloaderAPITable.S @@ -1,91 +1,91 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2017. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org -*/ - -/* - Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, distribute, and sell this - software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in - all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the - software without specific, written prior permission. - - The author disclaims all warranties with regard to this - software, including all implied warranties of merchantability - and fitness. In no event shall the author be liable for any - special, indirect or consequential damages or any damages - whatsoever resulting from loss of use, data or profits, whether - in an action of contract, negligence or other tortious action, - arising out of or in connection with the use or performance of - this software. -*/ - -; Trampolines to actual API implementations if the target address is outside the -; range of a rjmp instruction (can happen with large bootloader sections) -.section .apitable_trampolines, "ax" -.global BootloaderAPI_Trampolines -BootloaderAPI_Trampolines: - - BootloaderAPI_ErasePage_Trampoline: - jmp BootloaderAPI_ErasePage - BootloaderAPI_WritePage_Trampoline: - jmp BootloaderAPI_WritePage - BootloaderAPI_FillWord_Trampoline: - jmp BootloaderAPI_FillWord - BootloaderAPI_ReadSignature_Trampoline: - jmp BootloaderAPI_ReadSignature - BootloaderAPI_ReadFuse_Trampoline: - jmp BootloaderAPI_ReadFuse - BootloaderAPI_ReadLock_Trampoline: - jmp BootloaderAPI_ReadLock - BootloaderAPI_WriteLock_Trampoline: - jmp BootloaderAPI_WriteLock - BootloaderAPI_UNUSED1: - ret - BootloaderAPI_UNUSED2: - ret - BootloaderAPI_UNUSED3: - ret - BootloaderAPI_UNUSED4: - ret - BootloaderAPI_UNUSED5: - ret - - - -; API function jump table -.section .apitable_jumptable, "ax" -.global BootloaderAPI_JumpTable -BootloaderAPI_JumpTable: - - rjmp BootloaderAPI_ErasePage_Trampoline - rjmp BootloaderAPI_WritePage_Trampoline - rjmp BootloaderAPI_FillWord_Trampoline - rjmp BootloaderAPI_ReadSignature_Trampoline - rjmp BootloaderAPI_ReadFuse_Trampoline - rjmp BootloaderAPI_ReadLock_Trampoline - rjmp BootloaderAPI_WriteLock_Trampoline - rjmp BootloaderAPI_UNUSED1 ; UNUSED ENTRY 1 - rjmp BootloaderAPI_UNUSED2 ; UNUSED ENTRY 2 - rjmp BootloaderAPI_UNUSED3 ; UNUSED ENTRY 3 - rjmp BootloaderAPI_UNUSED4 ; UNUSED ENTRY 4 - rjmp BootloaderAPI_UNUSED5 ; UNUSED ENTRY 5 - - - -; Bootloader table signatures and information -.section .apitable_signatures, "ax" -.global BootloaderAPI_Signatures -BootloaderAPI_Signatures: - - .long BOOT_START_ADDR ; Start address of the bootloader - .word 0xDF20 ; Signature for the Printer class bootloader - .word 0xDCFB ; Signature for a LUFA class bootloader +/* + LUFA Library + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +*/ + +/* + Copyright 2017 Dean Camera (dean [at] fourwalledcubicle [dot] com) + + Permission to use, copy, modify, distribute, and sell this + software and its documentation for any purpose is hereby granted + without fee, provided that the above copyright notice appear in + all copies and that both that the copyright notice and this + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the + software without specific, written prior permission. + + The author disclaims all warranties with regard to this + software, including all implied warranties of merchantability + and fitness. In no event shall the author be liable for any + special, indirect or consequential damages or any damages + whatsoever resulting from loss of use, data or profits, whether + in an action of contract, negligence or other tortious action, + arising out of or in connection with the use or performance of + this software. +*/ + +; Trampolines to actual API implementations if the target address is outside the +; range of a rjmp instruction (can happen with large bootloader sections) +.section .apitable_trampolines, "ax" +.global BootloaderAPI_Trampolines +BootloaderAPI_Trampolines: + + BootloaderAPI_ErasePage_Trampoline: + jmp BootloaderAPI_ErasePage + BootloaderAPI_WritePage_Trampoline: + jmp BootloaderAPI_WritePage + BootloaderAPI_FillWord_Trampoline: + jmp BootloaderAPI_FillWord + BootloaderAPI_ReadSignature_Trampoline: + jmp BootloaderAPI_ReadSignature + BootloaderAPI_ReadFuse_Trampoline: + jmp BootloaderAPI_ReadFuse + BootloaderAPI_ReadLock_Trampoline: + jmp BootloaderAPI_ReadLock + BootloaderAPI_WriteLock_Trampoline: + jmp BootloaderAPI_WriteLock + BootloaderAPI_UNUSED1: + ret + BootloaderAPI_UNUSED2: + ret + BootloaderAPI_UNUSED3: + ret + BootloaderAPI_UNUSED4: + ret + BootloaderAPI_UNUSED5: + ret + + + +; API function jump table +.section .apitable_jumptable, "ax" +.global BootloaderAPI_JumpTable +BootloaderAPI_JumpTable: + + rjmp BootloaderAPI_ErasePage_Trampoline + rjmp BootloaderAPI_WritePage_Trampoline + rjmp BootloaderAPI_FillWord_Trampoline + rjmp BootloaderAPI_ReadSignature_Trampoline + rjmp BootloaderAPI_ReadFuse_Trampoline + rjmp BootloaderAPI_ReadLock_Trampoline + rjmp BootloaderAPI_WriteLock_Trampoline + rjmp BootloaderAPI_UNUSED1 ; UNUSED ENTRY 1 + rjmp BootloaderAPI_UNUSED2 ; UNUSED ENTRY 2 + rjmp BootloaderAPI_UNUSED3 ; UNUSED ENTRY 3 + rjmp BootloaderAPI_UNUSED4 ; UNUSED ENTRY 4 + rjmp BootloaderAPI_UNUSED5 ; UNUSED ENTRY 5 + + + +; Bootloader table signatures and information +.section .apitable_signatures, "ax" +.global BootloaderAPI_Signatures +BootloaderAPI_Signatures: + + .long BOOT_START_ADDR ; Start address of the bootloader + .word 0xDF20 ; Signature for the Printer class bootloader + .word 0xDCFB ; Signature for a LUFA class bootloader diff --git a/Bootloaders/Printer/asf.xml b/Bootloaders/Printer/asf.xml index 86a56911e..b5c0c6b3a 100644 --- a/Bootloaders/Printer/asf.xml +++ b/Bootloaders/Printer/asf.xml @@ -1,159 +1,159 @@ -<asf xmlversion="1.0"> - <project caption="Printer Bootloader - 128KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.printer.avr8.128_4" force-caption="true" workspace-name="lufa_printer_128kb_4kb_"> - <require idref="lufa.bootloaders.printer"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <config name="config.compiler.optimization.level" value="size"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - - <build type="define" name="BOOT_START_ADDR" value="0x1F000"/> - <build type="linker-config" subtype="flags" value="--section-start=.text=0x1F000"/> - - <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FFA0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FFE0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FFF8"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> - </project> - - <project caption="Printer Bootloader - 64KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.printer.avr8.64_4" force-caption="true" workspace-name="lufa_printer_64kb_4kb_"> - <require idref="lufa.bootloaders.printer"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb647"/> - <config name="lufa.drivers.board.name" value="none"/> - - <config name="config.compiler.optimization.level" value="size"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - - <build type="define" name="BOOT_START_ADDR" value="0xF000"/> - <build type="linker-config" subtype="flags" value="--section-start=.text=0xF000"/> - - <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0xFFA0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0xFFE0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0xFFF8"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> - </project> - - <project caption="Printer Bootloader - 32KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.printer.avr8.32_4" force-caption="true" workspace-name="lufa_printer_32kb_4kb_"> - <require idref="lufa.bootloaders.printer"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="atmega32u4"/> - <config name="lufa.drivers.board.name" value="none"/> - - <config name="config.compiler.optimization.level" value="size"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - - <build type="define" name="BOOT_START_ADDR" value="0x7000"/> - <build type="linker-config" subtype="flags" value="--section-start=.text=0x7000"/> - - <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x7FA0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x7FE0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x7FF8"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> - </project> - - <project caption="Printer Bootloader - 16KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.printer.avr8.16_4" force-caption="true" workspace-name="lufa_printer_16kb_4kb_"> - <require idref="lufa.bootloaders.printer"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="atmega16u2"/> - <config name="lufa.drivers.board.name" value="none"/> - - <config name="config.compiler.optimization.level" value="size"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - - <build type="define" name="BOOT_START_ADDR" value="0x3000"/> - <build type="linker-config" subtype="flags" value="--section-start=.text=0x3000"/> - - <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x3FA0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x3FE0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x3FF8"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> - </project> - - <project caption="Printer Bootloader - 8KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.printer.avr8.8_4" force-caption="true" workspace-name="lufa_printer_8kb_4kb_"> - <require idref="lufa.bootloaders.printer"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="atmega8u2"/> - <config name="lufa.drivers.board.name" value="none"/> - - <config name="config.compiler.optimization.level" value="size"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - - <build type="define" name="BOOT_START_ADDR" value="0x1000"/> - <build type="linker-config" subtype="flags" value="--section-start=.text=0x1000"/> - - <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FA0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FE0"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> - <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FF8"/> - <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> - </project> - - <module type="application" id="lufa.bootloaders.printer" caption="Printer Bootloader"> - <info type="description" value="summary"> - Printer Class Bootloader, capable of reprogramming a device by "printing" new HEX files to the virtual Plain-Text printer it creates when plugged into a host. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Bootloaders"/> - <keyword value="USB Device"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="include-path" value="."/> - <build type="c-source" value="BootloaderPrinter.c"/> - <build type="header-file" value="BootloaderPrinter.h"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="Descriptors.h"/> - <build type="c-source" value="BootloaderAPI.c"/> - <build type="header-file" value="BootloaderAPI.h"/> - <build type="asm-source" value="BootloaderAPITable.S"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="BootloaderPrinter.txt"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Printer Bootloader - 128KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.printer.avr8.128_4" force-caption="true" workspace-name="lufa_printer_128kb_4kb_"> + <require idref="lufa.bootloaders.printer"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x1F000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x1F000"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FFA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FFE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FFF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <project caption="Printer Bootloader - 64KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.printer.avr8.64_4" force-caption="true" workspace-name="lufa_printer_64kb_4kb_"> + <require idref="lufa.bootloaders.printer"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb647"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0xF000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0xF000"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0xFFA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0xFFE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0xFFF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <project caption="Printer Bootloader - 32KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.printer.avr8.32_4" force-caption="true" workspace-name="lufa_printer_32kb_4kb_"> + <require idref="lufa.bootloaders.printer"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="atmega32u4"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x7000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x7000"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x7FA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x7FE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x7FF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <project caption="Printer Bootloader - 16KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.printer.avr8.16_4" force-caption="true" workspace-name="lufa_printer_16kb_4kb_"> + <require idref="lufa.bootloaders.printer"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="atmega16u2"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x3000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x3000"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x3FA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x3FE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x3FF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <project caption="Printer Bootloader - 8KB FLASH / 4KB Boot - AVR8 Architecture" id="lufa.bootloaders.printer.avr8.8_4" force-caption="true" workspace-name="lufa_printer_8kb_4kb_"> + <require idref="lufa.bootloaders.printer"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="atmega8u2"/> + <config name="lufa.drivers.board.name" value="none"/> + + <config name="config.compiler.optimization.level" value="size"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + + <build type="define" name="BOOT_START_ADDR" value="0x1000"/> + <build type="linker-config" subtype="flags" value="--section-start=.text=0x1000"/> + + <build type="linker-config" subtype="flags" value="--section-start=.apitable_trampolines=0x1FA0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Trampolines"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_jumptable=0x1FE0"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_JumpTable"/> + <build type="linker-config" subtype="flags" value="--section-start=.apitable_signatures=0x1FF8"/> + <build type="linker-config" subtype="flags" value="--undefined=BootloaderAPI_Signatures"/> + </project> + + <module type="application" id="lufa.bootloaders.printer" caption="Printer Bootloader"> + <info type="description" value="summary"> + Printer Class Bootloader, capable of reprogramming a device by "printing" new HEX files to the virtual Plain-Text printer it creates when plugged into a host. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Bootloaders"/> + <keyword value="USB Device"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="include-path" value="."/> + <build type="c-source" value="BootloaderPrinter.c"/> + <build type="header-file" value="BootloaderPrinter.h"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="Descriptors.h"/> + <build type="c-source" value="BootloaderAPI.c"/> + <build type="header-file" value="BootloaderAPI.h"/> + <build type="asm-source" value="BootloaderAPITable.S"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="BootloaderPrinter.txt"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Bootloaders/Printer/makefile b/Bootloaders/Printer/makefile index 2c8582ca2..1de35bba0 100644 --- a/Bootloaders/Printer/makefile +++ b/Bootloaders/Printer/makefile @@ -1,62 +1,62 @@ -# -# LUFA Library -# Copyright (C) Dean Camera, 2017. -# -# dean [at] fourwalledcubicle [dot] com -# www.lufa-lib.org -# -# -------------------------------------- -# LUFA Project Makefile. -# -------------------------------------- - -# Run "make help" for target help. - -MCU = at90usb1287 -ARCH = AVR8 -BOARD = USBKEY -F_CPU = 8000000 -F_USB = $(F_CPU) -OPTIMIZATION = s -TARGET = BootloaderPrinter -SRC = $(TARGET).c Descriptors.c BootloaderAPI.c BootloaderAPITable.S $(LUFA_SRC_USB) $(LUFA_SRC_USBCLASS) -LUFA_PATH = ../../LUFA -CC_FLAGS = -DUSE_LUFA_CONFIG_HEADER -IConfig/ -DBOOT_START_ADDR=$(BOOT_START_OFFSET) -LD_FLAGS = -Wl,--section-start=.text=$(BOOT_START_OFFSET) $(BOOT_API_LD_FLAGS) - -# Flash size and bootloader section sizes of the target, in KB. These must -# match the target's total FLASH size and the bootloader size set in the -# device's fuses. -FLASH_SIZE_KB = 128 -BOOT_SECTION_SIZE_KB = 8 - -# Bootloader address calculation formulas -# Do not modify these macros, but rather modify the dependent values above. -CALC_ADDRESS_IN_HEX = $(shell printf "0x%X" $$(( $(1) )) ) -BOOT_START_OFFSET = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) - $(BOOT_SECTION_SIZE_KB)) * 1024 ) -BOOT_SEC_OFFSET = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) * 1024) - ($(strip $(1))) ) - -# Bootloader linker section flags for relocating the API table sections to -# known FLASH addresses - these should not normally be user-edited. -BOOT_SECTION_LD_FLAG = -Wl,--section-start=$(strip $(1))=$(call BOOT_SEC_OFFSET, $(3)) -Wl,--undefined=$(strip $(2)) -BOOT_API_LD_FLAGS = $(call BOOT_SECTION_LD_FLAG, .apitable_trampolines, BootloaderAPI_Trampolines, 96) -BOOT_API_LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .apitable_jumptable, BootloaderAPI_JumpTable, 32) -BOOT_API_LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .apitable_signatures, BootloaderAPI_Signatures, 8) - -# Default target -all: - -# Include LUFA-specific DMBS extension modules -DMBS_LUFA_PATH ?= $(LUFA_PATH)/Build/LUFA -include $(DMBS_LUFA_PATH)/lufa-sources.mk -include $(DMBS_LUFA_PATH)/lufa-gcc.mk - -# Include common DMBS build system modules -DMBS_PATH ?= $(LUFA_PATH)/Build/DMBS/DMBS -include $(DMBS_PATH)/core.mk -include $(DMBS_PATH)/cppcheck.mk -include $(DMBS_PATH)/doxygen.mk -include $(DMBS_PATH)/dfu.mk -include $(DMBS_PATH)/gcc.mk -include $(DMBS_PATH)/hid.mk -include $(DMBS_PATH)/avrdude.mk -include $(DMBS_PATH)/atprogram.mk +# +# LUFA Library +# Copyright (C) Dean Camera, 2017. +# +# dean [at] fourwalledcubicle [dot] com +# www.lufa-lib.org +# +# -------------------------------------- +# LUFA Project Makefile. +# -------------------------------------- + +# Run "make help" for target help. + +MCU = at90usb1287 +ARCH = AVR8 +BOARD = USBKEY +F_CPU = 8000000 +F_USB = $(F_CPU) +OPTIMIZATION = s +TARGET = BootloaderPrinter +SRC = $(TARGET).c Descriptors.c BootloaderAPI.c BootloaderAPITable.S $(LUFA_SRC_USB) $(LUFA_SRC_USBCLASS) +LUFA_PATH = ../../LUFA +CC_FLAGS = -DUSE_LUFA_CONFIG_HEADER -IConfig/ -DBOOT_START_ADDR=$(BOOT_START_OFFSET) +LD_FLAGS = -Wl,--section-start=.text=$(BOOT_START_OFFSET) $(BOOT_API_LD_FLAGS) + +# Flash size and bootloader section sizes of the target, in KB. These must +# match the target's total FLASH size and the bootloader size set in the +# device's fuses. +FLASH_SIZE_KB = 128 +BOOT_SECTION_SIZE_KB = 8 + +# Bootloader address calculation formulas +# Do not modify these macros, but rather modify the dependent values above. +CALC_ADDRESS_IN_HEX = $(shell printf "0x%X" $$(( $(1) )) ) +BOOT_START_OFFSET = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) - $(BOOT_SECTION_SIZE_KB)) * 1024 ) +BOOT_SEC_OFFSET = $(call CALC_ADDRESS_IN_HEX, ($(FLASH_SIZE_KB) * 1024) - ($(strip $(1))) ) + +# Bootloader linker section flags for relocating the API table sections to +# known FLASH addresses - these should not normally be user-edited. +BOOT_SECTION_LD_FLAG = -Wl,--section-start=$(strip $(1))=$(call BOOT_SEC_OFFSET, $(3)) -Wl,--undefined=$(strip $(2)) +BOOT_API_LD_FLAGS = $(call BOOT_SECTION_LD_FLAG, .apitable_trampolines, BootloaderAPI_Trampolines, 96) +BOOT_API_LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .apitable_jumptable, BootloaderAPI_JumpTable, 32) +BOOT_API_LD_FLAGS += $(call BOOT_SECTION_LD_FLAG, .apitable_signatures, BootloaderAPI_Signatures, 8) + +# Default target +all: + +# Include LUFA-specific DMBS extension modules +DMBS_LUFA_PATH ?= $(LUFA_PATH)/Build/LUFA +include $(DMBS_LUFA_PATH)/lufa-sources.mk +include $(DMBS_LUFA_PATH)/lufa-gcc.mk + +# Include common DMBS build system modules +DMBS_PATH ?= $(LUFA_PATH)/Build/DMBS/DMBS +include $(DMBS_PATH)/core.mk +include $(DMBS_PATH)/cppcheck.mk +include $(DMBS_PATH)/doxygen.mk +include $(DMBS_PATH)/dfu.mk +include $(DMBS_PATH)/gcc.mk +include $(DMBS_PATH)/hid.mk +include $(DMBS_PATH)/avrdude.mk +include $(DMBS_PATH)/atprogram.mk diff --git a/Demos/Device/ClassDriver/AudioInput/asf.xml b/Demos/Device/ClassDriver/AudioInput/asf.xml index 466de7303..a915925af 100644 --- a/Demos/Device/ClassDriver/AudioInput/asf.xml +++ b/Demos/Device/ClassDriver/AudioInput/asf.xml @@ -1,52 +1,52 @@ -<asf xmlversion="1.0"> - <project caption="Audio Input Device Demo (Class Driver APIs)" id="lufa.demos.device.class.audio_input.example.avr8"> - <require idref="lufa.demos.device.class.audio_input"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <module type="application" id="lufa.demos.device.class.audio_input" caption="Audio Input Device Demo (Class Driver APIs)"> - <info type="description" value="summary"> - Audio 1.0 Input device demo, implementing a basic USB microphone. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Device"/> - <keyword value="Audio Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="AudioInput.txt"/> - - <build type="c-source" value="AudioInput.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="AudioInput.h"/> - <build type="header-file" value="Descriptors.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> - <build type="header-file" value="Config/AppConfig.h"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.adc"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.buttons"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Audio Input Device Demo (Class Driver APIs)" id="lufa.demos.device.class.audio_input.example.avr8"> + <require idref="lufa.demos.device.class.audio_input"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <module type="application" id="lufa.demos.device.class.audio_input" caption="Audio Input Device Demo (Class Driver APIs)"> + <info type="description" value="summary"> + Audio 1.0 Input device demo, implementing a basic USB microphone. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Device"/> + <keyword value="Audio Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="AudioInput.txt"/> + + <build type="c-source" value="AudioInput.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="AudioInput.h"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> + <build type="header-file" value="Config/AppConfig.h"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.peripheral.adc"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.buttons"/> + </module> +</asf> diff --git a/Demos/Device/ClassDriver/AudioOutput/asf.xml b/Demos/Device/ClassDriver/AudioOutput/asf.xml index f46f3a0f1..b372ac608 100644 --- a/Demos/Device/ClassDriver/AudioOutput/asf.xml +++ b/Demos/Device/ClassDriver/AudioOutput/asf.xml @@ -1,50 +1,50 @@ -<asf xmlversion="1.0"> - <project caption="Audio Output Device Demo (Class Driver APIs)" id="lufa.demos.device.class.audio_output.example.avr8"> - <require idref="lufa.demos.device.class.audio_output"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <module type="application" id="lufa.demos.device.class.audio_output" caption="Audio Output Device Demo (Class Driver APIs)"> - <info type="description" value="summary"> - Audio 1.0 Output device demo, implementing a basic USB speaker. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Device"/> - <keyword value="Audio Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="AudioOutput.txt"/> - - <build type="c-source" value="AudioOutput.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="AudioOutput.h"/> - <build type="header-file" value="Descriptors.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> - <build type="header-file" value="Config/AppConfig.h"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Audio Output Device Demo (Class Driver APIs)" id="lufa.demos.device.class.audio_output.example.avr8"> + <require idref="lufa.demos.device.class.audio_output"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <module type="application" id="lufa.demos.device.class.audio_output" caption="Audio Output Device Demo (Class Driver APIs)"> + <info type="description" value="summary"> + Audio 1.0 Output device demo, implementing a basic USB speaker. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Device"/> + <keyword value="Audio Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="AudioOutput.txt"/> + + <build type="c-source" value="AudioOutput.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="AudioOutput.h"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> + <build type="header-file" value="Config/AppConfig.h"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Demos/Device/ClassDriver/DualVirtualSerial/asf.xml b/Demos/Device/ClassDriver/DualVirtualSerial/asf.xml index e00f33995..d136f1c8b 100644 --- a/Demos/Device/ClassDriver/DualVirtualSerial/asf.xml +++ b/Demos/Device/ClassDriver/DualVirtualSerial/asf.xml @@ -1,62 +1,62 @@ -<asf xmlversion="1.0"> - <project caption="Dual Virtual Serial Device Demo (Class Driver APIs)" id="lufa.demos.device.class.dual_cdc.example.avr8"> - <require idref="lufa.demos.device.class.dual_cdc"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <project caption="Dual Virtual Serial Device Demo (Class Driver APIs)" id="lufa.demos.device.class.dual_cdc.example.xmega"> - <require idref="lufa.demos.device.class.dual_cdc"/> - <require idref="lufa.boards.dummy.xmega"/> - <generator value="as5_8"/> - - <device-support value="atxmega128a1u"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="32000000UL"/> - <build type="define" name="F_USB" value="48000000UL"/> - </project> - - <module type="application" id="lufa.demos.device.class.dual_cdc" caption="Dual Virtual Serial Device Demo (Class Driver APIs)"> - <info type="description" value="summary"> - Dual Virtual Serial (CDC) demo, implementing a pair of virtual serial port interfaces. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Device"/> - <keyword value="CDC Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="DualVirtualSerial.txt"/> - <build type="distribute" subtype="user-file" value="LUFA DualVirtualSerial.inf"/> - - <build type="c-source" value="DualVirtualSerial.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="DualVirtualSerial.h"/> - <build type="header-file" value="Descriptors.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.joystick"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Dual Virtual Serial Device Demo (Class Driver APIs)" id="lufa.demos.device.class.dual_cdc.example.avr8"> + <require idref="lufa.demos.device.class.dual_cdc"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <project caption="Dual Virtual Serial Device Demo (Class Driver APIs)" id="lufa.demos.device.class.dual_cdc.example.xmega"> + <require idref="lufa.demos.device.class.dual_cdc"/> + <require idref="lufa.boards.dummy.xmega"/> + <generator value="as5_8"/> + + <device-support value="atxmega128a1u"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="32000000UL"/> + <build type="define" name="F_USB" value="48000000UL"/> + </project> + + <module type="application" id="lufa.demos.device.class.dual_cdc" caption="Dual Virtual Serial Device Demo (Class Driver APIs)"> + <info type="description" value="summary"> + Dual Virtual Serial (CDC) demo, implementing a pair of virtual serial port interfaces. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Device"/> + <keyword value="CDC Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="DualVirtualSerial.txt"/> + <build type="distribute" subtype="user-file" value="LUFA DualVirtualSerial.inf"/> + + <build type="c-source" value="DualVirtualSerial.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="DualVirtualSerial.h"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.joystick"/> + </module> +</asf> diff --git a/Demos/Device/ClassDriver/GenericHID/asf.xml b/Demos/Device/ClassDriver/GenericHID/asf.xml index 710f7c719..df8b08b65 100644 --- a/Demos/Device/ClassDriver/GenericHID/asf.xml +++ b/Demos/Device/ClassDriver/GenericHID/asf.xml @@ -1,63 +1,63 @@ -<asf xmlversion="1.0"> - <project caption="Generic HID Device Demo (Class Driver APIs)" id="lufa.demos.device.class.generic_hid.example.avr8"> - <require idref="lufa.demos.device.class.generic_hid"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <project caption="Generic HID Device Demo (Class Driver APIs)" id="lufa.demos.device.class.generic_hid.example.xmega"> - <require idref="lufa.demos.device.class.generic_hid"/> - <require idref="lufa.boards.dummy.xmega"/> - <generator value="as5_8"/> - - <device-support value="atxmega128a1u"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="32000000UL"/> - <build type="define" name="F_USB" value="48000000UL"/> - </project> - - <module type="application" id="lufa.demos.device.class.generic_hid" caption="Generic HID Device Demo (Class Driver APIs)"> - <info type="description" value="summary"> - Generic HID device demo, implementing a device whose LEDs can be controlled via HID messages from the host. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Device"/> - <keyword value="HID Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="GenericHID.txt"/> - <build type="distribute" subtype="directory" value="HostTestApp"/> - - <build type="c-source" value="GenericHID.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="GenericHID.h"/> - <build type="header-file" value="Descriptors.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> - <build type="header-file" value="Config/AppConfig.h"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Generic HID Device Demo (Class Driver APIs)" id="lufa.demos.device.class.generic_hid.example.avr8"> + <require idref="lufa.demos.device.class.generic_hid"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <project caption="Generic HID Device Demo (Class Driver APIs)" id="lufa.demos.device.class.generic_hid.example.xmega"> + <require idref="lufa.demos.device.class.generic_hid"/> + <require idref="lufa.boards.dummy.xmega"/> + <generator value="as5_8"/> + + <device-support value="atxmega128a1u"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="32000000UL"/> + <build type="define" name="F_USB" value="48000000UL"/> + </project> + + <module type="application" id="lufa.demos.device.class.generic_hid" caption="Generic HID Device Demo (Class Driver APIs)"> + <info type="description" value="summary"> + Generic HID device demo, implementing a device whose LEDs can be controlled via HID messages from the host. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Device"/> + <keyword value="HID Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="GenericHID.txt"/> + <build type="distribute" subtype="directory" value="HostTestApp"/> + + <build type="c-source" value="GenericHID.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="GenericHID.h"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> + <build type="header-file" value="Config/AppConfig.h"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Demos/Device/ClassDriver/Joystick/asf.xml b/Demos/Device/ClassDriver/Joystick/asf.xml index 97d37a5aa..cd7b72c0c 100644 --- a/Demos/Device/ClassDriver/Joystick/asf.xml +++ b/Demos/Device/ClassDriver/Joystick/asf.xml @@ -1,62 +1,62 @@ -<asf xmlversion="1.0"> - <project caption="Joystick HID Device Demo (Class Driver APIs)" id="lufa.demos.device.class.joystick.example.avr8"> - <require idref="lufa.demos.device.class.joystick"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <project caption="Joystick HID Device Demo (Class Driver APIs)" id="lufa.demos.device.class.joystick.example.xmega"> - <require idref="lufa.demos.device.class.joystick"/> - <require idref="lufa.boards.dummy.xmega"/> - <generator value="as5_8"/> - - <device-support value="atxmega128a1u"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="32000000UL"/> - <build type="define" name="F_USB" value="48000000UL"/> - </project> - - <module type="application" id="lufa.demos.device.class.joystick" caption="Joystick HID Device Demo (Class Driver APIs)"> - <info type="description" value="summary"> - Joystick HID device demo, implementing a basic USB joystick that can send movement information to the host. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Device"/> - <keyword value="HID Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="Joystick.txt"/> - - <build type="c-source" value="Joystick.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="Joystick.h"/> - <build type="header-file" value="Descriptors.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.joystick"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Joystick HID Device Demo (Class Driver APIs)" id="lufa.demos.device.class.joystick.example.avr8"> + <require idref="lufa.demos.device.class.joystick"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <project caption="Joystick HID Device Demo (Class Driver APIs)" id="lufa.demos.device.class.joystick.example.xmega"> + <require idref="lufa.demos.device.class.joystick"/> + <require idref="lufa.boards.dummy.xmega"/> + <generator value="as5_8"/> + + <device-support value="atxmega128a1u"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="32000000UL"/> + <build type="define" name="F_USB" value="48000000UL"/> + </project> + + <module type="application" id="lufa.demos.device.class.joystick" caption="Joystick HID Device Demo (Class Driver APIs)"> + <info type="description" value="summary"> + Joystick HID device demo, implementing a basic USB joystick that can send movement information to the host. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Device"/> + <keyword value="HID Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="Joystick.txt"/> + + <build type="c-source" value="Joystick.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="Joystick.h"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.joystick"/> + </module> +</asf> diff --git a/Demos/Device/ClassDriver/Keyboard/asf.xml b/Demos/Device/ClassDriver/Keyboard/asf.xml index d7cdc17bc..6adef2e4f 100644 --- a/Demos/Device/ClassDriver/Keyboard/asf.xml +++ b/Demos/Device/ClassDriver/Keyboard/asf.xml @@ -1,62 +1,62 @@ -<asf xmlversion="1.0"> - <project caption="Keyboard HID Device Demo (Class Driver APIs)" id="lufa.demos.device.class.keyboard.example.avr8"> - <require idref="lufa.demos.device.class.keyboard"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <project caption="Keyboard HID Device Demo (Class Driver APIs)" id="lufa.demos.device.class.keyboard.example.xmega"> - <require idref="lufa.demos.device.class.keyboard"/> - <require idref="lufa.boards.dummy.xmega"/> - <generator value="as5_8"/> - - <device-support value="atxmega128a1u"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="32000000UL"/> - <build type="define" name="F_USB" value="48000000UL"/> - </project> - - <module type="application" id="lufa.demos.device.class.keyboard" caption="Keyboard HID Device Demo (Class Driver APIs)"> - <info type="description" value="summary"> - Keyboard HID device demo, implementing a basic USB keyboard that can send key press information to the host. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Device"/> - <keyword value="HID Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="Keyboard.txt"/> - - <build type="c-source" value="Keyboard.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="Keyboard.h"/> - <build type="header-file" value="Descriptors.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.joystick"/> - <require idref="lufa.drivers.board.buttons"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Keyboard HID Device Demo (Class Driver APIs)" id="lufa.demos.device.class.keyboard.example.avr8"> + <require idref="lufa.demos.device.class.keyboard"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <project caption="Keyboard HID Device Demo (Class Driver APIs)" id="lufa.demos.device.class.keyboard.example.xmega"> + <require idref="lufa.demos.device.class.keyboard"/> + <require idref="lufa.boards.dummy.xmega"/> + <generator value="as5_8"/> + + <device-support value="atxmega128a1u"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="32000000UL"/> + <build type="define" name="F_USB" value="48000000UL"/> + </project> + + <module type="application" id="lufa.demos.device.class.keyboard" caption="Keyboard HID Device Demo (Class Driver APIs)"> + <info type="description" value="summary"> + Keyboard HID device demo, implementing a basic USB keyboard that can send key press information to the host. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Device"/> + <keyword value="HID Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="Keyboard.txt"/> + + <build type="c-source" value="Keyboard.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="Keyboard.h"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.joystick"/> + <require idref="lufa.drivers.board.buttons"/> + </module> +</asf> diff --git a/Demos/Device/ClassDriver/KeyboardMouse/asf.xml b/Demos/Device/ClassDriver/KeyboardMouse/asf.xml index 4b5ca0121..5eeafc8ec 100644 --- a/Demos/Device/ClassDriver/KeyboardMouse/asf.xml +++ b/Demos/Device/ClassDriver/KeyboardMouse/asf.xml @@ -1,62 +1,62 @@ -<asf xmlversion="1.0"> - <project caption="Keyboard and Mouse HID Device Demo (Class Driver APIs)" id="lufa.demos.device.class.keyboard_mouse.example.avr8"> - <require idref="lufa.demos.device.class.keyboard_mouse"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <project caption="Keyboard and Mouse HID Device Demo (Class Driver APIs)" id="lufa.demos.device.class.keyboard_mouse.example.xmega"> - <require idref="lufa.demos.device.class.keyboard_mouse"/> - <require idref="lufa.boards.dummy.xmega"/> - <generator value="as5_8"/> - - <device-support value="atxmega128a1u"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="32000000UL"/> - <build type="define" name="F_USB" value="48000000UL"/> - </project> - - <module type="application" id="lufa.demos.device.class.keyboard_mouse" caption="Keyboard and Mouse HID Device Demo (Class Driver APIs)"> - <info type="description" value="summary"> - Keyboard and Mouse HID device demo, implementing a basic USB keyboard and mouse using a pair of HID interfaces. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Device"/> - <keyword value="HID Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="KeyboardMouse.txt"/> - - <build type="c-source" value="KeyboardMouse.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="KeyboardMouse.h"/> - <build type="header-file" value="Descriptors.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.joystick"/> - <require idref="lufa.drivers.board.buttons"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Keyboard and Mouse HID Device Demo (Class Driver APIs)" id="lufa.demos.device.class.keyboard_mouse.example.avr8"> + <require idref="lufa.demos.device.class.keyboard_mouse"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <project caption="Keyboard and Mouse HID Device Demo (Class Driver APIs)" id="lufa.demos.device.class.keyboard_mouse.example.xmega"> + <require idref="lufa.demos.device.class.keyboard_mouse"/> + <require idref="lufa.boards.dummy.xmega"/> + <generator value="as5_8"/> + + <device-support value="atxmega128a1u"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="32000000UL"/> + <build type="define" name="F_USB" value="48000000UL"/> + </project> + + <module type="application" id="lufa.demos.device.class.keyboard_mouse" caption="Keyboard and Mouse HID Device Demo (Class Driver APIs)"> + <info type="description" value="summary"> + Keyboard and Mouse HID device demo, implementing a basic USB keyboard and mouse using a pair of HID interfaces. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Device"/> + <keyword value="HID Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="KeyboardMouse.txt"/> + + <build type="c-source" value="KeyboardMouse.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="KeyboardMouse.h"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.joystick"/> + <require idref="lufa.drivers.board.buttons"/> + </module> +</asf> diff --git a/Demos/Device/ClassDriver/KeyboardMouseMultiReport/asf.xml b/Demos/Device/ClassDriver/KeyboardMouseMultiReport/asf.xml index 39487fd8a..2106bc254 100644 --- a/Demos/Device/ClassDriver/KeyboardMouseMultiReport/asf.xml +++ b/Demos/Device/ClassDriver/KeyboardMouseMultiReport/asf.xml @@ -1,61 +1,61 @@ -<asf xmlversion="1.0"> - <project caption="Keyboard and Mouse HID (Multi Report) Device Demo (Class Driver APIs)" id="lufa.demos.device.class.keyboard_mouse_mr.example.avr8"> - <require idref="lufa.demos.device.class.keyboard_mouse_mr"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <project caption="Keyboard and Mouse HID (Multi Report) Device Demo (Class Driver APIs)" id="lufa.demos.device.class.keyboard_mouse_mr.example.xmega"> - <require idref="lufa.demos.device.class.keyboard_mouse_mr"/> - <require idref="lufa.boards.dummy.xmega"/> - <generator value="as5_8"/> - - <device-support value="atxmega128a1u"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="32000000UL"/> - <build type="define" name="F_USB" value="48000000UL"/> - </project> - - <module type="application" id="lufa.demos.device.class.keyboard_mouse_mr" caption="Keyboard and Mouse HID (Multi Report) Device Demo (Class Driver APIs)"> - <info type="description" value="summary"> - Keyboard and Mouse HID device demo, implementing a basic USB keyboard and mouse using a single HID interface and multiple logical reports. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Device"/> - <keyword value="HID Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="KeyboardMouseMultiReport.txt"/> - - <build type="c-source" value="KeyboardMouseMultiReport.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="KeyboardMouseMultiReport.h"/> - <build type="header-file" value="Descriptors.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.joystick"/> - <require idref="lufa.drivers.board.buttons"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Keyboard and Mouse HID (Multi Report) Device Demo (Class Driver APIs)" id="lufa.demos.device.class.keyboard_mouse_mr.example.avr8"> + <require idref="lufa.demos.device.class.keyboard_mouse_mr"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <project caption="Keyboard and Mouse HID (Multi Report) Device Demo (Class Driver APIs)" id="lufa.demos.device.class.keyboard_mouse_mr.example.xmega"> + <require idref="lufa.demos.device.class.keyboard_mouse_mr"/> + <require idref="lufa.boards.dummy.xmega"/> + <generator value="as5_8"/> + + <device-support value="atxmega128a1u"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="32000000UL"/> + <build type="define" name="F_USB" value="48000000UL"/> + </project> + + <module type="application" id="lufa.demos.device.class.keyboard_mouse_mr" caption="Keyboard and Mouse HID (Multi Report) Device Demo (Class Driver APIs)"> + <info type="description" value="summary"> + Keyboard and Mouse HID device demo, implementing a basic USB keyboard and mouse using a single HID interface and multiple logical reports. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Device"/> + <keyword value="HID Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="KeyboardMouseMultiReport.txt"/> + + <build type="c-source" value="KeyboardMouseMultiReport.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="KeyboardMouseMultiReport.h"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.joystick"/> + <require idref="lufa.drivers.board.buttons"/> + </module> +</asf> diff --git a/Demos/Device/ClassDriver/MIDI/asf.xml b/Demos/Device/ClassDriver/MIDI/asf.xml index 33a4fd583..4cbc1c90a 100644 --- a/Demos/Device/ClassDriver/MIDI/asf.xml +++ b/Demos/Device/ClassDriver/MIDI/asf.xml @@ -1,62 +1,62 @@ -<asf xmlversion="1.0"> - <project caption="MIDI Device Demo (Class Driver APIs)" id="lufa.demos.device.class.midi.example.avr8"> - <require idref="lufa.demos.device.class.midi"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <project caption="MIDI Device Demo (Class Driver APIs)" id="lufa.demos.device.class.midi.example.xmega"> - <require idref="lufa.demos.device.class.midi"/> - <require idref="lufa.boards.dummy.xmega"/> - <generator value="as5_8"/> - - <device-support value="atxmega128a1u"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="32000000UL"/> - <build type="define" name="F_USB" value="48000000UL"/> - </project> - - <module type="application" id="lufa.demos.device.class.midi" caption="MIDI Device Demo (Class Driver APIs)"> - <info type="description" value="summary"> - MIDI device demo, implementing a basic USB MIDI device that can send messages to the host. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Device"/> - <keyword value="MIDI Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="MIDI.txt"/> - - <build type="c-source" value="MIDI.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="MIDI.h"/> - <build type="header-file" value="Descriptors.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.joystick"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="MIDI Device Demo (Class Driver APIs)" id="lufa.demos.device.class.midi.example.avr8"> + <require idref="lufa.demos.device.class.midi"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <project caption="MIDI Device Demo (Class Driver APIs)" id="lufa.demos.device.class.midi.example.xmega"> + <require idref="lufa.demos.device.class.midi"/> + <require idref="lufa.boards.dummy.xmega"/> + <generator value="as5_8"/> + + <device-support value="atxmega128a1u"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="32000000UL"/> + <build type="define" name="F_USB" value="48000000UL"/> + </project> + + <module type="application" id="lufa.demos.device.class.midi" caption="MIDI Device Demo (Class Driver APIs)"> + <info type="description" value="summary"> + MIDI device demo, implementing a basic USB MIDI device that can send messages to the host. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Device"/> + <keyword value="MIDI Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="MIDI.txt"/> + + <build type="c-source" value="MIDI.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="MIDI.h"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.joystick"/> + </module> +</asf> diff --git a/Demos/Device/ClassDriver/MassStorage/asf.xml b/Demos/Device/ClassDriver/MassStorage/asf.xml index 6f5a8dc03..8e91819ff 100644 --- a/Demos/Device/ClassDriver/MassStorage/asf.xml +++ b/Demos/Device/ClassDriver/MassStorage/asf.xml @@ -1,67 +1,67 @@ -<asf xmlversion="1.0"> - <project caption="Mass Storage Device Demo (Class Driver APIs)" id="lufa.demos.device.class.mass_storage.example.avr8"> - <require idref="lufa.demos.device.class.mass_storage"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <project caption="Mass Storage Device Demo (Class Driver APIs)" id="lufa.demos.device.class.mass_storage.example.xmega"> - <require idref="lufa.demos.device.class.mass_storage"/> - <require idref="lufa.boards.dummy.xmega"/> - <generator value="as5_8"/> - - <device-support value="atxmega128a1u"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="32000000UL"/> - <build type="define" name="F_USB" value="48000000UL"/> - </project> - - <module type="application" id="lufa.demos.device.class.mass_storage" caption="Mass Storage Device Demo (Class Driver APIs)"> - <info type="description" value="summary"> - Mass Storage device demo, implementing a basic USB storage disk using a Dataflash memory IC. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Device"/> - <keyword value="Mass Storage Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="MassStorage.txt"/> - - <build type="c-source" value="MassStorage.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="c-source" value="Lib/DataflashManager.c"/> - <build type="c-source" value="Lib/SCSI.c"/> - <build type="header-file" value="MassStorage.h"/> - <build type="header-file" value="Descriptors.h"/> - <build type="header-file" value="Lib/DataflashManager.h"/> - <build type="header-file" value="Lib/SCSI.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> - <build type="header-file" value="Config/AppConfig.h"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.dataflash"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Mass Storage Device Demo (Class Driver APIs)" id="lufa.demos.device.class.mass_storage.example.avr8"> + <require idref="lufa.demos.device.class.mass_storage"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <project caption="Mass Storage Device Demo (Class Driver APIs)" id="lufa.demos.device.class.mass_storage.example.xmega"> + <require idref="lufa.demos.device.class.mass_storage"/> + <require idref="lufa.boards.dummy.xmega"/> + <generator value="as5_8"/> + + <device-support value="atxmega128a1u"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="32000000UL"/> + <build type="define" name="F_USB" value="48000000UL"/> + </project> + + <module type="application" id="lufa.demos.device.class.mass_storage" caption="Mass Storage Device Demo (Class Driver APIs)"> + <info type="description" value="summary"> + Mass Storage device demo, implementing a basic USB storage disk using a Dataflash memory IC. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Device"/> + <keyword value="Mass Storage Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="MassStorage.txt"/> + + <build type="c-source" value="MassStorage.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="c-source" value="Lib/DataflashManager.c"/> + <build type="c-source" value="Lib/SCSI.c"/> + <build type="header-file" value="MassStorage.h"/> + <build type="header-file" value="Descriptors.h"/> + <build type="header-file" value="Lib/DataflashManager.h"/> + <build type="header-file" value="Lib/SCSI.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> + <build type="header-file" value="Config/AppConfig.h"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.dataflash"/> + </module> +</asf> diff --git a/Demos/Device/ClassDriver/MassStorageKeyboard/asf.xml b/Demos/Device/ClassDriver/MassStorageKeyboard/asf.xml index 3cdb476b2..7aac4ffaa 100644 --- a/Demos/Device/ClassDriver/MassStorageKeyboard/asf.xml +++ b/Demos/Device/ClassDriver/MassStorageKeyboard/asf.xml @@ -1,70 +1,70 @@ -<asf xmlversion="1.0"> - <project caption="Mass Storage and HID Keyboard Device Demo (Class Driver APIs)" id="lufa.demos.device.class.mass_storage_keyboard.example.avr8"> - <require idref="lufa.demos.device.class.mass_storage_keyboard"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <project caption="Mass Storage and HID Keyboard Device Demo (Class Driver APIs)" id="lufa.demos.device.class.mass_storage_keyboard.example.xmega"> - <require idref="lufa.demos.device.class.mass_storage_keyboard"/> - <require idref="lufa.boards.dummy.xmega"/> - <generator value="as5_8"/> - - <device-support value="atxmega128a1u"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="32000000UL"/> - <build type="define" name="F_USB" value="48000000UL"/> - </project> - - <module type="application" id="lufa.demos.device.class.mass_storage_keyboard" caption="Mass Storage and HID Keyboard Device Demo (Class Driver APIs)"> - <info type="description" value="summary"> - Mass Storage and Keyboard device demo, implementing a basic USB storage disk using a Dataflash memory IC, and a basic HID keyboard. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Low Level APIs"/> - <keyword value="USB Device"/> - <keyword value="HID Class"/> - <keyword value="Mass Storage Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="MassStorageKeyboard.txt"/> - - <build type="c-source" value="MassStorageKeyboard.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="c-source" value="Lib/DataflashManager.c"/> - <build type="c-source" value="Lib/SCSI.c"/> - <build type="header-file" value="MassStorageKeyboard.h"/> - <build type="header-file" value="Descriptors.h"/> - <build type="header-file" value="Lib/DataflashManager.h"/> - <build type="header-file" value="Lib/SCSI.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> - <build type="header-file" value="Config/AppConfig.h"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.joystick"/> - <require idref="lufa.drivers.board.dataflash"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Mass Storage and HID Keyboard Device Demo (Class Driver APIs)" id="lufa.demos.device.class.mass_storage_keyboard.example.avr8"> + <require idref="lufa.demos.device.class.mass_storage_keyboard"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <project caption="Mass Storage and HID Keyboard Device Demo (Class Driver APIs)" id="lufa.demos.device.class.mass_storage_keyboard.example.xmega"> + <require idref="lufa.demos.device.class.mass_storage_keyboard"/> + <require idref="lufa.boards.dummy.xmega"/> + <generator value="as5_8"/> + + <device-support value="atxmega128a1u"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="32000000UL"/> + <build type="define" name="F_USB" value="48000000UL"/> + </project> + + <module type="application" id="lufa.demos.device.class.mass_storage_keyboard" caption="Mass Storage and HID Keyboard Device Demo (Class Driver APIs)"> + <info type="description" value="summary"> + Mass Storage and Keyboard device demo, implementing a basic USB storage disk using a Dataflash memory IC, and a basic HID keyboard. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Low Level APIs"/> + <keyword value="USB Device"/> + <keyword value="HID Class"/> + <keyword value="Mass Storage Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="MassStorageKeyboard.txt"/> + + <build type="c-source" value="MassStorageKeyboard.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="c-source" value="Lib/DataflashManager.c"/> + <build type="c-source" value="Lib/SCSI.c"/> + <build type="header-file" value="MassStorageKeyboard.h"/> + <build type="header-file" value="Descriptors.h"/> + <build type="header-file" value="Lib/DataflashManager.h"/> + <build type="header-file" value="Lib/SCSI.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> + <build type="header-file" value="Config/AppConfig.h"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.joystick"/> + <require idref="lufa.drivers.board.dataflash"/> + </module> +</asf> diff --git a/Demos/Device/ClassDriver/Mouse/asf.xml b/Demos/Device/ClassDriver/Mouse/asf.xml index 1af0d7667..b3bea4fa3 100644 --- a/Demos/Device/ClassDriver/Mouse/asf.xml +++ b/Demos/Device/ClassDriver/Mouse/asf.xml @@ -1,62 +1,62 @@ -<asf xmlversion="1.0"> - <project caption="Mouse HID Device Demo (Class Driver APIs)" id="lufa.demos.device.class.mouse.example.avr8"> - <require idref="lufa.demos.device.class.mouse"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <project caption="Mouse HID Device Demo (Class Driver APIs)" id="lufa.demos.device.class.mouse.example.xmega"> - <require idref="lufa.demos.device.class.mouse"/> - <require idref="lufa.boards.dummy.xmega"/> - <generator value="as5_8"/> - - <device-support value="atxmega128a1u"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="32000000UL"/> - <build type="define" name="F_USB" value="48000000UL"/> - </project> - - <module type="application" id="lufa.demos.device.class.mouse" caption="Mouse HID Device Demo (Class Driver APIs)"> - <info type="description" value="summary"> - Mouse device demo, implementing a basic USB mouse device that can send movement information to the host. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Device"/> - <keyword value="HID Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="Mouse.txt"/> - - <build type="c-source" value="Mouse.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="Mouse.h"/> - <build type="header-file" value="Descriptors.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.joystick"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Mouse HID Device Demo (Class Driver APIs)" id="lufa.demos.device.class.mouse.example.avr8"> + <require idref="lufa.demos.device.class.mouse"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <project caption="Mouse HID Device Demo (Class Driver APIs)" id="lufa.demos.device.class.mouse.example.xmega"> + <require idref="lufa.demos.device.class.mouse"/> + <require idref="lufa.boards.dummy.xmega"/> + <generator value="as5_8"/> + + <device-support value="atxmega128a1u"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="32000000UL"/> + <build type="define" name="F_USB" value="48000000UL"/> + </project> + + <module type="application" id="lufa.demos.device.class.mouse" caption="Mouse HID Device Demo (Class Driver APIs)"> + <info type="description" value="summary"> + Mouse device demo, implementing a basic USB mouse device that can send movement information to the host. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Device"/> + <keyword value="HID Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="Mouse.txt"/> + + <build type="c-source" value="Mouse.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="Mouse.h"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.joystick"/> + </module> +</asf> diff --git a/Demos/Device/ClassDriver/RNDISEthernet/asf.xml b/Demos/Device/ClassDriver/RNDISEthernet/asf.xml index e871a8799..08104c4e7 100644 --- a/Demos/Device/ClassDriver/RNDISEthernet/asf.xml +++ b/Demos/Device/ClassDriver/RNDISEthernet/asf.xml @@ -1,84 +1,84 @@ -<asf xmlversion="1.0"> - <project caption="RNDIS Ethernet Device Demo (Class Driver APIs)" id="lufa.demos.device.class.rndis.example.avr8"> - <require idref="lufa.demos.device.class.rndis"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <project caption="RNDIS Ethernet Device Demo (Class Driver APIs)" id="lufa.demos.device.class.rndis.example.xmega"> - <require idref="lufa.demos.device.class.rndis"/> - <require idref="lufa.boards.dummy.xmega"/> - <generator value="as5_8"/> - - <device-support value="atxmega128a1u"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="32000000UL"/> - <build type="define" name="F_USB" value="48000000UL"/> - </project> - - <module type="application" id="lufa.demos.device.class.rndis" caption="RNDIS Ethernet Device Demo (Class Driver APIs)"> - <info type="description" value="summary"> - Microsoft RNDIS Ethernet networking device demo, implementing a basic HTTP webserver. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Device"/> - <keyword value="RNDIS Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="RNDISEthernet.txt"/> - <build type="distribute" subtype="user-file" value="LUFA RNDIS.inf"/> - - <build type="c-source" value="RNDISEthernet.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="c-source" value="Lib/ARP.c"/> - <build type="c-source" value="Lib/DHCP.c"/> - <build type="c-source" value="Lib/Ethernet.c"/> - <build type="c-source" value="Lib/ICMP.c"/> - <build type="c-source" value="Lib/IP.c"/> - <build type="c-source" value="Lib/ProtocolDecoders.c"/> - <build type="c-source" value="Lib/TCP.c"/> - <build type="c-source" value="Lib/UDP.c"/> - <build type="c-source" value="Lib/Webserver.c"/> - <build type="header-file" value="RNDISEthernet.h"/> - <build type="header-file" value="Descriptors.h"/> - <build type="header-file" value="Lib/ARP.h"/> - <build type="header-file" value="Lib/DHCP.h"/> - <build type="header-file" value="Lib/Ethernet.h"/> - <build type="header-file" value="Lib/ICMP.h"/> - <build type="header-file" value="Lib/IP.h"/> - <build type="header-file" value="Lib/ProtocolDecoders.h"/> - <build type="header-file" value="Lib/TCP.h"/> - <build type="header-file" value="Lib/UDP.h"/> - <build type="header-file" value="Lib/Webserver.h"/> - <build type="header-file" value="Lib/EthernetProtocols.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> - <build type="header-file" value="Config/AppConfig.h"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.misc.ansi"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="RNDIS Ethernet Device Demo (Class Driver APIs)" id="lufa.demos.device.class.rndis.example.avr8"> + <require idref="lufa.demos.device.class.rndis"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <project caption="RNDIS Ethernet Device Demo (Class Driver APIs)" id="lufa.demos.device.class.rndis.example.xmega"> + <require idref="lufa.demos.device.class.rndis"/> + <require idref="lufa.boards.dummy.xmega"/> + <generator value="as5_8"/> + + <device-support value="atxmega128a1u"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="32000000UL"/> + <build type="define" name="F_USB" value="48000000UL"/> + </project> + + <module type="application" id="lufa.demos.device.class.rndis" caption="RNDIS Ethernet Device Demo (Class Driver APIs)"> + <info type="description" value="summary"> + Microsoft RNDIS Ethernet networking device demo, implementing a basic HTTP webserver. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Device"/> + <keyword value="RNDIS Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="RNDISEthernet.txt"/> + <build type="distribute" subtype="user-file" value="LUFA RNDIS.inf"/> + + <build type="c-source" value="RNDISEthernet.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="c-source" value="Lib/ARP.c"/> + <build type="c-source" value="Lib/DHCP.c"/> + <build type="c-source" value="Lib/Ethernet.c"/> + <build type="c-source" value="Lib/ICMP.c"/> + <build type="c-source" value="Lib/IP.c"/> + <build type="c-source" value="Lib/ProtocolDecoders.c"/> + <build type="c-source" value="Lib/TCP.c"/> + <build type="c-source" value="Lib/UDP.c"/> + <build type="c-source" value="Lib/Webserver.c"/> + <build type="header-file" value="RNDISEthernet.h"/> + <build type="header-file" value="Descriptors.h"/> + <build type="header-file" value="Lib/ARP.h"/> + <build type="header-file" value="Lib/DHCP.h"/> + <build type="header-file" value="Lib/Ethernet.h"/> + <build type="header-file" value="Lib/ICMP.h"/> + <build type="header-file" value="Lib/IP.h"/> + <build type="header-file" value="Lib/ProtocolDecoders.h"/> + <build type="header-file" value="Lib/TCP.h"/> + <build type="header-file" value="Lib/UDP.h"/> + <build type="header-file" value="Lib/Webserver.h"/> + <build type="header-file" value="Lib/EthernetProtocols.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> + <build type="header-file" value="Config/AppConfig.h"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.peripheral.usart"/> + <require idref="lufa.drivers.misc.ansi"/> + </module> +</asf> diff --git a/Demos/Device/ClassDriver/VirtualSerial/asf.xml b/Demos/Device/ClassDriver/VirtualSerial/asf.xml index 4839b7c5f..f17a214fa 100644 --- a/Demos/Device/ClassDriver/VirtualSerial/asf.xml +++ b/Demos/Device/ClassDriver/VirtualSerial/asf.xml @@ -1,62 +1,62 @@ -<asf xmlversion="1.0"> - <project caption="Virtual Serial CDC Device Demo (Class Driver APIs)" id="lufa.demos.device.class.cdc.example.avr8"> - <require idref="lufa.demos.device.class.cdc"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <project caption="Virtual Serial CDC Device Demo (Class Driver APIs)" id="lufa.demos.device.class.cdc.example.xmega"> - <require idref="lufa.demos.device.class.cdc"/> - <require idref="lufa.boards.dummy.xmega"/> - <generator value="as5_8"/> - - <device-support value="atxmega128a1u"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="32000000UL"/> - <build type="define" name="F_USB" value="48000000UL"/> - </project> - - <module type="application" id="lufa.demos.device.class.cdc" caption="Virtual Serial CDC Device Demo (Class Driver APIs)"> - <info type="description" value="summary"> - Virtual Serial device demo, implementing a virtual serial channel between the host PC and the device. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Device"/> - <keyword value="CDC Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="VirtualSerial.txt"/> - <build type="distribute" subtype="user-file" value="LUFA VirtualSerial.inf"/> - - <build type="c-source" value="VirtualSerial.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="VirtualSerial.h"/> - <build type="header-file" value="Descriptors.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.joystick"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Virtual Serial CDC Device Demo (Class Driver APIs)" id="lufa.demos.device.class.cdc.example.avr8"> + <require idref="lufa.demos.device.class.cdc"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <project caption="Virtual Serial CDC Device Demo (Class Driver APIs)" id="lufa.demos.device.class.cdc.example.xmega"> + <require idref="lufa.demos.device.class.cdc"/> + <require idref="lufa.boards.dummy.xmega"/> + <generator value="as5_8"/> + + <device-support value="atxmega128a1u"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="32000000UL"/> + <build type="define" name="F_USB" value="48000000UL"/> + </project> + + <module type="application" id="lufa.demos.device.class.cdc" caption="Virtual Serial CDC Device Demo (Class Driver APIs)"> + <info type="description" value="summary"> + Virtual Serial device demo, implementing a virtual serial channel between the host PC and the device. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Device"/> + <keyword value="CDC Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="VirtualSerial.txt"/> + <build type="distribute" subtype="user-file" value="LUFA VirtualSerial.inf"/> + + <build type="c-source" value="VirtualSerial.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="VirtualSerial.h"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.joystick"/> + </module> +</asf> diff --git a/Demos/Device/ClassDriver/VirtualSerialMassStorage/asf.xml b/Demos/Device/ClassDriver/VirtualSerialMassStorage/asf.xml index a73bcc21c..0da80087e 100644 --- a/Demos/Device/ClassDriver/VirtualSerialMassStorage/asf.xml +++ b/Demos/Device/ClassDriver/VirtualSerialMassStorage/asf.xml @@ -1,70 +1,70 @@ -<asf xmlversion="1.0"> - <project caption="Virtual Serial CDC and Mass Storage Device Demo (Class Driver APIs)" id="lufa.demos.device.class.cdc_ms.example.avr8"> - <require idref="lufa.demos.device.class.cdc_ms"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <project caption="Virtual Serial CDC and Mass Storage Device Demo (Class Driver APIs)" id="lufa.demos.device.class.cdc_ms.example.xmega"> - <require idref="lufa.demos.device.class.cdc_ms"/> - <require idref="lufa.boards.dummy.xmega"/> - <generator value="as5_8"/> - - <device-support value="atxmega128a1u"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="32000000UL"/> - <build type="define" name="F_USB" value="48000000UL"/> - </project> - - <module type="application" id="lufa.demos.device.class.cdc_ms" caption="Virtual Serial CDC and Mass Storage Device Demo (Class Driver APIs)"> - <info type="description" value="summary"> - Virtual Serial and Mass Storage device demo, implementing a virtual serial channel between the host PC and the device, and a basic USB storage disk using a Dataflash memory IC. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Device"/> - <keyword value="CDC Class"/> - <keyword value="Mass Storage Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="VirtualSerialMassStorage.txt"/> - <build type="distribute" subtype="user-file" value="LUFA VirtualSerialMassStorage.inf"/> - - <build type="c-source" value="VirtualSerialMassStorage.c"/> - <build type="c-source" value="Lib/DataflashManager.c"/> - <build type="c-source" value="Lib/SCSI.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="VirtualSerialMassStorage.h"/> - <build type="header-file" value="Descriptors.h"/> - <build type="header-file" value="Lib/DataflashManager.h"/> - <build type="header-file" value="Lib/SCSI.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> - <build type="header-file" value="Config/AppConfig.h"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.joystick"/> - <require idref="lufa.drivers.board.dataflash"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Virtual Serial CDC and Mass Storage Device Demo (Class Driver APIs)" id="lufa.demos.device.class.cdc_ms.example.avr8"> + <require idref="lufa.demos.device.class.cdc_ms"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <project caption="Virtual Serial CDC and Mass Storage Device Demo (Class Driver APIs)" id="lufa.demos.device.class.cdc_ms.example.xmega"> + <require idref="lufa.demos.device.class.cdc_ms"/> + <require idref="lufa.boards.dummy.xmega"/> + <generator value="as5_8"/> + + <device-support value="atxmega128a1u"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="32000000UL"/> + <build type="define" name="F_USB" value="48000000UL"/> + </project> + + <module type="application" id="lufa.demos.device.class.cdc_ms" caption="Virtual Serial CDC and Mass Storage Device Demo (Class Driver APIs)"> + <info type="description" value="summary"> + Virtual Serial and Mass Storage device demo, implementing a virtual serial channel between the host PC and the device, and a basic USB storage disk using a Dataflash memory IC. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Device"/> + <keyword value="CDC Class"/> + <keyword value="Mass Storage Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="VirtualSerialMassStorage.txt"/> + <build type="distribute" subtype="user-file" value="LUFA VirtualSerialMassStorage.inf"/> + + <build type="c-source" value="VirtualSerialMassStorage.c"/> + <build type="c-source" value="Lib/DataflashManager.c"/> + <build type="c-source" value="Lib/SCSI.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="VirtualSerialMassStorage.h"/> + <build type="header-file" value="Descriptors.h"/> + <build type="header-file" value="Lib/DataflashManager.h"/> + <build type="header-file" value="Lib/SCSI.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> + <build type="header-file" value="Config/AppConfig.h"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.joystick"/> + <require idref="lufa.drivers.board.dataflash"/> + </module> +</asf> diff --git a/Demos/Device/ClassDriver/VirtualSerialMouse/asf.xml b/Demos/Device/ClassDriver/VirtualSerialMouse/asf.xml index 40d13050b..fbb40021b 100644 --- a/Demos/Device/ClassDriver/VirtualSerialMouse/asf.xml +++ b/Demos/Device/ClassDriver/VirtualSerialMouse/asf.xml @@ -1,64 +1,64 @@ -<asf xmlversion="1.0"> - <project caption="Virtual Serial CDC and Mouse HID Device Demo (Class Driver APIs)" id="lufa.demos.device.class.cdc_mouse.example.avr8"> - <require idref="lufa.demos.device.class.cdc_mouse"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <project caption="Virtual Serial CDC and Mouse HID Device Demo (Class Driver APIs)" id="lufa.demos.device.class.cdc_mouse.example.xmega"> - <require idref="lufa.demos.device.class.cdc_mouse"/> - <require idref="lufa.boards.dummy.xmega"/> - <generator value="as5_8"/> - - <device-support value="atxmega128a1u"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="32000000UL"/> - <build type="define" name="F_USB" value="48000000UL"/> - </project> - - <module type="application" id="lufa.demos.device.class.cdc_mouse" caption="Virtual Serial CDC and Mouse HID Device Demo (Class Driver APIs)"> - <info type="description" value="summary"> - Virtual Serial and Mouse device demo, implementing a virtual serial channel between the host PC and the device, and a USB mouse. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Device"/> - <keyword value="CDC Class"/> - <keyword value="HID Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="VirtualSerialMouse.txt"/> - <build type="distribute" subtype="user-file" value="LUFA VirtualSerialMouse.inf"/> - - <build type="c-source" value="VirtualSerialMouse.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="VirtualSerialMouse.h"/> - <build type="header-file" value="Descriptors.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.joystick"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Virtual Serial CDC and Mouse HID Device Demo (Class Driver APIs)" id="lufa.demos.device.class.cdc_mouse.example.avr8"> + <require idref="lufa.demos.device.class.cdc_mouse"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <project caption="Virtual Serial CDC and Mouse HID Device Demo (Class Driver APIs)" id="lufa.demos.device.class.cdc_mouse.example.xmega"> + <require idref="lufa.demos.device.class.cdc_mouse"/> + <require idref="lufa.boards.dummy.xmega"/> + <generator value="as5_8"/> + + <device-support value="atxmega128a1u"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="32000000UL"/> + <build type="define" name="F_USB" value="48000000UL"/> + </project> + + <module type="application" id="lufa.demos.device.class.cdc_mouse" caption="Virtual Serial CDC and Mouse HID Device Demo (Class Driver APIs)"> + <info type="description" value="summary"> + Virtual Serial and Mouse device demo, implementing a virtual serial channel between the host PC and the device, and a USB mouse. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Device"/> + <keyword value="CDC Class"/> + <keyword value="HID Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="VirtualSerialMouse.txt"/> + <build type="distribute" subtype="user-file" value="LUFA VirtualSerialMouse.inf"/> + + <build type="c-source" value="VirtualSerialMouse.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="VirtualSerialMouse.h"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.joystick"/> + </module> +</asf> diff --git a/Demos/Device/LowLevel/AudioInput/asf.xml b/Demos/Device/LowLevel/AudioInput/asf.xml index dab549a75..7fec74490 100644 --- a/Demos/Device/LowLevel/AudioInput/asf.xml +++ b/Demos/Device/LowLevel/AudioInput/asf.xml @@ -1,52 +1,52 @@ -<asf xmlversion="1.0"> - <project caption="Audio Input Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.audio_input.example.avr8"> - <require idref="lufa.demos.device.lowlevel.audio_input"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <module type="application" id="lufa.demos.device.lowlevel.audio_input" caption="Audio Input Device Demo (Low Level APIs)"> - <info type="description" value="summary"> - Audio 1.0 Input device demo, implementing a basic USB microphone. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Low Level APIs"/> - <keyword value="USB Device"/> - <keyword value="Audio Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="AudioInput.txt"/> - - <build type="c-source" value="AudioInput.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="AudioInput.h"/> - <build type="header-file" value="Descriptors.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> - <build type="header-file" value="Config/AppConfig.h"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.adc"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.buttons"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Audio Input Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.audio_input.example.avr8"> + <require idref="lufa.demos.device.lowlevel.audio_input"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <module type="application" id="lufa.demos.device.lowlevel.audio_input" caption="Audio Input Device Demo (Low Level APIs)"> + <info type="description" value="summary"> + Audio 1.0 Input device demo, implementing a basic USB microphone. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Low Level APIs"/> + <keyword value="USB Device"/> + <keyword value="Audio Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="AudioInput.txt"/> + + <build type="c-source" value="AudioInput.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="AudioInput.h"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> + <build type="header-file" value="Config/AppConfig.h"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.peripheral.adc"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.buttons"/> + </module> +</asf> diff --git a/Demos/Device/LowLevel/AudioOutput/asf.xml b/Demos/Device/LowLevel/AudioOutput/asf.xml index cddfb8543..f7ad17307 100644 --- a/Demos/Device/LowLevel/AudioOutput/asf.xml +++ b/Demos/Device/LowLevel/AudioOutput/asf.xml @@ -1,51 +1,51 @@ -<asf xmlversion="1.0"> - <project caption="Audio Output Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.audio_output.example.avr8"> - <require idref="lufa.demos.device.lowlevel.audio_output"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <module type="application" id="lufa.demos.device.lowlevel.audio_output" caption="Audio Output Device Demo (Low Level APIs)"> - <info type="description" value="summary"> - Audio 1.0 Output device demo, implementing a basic USB speaker. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Low Level APIs"/> - <keyword value="USB Device"/> - <keyword value="Audio Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="AudioOutput.txt"/> - - <build type="c-source" value="AudioOutput.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="AudioOutput.h"/> - <build type="header-file" value="Descriptors.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> - <build type="header-file" value="Config/AppConfig.h"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.buttons"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Audio Output Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.audio_output.example.avr8"> + <require idref="lufa.demos.device.lowlevel.audio_output"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <module type="application" id="lufa.demos.device.lowlevel.audio_output" caption="Audio Output Device Demo (Low Level APIs)"> + <info type="description" value="summary"> + Audio 1.0 Output device demo, implementing a basic USB speaker. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Low Level APIs"/> + <keyword value="USB Device"/> + <keyword value="Audio Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="AudioOutput.txt"/> + + <build type="c-source" value="AudioOutput.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="AudioOutput.h"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> + <build type="header-file" value="Config/AppConfig.h"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.buttons"/> + </module> +</asf> diff --git a/Demos/Device/LowLevel/DualVirtualSerial/asf.xml b/Demos/Device/LowLevel/DualVirtualSerial/asf.xml index 133d1b4f8..695160830 100644 --- a/Demos/Device/LowLevel/DualVirtualSerial/asf.xml +++ b/Demos/Device/LowLevel/DualVirtualSerial/asf.xml @@ -1,62 +1,62 @@ -<asf xmlversion="1.0"> - <project caption="Dual Virtual Serial Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.dual_cdc.example.avr8"> - <require idref="lufa.demos.device.lowlevel.dual_cdc"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <project caption="Dual Virtual Serial Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.dual_cdc.example.xmega"> - <require idref="lufa.demos.device.lowlevel.dual_cdc"/> - <require idref="lufa.boards.dummy.xmega"/> - <generator value="as5_8"/> - - <device-support value="atxmega128a1u"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="32000000UL"/> - <build type="define" name="F_USB" value="48000000UL"/> - </project> - - <module type="application" id="lufa.demos.device.lowlevel.dual_cdc" caption="Dual Virtual Serial Device Demo (Low Level APIs)"> - <info type="description" value="summary"> - Dual Virtual Serial (CDC) demo, implementing a pair of virtual serial port interfaces. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Low Level APIs"/> - <keyword value="USB Device"/> - <keyword value="CDC Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="DualVirtualSerial.txt"/> - <build type="distribute" subtype="user-file" value="LUFA DualVirtualSerial.inf"/> - - <build type="c-source" value="DualVirtualSerial.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="DualVirtualSerial.h"/> - <build type="header-file" value="Descriptors.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.joystick"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Dual Virtual Serial Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.dual_cdc.example.avr8"> + <require idref="lufa.demos.device.lowlevel.dual_cdc"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <project caption="Dual Virtual Serial Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.dual_cdc.example.xmega"> + <require idref="lufa.demos.device.lowlevel.dual_cdc"/> + <require idref="lufa.boards.dummy.xmega"/> + <generator value="as5_8"/> + + <device-support value="atxmega128a1u"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="32000000UL"/> + <build type="define" name="F_USB" value="48000000UL"/> + </project> + + <module type="application" id="lufa.demos.device.lowlevel.dual_cdc" caption="Dual Virtual Serial Device Demo (Low Level APIs)"> + <info type="description" value="summary"> + Dual Virtual Serial (CDC) demo, implementing a pair of virtual serial port interfaces. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Low Level APIs"/> + <keyword value="USB Device"/> + <keyword value="CDC Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="DualVirtualSerial.txt"/> + <build type="distribute" subtype="user-file" value="LUFA DualVirtualSerial.inf"/> + + <build type="c-source" value="DualVirtualSerial.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="DualVirtualSerial.h"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.joystick"/> + </module> +</asf> diff --git a/Demos/Device/LowLevel/GenericHID/asf.xml b/Demos/Device/LowLevel/GenericHID/asf.xml index cf1fb8009..6e98adca8 100644 --- a/Demos/Device/LowLevel/GenericHID/asf.xml +++ b/Demos/Device/LowLevel/GenericHID/asf.xml @@ -1,63 +1,63 @@ -<asf xmlversion="1.0"> - <project caption="Generic HID Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.generic_hid.example.avr8"> - <require idref="lufa.demos.device.lowlevel.generic_hid"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <project caption="Generic HID Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.generic_hid.example.xmega"> - <require idref="lufa.demos.device.lowlevel.generic_hid"/> - <require idref="lufa.boards.dummy.xmega"/> - <generator value="as5_8"/> - - <device-support value="atxmega128a1u"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="32000000UL"/> - <build type="define" name="F_USB" value="48000000UL"/> - </project> - - <module type="application" id="lufa.demos.device.lowlevel.generic_hid" caption="Generic HID Device Demo (Low Level APIs)"> - <info type="description" value="summary"> - Generic HID device demo, implementing a device whose LEDs can be controlled via HID messages from the host. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Low Level APIs"/> - <keyword value="USB Device"/> - <keyword value="HID Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="GenericHID.txt"/> - <build type="distribute" subtype="directory" value="HostTestApp"/> - - <build type="c-source" value="GenericHID.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="GenericHID.h"/> - <build type="header-file" value="Descriptors.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> - <build type="header-file" value="Config/AppConfig.h"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Generic HID Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.generic_hid.example.avr8"> + <require idref="lufa.demos.device.lowlevel.generic_hid"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <project caption="Generic HID Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.generic_hid.example.xmega"> + <require idref="lufa.demos.device.lowlevel.generic_hid"/> + <require idref="lufa.boards.dummy.xmega"/> + <generator value="as5_8"/> + + <device-support value="atxmega128a1u"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="32000000UL"/> + <build type="define" name="F_USB" value="48000000UL"/> + </project> + + <module type="application" id="lufa.demos.device.lowlevel.generic_hid" caption="Generic HID Device Demo (Low Level APIs)"> + <info type="description" value="summary"> + Generic HID device demo, implementing a device whose LEDs can be controlled via HID messages from the host. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Low Level APIs"/> + <keyword value="USB Device"/> + <keyword value="HID Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="GenericHID.txt"/> + <build type="distribute" subtype="directory" value="HostTestApp"/> + + <build type="c-source" value="GenericHID.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="GenericHID.h"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> + <build type="header-file" value="Config/AppConfig.h"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Demos/Device/LowLevel/Joystick/asf.xml b/Demos/Device/LowLevel/Joystick/asf.xml index d37741bac..c67eb642b 100644 --- a/Demos/Device/LowLevel/Joystick/asf.xml +++ b/Demos/Device/LowLevel/Joystick/asf.xml @@ -1,62 +1,62 @@ -<asf xmlversion="1.0"> - <project caption="Joystick HID Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.joystick.example.avr8"> - <require idref="lufa.demos.device.lowlevel.joystick"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <project caption="Joystick HID Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.joystick.example.xmega"> - <require idref="lufa.demos.device.lowlevel.joystick"/> - <require idref="lufa.boards.dummy.xmega"/> - <generator value="as5_8"/> - - <device-support value="atxmega128a1u"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="32000000UL"/> - <build type="define" name="F_USB" value="48000000UL"/> - </project> - - <module type="application" id="lufa.demos.device.lowlevel.joystick" caption="Joystick HID Device Demo (Low Level APIs)"> - <info type="description" value="summary"> - Joystick HID device demo, implementing a basic USB joystick that can send movement information to the host. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Low Level APIs"/> - <keyword value="USB Device"/> - <keyword value="HID Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="Joystick.txt"/> - - <build type="c-source" value="Joystick.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="Joystick.h"/> - <build type="header-file" value="Descriptors.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.joystick"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Joystick HID Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.joystick.example.avr8"> + <require idref="lufa.demos.device.lowlevel.joystick"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <project caption="Joystick HID Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.joystick.example.xmega"> + <require idref="lufa.demos.device.lowlevel.joystick"/> + <require idref="lufa.boards.dummy.xmega"/> + <generator value="as5_8"/> + + <device-support value="atxmega128a1u"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="32000000UL"/> + <build type="define" name="F_USB" value="48000000UL"/> + </project> + + <module type="application" id="lufa.demos.device.lowlevel.joystick" caption="Joystick HID Device Demo (Low Level APIs)"> + <info type="description" value="summary"> + Joystick HID device demo, implementing a basic USB joystick that can send movement information to the host. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Low Level APIs"/> + <keyword value="USB Device"/> + <keyword value="HID Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="Joystick.txt"/> + + <build type="c-source" value="Joystick.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="Joystick.h"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.joystick"/> + </module> +</asf> diff --git a/Demos/Device/LowLevel/Keyboard/asf.xml b/Demos/Device/LowLevel/Keyboard/asf.xml index 4d386f46f..2280f4dd6 100644 --- a/Demos/Device/LowLevel/Keyboard/asf.xml +++ b/Demos/Device/LowLevel/Keyboard/asf.xml @@ -1,62 +1,62 @@ -<asf xmlversion="1.0"> - <project caption="Keyboard HID Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.keyboard.example.avr8"> - <require idref="lufa.demos.device.lowlevel.keyboard"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <project caption="Keyboard HID Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.keyboard.example.xmega"> - <require idref="lufa.demos.device.lowlevel.keyboard"/> - <require idref="lufa.boards.dummy.xmega"/> - <generator value="as5_8"/> - - <device-support value="atxmega128a1u"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="32000000UL"/> - <build type="define" name="F_USB" value="48000000UL"/> - </project> - - <module type="application" id="lufa.demos.device.lowlevel.keyboard" caption="Keyboard HID Device Demo (Low Level APIs)"> - <info type="description" value="summary"> - Keyboard HID device demo, implementing a basic USB keyboard that can send key press information to the host. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Low Level APIs"/> - <keyword value="USB Device"/> - <keyword value="HID Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="Keyboard.txt"/> - - <build type="c-source" value="Keyboard.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="Keyboard.h"/> - <build type="header-file" value="Descriptors.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.joystick"/> - <require idref="lufa.drivers.board.buttons"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Keyboard HID Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.keyboard.example.avr8"> + <require idref="lufa.demos.device.lowlevel.keyboard"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <project caption="Keyboard HID Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.keyboard.example.xmega"> + <require idref="lufa.demos.device.lowlevel.keyboard"/> + <require idref="lufa.boards.dummy.xmega"/> + <generator value="as5_8"/> + + <device-support value="atxmega128a1u"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="32000000UL"/> + <build type="define" name="F_USB" value="48000000UL"/> + </project> + + <module type="application" id="lufa.demos.device.lowlevel.keyboard" caption="Keyboard HID Device Demo (Low Level APIs)"> + <info type="description" value="summary"> + Keyboard HID device demo, implementing a basic USB keyboard that can send key press information to the host. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Low Level APIs"/> + <keyword value="USB Device"/> + <keyword value="HID Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="Keyboard.txt"/> + + <build type="c-source" value="Keyboard.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="Keyboard.h"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.joystick"/> + <require idref="lufa.drivers.board.buttons"/> + </module> +</asf> diff --git a/Demos/Device/LowLevel/KeyboardMouse/asf.xml b/Demos/Device/LowLevel/KeyboardMouse/asf.xml index d44bb8043..77e1a6642 100644 --- a/Demos/Device/LowLevel/KeyboardMouse/asf.xml +++ b/Demos/Device/LowLevel/KeyboardMouse/asf.xml @@ -1,62 +1,62 @@ -<asf xmlversion="1.0"> - <project caption="Keyboard and Mouse HID Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.keyboard_mouse.example.avr8"> - <require idref="lufa.demos.device.lowlevel.keyboard_mouse"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <project caption="Keyboard and Mouse HID Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.keyboard_mouse.example.xmega"> - <require idref="lufa.demos.device.lowlevel.keyboard_mouse"/> - <require idref="lufa.boards.dummy.xmega"/> - <generator value="as5_8"/> - - <device-support value="atxmega128a1u"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="32000000UL"/> - <build type="define" name="F_USB" value="48000000UL"/> - </project> - - <module type="application" id="lufa.demos.device.lowlevel.keyboard_mouse" caption="Keyboard and Mouse HID Device Demo (Low Level APIs)"> - <info type="description" value="summary"> - Keyboard and Mouse HID device demo, implementing a basic USB keyboard and mouse using a pair of HID interfaces. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Low Level APIs"/> - <keyword value="USB Device"/> - <keyword value="HID Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="KeyboardMouse.txt"/> - - <build type="c-source" value="KeyboardMouse.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="KeyboardMouse.h"/> - <build type="header-file" value="Descriptors.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.joystick"/> - <require idref="lufa.drivers.board.buttons"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Keyboard and Mouse HID Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.keyboard_mouse.example.avr8"> + <require idref="lufa.demos.device.lowlevel.keyboard_mouse"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <project caption="Keyboard and Mouse HID Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.keyboard_mouse.example.xmega"> + <require idref="lufa.demos.device.lowlevel.keyboard_mouse"/> + <require idref="lufa.boards.dummy.xmega"/> + <generator value="as5_8"/> + + <device-support value="atxmega128a1u"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="32000000UL"/> + <build type="define" name="F_USB" value="48000000UL"/> + </project> + + <module type="application" id="lufa.demos.device.lowlevel.keyboard_mouse" caption="Keyboard and Mouse HID Device Demo (Low Level APIs)"> + <info type="description" value="summary"> + Keyboard and Mouse HID device demo, implementing a basic USB keyboard and mouse using a pair of HID interfaces. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Low Level APIs"/> + <keyword value="USB Device"/> + <keyword value="HID Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="KeyboardMouse.txt"/> + + <build type="c-source" value="KeyboardMouse.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="KeyboardMouse.h"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.joystick"/> + <require idref="lufa.drivers.board.buttons"/> + </module> +</asf> diff --git a/Demos/Device/LowLevel/MIDI/asf.xml b/Demos/Device/LowLevel/MIDI/asf.xml index 477b7d749..896a5e2ae 100644 --- a/Demos/Device/LowLevel/MIDI/asf.xml +++ b/Demos/Device/LowLevel/MIDI/asf.xml @@ -1,62 +1,62 @@ -<asf xmlversion="1.0"> - <project caption="MIDI Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.midi.example.avr8"> - <require idref="lufa.demos.device.lowlevel.midi"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <project caption="MIDI Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.midi.example.xmega"> - <require idref="lufa.demos.device.lowlevel.midi"/> - <require idref="lufa.boards.dummy.xmega"/> - <generator value="as5_8"/> - - <device-support value="atxmega128a1u"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="32000000UL"/> - <build type="define" name="F_USB" value="48000000UL"/> - </project> - - <module type="application" id="lufa.demos.device.lowlevel.midi" caption="MIDI Device Demo (Low Level APIs)"> - <info type="description" value="summary"> - MIDI device demo, implementing a basic USB MIDI device that can send messages to the host. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Low Level APIs"/> - <keyword value="USB Device"/> - <keyword value="MIDI Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="MIDI.txt"/> - - <build type="c-source" value="MIDI.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="MIDI.h"/> - <build type="header-file" value="Descriptors.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.joystick"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="MIDI Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.midi.example.avr8"> + <require idref="lufa.demos.device.lowlevel.midi"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <project caption="MIDI Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.midi.example.xmega"> + <require idref="lufa.demos.device.lowlevel.midi"/> + <require idref="lufa.boards.dummy.xmega"/> + <generator value="as5_8"/> + + <device-support value="atxmega128a1u"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="32000000UL"/> + <build type="define" name="F_USB" value="48000000UL"/> + </project> + + <module type="application" id="lufa.demos.device.lowlevel.midi" caption="MIDI Device Demo (Low Level APIs)"> + <info type="description" value="summary"> + MIDI device demo, implementing a basic USB MIDI device that can send messages to the host. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Low Level APIs"/> + <keyword value="USB Device"/> + <keyword value="MIDI Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="MIDI.txt"/> + + <build type="c-source" value="MIDI.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="MIDI.h"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.joystick"/> + </module> +</asf> diff --git a/Demos/Device/LowLevel/MassStorage/asf.xml b/Demos/Device/LowLevel/MassStorage/asf.xml index 68ae2c28e..a0612bb17 100644 --- a/Demos/Device/LowLevel/MassStorage/asf.xml +++ b/Demos/Device/LowLevel/MassStorage/asf.xml @@ -1,67 +1,67 @@ -<asf xmlversion="1.0"> - <project caption="Mass Storage Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.mass_storage.example.avr8"> - <require idref="lufa.demos.device.lowlevel.mass_storage"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <project caption="Mass Storage Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.mass_storage.example.xmega"> - <require idref="lufa.demos.device.lowlevel.mass_storage"/> - <require idref="lufa.boards.dummy.xmega"/> - <generator value="as5_8"/> - - <device-support value="atxmega128a1u"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="32000000UL"/> - <build type="define" name="F_USB" value="48000000UL"/> - </project> - - <module type="application" id="lufa.demos.device.lowlevel.mass_storage" caption="Mass Storage Device Demo (Low Level APIs)"> - <info type="description" value="summary"> - Mass Storage device demo, implementing a basic USB storage disk using a Dataflash memory IC. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Low Level APIs"/> - <keyword value="USB Device"/> - <keyword value="Mass Storage Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="MassStorage.txt"/> - - <build type="c-source" value="MassStorage.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="c-source" value="Lib/DataflashManager.c"/> - <build type="c-source" value="Lib/SCSI.c"/> - <build type="header-file" value="MassStorage.h"/> - <build type="header-file" value="Descriptors.h"/> - <build type="header-file" value="Lib/DataflashManager.h"/> - <build type="header-file" value="Lib/SCSI.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> - <build type="header-file" value="Config/AppConfig.h"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.dataflash"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Mass Storage Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.mass_storage.example.avr8"> + <require idref="lufa.demos.device.lowlevel.mass_storage"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <project caption="Mass Storage Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.mass_storage.example.xmega"> + <require idref="lufa.demos.device.lowlevel.mass_storage"/> + <require idref="lufa.boards.dummy.xmega"/> + <generator value="as5_8"/> + + <device-support value="atxmega128a1u"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="32000000UL"/> + <build type="define" name="F_USB" value="48000000UL"/> + </project> + + <module type="application" id="lufa.demos.device.lowlevel.mass_storage" caption="Mass Storage Device Demo (Low Level APIs)"> + <info type="description" value="summary"> + Mass Storage device demo, implementing a basic USB storage disk using a Dataflash memory IC. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Low Level APIs"/> + <keyword value="USB Device"/> + <keyword value="Mass Storage Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="MassStorage.txt"/> + + <build type="c-source" value="MassStorage.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="c-source" value="Lib/DataflashManager.c"/> + <build type="c-source" value="Lib/SCSI.c"/> + <build type="header-file" value="MassStorage.h"/> + <build type="header-file" value="Descriptors.h"/> + <build type="header-file" value="Lib/DataflashManager.h"/> + <build type="header-file" value="Lib/SCSI.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> + <build type="header-file" value="Config/AppConfig.h"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.dataflash"/> + </module> +</asf> diff --git a/Demos/Device/LowLevel/Mouse/asf.xml b/Demos/Device/LowLevel/Mouse/asf.xml index ac21d0771..b62a3c5d0 100644 --- a/Demos/Device/LowLevel/Mouse/asf.xml +++ b/Demos/Device/LowLevel/Mouse/asf.xml @@ -1,62 +1,62 @@ -<asf xmlversion="1.0"> - <project caption="Mouse HID Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.mouse.example.avr8"> - <require idref="lufa.demos.device.lowlevel.mouse"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <project caption="Mouse HID Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.mouse.example.xmega"> - <require idref="lufa.demos.device.lowlevel.mouse"/> - <require idref="lufa.boards.dummy.xmega"/> - <generator value="as5_8"/> - - <device-support value="atxmega128a1u"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="32000000UL"/> - <build type="define" name="F_USB" value="48000000UL"/> - </project> - - <module type="application" id="lufa.demos.device.lowlevel.mouse" caption="Mouse HID Device Demo (Low Level APIs)"> - <info type="description" value="summary"> - Mouse device demo, implementing a basic USB mouse device that can send movement information to the host. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Low Level APIs"/> - <keyword value="USB Device"/> - <keyword value="HID Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="Mouse.txt"/> - - <build type="c-source" value="Mouse.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="Mouse.h"/> - <build type="header-file" value="Descriptors.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.joystick"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Mouse HID Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.mouse.example.avr8"> + <require idref="lufa.demos.device.lowlevel.mouse"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <project caption="Mouse HID Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.mouse.example.xmega"> + <require idref="lufa.demos.device.lowlevel.mouse"/> + <require idref="lufa.boards.dummy.xmega"/> + <generator value="as5_8"/> + + <device-support value="atxmega128a1u"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="32000000UL"/> + <build type="define" name="F_USB" value="48000000UL"/> + </project> + + <module type="application" id="lufa.demos.device.lowlevel.mouse" caption="Mouse HID Device Demo (Low Level APIs)"> + <info type="description" value="summary"> + Mouse device demo, implementing a basic USB mouse device that can send movement information to the host. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Low Level APIs"/> + <keyword value="USB Device"/> + <keyword value="HID Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="Mouse.txt"/> + + <build type="c-source" value="Mouse.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="Mouse.h"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.joystick"/> + </module> +</asf> diff --git a/Demos/Device/LowLevel/RNDISEthernet/asf.xml b/Demos/Device/LowLevel/RNDISEthernet/asf.xml index 5bdbf635f..7970b2b04 100644 --- a/Demos/Device/LowLevel/RNDISEthernet/asf.xml +++ b/Demos/Device/LowLevel/RNDISEthernet/asf.xml @@ -1,86 +1,86 @@ -<asf xmlversion="1.0"> - <project caption="RNDIS Ethernet Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.rndis.example.avr8"> - <require idref="lufa.demos.device.lowlevel.rndis"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <project caption="RNDIS Ethernet Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.rndis.example.xmega"> - <require idref="lufa.demos.device.lowlevel.rndis"/> - <require idref="lufa.boards.dummy.xmega"/> - <generator value="as5_8"/> - - <device-support value="atxmega128a1u"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="32000000UL"/> - <build type="define" name="F_USB" value="48000000UL"/> - </project> - - <module type="application" id="lufa.demos.device.lowlevel.rndis" caption="RNDIS Ethernet Device Demo (Low Level APIs)"> - <info type="description" value="summary"> - Microsoft RNDIS Ethernet networking device demo, implementing a basic HTTP webserver. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Low Level APIs"/> - <keyword value="USB Device"/> - <keyword value="RNDIS Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="RNDISEthernet.txt"/> - <build type="distribute" subtype="user-file" value="LUFA RNDIS.inf"/> - - <build type="c-source" value="RNDISEthernet.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="c-source" value="Lib/ARP.c"/> - <build type="c-source" value="Lib/DHCP.c"/> - <build type="c-source" value="Lib/Ethernet.c"/> - <build type="c-source" value="Lib/ICMP.c"/> - <build type="c-source" value="Lib/IP.c"/> - <build type="c-source" value="Lib/ProtocolDecoders.c"/> - <build type="c-source" value="Lib/RNDIS.c"/> - <build type="c-source" value="Lib/TCP.c"/> - <build type="c-source" value="Lib/UDP.c"/> - <build type="c-source" value="Lib/Webserver.c"/> - <build type="header-file" value="RNDISEthernet.h"/> - <build type="header-file" value="Descriptors.h"/> - <build type="header-file" value="Lib/ARP.h"/> - <build type="header-file" value="Lib/DHCP.h"/> - <build type="header-file" value="Lib/Ethernet.h"/> - <build type="header-file" value="Lib/ICMP.h"/> - <build type="header-file" value="Lib/IP.h"/> - <build type="header-file" value="Lib/ProtocolDecoders.h"/> - <build type="header-file" value="Lib/RNDIS.h"/> - <build type="header-file" value="Lib/TCP.h"/> - <build type="header-file" value="Lib/UDP.h"/> - <build type="header-file" value="Lib/Webserver.h"/> - <build type="header-file" value="Lib/EthernetProtocols.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> - <build type="header-file" value="Config/AppConfig.h"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.misc.ansi"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="RNDIS Ethernet Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.rndis.example.avr8"> + <require idref="lufa.demos.device.lowlevel.rndis"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <project caption="RNDIS Ethernet Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.rndis.example.xmega"> + <require idref="lufa.demos.device.lowlevel.rndis"/> + <require idref="lufa.boards.dummy.xmega"/> + <generator value="as5_8"/> + + <device-support value="atxmega128a1u"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="32000000UL"/> + <build type="define" name="F_USB" value="48000000UL"/> + </project> + + <module type="application" id="lufa.demos.device.lowlevel.rndis" caption="RNDIS Ethernet Device Demo (Low Level APIs)"> + <info type="description" value="summary"> + Microsoft RNDIS Ethernet networking device demo, implementing a basic HTTP webserver. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Low Level APIs"/> + <keyword value="USB Device"/> + <keyword value="RNDIS Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="RNDISEthernet.txt"/> + <build type="distribute" subtype="user-file" value="LUFA RNDIS.inf"/> + + <build type="c-source" value="RNDISEthernet.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="c-source" value="Lib/ARP.c"/> + <build type="c-source" value="Lib/DHCP.c"/> + <build type="c-source" value="Lib/Ethernet.c"/> + <build type="c-source" value="Lib/ICMP.c"/> + <build type="c-source" value="Lib/IP.c"/> + <build type="c-source" value="Lib/ProtocolDecoders.c"/> + <build type="c-source" value="Lib/RNDIS.c"/> + <build type="c-source" value="Lib/TCP.c"/> + <build type="c-source" value="Lib/UDP.c"/> + <build type="c-source" value="Lib/Webserver.c"/> + <build type="header-file" value="RNDISEthernet.h"/> + <build type="header-file" value="Descriptors.h"/> + <build type="header-file" value="Lib/ARP.h"/> + <build type="header-file" value="Lib/DHCP.h"/> + <build type="header-file" value="Lib/Ethernet.h"/> + <build type="header-file" value="Lib/ICMP.h"/> + <build type="header-file" value="Lib/IP.h"/> + <build type="header-file" value="Lib/ProtocolDecoders.h"/> + <build type="header-file" value="Lib/RNDIS.h"/> + <build type="header-file" value="Lib/TCP.h"/> + <build type="header-file" value="Lib/UDP.h"/> + <build type="header-file" value="Lib/Webserver.h"/> + <build type="header-file" value="Lib/EthernetProtocols.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> + <build type="header-file" value="Config/AppConfig.h"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.peripheral.usart"/> + <require idref="lufa.drivers.misc.ansi"/> + </module> +</asf> diff --git a/Demos/Device/LowLevel/VirtualSerial/asf.xml b/Demos/Device/LowLevel/VirtualSerial/asf.xml index 1eb328b51..bf04660fe 100644 --- a/Demos/Device/LowLevel/VirtualSerial/asf.xml +++ b/Demos/Device/LowLevel/VirtualSerial/asf.xml @@ -1,63 +1,63 @@ -<asf xmlversion="1.0"> - <project caption="Virtual Serial CDC Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.cdc.example.avr8"> - <require idref="lufa.demos.device.lowlevel.cdc"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <project caption="Virtual Serial CDC Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.cdc.example.xmega"> - <require idref="lufa.demos.device.lowlevel.cdc"/> - <require idref="lufa.boards.dummy.xmega"/> - <generator value="as5_8"/> - - <device-support value="atxmega128a1u"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="32000000UL"/> - <build type="define" name="F_USB" value="48000000UL"/> - </project> - - <module type="application" id="lufa.demos.device.lowlevel.cdc" caption="Virtual Serial CDC Device Demo (Low Level APIs)"> - <info type="description" value="summary"> - Virtual Serial device demo, implementing a virtual serial channel between the host PC and the device. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Low Level APIs"/> - <keyword value="USB Device"/> - <keyword value="CDC Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="VirtualSerial.txt"/> - <build type="distribute" subtype="user-file" value="LUFA VirtualSerial.inf"/> - - <build type="c-source" value="VirtualSerial.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="VirtualSerial.h"/> - <build type="header-file" value="Descriptors.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.joystick"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Virtual Serial CDC Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.cdc.example.avr8"> + <require idref="lufa.demos.device.lowlevel.cdc"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <project caption="Virtual Serial CDC Device Demo (Low Level APIs)" id="lufa.demos.device.lowlevel.cdc.example.xmega"> + <require idref="lufa.demos.device.lowlevel.cdc"/> + <require idref="lufa.boards.dummy.xmega"/> + <generator value="as5_8"/> + + <device-support value="atxmega128a1u"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="32000000UL"/> + <build type="define" name="F_USB" value="48000000UL"/> + </project> + + <module type="application" id="lufa.demos.device.lowlevel.cdc" caption="Virtual Serial CDC Device Demo (Low Level APIs)"> + <info type="description" value="summary"> + Virtual Serial device demo, implementing a virtual serial channel between the host PC and the device. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Low Level APIs"/> + <keyword value="USB Device"/> + <keyword value="CDC Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="VirtualSerial.txt"/> + <build type="distribute" subtype="user-file" value="LUFA VirtualSerial.inf"/> + + <build type="c-source" value="VirtualSerial.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="VirtualSerial.h"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.joystick"/> + </module> +</asf> diff --git a/Demos/DualRole/ClassDriver/MouseHostDevice/asf.xml b/Demos/DualRole/ClassDriver/MouseHostDevice/asf.xml index 7cd93babb..df36eb9af 100644 --- a/Demos/DualRole/ClassDriver/MouseHostDevice/asf.xml +++ b/Demos/DualRole/ClassDriver/MouseHostDevice/asf.xml @@ -1,56 +1,56 @@ -<asf xmlversion="1.0"> - <project caption="Mouse HID Dual USB Mode Demo (Class Driver APIs)" id="lufa.demos.dualrole.class.mouse.example.avr8"> - <require idref="lufa.demos.dualrole.class.mouse"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <module type="application" id="lufa.demos.dualrole.class.mouse" caption="Mouse HID Dual USB Mode Demo (Class Driver APIs)"> - <info type="description" value="summary"> - Mouse host and device dual role demo, implementing a basic mouse device and host. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Dual Role"/> - <keyword value="HID Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="MouseHostDevice.txt"/> - - <build type="c-source" value="MouseHostDevice.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="c-source" value="DeviceFunctions.c"/> - <build type="c-source" value="HostFunctions.c"/> - <build type="header-file" value="MouseHostDevice.h"/> - <build type="header-file" value="Descriptors.h"/> - <build type="header-file" value="DeviceFunctions.h"/> - <build type="header-file" value="HostFunctions.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.misc.ansi"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.joystick"/> - <require idref="lufa.drivers.board.buttons"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Mouse HID Dual USB Mode Demo (Class Driver APIs)" id="lufa.demos.dualrole.class.mouse.example.avr8"> + <require idref="lufa.demos.dualrole.class.mouse"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <module type="application" id="lufa.demos.dualrole.class.mouse" caption="Mouse HID Dual USB Mode Demo (Class Driver APIs)"> + <info type="description" value="summary"> + Mouse host and device dual role demo, implementing a basic mouse device and host. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Dual Role"/> + <keyword value="HID Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="MouseHostDevice.txt"/> + + <build type="c-source" value="MouseHostDevice.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="c-source" value="DeviceFunctions.c"/> + <build type="c-source" value="HostFunctions.c"/> + <build type="header-file" value="MouseHostDevice.h"/> + <build type="header-file" value="Descriptors.h"/> + <build type="header-file" value="DeviceFunctions.h"/> + <build type="header-file" value="HostFunctions.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.peripheral.usart"/> + <require idref="lufa.drivers.misc.ansi"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.joystick"/> + <require idref="lufa.drivers.board.buttons"/> + </module> +</asf> diff --git a/Demos/Host/ClassDriver/AndroidAccessoryHost/asf.xml b/Demos/Host/ClassDriver/AndroidAccessoryHost/asf.xml index 59efae361..dfd74fd8a 100644 --- a/Demos/Host/ClassDriver/AndroidAccessoryHost/asf.xml +++ b/Demos/Host/ClassDriver/AndroidAccessoryHost/asf.xml @@ -1,49 +1,49 @@ -<asf xmlversion="1.0"> - <project caption="Android Accessory Host Demo (Class Driver APIs)" id="lufa.demos.host.class.android.example.avr8"> - <require idref="lufa.demos.host.class.android"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <module type="application" id="lufa.demos.host.class.android" caption="Android Accessory Host Demo (Class Driver APIs)"> - <info type="description" value="summary"> - Android Accessory Host demo, implementing a basic USB device whose LEDs can be controlled via an Android device. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Host"/> - <keyword value="Android Accessory Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="AndroidAccessoryHost.txt"/> - <build type="distribute" subtype="directory" value="AndroidHostApp"/> - - <build type="c-source" value="AndroidAccessoryHost.c"/> - <build type="header-file" value="AndroidAccessoryHost.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.misc.ansi"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Android Accessory Host Demo (Class Driver APIs)" id="lufa.demos.host.class.android.example.avr8"> + <require idref="lufa.demos.host.class.android"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <module type="application" id="lufa.demos.host.class.android" caption="Android Accessory Host Demo (Class Driver APIs)"> + <info type="description" value="summary"> + Android Accessory Host demo, implementing a basic USB device whose LEDs can be controlled via an Android device. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Host"/> + <keyword value="Android Accessory Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="AndroidAccessoryHost.txt"/> + <build type="distribute" subtype="directory" value="AndroidHostApp"/> + + <build type="c-source" value="AndroidAccessoryHost.c"/> + <build type="header-file" value="AndroidAccessoryHost.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.peripheral.usart"/> + <require idref="lufa.drivers.misc.ansi"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Demos/Host/ClassDriver/AudioInputHost/asf.xml b/Demos/Host/ClassDriver/AudioInputHost/asf.xml index c2daffbdf..6bcda3794 100644 --- a/Demos/Host/ClassDriver/AudioInputHost/asf.xml +++ b/Demos/Host/ClassDriver/AudioInputHost/asf.xml @@ -1,48 +1,48 @@ -<asf xmlversion="1.0"> - <project caption="Audio Input Host Demo (Class Driver APIs)" id="lufa.demos.host.class.audio_input.example.avr8"> - <require idref="lufa.demos.host.class.audio_input"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <module type="application" id="lufa.demos.host.class.audio_input" caption="Audio Input Host Demo (Class Driver APIs)"> - <info type="description" value="summary"> - Audio Input Host demo, implementing a basic USB audio sink that can output incoming audio data to a speaker. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Host"/> - <keyword value="Audio Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="AudioInputHost.txt"/> - - <build type="c-source" value="AudioInputHost.c"/> - <build type="header-file" value="AudioInputHost.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.misc.ansi"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Audio Input Host Demo (Class Driver APIs)" id="lufa.demos.host.class.audio_input.example.avr8"> + <require idref="lufa.demos.host.class.audio_input"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <module type="application" id="lufa.demos.host.class.audio_input" caption="Audio Input Host Demo (Class Driver APIs)"> + <info type="description" value="summary"> + Audio Input Host demo, implementing a basic USB audio sink that can output incoming audio data to a speaker. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Host"/> + <keyword value="Audio Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="AudioInputHost.txt"/> + + <build type="c-source" value="AudioInputHost.c"/> + <build type="header-file" value="AudioInputHost.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.peripheral.usart"/> + <require idref="lufa.drivers.misc.ansi"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Demos/Host/ClassDriver/AudioOutputHost/asf.xml b/Demos/Host/ClassDriver/AudioOutputHost/asf.xml index 6bd97286b..39d735284 100644 --- a/Demos/Host/ClassDriver/AudioOutputHost/asf.xml +++ b/Demos/Host/ClassDriver/AudioOutputHost/asf.xml @@ -1,52 +1,52 @@ -<asf xmlversion="1.0"> - <project caption="Audio Output Host Demo (Class Driver APIs)" id="lufa.demos.host.class.audio_output.example.avr8"> - <require idref="lufa.demos.host.class.audio_output"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <module type="application" id="lufa.demos.host.class.audio_output" caption="Audio Output Host Demo (Class Driver APIs)"> - <info type="description" value="summary"> - Audio Output Host demo, implementing a basic USB audio source that can output audio data to an attached device. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Host"/> - <keyword value="Audio Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="AudioOutputHost.txt"/> - - <build type="c-source" value="AudioOutputHost.c"/> - <build type="header-file" value="AudioOutputHost.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> - <build type="header-file" value="Config/AppConfig.h"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.peripheral.adc"/> - <require idref="lufa.drivers.misc.ansi"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.buttons"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Audio Output Host Demo (Class Driver APIs)" id="lufa.demos.host.class.audio_output.example.avr8"> + <require idref="lufa.demos.host.class.audio_output"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <module type="application" id="lufa.demos.host.class.audio_output" caption="Audio Output Host Demo (Class Driver APIs)"> + <info type="description" value="summary"> + Audio Output Host demo, implementing a basic USB audio source that can output audio data to an attached device. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Host"/> + <keyword value="Audio Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="AudioOutputHost.txt"/> + + <build type="c-source" value="AudioOutputHost.c"/> + <build type="header-file" value="AudioOutputHost.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> + <build type="header-file" value="Config/AppConfig.h"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.peripheral.usart"/> + <require idref="lufa.drivers.peripheral.adc"/> + <require idref="lufa.drivers.misc.ansi"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.buttons"/> + </module> +</asf> diff --git a/Demos/Host/ClassDriver/JoystickHostWithParser/asf.xml b/Demos/Host/ClassDriver/JoystickHostWithParser/asf.xml index 8899d8139..1ff6a804c 100644 --- a/Demos/Host/ClassDriver/JoystickHostWithParser/asf.xml +++ b/Demos/Host/ClassDriver/JoystickHostWithParser/asf.xml @@ -1,48 +1,48 @@ -<asf xmlversion="1.0"> - <project caption="Joystick HID (with parser) Host Demo (Class Driver APIs)" id="lufa.demos.host.class.joystick_parser.example.avr8"> - <require idref="lufa.demos.host.class.joystick_parser"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <module type="application" id="lufa.demos.host.class.joystick_parser" caption="Joystick HID (with parser) Host Demo (Class Driver APIs)"> - <info type="description" value="summary"> - Joystick HID Host demo with HID parser, implementing a basic USB joystick host that can display movement data on the board LEDs. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Host"/> - <keyword value="HID Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="JoystickHostWithParser.txt"/> - - <build type="c-source" value="JoystickHostWithParser.c"/> - <build type="header-file" value="JoystickHostWithParser.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.misc.ansi"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Joystick HID (with parser) Host Demo (Class Driver APIs)" id="lufa.demos.host.class.joystick_parser.example.avr8"> + <require idref="lufa.demos.host.class.joystick_parser"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <module type="application" id="lufa.demos.host.class.joystick_parser" caption="Joystick HID (with parser) Host Demo (Class Driver APIs)"> + <info type="description" value="summary"> + Joystick HID Host demo with HID parser, implementing a basic USB joystick host that can display movement data on the board LEDs. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Host"/> + <keyword value="HID Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="JoystickHostWithParser.txt"/> + + <build type="c-source" value="JoystickHostWithParser.c"/> + <build type="header-file" value="JoystickHostWithParser.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.peripheral.usart"/> + <require idref="lufa.drivers.misc.ansi"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Demos/Host/ClassDriver/KeyboardHost/asf.xml b/Demos/Host/ClassDriver/KeyboardHost/asf.xml index 46cd71fe7..fd19216b0 100644 --- a/Demos/Host/ClassDriver/KeyboardHost/asf.xml +++ b/Demos/Host/ClassDriver/KeyboardHost/asf.xml @@ -1,48 +1,48 @@ -<asf xmlversion="1.0"> - <project caption="Keyboard HID Host Demo (Class Driver APIs)" id="lufa.demos.host.class.keyboard.example.avr8"> - <require idref="lufa.demos.host.class.keyboard"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <module type="application" id="lufa.demos.host.class.keyboard" caption="Keyboard HID Host Demo (Class Driver APIs)"> - <info type="description" value="summary"> - Keyboard HID Host demo, implementing a basic USB keyboard host that can display key press data on the board LEDs. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Host"/> - <keyword value="HID Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="KeyboardHost.txt"/> - - <build type="c-source" value="KeyboardHost.c"/> - <build type="header-file" value="KeyboardHost.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.misc.ansi"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Keyboard HID Host Demo (Class Driver APIs)" id="lufa.demos.host.class.keyboard.example.avr8"> + <require idref="lufa.demos.host.class.keyboard"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <module type="application" id="lufa.demos.host.class.keyboard" caption="Keyboard HID Host Demo (Class Driver APIs)"> + <info type="description" value="summary"> + Keyboard HID Host demo, implementing a basic USB keyboard host that can display key press data on the board LEDs. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Host"/> + <keyword value="HID Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="KeyboardHost.txt"/> + + <build type="c-source" value="KeyboardHost.c"/> + <build type="header-file" value="KeyboardHost.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.peripheral.usart"/> + <require idref="lufa.drivers.misc.ansi"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Demos/Host/ClassDriver/KeyboardHostWithParser/asf.xml b/Demos/Host/ClassDriver/KeyboardHostWithParser/asf.xml index 924299f2f..656224b15 100644 --- a/Demos/Host/ClassDriver/KeyboardHostWithParser/asf.xml +++ b/Demos/Host/ClassDriver/KeyboardHostWithParser/asf.xml @@ -1,48 +1,48 @@ -<asf xmlversion="1.0"> - <project caption="Keyboard HID (with parser) Host Demo (Class Driver APIs)" id="lufa.demos.host.class.keyboard_parser.example.avr8"> - <require idref="lufa.demos.host.class.keyboard_parser"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <module type="application" id="lufa.demos.host.class.keyboard_parser" caption="Keyboard HID (with parser) Host Demo (Class Driver APIs)"> - <info type="description" value="summary"> - Keyboard HID Host demo with HID parser, implementing a basic USB keyboard host that can display key press data on the board LEDs. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Host"/> - <keyword value="HID Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="KeyboardHostWithParser.txt"/> - - <build type="c-source" value="KeyboardHostWithParser.c"/> - <build type="header-file" value="KeyboardHostWithParser.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.misc.ansi"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Keyboard HID (with parser) Host Demo (Class Driver APIs)" id="lufa.demos.host.class.keyboard_parser.example.avr8"> + <require idref="lufa.demos.host.class.keyboard_parser"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <module type="application" id="lufa.demos.host.class.keyboard_parser" caption="Keyboard HID (with parser) Host Demo (Class Driver APIs)"> + <info type="description" value="summary"> + Keyboard HID Host demo with HID parser, implementing a basic USB keyboard host that can display key press data on the board LEDs. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Host"/> + <keyword value="HID Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="KeyboardHostWithParser.txt"/> + + <build type="c-source" value="KeyboardHostWithParser.c"/> + <build type="header-file" value="KeyboardHostWithParser.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.peripheral.usart"/> + <require idref="lufa.drivers.misc.ansi"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Demos/Host/ClassDriver/MIDIHost/asf.xml b/Demos/Host/ClassDriver/MIDIHost/asf.xml index 140c03ba7..420ddb13a 100644 --- a/Demos/Host/ClassDriver/MIDIHost/asf.xml +++ b/Demos/Host/ClassDriver/MIDIHost/asf.xml @@ -1,50 +1,50 @@ -<asf xmlversion="1.0"> - <project caption="MIDI Host Demo (Class Driver APIs)" id="lufa.demos.host.class.midi.example.avr8"> - <require idref="lufa.demos.host.class.midi"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <module type="application" id="lufa.demos.host.class.midi" caption="MIDI Host Demo (Class Driver APIs)"> - <info type="description" value="summary"> - MIDI Host demo, capable of sending and receiving MIDI messages to and from an attached device. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Host"/> - <keyword value="MIDI Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="MIDIHost.txt"/> - - <build type="c-source" value="MIDIHost.c"/> - <build type="header-file" value="MIDIHost.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.misc.ansi"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.joystick"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="MIDI Host Demo (Class Driver APIs)" id="lufa.demos.host.class.midi.example.avr8"> + <require idref="lufa.demos.host.class.midi"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <module type="application" id="lufa.demos.host.class.midi" caption="MIDI Host Demo (Class Driver APIs)"> + <info type="description" value="summary"> + MIDI Host demo, capable of sending and receiving MIDI messages to and from an attached device. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Host"/> + <keyword value="MIDI Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="MIDIHost.txt"/> + + <build type="c-source" value="MIDIHost.c"/> + <build type="header-file" value="MIDIHost.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.peripheral.usart"/> + <require idref="lufa.drivers.misc.ansi"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.joystick"/> + </module> +</asf> diff --git a/Demos/Host/ClassDriver/MassStorageHost/asf.xml b/Demos/Host/ClassDriver/MassStorageHost/asf.xml index 54bfe50cc..3198fcfc4 100644 --- a/Demos/Host/ClassDriver/MassStorageHost/asf.xml +++ b/Demos/Host/ClassDriver/MassStorageHost/asf.xml @@ -1,48 +1,48 @@ -<asf xmlversion="1.0"> - <project caption="Mass Storage Host Demo (Class Driver APIs)" id="lufa.demos.host.class.ms.example.avr8"> - <require idref="lufa.demos.host.class.ms"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <module type="application" id="lufa.demos.host.class.ms" caption="Mass Storage Host Demo (Class Driver APIs)"> - <info type="description" value="summary"> - Mass Storage Host demo, capable of reading and writing raw 512 byte segments to the device's serial port. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Host"/> - <keyword value="Mass Storage Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="MassStorageHost.txt"/> - - <build type="c-source" value="MassStorageHost.c"/> - <build type="header-file" value="MassStorageHost.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.misc.ansi"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Mass Storage Host Demo (Class Driver APIs)" id="lufa.demos.host.class.ms.example.avr8"> + <require idref="lufa.demos.host.class.ms"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <module type="application" id="lufa.demos.host.class.ms" caption="Mass Storage Host Demo (Class Driver APIs)"> + <info type="description" value="summary"> + Mass Storage Host demo, capable of reading and writing raw 512 byte segments to the device's serial port. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Host"/> + <keyword value="Mass Storage Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="MassStorageHost.txt"/> + + <build type="c-source" value="MassStorageHost.c"/> + <build type="header-file" value="MassStorageHost.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.peripheral.usart"/> + <require idref="lufa.drivers.misc.ansi"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Demos/Host/ClassDriver/MouseHost/asf.xml b/Demos/Host/ClassDriver/MouseHost/asf.xml index b28860771..96ea9adc7 100644 --- a/Demos/Host/ClassDriver/MouseHost/asf.xml +++ b/Demos/Host/ClassDriver/MouseHost/asf.xml @@ -1,48 +1,48 @@ -<asf xmlversion="1.0"> - <project caption="Mouse HID Host Demo (Class Driver APIs)" id="lufa.demos.host.class.mouse.example.avr8"> - <require idref="lufa.demos.host.class.mouse"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <module type="application" id="lufa.demos.host.class.mouse" caption="Mouse HID Host Demo (Class Driver APIs)"> - <info type="description" value="summary"> - Mouse HID Host demo, implementing a basic USB mouse host that can display movement data on the board LEDs. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Host"/> - <keyword value="HID Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="MouseHost.txt"/> - - <build type="c-source" value="MouseHost.c"/> - <build type="header-file" value="MouseHost.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.misc.ansi"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Mouse HID Host Demo (Class Driver APIs)" id="lufa.demos.host.class.mouse.example.avr8"> + <require idref="lufa.demos.host.class.mouse"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <module type="application" id="lufa.demos.host.class.mouse" caption="Mouse HID Host Demo (Class Driver APIs)"> + <info type="description" value="summary"> + Mouse HID Host demo, implementing a basic USB mouse host that can display movement data on the board LEDs. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Host"/> + <keyword value="HID Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="MouseHost.txt"/> + + <build type="c-source" value="MouseHost.c"/> + <build type="header-file" value="MouseHost.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.peripheral.usart"/> + <require idref="lufa.drivers.misc.ansi"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Demos/Host/ClassDriver/MouseHostWithParser/asf.xml b/Demos/Host/ClassDriver/MouseHostWithParser/asf.xml index 220eb457c..c0c254c36 100644 --- a/Demos/Host/ClassDriver/MouseHostWithParser/asf.xml +++ b/Demos/Host/ClassDriver/MouseHostWithParser/asf.xml @@ -1,48 +1,48 @@ -<asf xmlversion="1.0"> - <project caption="Mouse HID (with parser) Host Demo (Class Driver APIs)" id="lufa.demos.host.class.mouse_parser.example.avr8"> - <require idref="lufa.demos.host.class.mouse_parser"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <module type="application" id="lufa.demos.host.class.mouse_parser" caption="Mouse HID (with parser) Host Demo (Class Driver APIs)"> - <info type="description" value="summary"> - Mouse HID Host demo with HID parser, implementing a basic USB mouse host that can display movement data on the board LEDs. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Host"/> - <keyword value="HID Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="MouseHostWithParser.txt"/> - - <build type="c-source" value="MouseHostWithParser.c"/> - <build type="header-file" value="MouseHostWithParser.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.misc.ansi"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Mouse HID (with parser) Host Demo (Class Driver APIs)" id="lufa.demos.host.class.mouse_parser.example.avr8"> + <require idref="lufa.demos.host.class.mouse_parser"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <module type="application" id="lufa.demos.host.class.mouse_parser" caption="Mouse HID (with parser) Host Demo (Class Driver APIs)"> + <info type="description" value="summary"> + Mouse HID Host demo with HID parser, implementing a basic USB mouse host that can display movement data on the board LEDs. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Host"/> + <keyword value="HID Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="MouseHostWithParser.txt"/> + + <build type="c-source" value="MouseHostWithParser.c"/> + <build type="header-file" value="MouseHostWithParser.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.peripheral.usart"/> + <require idref="lufa.drivers.misc.ansi"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Demos/Host/ClassDriver/PrinterHost/asf.xml b/Demos/Host/ClassDriver/PrinterHost/asf.xml index bd355cf35..ef93cdedb 100644 --- a/Demos/Host/ClassDriver/PrinterHost/asf.xml +++ b/Demos/Host/ClassDriver/PrinterHost/asf.xml @@ -1,48 +1,48 @@ -<asf xmlversion="1.0"> - <project caption="Printer Host Demo (Class Driver APIs)" id="lufa.demos.host.class.printer.example.avr8"> - <require idref="lufa.demos.host.class.printer"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <module type="application" id="lufa.demos.host.class.printer" caption="Printer Host Demo (Class Driver APIs)"> - <info type="description" value="summary"> - Printer Host demo, implementing a basic USB printer host that can send raw printer control data to an attached device. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Host"/> - <keyword value="Printer Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="PrinterHost.txt"/> - - <build type="c-source" value="PrinterHost.c"/> - <build type="header-file" value="PrinterHost.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.misc.ansi"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Printer Host Demo (Class Driver APIs)" id="lufa.demos.host.class.printer.example.avr8"> + <require idref="lufa.demos.host.class.printer"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <module type="application" id="lufa.demos.host.class.printer" caption="Printer Host Demo (Class Driver APIs)"> + <info type="description" value="summary"> + Printer Host demo, implementing a basic USB printer host that can send raw printer control data to an attached device. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Host"/> + <keyword value="Printer Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="PrinterHost.txt"/> + + <build type="c-source" value="PrinterHost.c"/> + <build type="header-file" value="PrinterHost.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.peripheral.usart"/> + <require idref="lufa.drivers.misc.ansi"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Demos/Host/ClassDriver/RNDISEthernetHost/asf.xml b/Demos/Host/ClassDriver/RNDISEthernetHost/asf.xml index 37cedaaa5..da7e0ceb7 100644 --- a/Demos/Host/ClassDriver/RNDISEthernetHost/asf.xml +++ b/Demos/Host/ClassDriver/RNDISEthernetHost/asf.xml @@ -1,48 +1,48 @@ -<asf xmlversion="1.0"> - <project caption="RNDIS Ethernet Host Demo (Class Driver APIs)" id="lufa.demos.host.class.rndis.example.avr8"> - <require idref="lufa.demos.host.class.rndis"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <module type="application" id="lufa.demos.host.class.rndis" caption="RNDIS Ethernet Host Demo (Class Driver APIs)"> - <info type="description" value="summary"> - Microsoft RNDIS Ethernet Host demo, implementing a RNDIS host that can send and receive Ethernet data to and from an attached device. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Host"/> - <keyword value="RNDIS Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="RNDISEthernetHost.txt"/> - - <build type="c-source" value="RNDISEthernetHost.c"/> - <build type="header-file" value="RNDISEthernetHost.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.misc.ansi"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="RNDIS Ethernet Host Demo (Class Driver APIs)" id="lufa.demos.host.class.rndis.example.avr8"> + <require idref="lufa.demos.host.class.rndis"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <module type="application" id="lufa.demos.host.class.rndis" caption="RNDIS Ethernet Host Demo (Class Driver APIs)"> + <info type="description" value="summary"> + Microsoft RNDIS Ethernet Host demo, implementing a RNDIS host that can send and receive Ethernet data to and from an attached device. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Host"/> + <keyword value="RNDIS Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="RNDISEthernetHost.txt"/> + + <build type="c-source" value="RNDISEthernetHost.c"/> + <build type="header-file" value="RNDISEthernetHost.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.peripheral.usart"/> + <require idref="lufa.drivers.misc.ansi"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Demos/Host/ClassDriver/StillImageHost/asf.xml b/Demos/Host/ClassDriver/StillImageHost/asf.xml index 4a5f6bfeb..9ef93f140 100644 --- a/Demos/Host/ClassDriver/StillImageHost/asf.xml +++ b/Demos/Host/ClassDriver/StillImageHost/asf.xml @@ -1,48 +1,48 @@ -<asf xmlversion="1.0"> - <project caption="Still Image Host Demo (Class Driver APIs)" id="lufa.demos.host.class.si.example.avr8"> - <require idref="lufa.demos.host.class.si"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <module type="application" id="lufa.demos.host.class.si" caption="Still Image Host Demo (Class Driver APIs)"> - <info type="description" value="summary"> - Still Image Host demo, implementing a Still Image host that can send and receive PIMA data to and from an attached device. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Host"/> - <keyword value="Still Image Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="StillImageHost.txt"/> - - <build type="c-source" value="StillImageHost.c"/> - <build type="header-file" value="StillImageHost.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.misc.ansi"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Still Image Host Demo (Class Driver APIs)" id="lufa.demos.host.class.si.example.avr8"> + <require idref="lufa.demos.host.class.si"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <module type="application" id="lufa.demos.host.class.si" caption="Still Image Host Demo (Class Driver APIs)"> + <info type="description" value="summary"> + Still Image Host demo, implementing a Still Image host that can send and receive PIMA data to and from an attached device. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Host"/> + <keyword value="Still Image Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="StillImageHost.txt"/> + + <build type="c-source" value="StillImageHost.c"/> + <build type="header-file" value="StillImageHost.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.peripheral.usart"/> + <require idref="lufa.drivers.misc.ansi"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Demos/Host/ClassDriver/VirtualSerialHost/asf.xml b/Demos/Host/ClassDriver/VirtualSerialHost/asf.xml index e456c9295..2e5fb6686 100644 --- a/Demos/Host/ClassDriver/VirtualSerialHost/asf.xml +++ b/Demos/Host/ClassDriver/VirtualSerialHost/asf.xml @@ -1,48 +1,48 @@ -<asf xmlversion="1.0"> - <project caption="Virtual Serial CDC Host Demo (Class Driver APIs)" id="lufa.demos.host.class.cdc.example.avr8"> - <require idref="lufa.demos.host.class.cdc"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <module type="application" id="lufa.demos.host.class.cdc" caption="Virtual Serial CDC Host Demo (Class Driver APIs)"> - <info type="description" value="summary"> - Virtual Serial Host demo, implementing a CDC host that can send and receive data to and from an attached device. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Host"/> - <keyword value="CDC Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="VirtualSerialHost.txt"/> - - <build type="c-source" value="VirtualSerialHost.c"/> - <build type="header-file" value="VirtualSerialHost.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.misc.ansi"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Virtual Serial CDC Host Demo (Class Driver APIs)" id="lufa.demos.host.class.cdc.example.avr8"> + <require idref="lufa.demos.host.class.cdc"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <module type="application" id="lufa.demos.host.class.cdc" caption="Virtual Serial CDC Host Demo (Class Driver APIs)"> + <info type="description" value="summary"> + Virtual Serial Host demo, implementing a CDC host that can send and receive data to and from an attached device. This demo uses the user-friendly USB Class Driver APIs to provide a simple, abstracted interface into the USB stack. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Host"/> + <keyword value="CDC Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="VirtualSerialHost.txt"/> + + <build type="c-source" value="VirtualSerialHost.c"/> + <build type="header-file" value="VirtualSerialHost.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.peripheral.usart"/> + <require idref="lufa.drivers.misc.ansi"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Demos/Host/LowLevel/AndroidAccessoryHost/asf.xml b/Demos/Host/LowLevel/AndroidAccessoryHost/asf.xml index 25b47661b..5449b5dc5 100644 --- a/Demos/Host/LowLevel/AndroidAccessoryHost/asf.xml +++ b/Demos/Host/LowLevel/AndroidAccessoryHost/asf.xml @@ -1,55 +1,55 @@ -<asf xmlversion="1.0"> - <project caption="Android Accessory Host Demo (Low Level APIs)" id="lufa.demos.host.lowlevel.android.example.avr8"> - <require idref="lufa.demos.host.lowlevel.android"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <module type="application" id="lufa.demos.host.lowlevel.android" caption="Android Accessory Host Demo (Low Level APIs)"> - <info type="description" value="summary"> - Android Accessory Host demo, implementing a basic USB device whose LEDs can be controlled via an Android device. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Low Level APIs"/> - <keyword value="USB Host"/> - <keyword value="Android Accessory Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="AndroidAccessoryHost.txt"/> - - <build type="c-source" value="AndroidAccessoryHost.c"/> - <build type="c-source" value="DeviceDescriptor.c"/> - <build type="c-source" value="ConfigDescriptor.c"/> - <build type="header-file" value="AndroidAccessoryHost.h"/> - <build type="header-file" value="DeviceDescriptor.h"/> - <build type="header-file" value="ConfigDescriptor.h"/> - - <build type="c-source" value="Lib/AndroidAccessoryCommands.c"/> - <build type="header-file" value="Lib/AndroidAccessoryCommands.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.misc.ansi"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Android Accessory Host Demo (Low Level APIs)" id="lufa.demos.host.lowlevel.android.example.avr8"> + <require idref="lufa.demos.host.lowlevel.android"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <module type="application" id="lufa.demos.host.lowlevel.android" caption="Android Accessory Host Demo (Low Level APIs)"> + <info type="description" value="summary"> + Android Accessory Host demo, implementing a basic USB device whose LEDs can be controlled via an Android device. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Low Level APIs"/> + <keyword value="USB Host"/> + <keyword value="Android Accessory Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="AndroidAccessoryHost.txt"/> + + <build type="c-source" value="AndroidAccessoryHost.c"/> + <build type="c-source" value="DeviceDescriptor.c"/> + <build type="c-source" value="ConfigDescriptor.c"/> + <build type="header-file" value="AndroidAccessoryHost.h"/> + <build type="header-file" value="DeviceDescriptor.h"/> + <build type="header-file" value="ConfigDescriptor.h"/> + + <build type="c-source" value="Lib/AndroidAccessoryCommands.c"/> + <build type="header-file" value="Lib/AndroidAccessoryCommands.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.peripheral.usart"/> + <require idref="lufa.drivers.misc.ansi"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Demos/Host/LowLevel/AudioInputHost/asf.xml b/Demos/Host/LowLevel/AudioInputHost/asf.xml index f6defd91d..296705057 100644 --- a/Demos/Host/LowLevel/AudioInputHost/asf.xml +++ b/Demos/Host/LowLevel/AudioInputHost/asf.xml @@ -1,50 +1,50 @@ -<asf xmlversion="1.0"> - <project caption="Audio Input Host Demo (Low Level APIs)" id="lufa.demos.host.lowlevel.audio_input.example.avr8"> - <require idref="lufa.demos.host.lowlevel.audio_input"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <module type="application" id="lufa.demos.host.lowlevel.audio_input" caption="Audio Input Host Demo (Low Level APIs)"> - <info type="description" value="summary"> - Audio Input Host demo, implementing a basic USB audio sink that can output incoming audio data to a speaker. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Low Level APIs"/> - <keyword value="USB Host"/> - <keyword value="Audio Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="AudioInputHost.txt"/> - - <build type="c-source" value="AudioInputHost.c"/> - <build type="c-source" value="ConfigDescriptor.c"/> - <build type="header-file" value="AudioInputHost.h"/> - <build type="header-file" value="ConfigDescriptor.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.misc.ansi"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Audio Input Host Demo (Low Level APIs)" id="lufa.demos.host.lowlevel.audio_input.example.avr8"> + <require idref="lufa.demos.host.lowlevel.audio_input"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <module type="application" id="lufa.demos.host.lowlevel.audio_input" caption="Audio Input Host Demo (Low Level APIs)"> + <info type="description" value="summary"> + Audio Input Host demo, implementing a basic USB audio sink that can output incoming audio data to a speaker. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Low Level APIs"/> + <keyword value="USB Host"/> + <keyword value="Audio Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="AudioInputHost.txt"/> + + <build type="c-source" value="AudioInputHost.c"/> + <build type="c-source" value="ConfigDescriptor.c"/> + <build type="header-file" value="AudioInputHost.h"/> + <build type="header-file" value="ConfigDescriptor.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.peripheral.usart"/> + <require idref="lufa.drivers.misc.ansi"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Demos/Host/LowLevel/AudioOutputHost/asf.xml b/Demos/Host/LowLevel/AudioOutputHost/asf.xml index ebc1587c6..c568eb98b 100644 --- a/Demos/Host/LowLevel/AudioOutputHost/asf.xml +++ b/Demos/Host/LowLevel/AudioOutputHost/asf.xml @@ -1,54 +1,54 @@ -<asf xmlversion="1.0"> - <project caption="Audio Output Host Demo (Low Level APIs)" id="lufa.demos.host.lowlevel.audio_output.example.avr8"> - <require idref="lufa.demos.host.lowlevel.audio_output"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <module type="application" id="lufa.demos.host.lowlevel.audio_output" caption="Audio Output Host Demo (Low Level APIs)"> - <info type="description" value="summary"> - Audio Output Host demo, implementing a basic USB audio source that can output audio data to an attached device. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Low Level APIs"/> - <keyword value="USB Host"/> - <keyword value="Audio Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="AudioOutputHost.txt"/> - - <build type="c-source" value="AudioOutputHost.c"/> - <build type="c-source" value="ConfigDescriptor.c"/> - <build type="header-file" value="AudioOutputHost.h"/> - <build type="header-file" value="ConfigDescriptor.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> - <build type="header-file" value="Config/AppConfig.h"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.peripheral.adc"/> - <require idref="lufa.drivers.misc.ansi"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.buttons"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Audio Output Host Demo (Low Level APIs)" id="lufa.demos.host.lowlevel.audio_output.example.avr8"> + <require idref="lufa.demos.host.lowlevel.audio_output"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <module type="application" id="lufa.demos.host.lowlevel.audio_output" caption="Audio Output Host Demo (Low Level APIs)"> + <info type="description" value="summary"> + Audio Output Host demo, implementing a basic USB audio source that can output audio data to an attached device. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Low Level APIs"/> + <keyword value="USB Host"/> + <keyword value="Audio Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="AudioOutputHost.txt"/> + + <build type="c-source" value="AudioOutputHost.c"/> + <build type="c-source" value="ConfigDescriptor.c"/> + <build type="header-file" value="AudioOutputHost.h"/> + <build type="header-file" value="ConfigDescriptor.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> + <build type="header-file" value="Config/AppConfig.h"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.peripheral.usart"/> + <require idref="lufa.drivers.peripheral.adc"/> + <require idref="lufa.drivers.misc.ansi"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.buttons"/> + </module> +</asf> diff --git a/Demos/Host/LowLevel/GenericHIDHost/asf.xml b/Demos/Host/LowLevel/GenericHIDHost/asf.xml index 2321a8139..e0890865d 100644 --- a/Demos/Host/LowLevel/GenericHIDHost/asf.xml +++ b/Demos/Host/LowLevel/GenericHIDHost/asf.xml @@ -1,50 +1,50 @@ -<asf xmlversion="1.0"> - <project caption="Generic HID Host Demo (Low Level APIs)" id="lufa.demos.host.lowlevel.generic_hid.example.avr8"> - <require idref="lufa.demos.host.lowlevel.generic_hid"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <module type="application" id="lufa.demos.host.lowlevel.generic_hid" caption="Generic HID Host Demo (Low Level APIs)"> - <info type="description" value="summary"> - Generic HID Host demo, implementing a basic USB HID device that can send and receive data to and from an attached device. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Low Level APIs"/> - <keyword value="USB Host"/> - <keyword value="HID Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="GenericHIDHost.txt"/> - - <build type="c-source" value="GenericHIDHost.c"/> - <build type="c-source" value="ConfigDescriptor.c"/> - <build type="header-file" value="GenericHIDHost.h"/> - <build type="header-file" value="ConfigDescriptor.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.misc.ansi"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Generic HID Host Demo (Low Level APIs)" id="lufa.demos.host.lowlevel.generic_hid.example.avr8"> + <require idref="lufa.demos.host.lowlevel.generic_hid"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <module type="application" id="lufa.demos.host.lowlevel.generic_hid" caption="Generic HID Host Demo (Low Level APIs)"> + <info type="description" value="summary"> + Generic HID Host demo, implementing a basic USB HID device that can send and receive data to and from an attached device. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Low Level APIs"/> + <keyword value="USB Host"/> + <keyword value="HID Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="GenericHIDHost.txt"/> + + <build type="c-source" value="GenericHIDHost.c"/> + <build type="c-source" value="ConfigDescriptor.c"/> + <build type="header-file" value="GenericHIDHost.h"/> + <build type="header-file" value="ConfigDescriptor.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.peripheral.usart"/> + <require idref="lufa.drivers.misc.ansi"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Demos/Host/LowLevel/JoystickHostWithParser/asf.xml b/Demos/Host/LowLevel/JoystickHostWithParser/asf.xml index f2b919511..7052bbc50 100644 --- a/Demos/Host/LowLevel/JoystickHostWithParser/asf.xml +++ b/Demos/Host/LowLevel/JoystickHostWithParser/asf.xml @@ -1,52 +1,52 @@ -<asf xmlversion="1.0"> - <project caption="Joystick HID (with parser) Host Demo (Low Level APIs)" id="lufa.demos.host.lowlevel.joystick_parser.example.avr8"> - <require idref="lufa.demos.host.lowlevel.joystick_parser"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <module type="application" id="lufa.demos.host.lowlevel.joystick_parser" caption="Joystick HID (with parser) Host Demo (Low Level APIs)"> - <info type="description" value="summary"> - Joystick HID Host demo with HID parser, implementing a basic USB joystick host that can display movement data on the board LEDs. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Low Level APIs"/> - <keyword value="USB Host"/> - <keyword value="HID Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="JoystickHostWithParser.txt"/> - - <build type="c-source" value="JoystickHostWithParser.c"/> - <build type="c-source" value="ConfigDescriptor.c"/> - <build type="c-source" value="HIDReport.c"/> - <build type="header-file" value="JoystickHostWithParser.h"/> - <build type="header-file" value="ConfigDescriptor.h"/> - <build type="header-file" value="HIDReport.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.misc.ansi"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Joystick HID (with parser) Host Demo (Low Level APIs)" id="lufa.demos.host.lowlevel.joystick_parser.example.avr8"> + <require idref="lufa.demos.host.lowlevel.joystick_parser"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <module type="application" id="lufa.demos.host.lowlevel.joystick_parser" caption="Joystick HID (with parser) Host Demo (Low Level APIs)"> + <info type="description" value="summary"> + Joystick HID Host demo with HID parser, implementing a basic USB joystick host that can display movement data on the board LEDs. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Low Level APIs"/> + <keyword value="USB Host"/> + <keyword value="HID Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="JoystickHostWithParser.txt"/> + + <build type="c-source" value="JoystickHostWithParser.c"/> + <build type="c-source" value="ConfigDescriptor.c"/> + <build type="c-source" value="HIDReport.c"/> + <build type="header-file" value="JoystickHostWithParser.h"/> + <build type="header-file" value="ConfigDescriptor.h"/> + <build type="header-file" value="HIDReport.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.peripheral.usart"/> + <require idref="lufa.drivers.misc.ansi"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Demos/Host/LowLevel/KeyboardHost/asf.xml b/Demos/Host/LowLevel/KeyboardHost/asf.xml index 1256e3540..2da7ed7fc 100644 --- a/Demos/Host/LowLevel/KeyboardHost/asf.xml +++ b/Demos/Host/LowLevel/KeyboardHost/asf.xml @@ -1,50 +1,50 @@ -<asf xmlversion="1.0"> - <project caption="Keyboard HID Host Demo (Low Level APIs)" id="lufa.demos.host.lowlevel.keyboard.example.avr8"> - <require idref="lufa.demos.host.lowlevel.keyboard"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <module type="application" id="lufa.demos.host.lowlevel.keyboard" caption="Keyboard HID Host Demo (Low Level APIs)"> - <info type="description" value="summary"> - Keyboard HID Host demo, implementing a basic USB keyboard host that can display key press data on the board LEDs. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Low Level APIs"/> - <keyword value="USB Host"/> - <keyword value="HID Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="KeyboardHost.txt"/> - - <build type="c-source" value="KeyboardHost.c"/> - <build type="c-source" value="ConfigDescriptor.c"/> - <build type="header-file" value="KeyboardHost.h"/> - <build type="header-file" value="ConfigDescriptor.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.misc.ansi"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Keyboard HID Host Demo (Low Level APIs)" id="lufa.demos.host.lowlevel.keyboard.example.avr8"> + <require idref="lufa.demos.host.lowlevel.keyboard"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <module type="application" id="lufa.demos.host.lowlevel.keyboard" caption="Keyboard HID Host Demo (Low Level APIs)"> + <info type="description" value="summary"> + Keyboard HID Host demo, implementing a basic USB keyboard host that can display key press data on the board LEDs. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Low Level APIs"/> + <keyword value="USB Host"/> + <keyword value="HID Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="KeyboardHost.txt"/> + + <build type="c-source" value="KeyboardHost.c"/> + <build type="c-source" value="ConfigDescriptor.c"/> + <build type="header-file" value="KeyboardHost.h"/> + <build type="header-file" value="ConfigDescriptor.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.peripheral.usart"/> + <require idref="lufa.drivers.misc.ansi"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Demos/Host/LowLevel/KeyboardHostWithParser/asf.xml b/Demos/Host/LowLevel/KeyboardHostWithParser/asf.xml index beeaff9b7..430eec7a2 100644 --- a/Demos/Host/LowLevel/KeyboardHostWithParser/asf.xml +++ b/Demos/Host/LowLevel/KeyboardHostWithParser/asf.xml @@ -1,52 +1,52 @@ -<asf xmlversion="1.0"> - <project caption="Keyboard HID (with parser) Host Demo (Low Level APIs)" id="lufa.demos.host.lowlevel.keyboard_parser.example.avr8"> - <require idref="lufa.demos.host.lowlevel.keyboard_parser"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <module type="application" id="lufa.demos.host.lowlevel.keyboard_parser" caption="Keyboard HID (with parser) Host Demo (Low Level APIs)"> - <info type="description" value="summary"> - Keyboard HID Host demo with HID parser, implementing a basic USB keyboard host that can display key press data on the board LEDs. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Low Level APIs"/> - <keyword value="USB Host"/> - <keyword value="HID Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="KeyboardHostWithParser.txt"/> - - <build type="c-source" value="KeyboardHostWithParser.c"/> - <build type="c-source" value="ConfigDescriptor.c"/> - <build type="c-source" value="HIDReport.c"/> - <build type="header-file" value="KeyboardHostWithParser.h"/> - <build type="header-file" value="ConfigDescriptor.h"/> - <build type="header-file" value="HIDReport.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.misc.ansi"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Keyboard HID (with parser) Host Demo (Low Level APIs)" id="lufa.demos.host.lowlevel.keyboard_parser.example.avr8"> + <require idref="lufa.demos.host.lowlevel.keyboard_parser"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <module type="application" id="lufa.demos.host.lowlevel.keyboard_parser" caption="Keyboard HID (with parser) Host Demo (Low Level APIs)"> + <info type="description" value="summary"> + Keyboard HID Host demo with HID parser, implementing a basic USB keyboard host that can display key press data on the board LEDs. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Low Level APIs"/> + <keyword value="USB Host"/> + <keyword value="HID Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="KeyboardHostWithParser.txt"/> + + <build type="c-source" value="KeyboardHostWithParser.c"/> + <build type="c-source" value="ConfigDescriptor.c"/> + <build type="c-source" value="HIDReport.c"/> + <build type="header-file" value="KeyboardHostWithParser.h"/> + <build type="header-file" value="ConfigDescriptor.h"/> + <build type="header-file" value="HIDReport.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.peripheral.usart"/> + <require idref="lufa.drivers.misc.ansi"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Demos/Host/LowLevel/MIDIHost/asf.xml b/Demos/Host/LowLevel/MIDIHost/asf.xml index 0a19a117d..f2c933bfd 100644 --- a/Demos/Host/LowLevel/MIDIHost/asf.xml +++ b/Demos/Host/LowLevel/MIDIHost/asf.xml @@ -1,52 +1,52 @@ -<asf xmlversion="1.0"> - <project caption="MIDI Host Demo (Low Level APIs)" id="lufa.demos.host.lowlevel.midi.example.avr8"> - <require idref="lufa.demos.host.lowlevel.midi"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <module type="application" id="lufa.demos.host.lowlevel.midi" caption="MIDI Host Demo (Low Level APIs)"> - <info type="description" value="summary"> - MIDI Host demo, capable of sending and receiving MIDI messages to and from an attached device. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Low Level APIs"/> - <keyword value="USB Host"/> - <keyword value="MIDI Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="MIDIHost.txt"/> - - <build type="c-source" value="MIDIHost.c"/> - <build type="c-source" value="ConfigDescriptor.c"/> - <build type="header-file" value="MIDIHost.h"/> - <build type="header-file" value="ConfigDescriptor.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.misc.ansi"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.joystick"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="MIDI Host Demo (Low Level APIs)" id="lufa.demos.host.lowlevel.midi.example.avr8"> + <require idref="lufa.demos.host.lowlevel.midi"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <module type="application" id="lufa.demos.host.lowlevel.midi" caption="MIDI Host Demo (Low Level APIs)"> + <info type="description" value="summary"> + MIDI Host demo, capable of sending and receiving MIDI messages to and from an attached device. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Low Level APIs"/> + <keyword value="USB Host"/> + <keyword value="MIDI Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="MIDIHost.txt"/> + + <build type="c-source" value="MIDIHost.c"/> + <build type="c-source" value="ConfigDescriptor.c"/> + <build type="header-file" value="MIDIHost.h"/> + <build type="header-file" value="ConfigDescriptor.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.peripheral.usart"/> + <require idref="lufa.drivers.misc.ansi"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.joystick"/> + </module> +</asf> diff --git a/Demos/Host/LowLevel/MassStorageHost/asf.xml b/Demos/Host/LowLevel/MassStorageHost/asf.xml index 8f04f692e..218b89854 100644 --- a/Demos/Host/LowLevel/MassStorageHost/asf.xml +++ b/Demos/Host/LowLevel/MassStorageHost/asf.xml @@ -1,53 +1,53 @@ -<asf xmlversion="1.0"> - <project caption="Mass Storage Host Demo (Low Level APIs)" id="lufa.demos.host.lowlevel.ms.example.avr8"> - <require idref="lufa.demos.host.lowlevel.ms"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <module type="application" id="lufa.demos.host.lowlevel.ms" caption="Mass Storage Host Demo (Low Level APIs)"> - <info type="description" value="summary"> - Mass Storage Host demo, capable of reading and writing raw 512 byte segments to the device's serial port. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Low Level APIs"/> - <keyword value="USB Host"/> - <keyword value="Mass Storage Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="MassStorageHost.txt"/> - - <build type="c-source" value="MassStorageHost.c"/> - <build type="c-source" value="ConfigDescriptor.c"/> - <build type="header-file" value="MassStorageHost.h"/> - <build type="header-file" value="ConfigDescriptor.h"/> - - <build type="c-source" value="Lib/MassStoreCommands.c"/> - <build type="header-file" value="Lib/MassStoreCommands.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.misc.ansi"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Mass Storage Host Demo (Low Level APIs)" id="lufa.demos.host.lowlevel.ms.example.avr8"> + <require idref="lufa.demos.host.lowlevel.ms"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <module type="application" id="lufa.demos.host.lowlevel.ms" caption="Mass Storage Host Demo (Low Level APIs)"> + <info type="description" value="summary"> + Mass Storage Host demo, capable of reading and writing raw 512 byte segments to the device's serial port. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Low Level APIs"/> + <keyword value="USB Host"/> + <keyword value="Mass Storage Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="MassStorageHost.txt"/> + + <build type="c-source" value="MassStorageHost.c"/> + <build type="c-source" value="ConfigDescriptor.c"/> + <build type="header-file" value="MassStorageHost.h"/> + <build type="header-file" value="ConfigDescriptor.h"/> + + <build type="c-source" value="Lib/MassStoreCommands.c"/> + <build type="header-file" value="Lib/MassStoreCommands.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.peripheral.usart"/> + <require idref="lufa.drivers.misc.ansi"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Demos/Host/LowLevel/MouseHost/asf.xml b/Demos/Host/LowLevel/MouseHost/asf.xml index 4499986b3..ab037f0f2 100644 --- a/Demos/Host/LowLevel/MouseHost/asf.xml +++ b/Demos/Host/LowLevel/MouseHost/asf.xml @@ -1,50 +1,50 @@ -<asf xmlversion="1.0"> - <project caption="Mouse HID Host Demo (Low Level APIs)" id="lufa.demos.host.lowlevel.mouse.example.avr8"> - <require idref="lufa.demos.host.lowlevel.mouse"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <module type="application" id="lufa.demos.host.lowlevel.mouse" caption="Mouse HID Host Demo (Low Level APIs)"> - <info type="description" value="summary"> - Keyboard HID Host demo, implementing a basic USB mouse host that can display movement data on the board LEDs. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Low Level APIs"/> - <keyword value="USB Host"/> - <keyword value="HID Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="MouseHost.txt"/> - - <build type="c-source" value="MouseHost.c"/> - <build type="c-source" value="ConfigDescriptor.c"/> - <build type="header-file" value="MouseHost.h"/> - <build type="header-file" value="ConfigDescriptor.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.misc.ansi"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Mouse HID Host Demo (Low Level APIs)" id="lufa.demos.host.lowlevel.mouse.example.avr8"> + <require idref="lufa.demos.host.lowlevel.mouse"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <module type="application" id="lufa.demos.host.lowlevel.mouse" caption="Mouse HID Host Demo (Low Level APIs)"> + <info type="description" value="summary"> + Keyboard HID Host demo, implementing a basic USB mouse host that can display movement data on the board LEDs. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Low Level APIs"/> + <keyword value="USB Host"/> + <keyword value="HID Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="MouseHost.txt"/> + + <build type="c-source" value="MouseHost.c"/> + <build type="c-source" value="ConfigDescriptor.c"/> + <build type="header-file" value="MouseHost.h"/> + <build type="header-file" value="ConfigDescriptor.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.peripheral.usart"/> + <require idref="lufa.drivers.misc.ansi"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Demos/Host/LowLevel/MouseHostWithParser/asf.xml b/Demos/Host/LowLevel/MouseHostWithParser/asf.xml index e06dbea4a..de45fd379 100644 --- a/Demos/Host/LowLevel/MouseHostWithParser/asf.xml +++ b/Demos/Host/LowLevel/MouseHostWithParser/asf.xml @@ -1,52 +1,52 @@ -<asf xmlversion="1.0"> - <project caption="Mouse HID (with parser) Host Demo (Low Level APIs)" id="lufa.demos.host.lowlevel.mouse_parser.example.avr8"> - <require idref="lufa.demos.host.lowlevel.mouse_parser"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <module type="application" id="lufa.demos.host.lowlevel.mouse_parser" caption="Mouse HID (with parser) Host Demo (Low Level APIs)"> - <info type="description" value="summary"> - Mouse HID Host demo with HID parser, implementing a basic USB mouse host that can display movement data on the board LEDs. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Low Level APIs"/> - <keyword value="USB Host"/> - <keyword value="HID Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="MouseHostWithParser.txt"/> - - <build type="c-source" value="MouseHostWithParser.c"/> - <build type="c-source" value="ConfigDescriptor.c"/> - <build type="c-source" value="HIDReport.c"/> - <build type="header-file" value="MouseHostWithParser.h"/> - <build type="header-file" value="ConfigDescriptor.h"/> - <build type="header-file" value="HIDReport.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.misc.ansi"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Mouse HID (with parser) Host Demo (Low Level APIs)" id="lufa.demos.host.lowlevel.mouse_parser.example.avr8"> + <require idref="lufa.demos.host.lowlevel.mouse_parser"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <module type="application" id="lufa.demos.host.lowlevel.mouse_parser" caption="Mouse HID (with parser) Host Demo (Low Level APIs)"> + <info type="description" value="summary"> + Mouse HID Host demo with HID parser, implementing a basic USB mouse host that can display movement data on the board LEDs. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Low Level APIs"/> + <keyword value="USB Host"/> + <keyword value="HID Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="MouseHostWithParser.txt"/> + + <build type="c-source" value="MouseHostWithParser.c"/> + <build type="c-source" value="ConfigDescriptor.c"/> + <build type="c-source" value="HIDReport.c"/> + <build type="header-file" value="MouseHostWithParser.h"/> + <build type="header-file" value="ConfigDescriptor.h"/> + <build type="header-file" value="HIDReport.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.peripheral.usart"/> + <require idref="lufa.drivers.misc.ansi"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Demos/Host/LowLevel/PrinterHost/asf.xml b/Demos/Host/LowLevel/PrinterHost/asf.xml index 7f8606360..5677ddb53 100644 --- a/Demos/Host/LowLevel/PrinterHost/asf.xml +++ b/Demos/Host/LowLevel/PrinterHost/asf.xml @@ -1,53 +1,53 @@ -<asf xmlversion="1.0"> - <project caption="Printer Host Demo (Low Level APIs)" id="lufa.demos.host.lowlevel.printer.example.avr8"> - <require idref="lufa.demos.host.lowlevel.printer"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <module type="application" id="lufa.demos.host.lowlevel.printer" caption="Printer Host Demo (Low Level APIs)"> - <info type="description" value="summary"> - Printer Host demo, implementing a basic USB printer host that can send raw printer control data to an attached device. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Low Level APIs"/> - <keyword value="USB Host"/> - <keyword value="Printer Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="PrinterHost.txt"/> - - <build type="c-source" value="PrinterHost.c"/> - <build type="c-source" value="ConfigDescriptor.c"/> - <build type="header-file" value="PrinterHost.h"/> - <build type="header-file" value="ConfigDescriptor.h"/> - - <build type="c-source" value="Lib/PrinterCommands.c"/> - <build type="header-file" value="Lib/PrinterCommands.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.misc.ansi"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Printer Host Demo (Low Level APIs)" id="lufa.demos.host.lowlevel.printer.example.avr8"> + <require idref="lufa.demos.host.lowlevel.printer"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <module type="application" id="lufa.demos.host.lowlevel.printer" caption="Printer Host Demo (Low Level APIs)"> + <info type="description" value="summary"> + Printer Host demo, implementing a basic USB printer host that can send raw printer control data to an attached device. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Low Level APIs"/> + <keyword value="USB Host"/> + <keyword value="Printer Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="PrinterHost.txt"/> + + <build type="c-source" value="PrinterHost.c"/> + <build type="c-source" value="ConfigDescriptor.c"/> + <build type="header-file" value="PrinterHost.h"/> + <build type="header-file" value="ConfigDescriptor.h"/> + + <build type="c-source" value="Lib/PrinterCommands.c"/> + <build type="header-file" value="Lib/PrinterCommands.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.peripheral.usart"/> + <require idref="lufa.drivers.misc.ansi"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Demos/Host/LowLevel/RNDISEthernetHost/asf.xml b/Demos/Host/LowLevel/RNDISEthernetHost/asf.xml index 38f71272e..f18f5f7e8 100644 --- a/Demos/Host/LowLevel/RNDISEthernetHost/asf.xml +++ b/Demos/Host/LowLevel/RNDISEthernetHost/asf.xml @@ -1,53 +1,53 @@ -<asf xmlversion="1.0"> - <project caption="RNDIS Ethernet Host Demo (Low Level APIs)" id="lufa.demos.host.lowlevel.rndis.example.avr8"> - <require idref="lufa.demos.host.lowlevel.rndis"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <module type="application" id="lufa.demos.host.lowlevel.rndis" caption="RNDIS Ethernet Host Demo (Low Level APIs)"> - <info type="description" value="summary"> - Microsoft RNDIS Ethernet Host demo, implementing a RNDIS host that can send and receive Ethernet data to and from an attached device. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Low Level APIs"/> - <keyword value="USB Host"/> - <keyword value="RNDIS Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="RNDISHost.txt"/> - - <build type="c-source" value="RNDISEthernetHost.c"/> - <build type="c-source" value="ConfigDescriptor.c"/> - <build type="header-file" value="RNDISEthernetHost.h"/> - <build type="header-file" value="ConfigDescriptor.h"/> - - <build type="c-source" value="Lib/RNDISCommands.c"/> - <build type="header-file" value="Lib/RNDISCommands.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.misc.ansi"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="RNDIS Ethernet Host Demo (Low Level APIs)" id="lufa.demos.host.lowlevel.rndis.example.avr8"> + <require idref="lufa.demos.host.lowlevel.rndis"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <module type="application" id="lufa.demos.host.lowlevel.rndis" caption="RNDIS Ethernet Host Demo (Low Level APIs)"> + <info type="description" value="summary"> + Microsoft RNDIS Ethernet Host demo, implementing a RNDIS host that can send and receive Ethernet data to and from an attached device. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Low Level APIs"/> + <keyword value="USB Host"/> + <keyword value="RNDIS Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="RNDISHost.txt"/> + + <build type="c-source" value="RNDISEthernetHost.c"/> + <build type="c-source" value="ConfigDescriptor.c"/> + <build type="header-file" value="RNDISEthernetHost.h"/> + <build type="header-file" value="ConfigDescriptor.h"/> + + <build type="c-source" value="Lib/RNDISCommands.c"/> + <build type="header-file" value="Lib/RNDISCommands.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.peripheral.usart"/> + <require idref="lufa.drivers.misc.ansi"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Demos/Host/LowLevel/StillImageHost/asf.xml b/Demos/Host/LowLevel/StillImageHost/asf.xml index cbf1e2ca2..f12d6ff75 100644 --- a/Demos/Host/LowLevel/StillImageHost/asf.xml +++ b/Demos/Host/LowLevel/StillImageHost/asf.xml @@ -1,54 +1,54 @@ -<asf xmlversion="1.0"> - <project caption="Still Image Host Demo (Low Level APIs)" id="lufa.demos.host.lowlevel.si.example.avr8"> - <require idref="lufa.demos.host.lowlevel.si"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <module type="application" id="lufa.demos.host.lowlevel.si" caption="Still Image Host Demo (Low Level APIs)"> - <info type="description" value="summary"> - Still Image Host demo, implementing a Still Image host that can send and receive PIMA data to and from an attached device. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Low Level APIs"/> - <keyword value="USB Host"/> - <keyword value="Still Image Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="StillImageHost.txt"/> - - <build type="c-source" value="StillImageHost.c"/> - <build type="c-source" value="ConfigDescriptor.c"/> - <build type="header-file" value="StillImageHost.h"/> - <build type="header-file" value="ConfigDescriptor.h"/> - - <build type="c-source" value="Lib/StillImageCommands.c"/> - <build type="header-file" value="Lib/StillImageCommands.h"/> - <build type="header-file" value="Lib/PIMACodes.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.misc.ansi"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Still Image Host Demo (Low Level APIs)" id="lufa.demos.host.lowlevel.si.example.avr8"> + <require idref="lufa.demos.host.lowlevel.si"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <module type="application" id="lufa.demos.host.lowlevel.si" caption="Still Image Host Demo (Low Level APIs)"> + <info type="description" value="summary"> + Still Image Host demo, implementing a Still Image host that can send and receive PIMA data to and from an attached device. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Low Level APIs"/> + <keyword value="USB Host"/> + <keyword value="Still Image Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="StillImageHost.txt"/> + + <build type="c-source" value="StillImageHost.c"/> + <build type="c-source" value="ConfigDescriptor.c"/> + <build type="header-file" value="StillImageHost.h"/> + <build type="header-file" value="ConfigDescriptor.h"/> + + <build type="c-source" value="Lib/StillImageCommands.c"/> + <build type="header-file" value="Lib/StillImageCommands.h"/> + <build type="header-file" value="Lib/PIMACodes.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.peripheral.usart"/> + <require idref="lufa.drivers.misc.ansi"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Demos/Host/LowLevel/VirtualSerialHost/asf.xml b/Demos/Host/LowLevel/VirtualSerialHost/asf.xml index cb0d568d3..828702c52 100644 --- a/Demos/Host/LowLevel/VirtualSerialHost/asf.xml +++ b/Demos/Host/LowLevel/VirtualSerialHost/asf.xml @@ -1,50 +1,50 @@ -<asf xmlversion="1.0"> - <project caption="Virtual Serial CDC Host Demo (Low Level APIs)" id="lufa.demos.host.lowlevel.cdc.example.avr8"> - <require idref="lufa.demos.host.lowlevel.cdc"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="none"/> - - <build type="define" name="F_CPU" value="16000000UL"/> - <build type="define" name="F_USB" value="16000000UL"/> - </project> - - <module type="application" id="lufa.demos.host.lowlevel.cdc" caption="Virtual Serial CDC Host Demo (Low Level APIs)"> - <info type="description" value="summary"> - Virtual Serial Host demo, implementing a CDC host that can send and receive data to and from an attached device. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Host"/> - <keyword value="CDC Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="VirtualSerialHost.txt"/> - - <build type="c-source" value="VirtualSerialHost.c"/> - <build type="c-source" value="ConfigDescriptor.c"/> - <build type="header-file" value="VirtualSerialHost.h"/> - <build type="header-file" value="ConfigDescriptor.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.misc.ansi"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Virtual Serial CDC Host Demo (Low Level APIs)" id="lufa.demos.host.lowlevel.cdc.example.avr8"> + <require idref="lufa.demos.host.lowlevel.cdc"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="none"/> + + <build type="define" name="F_CPU" value="16000000UL"/> + <build type="define" name="F_USB" value="16000000UL"/> + </project> + + <module type="application" id="lufa.demos.host.lowlevel.cdc" caption="Virtual Serial CDC Host Demo (Low Level APIs)"> + <info type="description" value="summary"> + Virtual Serial Host demo, implementing a CDC host that can send and receive data to and from an attached device. This demo uses the Low Level LUFA APIs to manually implement a USB Class for demonstration purposes without using the simpler in-built LUFA Class Driver APIs. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Host"/> + <keyword value="CDC Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="VirtualSerialHost.txt"/> + + <build type="c-source" value="VirtualSerialHost.c"/> + <build type="c-source" value="ConfigDescriptor.c"/> + <build type="header-file" value="VirtualSerialHost.h"/> + <build type="header-file" value="ConfigDescriptor.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.peripheral.usart"/> + <require idref="lufa.drivers.misc.ansi"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/LUFA/CodeTemplates/DeviceTemplate/asf.xml b/LUFA/CodeTemplates/DeviceTemplate/asf.xml index fd65db283..e952714e1 100644 --- a/LUFA/CodeTemplates/DeviceTemplate/asf.xml +++ b/LUFA/CodeTemplates/DeviceTemplate/asf.xml @@ -1,55 +1,55 @@ -<asf xmlversion="1.0"> - <project caption="USB Device Template" id="lufa.templates.device.project.avr8"> - <require idref="lufa.templates.device"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8_template"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="usbkey"/> - - <build type="define" name="F_CPU" value="8000000UL"/> - <build type="define" name="F_USB" value="8000000UL"/> - </project> - - <project caption="USB Device Template" id="lufa.templates.device.project.xmega"> - <require idref="lufa.templates.device"/> - <require idref="lufa.boards.dummy.xmega"/> - <generator value="as5_8_template"/> - - <device-support value="atxmega256a3bu"/> - <config name="lufa.drivers.board.name" value="a3bu_xplained"/> - - <build type="define" name="F_CPU" value="32000000UL"/> - <build type="define" name="F_USB" value="48000000UL"/> - </project> - - <module type="application" id="lufa.templates.device" caption="USB Device Template"> - <info type="description" value="summary"> - Template for a LUFA USB device mode application. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="USB Device"/> - <keyword value="Template Projects"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="c-source" value="DeviceApplication.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="DeviceApplication.h"/> - <build type="header-file" value="Descriptors.h"/> - - <build type="module-config" subtype="path" value=".."/> - <build type="header-file" value="../LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="USB Device Template" id="lufa.templates.device.project.avr8"> + <require idref="lufa.templates.device"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8_template"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="usbkey"/> + + <build type="define" name="F_CPU" value="8000000UL"/> + <build type="define" name="F_USB" value="8000000UL"/> + </project> + + <project caption="USB Device Template" id="lufa.templates.device.project.xmega"> + <require idref="lufa.templates.device"/> + <require idref="lufa.boards.dummy.xmega"/> + <generator value="as5_8_template"/> + + <device-support value="atxmega256a3bu"/> + <config name="lufa.drivers.board.name" value="a3bu_xplained"/> + + <build type="define" name="F_CPU" value="32000000UL"/> + <build type="define" name="F_USB" value="48000000UL"/> + </project> + + <module type="application" id="lufa.templates.device" caption="USB Device Template"> + <info type="description" value="summary"> + Template for a LUFA USB device mode application. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="USB Device"/> + <keyword value="Template Projects"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="c-source" value="DeviceApplication.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="DeviceApplication.h"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="module-config" subtype="path" value=".."/> + <build type="header-file" value="../LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + </module> +</asf> diff --git a/LUFA/CodeTemplates/HostTemplate/asf.xml b/LUFA/CodeTemplates/HostTemplate/asf.xml index c1996ec71..c3860c056 100644 --- a/LUFA/CodeTemplates/HostTemplate/asf.xml +++ b/LUFA/CodeTemplates/HostTemplate/asf.xml @@ -1,41 +1,41 @@ -<asf xmlversion="1.0"> - <project caption="USB Host Template" id="lufa.templates.host.project"> - <require idref="lufa.templates.host"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8_template"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="usbkey"/> - - <build type="define" name="F_CPU" value="8000000UL"/> - <build type="define" name="F_USB" value="8000000UL"/> - </project> - - <module type="application" id="lufa.templates.host" caption="USB Host Template"> - <info type="description" value="summary"> - Template for a LUFA USB host mode application. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="USB Host"/> - <keyword value="Template Projects"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="c-source" value="HostApplication.c"/> - <build type="header-file" value="HostApplication.h"/> - - <build type="module-config" subtype="path" value=".."/> - <build type="header-file" value="../LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="USB Host Template" id="lufa.templates.host.project"> + <require idref="lufa.templates.host"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8_template"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="usbkey"/> + + <build type="define" name="F_CPU" value="8000000UL"/> + <build type="define" name="F_USB" value="8000000UL"/> + </project> + + <module type="application" id="lufa.templates.host" caption="USB Host Template"> + <info type="description" value="summary"> + Template for a LUFA USB host mode application. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="USB Host"/> + <keyword value="Template Projects"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="c-source" value="HostApplication.c"/> + <build type="header-file" value="HostApplication.h"/> + + <build type="module-config" subtype="path" value=".."/> + <build type="header-file" value="../LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + </module> +</asf> diff --git a/LUFA/DoxygenPages/BuildSystem.txt b/LUFA/DoxygenPages/BuildSystem.txt index ef57fcf0c..e0d84f0ac 100644 --- a/LUFA/DoxygenPages/BuildSystem.txt +++ b/LUFA/DoxygenPages/BuildSystem.txt @@ -1,281 +1,281 @@ -/** \file - * - * This file contains special DoxyGen information for the generation of the main page and other special - * documentation pages. It is not a project source file. - */ - -/** \page Page_BuildSystem The LUFA Build System - * - * \section Sec_BuildSystem_Overview Overview of the LUFA Build System - * The LUFA build system was originally an attempt at making a set of - * re-usable, modular build make files which could be referenced in a LUFA - * powered project, to minimize the amount of code required in an - * application makefile. - * - * As it turned out to be fairly generic in nature, it was split out into its - * own separate project, called DMBS (<i>Dean's Makefile Build System</i>) - * which is released into the public domain. LUFA-specific portions of the - * LUFA build system extend DMBS, and provide a universal build system for all - * LUFA projects. - * - * The latest DMBS project information and documentation can be found at: - * https://github.com/abcminiuser/dmbs - * - * DMBS is written in GNU Make, and each module is independent of one-another. - * - * LUFA now uses DMBS for its build system, with some LUFA specific extension - * modules. - * - * If you have problems building using LUFA, see \subpage Page_BuildTroubleshooting for resolution steps. - * - * \li \subpage Page_BuildModule_LUFA_SOURCES - The LUFA SOURCES extension module for DMBS - * \li \subpage Page_BuildModule_LUFA_GCC - The LUFA GCC extension module for DMBS - */ - -/** \page Page_BuildModule_LUFA_SOURCES LUFA SOURCES extension module for DMBS - * - * The LUFA SOURCES extension more for DMBS provides LUFA specific variables - * listing the various LUFA source files required to be build by a project for - * a given LUFA module. This module gives a way to reference LUFA source files - * symbolically, so that changes to the library structure do not break the - * library makefile. - * - * To use this module in your application makefile, add the following code: - * \code - * include $(LUFA_PATH)/Build/LUFA/lufa-sources.mk - * \endcode - * - * \section SSec_BuildModule_LUFA_SOURCES_Requirements Requirements - * None. - * - * \section SSec_BuildModule_LUFA_SOURCES_Targets Targets - * - * <table> - * <tr> - * <td><i>None</i></td> - * </tr> - * </table> - * - * \section SSec_BuildModule_LUFA_SOURCES_MandatoryParams Mandatory Parameters - * - * <table> - * <tr> - * <td><tt>LUFA_PATH</tt></td> - * <td>Path to the LUFA library core, either relative or absolute (e.g. <tt>../LUFA-000000/LUFA/</tt>).</td> - * </tr> - * <tr> - * <td><tt>ARCH</tt></td> - * <td>Architecture of the target processor (see \ref Page_DeviceSupport).</td> - * </tr> - * </table> - * - * \section SSec_BuildModule_LUFA_SOURCES_OptionalParams Optional Parameters - * - * <table> - * <tr> - * <td><i>None</i></td> - * </tr> - * </table> - * - * \section SSec_BuildModule_LUFA_SOURCES_ProvidedVariables Module Provided Variables - * - * <table> - * <tr> - * <td><tt>LUFA_SRC_USB</tt></td> - * <td>List of LUFA USB driver source files.</td> - * </tr> - * <tr> - * <td><tt>LUFA_SRC_USBCLASS</tt></td> - * <td>List of LUFA USB Class driver source files.</td> - * </tr> - * <tr> - * <td><tt>LUFA_SRC_TEMPERATURE</tt></td> - * <td>List of LUFA temperature sensor driver source files.</td> - * </tr> - * <tr> - * <td><tt>LUFA_SRC_SERIAL</tt></td> - * <td>List of LUFA Serial U(S)ART driver source files.</td> - * </tr> - * <tr> - * <td><tt>LUFA_SRC_TWI</tt></td> - * <td>List of LUFA TWI driver source files.</td> - * </tr> - * <tr> - * <td><tt>LUFA_SRC_PLATFORM</tt></td> - * <td>List of LUFA architecture specific platform management source files.</td> - * </tr> - * </table> - * - * \section SSec_BuildModule_LUFA_SOURCES_ProvidedMacros Module Provided Macros - * - * <table> - * <tr> - * <td><i>None</i></td> - * </tr> - * </table> - */ - -/** \page Page_BuildModule_LUFA_GCC LUFA GCC extension module for DMBS - * - * The LUFA GCC extension module for the standard DMBS GCC module extends the - * latter to support the compilation of LUFA powered projects. It should be - * imported into your LUFA powered project makefiles to ensure that the correct - * build settings are used for the project's configuration. - * - * To use this module in your application makefile, add the following code: - * \code - * include $(LUFA_PATH)/Build/LUFA/lufa-gcc.mk - * \endcode - * - * \section SSec_BuildModule_LUFA_GCC_Requirements Requirements - * This module should be included in your makefile *after* the DMBS GCC module. - * - * \section SSec_BuildModule_LUFA_GCC_Targets Targets - * - * <table> - * <tr> - * <td><i>None</i></td> - * </tr> - * </table> - * - * \section SSec_BuildModule_LUFA_GCC_MandatoryParams Mandatory Parameters - * - * <table> - * <tr> - * <td><tt>LUFA_PATH</tt></td> - * <td>Path to the LUFA library core, either relative or absolute (e.g. <tt>../LUFA-000000/LUFA/</tt>).</td> - * </tr> - * </table> - * - * \section SSec_BuildModule_LUFA_GCC_OptionalParams Optional Parameters - * - * <table> - * <tr> - * <td><tt>BOARD</tt></td> - * <td>LUFA board hardware drivers to use (see \ref Page_DeviceSupport).</td> - * </tr> - * </table> - * - * \section SSec_BuildModule_LUFA_GCC_ProvidedVariables Module Provided Variables - * - * <table> - * <tr> - * <td><i>None</i></td> - * </tr> - * </table> - * - * \section SSec_BuildModule_LUFA_GCC_ProvidedMacros Module Provided Macros - * - * <table> - * <tr> - * <td><i>None</i></td> - * </tr> - * </table> - */ - -/** \page Page_BuildTroubleshooting Troubleshooting Information - * - * LUFA uses a lot of advanced features of the AVR-GCC compiler, linker, and - * surrounding binaries. This can sometimes lead to problems compiling - * applications if one of these features is buggy in the version of the tools - * used in a build environment. Missing utilities and incorrectly set makefile - * configuration options can also result in different errors being produced - * when compilation or other operations are attempted. The table below lists a - * set of commonly encountered errors and their resolutions. - * - * <table> - * <tr> - * <th>Problem</th> - * <th>Resolution</th> - * </tr> - * <tr> - * <td>Error "<b><tt>relocation truncated to fit: R_AVR_13_PCREL against symbol <i>{X}</i></tt></b>" shown when compiling.</td> - * <td>Try compiling with the setting <tt>LINKER_RELAXATIONS=N</tt> in your LUFA Build System 2.0 makefile, or remove the line <tt>-Wl,--relax</tt> - * from other makefiles. Alternatively, make sure you have the latest version of the Atmel Toolchain installed for your system.</td> - * </tr> - * <tr> - * <td>Error "<b><tt>error: ld terminated with signal 11 [Segmentation fault]</tt></b>" shown when compiling.</td> - * <td>Try compiling with the setting <tt>DEBUG_LEVEL=2</tt> in your LUFA Build System 2.0 makefile, or make sure you are using <tt>binutils</tt> version 2.22 or later.</td> - * </tr> - * <tr> - * <td>Error "<b><tt>EMERGENCY ABORT: INFINITE RECURSION DETECTED</tt></b>" shown when compiling.</td> - * <td>Make sure you are using an up to date version of GNU Make when compiling. This error is a safety system added to the mid-level makefiles, to prevent an issue with - * GNU make or other variants of Make causing an infinitely recursive build.</td> - * </tr> - * <tr> - * <td>Error "<b><tt>Unsupported architecture "<i>{X}</i>"</tt></b>" shown when compiling.</td> - * <td>Ensure your makefile's <tt>ARCH</tt> setting is set to one of the architecture names (case-sensitive) supported by the version of LUFA you are compiling against.</td> - * </tr> - * <tr> - * <td>Error "<b><tt>Makefile <i>{X}</i> value not set</tt></b>" shown when compiling.</td> - * <td>The specified Makefile value was not configured in your project's makefile or on the command line, and the nominated setting is required by one or more LUFA - * build system modules. Define the value in your project makefile and try again.</td> - * </tr> - * <tr> - * <td>Error "<b><tt>Makefile <i>{X}</i> option cannot be blank</tt></b>" shown when compiling.</td> - * <td>The specified Makefile value was configured in your project's makefile or on the command line, but was set to an empty value. For the nominated configuration - * option, an empty value is not allowed. Define the nominated setting to a correct non-blank value and try again.</td> - * </tr> - * <tr> - * <td>Error "<b><tt>Makefile <i>{X}</i> option must be Y or N</tt></b>" shown when compiling.</td> - * <td>The specified Makefile value was configured in your project's makefile or on the command line, but was set to a value other than a Y (for "Yes") or "N" (for "No"). - * This configuration option is required to be one of the aforementioned boolean values, and other values are invalid. Set this option to either Y or N and try again.</td> - * </tr> - * <tr> - * <td>Error "<b><tt>Unknown input source file formats: <i>{X}</i></tt></b>" shown when compiling.</td> - * <td>The nominated source files, specified in your project's makefile in the <tt>SRC</tt> configuration option, has an extension that the LUFA build system does not - * recognise. The file extensions are case sensitive, and must be one of the supported formats (<tt>*.c</tt>, <tt>*.cpp</tt> or <tt>*.S</tt>).</td> - * </tr> - * <tr> - * <td>Error "<b><tt>Cannot build with OBJDIR parameter set - one or more object file name is not unique</tt></b>" shown when compiling.</td> - * <td>When a project is built with a non-empty <tt>OBJDIR</tt> object directory name set, all input source files must have unique names, excluding extension and path. - * This means that input files that are named identically and differ only by their path or extension are invalid when this mode is used.</td> - * </tr> - * <tr> - * <td>Error "<b><tt>Source file does not exist: <i>{X}</i></tt></b>" shown when compiling.</td> - * <td>The nominated input source file, specified in the user project's <tt>SRC</tt> parameter, could not be found. Ensure the source file exists and the absolute or - * relative path given in the user project makefile is correct and try again.</td> - * </tr> - * <tr> - * <td>Error "<b><tt>Doxygen configuration file <i>{X}</i> does not exist</tt></b>" shown when upgrading a Doxygen configuration file.</td> - * <td>The nominated Doxygen configuration file, specified in the user project's <tt>DOXYGEN_CONF</tt> parameter, could not be found. Ensure the configuration file exists - * and the absolute or relative path given in the user project makefile is correct and try again, or run the appropriate makefile target to generate a new configuration - * file.</td> - * </tr> - * <tr> - * <td>Error "<b><tt>avr-gcc: error: unrecognized option '<i>{X}</i>'</tt></b>" shown when compiling.</td> - * <td>An unrecognised option was supplied to the compiler, usually in the <tt>C_FLAGS</tt>, <tt>CPP_FLAGS</tt>, <tt>ASM_FLAGS</tt> or <tt>CC_FLAGS</tt> configuration - * options. The nominated compiler switch may be invalid, or unsupported by the version of AVR-GCC on the host system. Remove the unrecognised flag if invalid, or - * upgrade to the latest AVR-GCC. If the option is a valid linker option, use the prefix "-Wl," to ensure it is passed to the linker correctly.</td> - * </tr> - * <tr> - * <td>Error "<b><tt>makefile:{X}: {Y}.mk: No such file or directory</tt></b>" shown when make is invoked.</td> - * <td>The path to the nominated makefile module was incorrect. This usually indicates that the makefile <tt>LUFA_PATH</tt> option is not set to a valid relative or - * absolute path to the LUFA library core.</td> - * </tr> - * <tr> - * <td>Error "<b><tt>fatal error: LUFAConfig.h: No such file or directory</tt></b>" shown when compiling.</td> - * <td>The <tt>USE_LUFA_CONFIG_HEADER</tt> compile time option was set in the user project makefile, but the user supplied <tt>LUFAConfig.h</tt> header could not be - * found. Ensure that the directory that contains this configuration file is correctly passed to the compiler via the -I switch in the makefile <tt>CC_FLAGS</tt> - * parameter.</td> - * </tr> - * <tr> - * <td>Error "<b><tt>ld.exe: section .apitable_trampolines loaded at <i>{X}</i> overlaps section .text</tt></b>" shown when compiling a bootloader.</td> - * <td>The bootloader is compiling too large for the given <tt>FLASH_SIZE_KB</tt> and <tt>BOOT_SECTION_SIZE_KB</tt> parameters set in the bootloader makefile. This - * usually indicates that these values are incorrect for the specified device the bootloader is targeting. If these values are correct, a newer version of the - * compiler may need to be used to ensure that the bootloader is built within the section size constraints of the target device.</td> - * </tr> - * <tr> - * <td>Error "<b><tt>unknown MCU '<i>{X}</i>' specified</tt></b>" shown when compiling.</td> - * <td>The specified microcontroller device model name set in the user application's makefile as the <tt>MCU</tt> parameter is incorrect, or unsupported by the - * version of the compiler being used. Make sure the model name is correct, or upgrade to the latest Atmel Toolchain to obtain newer device support.</td> - * </tr> - * <tr> - * <td>Error "<b><tt>undefined reference to `<i>{X}</i>'</tt></b>" shown when compiling.</td> - * <td>This is usually caused by a missing source file in the user application's <tt>SRC</tt> configuration parameter. If the indicated symbol is one from the LUFA - * library, you may be missing a LUFA source makefile module (see \ref Page_BuildModule_LUFA_SOURCES).</td> - * </tr> - * </table> - * - * For troubleshooting other errors you encounter, please see \ref Sec_ProjectHelp. - */ +/** \file + * + * This file contains special DoxyGen information for the generation of the main page and other special + * documentation pages. It is not a project source file. + */ + +/** \page Page_BuildSystem The LUFA Build System + * + * \section Sec_BuildSystem_Overview Overview of the LUFA Build System + * The LUFA build system was originally an attempt at making a set of + * re-usable, modular build make files which could be referenced in a LUFA + * powered project, to minimize the amount of code required in an + * application makefile. + * + * As it turned out to be fairly generic in nature, it was split out into its + * own separate project, called DMBS (<i>Dean's Makefile Build System</i>) + * which is released into the public domain. LUFA-specific portions of the + * LUFA build system extend DMBS, and provide a universal build system for all + * LUFA projects. + * + * The latest DMBS project information and documentation can be found at: + * https://github.com/abcminiuser/dmbs + * + * DMBS is written in GNU Make, and each module is independent of one-another. + * + * LUFA now uses DMBS for its build system, with some LUFA specific extension + * modules. + * + * If you have problems building using LUFA, see \subpage Page_BuildTroubleshooting for resolution steps. + * + * \li \subpage Page_BuildModule_LUFA_SOURCES - The LUFA SOURCES extension module for DMBS + * \li \subpage Page_BuildModule_LUFA_GCC - The LUFA GCC extension module for DMBS + */ + +/** \page Page_BuildModule_LUFA_SOURCES LUFA SOURCES extension module for DMBS + * + * The LUFA SOURCES extension more for DMBS provides LUFA specific variables + * listing the various LUFA source files required to be build by a project for + * a given LUFA module. This module gives a way to reference LUFA source files + * symbolically, so that changes to the library structure do not break the + * library makefile. + * + * To use this module in your application makefile, add the following code: + * \code + * include $(LUFA_PATH)/Build/LUFA/lufa-sources.mk + * \endcode + * + * \section SSec_BuildModule_LUFA_SOURCES_Requirements Requirements + * None. + * + * \section SSec_BuildModule_LUFA_SOURCES_Targets Targets + * + * <table> + * <tr> + * <td><i>None</i></td> + * </tr> + * </table> + * + * \section SSec_BuildModule_LUFA_SOURCES_MandatoryParams Mandatory Parameters + * + * <table> + * <tr> + * <td><tt>LUFA_PATH</tt></td> + * <td>Path to the LUFA library core, either relative or absolute (e.g. <tt>../LUFA-000000/LUFA/</tt>).</td> + * </tr> + * <tr> + * <td><tt>ARCH</tt></td> + * <td>Architecture of the target processor (see \ref Page_DeviceSupport).</td> + * </tr> + * </table> + * + * \section SSec_BuildModule_LUFA_SOURCES_OptionalParams Optional Parameters + * + * <table> + * <tr> + * <td><i>None</i></td> + * </tr> + * </table> + * + * \section SSec_BuildModule_LUFA_SOURCES_ProvidedVariables Module Provided Variables + * + * <table> + * <tr> + * <td><tt>LUFA_SRC_USB</tt></td> + * <td>List of LUFA USB driver source files.</td> + * </tr> + * <tr> + * <td><tt>LUFA_SRC_USBCLASS</tt></td> + * <td>List of LUFA USB Class driver source files.</td> + * </tr> + * <tr> + * <td><tt>LUFA_SRC_TEMPERATURE</tt></td> + * <td>List of LUFA temperature sensor driver source files.</td> + * </tr> + * <tr> + * <td><tt>LUFA_SRC_SERIAL</tt></td> + * <td>List of LUFA Serial U(S)ART driver source files.</td> + * </tr> + * <tr> + * <td><tt>LUFA_SRC_TWI</tt></td> + * <td>List of LUFA TWI driver source files.</td> + * </tr> + * <tr> + * <td><tt>LUFA_SRC_PLATFORM</tt></td> + * <td>List of LUFA architecture specific platform management source files.</td> + * </tr> + * </table> + * + * \section SSec_BuildModule_LUFA_SOURCES_ProvidedMacros Module Provided Macros + * + * <table> + * <tr> + * <td><i>None</i></td> + * </tr> + * </table> + */ + +/** \page Page_BuildModule_LUFA_GCC LUFA GCC extension module for DMBS + * + * The LUFA GCC extension module for the standard DMBS GCC module extends the + * latter to support the compilation of LUFA powered projects. It should be + * imported into your LUFA powered project makefiles to ensure that the correct + * build settings are used for the project's configuration. + * + * To use this module in your application makefile, add the following code: + * \code + * include $(LUFA_PATH)/Build/LUFA/lufa-gcc.mk + * \endcode + * + * \section SSec_BuildModule_LUFA_GCC_Requirements Requirements + * This module should be included in your makefile *after* the DMBS GCC module. + * + * \section SSec_BuildModule_LUFA_GCC_Targets Targets + * + * <table> + * <tr> + * <td><i>None</i></td> + * </tr> + * </table> + * + * \section SSec_BuildModule_LUFA_GCC_MandatoryParams Mandatory Parameters + * + * <table> + * <tr> + * <td><tt>LUFA_PATH</tt></td> + * <td>Path to the LUFA library core, either relative or absolute (e.g. <tt>../LUFA-000000/LUFA/</tt>).</td> + * </tr> + * </table> + * + * \section SSec_BuildModule_LUFA_GCC_OptionalParams Optional Parameters + * + * <table> + * <tr> + * <td><tt>BOARD</tt></td> + * <td>LUFA board hardware drivers to use (see \ref Page_DeviceSupport).</td> + * </tr> + * </table> + * + * \section SSec_BuildModule_LUFA_GCC_ProvidedVariables Module Provided Variables + * + * <table> + * <tr> + * <td><i>None</i></td> + * </tr> + * </table> + * + * \section SSec_BuildModule_LUFA_GCC_ProvidedMacros Module Provided Macros + * + * <table> + * <tr> + * <td><i>None</i></td> + * </tr> + * </table> + */ + +/** \page Page_BuildTroubleshooting Troubleshooting Information + * + * LUFA uses a lot of advanced features of the AVR-GCC compiler, linker, and + * surrounding binaries. This can sometimes lead to problems compiling + * applications if one of these features is buggy in the version of the tools + * used in a build environment. Missing utilities and incorrectly set makefile + * configuration options can also result in different errors being produced + * when compilation or other operations are attempted. The table below lists a + * set of commonly encountered errors and their resolutions. + * + * <table> + * <tr> + * <th>Problem</th> + * <th>Resolution</th> + * </tr> + * <tr> + * <td>Error "<b><tt>relocation truncated to fit: R_AVR_13_PCREL against symbol <i>{X}</i></tt></b>" shown when compiling.</td> + * <td>Try compiling with the setting <tt>LINKER_RELAXATIONS=N</tt> in your LUFA Build System 2.0 makefile, or remove the line <tt>-Wl,--relax</tt> + * from other makefiles. Alternatively, make sure you have the latest version of the Atmel Toolchain installed for your system.</td> + * </tr> + * <tr> + * <td>Error "<b><tt>error: ld terminated with signal 11 [Segmentation fault]</tt></b>" shown when compiling.</td> + * <td>Try compiling with the setting <tt>DEBUG_LEVEL=2</tt> in your LUFA Build System 2.0 makefile, or make sure you are using <tt>binutils</tt> version 2.22 or later.</td> + * </tr> + * <tr> + * <td>Error "<b><tt>EMERGENCY ABORT: INFINITE RECURSION DETECTED</tt></b>" shown when compiling.</td> + * <td>Make sure you are using an up to date version of GNU Make when compiling. This error is a safety system added to the mid-level makefiles, to prevent an issue with + * GNU make or other variants of Make causing an infinitely recursive build.</td> + * </tr> + * <tr> + * <td>Error "<b><tt>Unsupported architecture "<i>{X}</i>"</tt></b>" shown when compiling.</td> + * <td>Ensure your makefile's <tt>ARCH</tt> setting is set to one of the architecture names (case-sensitive) supported by the version of LUFA you are compiling against.</td> + * </tr> + * <tr> + * <td>Error "<b><tt>Makefile <i>{X}</i> value not set</tt></b>" shown when compiling.</td> + * <td>The specified Makefile value was not configured in your project's makefile or on the command line, and the nominated setting is required by one or more LUFA + * build system modules. Define the value in your project makefile and try again.</td> + * </tr> + * <tr> + * <td>Error "<b><tt>Makefile <i>{X}</i> option cannot be blank</tt></b>" shown when compiling.</td> + * <td>The specified Makefile value was configured in your project's makefile or on the command line, but was set to an empty value. For the nominated configuration + * option, an empty value is not allowed. Define the nominated setting to a correct non-blank value and try again.</td> + * </tr> + * <tr> + * <td>Error "<b><tt>Makefile <i>{X}</i> option must be Y or N</tt></b>" shown when compiling.</td> + * <td>The specified Makefile value was configured in your project's makefile or on the command line, but was set to a value other than a Y (for "Yes") or "N" (for "No"). + * This configuration option is required to be one of the aforementioned boolean values, and other values are invalid. Set this option to either Y or N and try again.</td> + * </tr> + * <tr> + * <td>Error "<b><tt>Unknown input source file formats: <i>{X}</i></tt></b>" shown when compiling.</td> + * <td>The nominated source files, specified in your project's makefile in the <tt>SRC</tt> configuration option, has an extension that the LUFA build system does not + * recognise. The file extensions are case sensitive, and must be one of the supported formats (<tt>*.c</tt>, <tt>*.cpp</tt> or <tt>*.S</tt>).</td> + * </tr> + * <tr> + * <td>Error "<b><tt>Cannot build with OBJDIR parameter set - one or more object file name is not unique</tt></b>" shown when compiling.</td> + * <td>When a project is built with a non-empty <tt>OBJDIR</tt> object directory name set, all input source files must have unique names, excluding extension and path. + * This means that input files that are named identically and differ only by their path or extension are invalid when this mode is used.</td> + * </tr> + * <tr> + * <td>Error "<b><tt>Source file does not exist: <i>{X}</i></tt></b>" shown when compiling.</td> + * <td>The nominated input source file, specified in the user project's <tt>SRC</tt> parameter, could not be found. Ensure the source file exists and the absolute or + * relative path given in the user project makefile is correct and try again.</td> + * </tr> + * <tr> + * <td>Error "<b><tt>Doxygen configuration file <i>{X}</i> does not exist</tt></b>" shown when upgrading a Doxygen configuration file.</td> + * <td>The nominated Doxygen configuration file, specified in the user project's <tt>DOXYGEN_CONF</tt> parameter, could not be found. Ensure the configuration file exists + * and the absolute or relative path given in the user project makefile is correct and try again, or run the appropriate makefile target to generate a new configuration + * file.</td> + * </tr> + * <tr> + * <td>Error "<b><tt>avr-gcc: error: unrecognized option '<i>{X}</i>'</tt></b>" shown when compiling.</td> + * <td>An unrecognised option was supplied to the compiler, usually in the <tt>C_FLAGS</tt>, <tt>CPP_FLAGS</tt>, <tt>ASM_FLAGS</tt> or <tt>CC_FLAGS</tt> configuration + * options. The nominated compiler switch may be invalid, or unsupported by the version of AVR-GCC on the host system. Remove the unrecognised flag if invalid, or + * upgrade to the latest AVR-GCC. If the option is a valid linker option, use the prefix "-Wl," to ensure it is passed to the linker correctly.</td> + * </tr> + * <tr> + * <td>Error "<b><tt>makefile:{X}: {Y}.mk: No such file or directory</tt></b>" shown when make is invoked.</td> + * <td>The path to the nominated makefile module was incorrect. This usually indicates that the makefile <tt>LUFA_PATH</tt> option is not set to a valid relative or + * absolute path to the LUFA library core.</td> + * </tr> + * <tr> + * <td>Error "<b><tt>fatal error: LUFAConfig.h: No such file or directory</tt></b>" shown when compiling.</td> + * <td>The <tt>USE_LUFA_CONFIG_HEADER</tt> compile time option was set in the user project makefile, but the user supplied <tt>LUFAConfig.h</tt> header could not be + * found. Ensure that the directory that contains this configuration file is correctly passed to the compiler via the -I switch in the makefile <tt>CC_FLAGS</tt> + * parameter.</td> + * </tr> + * <tr> + * <td>Error "<b><tt>ld.exe: section .apitable_trampolines loaded at <i>{X}</i> overlaps section .text</tt></b>" shown when compiling a bootloader.</td> + * <td>The bootloader is compiling too large for the given <tt>FLASH_SIZE_KB</tt> and <tt>BOOT_SECTION_SIZE_KB</tt> parameters set in the bootloader makefile. This + * usually indicates that these values are incorrect for the specified device the bootloader is targeting. If these values are correct, a newer version of the + * compiler may need to be used to ensure that the bootloader is built within the section size constraints of the target device.</td> + * </tr> + * <tr> + * <td>Error "<b><tt>unknown MCU '<i>{X}</i>' specified</tt></b>" shown when compiling.</td> + * <td>The specified microcontroller device model name set in the user application's makefile as the <tt>MCU</tt> parameter is incorrect, or unsupported by the + * version of the compiler being used. Make sure the model name is correct, or upgrade to the latest Atmel Toolchain to obtain newer device support.</td> + * </tr> + * <tr> + * <td>Error "<b><tt>undefined reference to `<i>{X}</i>'</tt></b>" shown when compiling.</td> + * <td>This is usually caused by a missing source file in the user application's <tt>SRC</tt> configuration parameter. If the indicated symbol is one from the LUFA + * library, you may be missing a LUFA source makefile module (see \ref Page_BuildModule_LUFA_SOURCES).</td> + * </tr> + * </table> + * + * For troubleshooting other errors you encounter, please see \ref Sec_ProjectHelp. + */ diff --git a/LUFA/Drivers/Board/AVR8/QMK/Board.h b/LUFA/Drivers/Board/AVR8/QMK/Board.h index 19a0f2dfe..b0d5ac447 100644 --- a/LUFA/Drivers/Board/AVR8/QMK/Board.h +++ b/LUFA/Drivers/Board/AVR8/QMK/Board.h @@ -1,65 +1,65 @@ -/* -Copyright 2017 Jack Humbert - -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/>. -*/ - -/** \file - * \brief General driver header for QMK-powered keyboards. - * \copydetails Group_BoardInfo_QMK - * - * \note This file should not be included directly. It is automatically included as needed by the Board driver - * dispatch header located in LUFA/Drivers/Board/Board.h. - */ - -/** \ingroup Group_BoardInfo - * \defgroup Group_BoardInfo_QMK QMK - * \brief General driver header for QMK-powered keyboards. - * - * General driver header for QMK-powered keyboards (http://qmk.fm). - * - * @{ - */ - -#ifndef __BOARD_QMK_H__ -#define __BOARD_QMK_H__ - - /* Includes: */ - #include "../../../../Common/Common.h" - #include "../../LEDs.h" - - /* Enable C linkage for C++ Compilers: */ - #if defined(__cplusplus) - extern "C" { - #endif - - /* Preprocessor Checks: */ - #if !defined(__INCLUDE_FROM_BOARD_H) - #error Do not include this file directly. Include LUFA/Drivers/Board/Board.h instead. - #endif - - /* Public Interface - May be used in end-application: */ - /* Macros: */ - /** Indicates the board has hardware LEDs mounted. */ - #define BOARD_HAS_LEDS - - /* Disable C linkage for C++ Compilers: */ - #if defined(__cplusplus) - } - #endif - -#endif - -/** @} */ - +/* +Copyright 2017 Jack Humbert + +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/>. +*/ + +/** \file + * \brief General driver header for QMK-powered keyboards. + * \copydetails Group_BoardInfo_QMK + * + * \note This file should not be included directly. It is automatically included as needed by the Board driver + * dispatch header located in LUFA/Drivers/Board/Board.h. + */ + +/** \ingroup Group_BoardInfo + * \defgroup Group_BoardInfo_QMK QMK + * \brief General driver header for QMK-powered keyboards. + * + * General driver header for QMK-powered keyboards (http://qmk.fm). + * + * @{ + */ + +#ifndef __BOARD_QMK_H__ +#define __BOARD_QMK_H__ + + /* Includes: */ + #include "../../../../Common/Common.h" + #include "../../LEDs.h" + + /* Enable C linkage for C++ Compilers: */ + #if defined(__cplusplus) + extern "C" { + #endif + + /* Preprocessor Checks: */ + #if !defined(__INCLUDE_FROM_BOARD_H) + #error Do not include this file directly. Include LUFA/Drivers/Board/Board.h instead. + #endif + + /* Public Interface - May be used in end-application: */ + /* Macros: */ + /** Indicates the board has hardware LEDs mounted. */ + #define BOARD_HAS_LEDS + + /* Disable C linkage for C++ Compilers: */ + #if defined(__cplusplus) + } + #endif + +#endif + +/** @} */ + diff --git a/LUFA/Drivers/Board/AVR8/QMK/LEDs.h b/LUFA/Drivers/Board/AVR8/QMK/LEDs.h index 1310612dc..9fc696be9 100644 --- a/LUFA/Drivers/Board/AVR8/QMK/LEDs.h +++ b/LUFA/Drivers/Board/AVR8/QMK/LEDs.h @@ -1,194 +1,194 @@ -/* -Copyright 2017 Jack Humbert - -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/>. -*/ - -/** \file - * \brief General driver header for QMK-powered keyboards. - * \copydetails Group_LEDs_QMK - * - * \note This file should not be included directly. It is automatically included as needed by the LEDs driver - * dispatch header located in LUFA/Drivers/Board/LEDs.h. - */ - -/** \ingroup Group_LEDs - * \defgroup Group_LEDs_QMK QMK - * \brief General driver header for QMK-powered keyboards. - * - * General driver header for QMK-powered keyboards (http://qmk.fm). - * - * <b>QMK</b>: - * <table> - * <tr><th>Name</th><th>Color</th><th>Info</th><th>Active Level</th><th>Port Pin</th></tr> - * <tr><td>LEDS_LED1</td><td>Green</td><td>General Indicator</td><td>High</td><td>PORT(QMK_LED).6</td></tr> - * </table> - * - * @{ - */ - -#ifndef __LEDS_QMK_H__ -#define __LEDS_QMK_H__ - - /* Includes: */ - #include "../../../../Common/Common.h" - - /* Enable C linkage for C++ Compilers: */ - #if defined(__cplusplus) - extern "C" { - #endif - - /* Preprocessor Checks: */ - #if !defined(__INCLUDE_FROM_LEDS_H) - #error Do not include this file directly. Include LUFA/Drivers/Board/LEDS.h instead. - #endif - - #define B0 0x30 - #define B1 0x31 - #define B2 0x32 - #define B3 0x33 - #define B4 0x34 - #define B5 0x35 - #define B6 0x36 - #define B7 0x37 - #define C0 0x60 - #define C1 0x61 - #define C2 0x62 - #define C3 0x63 - #define C4 0x64 - #define C5 0x65 - #define C6 0x66 - #define C7 0x67 - #define D0 0x90 - #define D1 0x91 - #define D2 0x92 - #define D3 0x93 - #define D4 0x94 - #define D5 0x95 - #define D6 0x96 - #define D7 0x97 - #define E0 0xC0 - #define E1 0xC1 - #define E2 0xC2 - #define E3 0xC3 - #define E4 0xC4 - #define E5 0xC5 - #define E6 0xC6 - #define E7 0xC7 - #define F0 0xF0 - #define F1 0xF1 - #define F2 0xF2 - #define F3 0xF3 - #define F4 0xF4 - #define F5 0xF5 - #define F6 0xF6 - #define F7 0xF7 - #define A0 0x00 - #define A1 0x01 - #define A2 0x02 - #define A3 0x03 - #define A4 0x04 - #define A5 0x05 - #define A6 0x06 - #define A7 0x07 - - #define QMK_ESC_COL F1 - #define QMK_ESC_ROW D5 - #define QMK_LED E6 - #define QMK_SPEAKER C6 - - #define DDR(pin) _SFR_IO8(((pin) >> 4) + 1) - #define PORT(pin) _SFR_IO8(((pin) >> 4) + 2) - #define PIN(pin) _SFR_IO8((pin) >> 4) - #define NUM(pin) _BV((pin) & 0xF) - - /* Public Interface - May be used in end-application: */ - /* Macros: */ - /** LED mask for the first LED on the board. */ - #define LEDS_LED1 NUM(QMK_LED) - #define LEDS_LED2 NUM(QMK_SPEAKER) - - /** LED mask for all the LEDs on the board. */ - #define LEDS_ALL_LEDS LEDS_LED1 | LEDS_LED2 - - /** LED mask for none of the board LEDs. */ - #define LEDS_NO_LEDS 0 - - /* Inline Functions: */ - #if !defined(__DOXYGEN__) - static inline void LEDs_Init(void) - { - DDR(QMK_LED) |= LEDS_LED1; - PORT(QMK_LED) |= LEDS_LED1; - - DDR(QMK_SPEAKER) |= LEDS_LED2; - PORT(QMK_SPEAKER) |= LEDS_LED2; - } - - static inline void LEDs_Disable(void) - { - DDR(QMK_LED) &= ~LEDS_LED1; - PORT(QMK_LED) &= ~LEDS_LED2; - - DDR(QMK_SPEAKER) &= ~LEDS_LED1; - PORT(QMK_SPEAKER) &= ~LEDS_LED2; - } - - static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask) - { - PORT(QMK_LED) &= (LEDS_LED1 & ~LEDMask); - PORT(QMK_SPEAKER) &= (LEDS_LED2 & ~LEDMask); - } - - static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask) - { - PORT(QMK_LED) |= (LEDS_LED1 & LEDMask); - PORT(QMK_SPEAKER) |= (LEDS_LED2 & LEDMask); - } - - static inline void LEDs_SetAllLEDs(const uint8_t LEDMask) - { - PORT(QMK_LED) = ((PORT(QMK_LED) | LEDS_LED1) & ~LEDMask); - PORT(QMK_SPEAKER) = ((PORT(QMK_SPEAKER) | LEDS_LED2) & ~LEDMask); - } - - static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, - const uint8_t ActiveMask) - { - PORT(QMK_LED) = ((PORT(QMK_LED) | (LEDS_LED1 & LEDMask)) & ~ActiveMask); - PORT(QMK_SPEAKER) = ((PORT(QMK_SPEAKER) | (LEDS_LED1 & LEDMask)) & ~ActiveMask); - } - - static inline void LEDs_ToggleLEDs(const uint8_t LEDMask) - { - PIN(QMK_LED) = (LEDS_LED1 & LEDMask); - PIN(QMK_SPEAKER) = (LEDS_LED2 & LEDMask); - } - - static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT; - static inline uint8_t LEDs_GetLEDs(void) - { - return (~PORT(QMK_LED) & LEDS_LED1) | (~(PORT(QMK_SPEAKER) & LEDS_LED2)); - } - #endif - - /* Disable C linkage for C++ Compilers: */ - #if defined(__cplusplus) - } - #endif - -#endif - -/** @} */ - +/* +Copyright 2017 Jack Humbert + +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/>. +*/ + +/** \file + * \brief General driver header for QMK-powered keyboards. + * \copydetails Group_LEDs_QMK + * + * \note This file should not be included directly. It is automatically included as needed by the LEDs driver + * dispatch header located in LUFA/Drivers/Board/LEDs.h. + */ + +/** \ingroup Group_LEDs + * \defgroup Group_LEDs_QMK QMK + * \brief General driver header for QMK-powered keyboards. + * + * General driver header for QMK-powered keyboards (http://qmk.fm). + * + * <b>QMK</b>: + * <table> + * <tr><th>Name</th><th>Color</th><th>Info</th><th>Active Level</th><th>Port Pin</th></tr> + * <tr><td>LEDS_LED1</td><td>Green</td><td>General Indicator</td><td>High</td><td>PORT(QMK_LED).6</td></tr> + * </table> + * + * @{ + */ + +#ifndef __LEDS_QMK_H__ +#define __LEDS_QMK_H__ + + /* Includes: */ + #include "../../../../Common/Common.h" + + /* Enable C linkage for C++ Compilers: */ + #if defined(__cplusplus) + extern "C" { + #endif + + /* Preprocessor Checks: */ + #if !defined(__INCLUDE_FROM_LEDS_H) + #error Do not include this file directly. Include LUFA/Drivers/Board/LEDS.h instead. + #endif + + #define B0 0x30 + #define B1 0x31 + #define B2 0x32 + #define B3 0x33 + #define B4 0x34 + #define B5 0x35 + #define B6 0x36 + #define B7 0x37 + #define C0 0x60 + #define C1 0x61 + #define C2 0x62 + #define C3 0x63 + #define C4 0x64 + #define C5 0x65 + #define C6 0x66 + #define C7 0x67 + #define D0 0x90 + #define D1 0x91 + #define D2 0x92 + #define D3 0x93 + #define D4 0x94 + #define D5 0x95 + #define D6 0x96 + #define D7 0x97 + #define E0 0xC0 + #define E1 0xC1 + #define E2 0xC2 + #define E3 0xC3 + #define E4 0xC4 + #define E5 0xC5 + #define E6 0xC6 + #define E7 0xC7 + #define F0 0xF0 + #define F1 0xF1 + #define F2 0xF2 + #define F3 0xF3 + #define F4 0xF4 + #define F5 0xF5 + #define F6 0xF6 + #define F7 0xF7 + #define A0 0x00 + #define A1 0x01 + #define A2 0x02 + #define A3 0x03 + #define A4 0x04 + #define A5 0x05 + #define A6 0x06 + #define A7 0x07 + + #define QMK_ESC_COL F1 + #define QMK_ESC_ROW D5 + #define QMK_LED E6 + #define QMK_SPEAKER C6 + + #define DDR(pin) _SFR_IO8(((pin) >> 4) + 1) + #define PORT(pin) _SFR_IO8(((pin) >> 4) + 2) + #define PIN(pin) _SFR_IO8((pin) >> 4) + #define NUM(pin) _BV((pin) & 0xF) + + /* Public Interface - May be used in end-application: */ + /* Macros: */ + /** LED mask for the first LED on the board. */ + #define LEDS_LED1 NUM(QMK_LED) + #define LEDS_LED2 NUM(QMK_SPEAKER) + + /** LED mask for all the LEDs on the board. */ + #define LEDS_ALL_LEDS LEDS_LED1 | LEDS_LED2 + + /** LED mask for none of the board LEDs. */ + #define LEDS_NO_LEDS 0 + + /* Inline Functions: */ + #if !defined(__DOXYGEN__) + static inline void LEDs_Init(void) + { + DDR(QMK_LED) |= LEDS_LED1; + PORT(QMK_LED) |= LEDS_LED1; + + DDR(QMK_SPEAKER) |= LEDS_LED2; + PORT(QMK_SPEAKER) |= LEDS_LED2; + } + + static inline void LEDs_Disable(void) + { + DDR(QMK_LED) &= ~LEDS_LED1; + PORT(QMK_LED) &= ~LEDS_LED2; + + DDR(QMK_SPEAKER) &= ~LEDS_LED1; + PORT(QMK_SPEAKER) &= ~LEDS_LED2; + } + + static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask) + { + PORT(QMK_LED) &= (LEDS_LED1 & ~LEDMask); + PORT(QMK_SPEAKER) &= (LEDS_LED2 & ~LEDMask); + } + + static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask) + { + PORT(QMK_LED) |= (LEDS_LED1 & LEDMask); + PORT(QMK_SPEAKER) |= (LEDS_LED2 & LEDMask); + } + + static inline void LEDs_SetAllLEDs(const uint8_t LEDMask) + { + PORT(QMK_LED) = ((PORT(QMK_LED) | LEDS_LED1) & ~LEDMask); + PORT(QMK_SPEAKER) = ((PORT(QMK_SPEAKER) | LEDS_LED2) & ~LEDMask); + } + + static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, + const uint8_t ActiveMask) + { + PORT(QMK_LED) = ((PORT(QMK_LED) | (LEDS_LED1 & LEDMask)) & ~ActiveMask); + PORT(QMK_SPEAKER) = ((PORT(QMK_SPEAKER) | (LEDS_LED1 & LEDMask)) & ~ActiveMask); + } + + static inline void LEDs_ToggleLEDs(const uint8_t LEDMask) + { + PIN(QMK_LED) = (LEDS_LED1 & LEDMask); + PIN(QMK_SPEAKER) = (LEDS_LED2 & LEDMask); + } + + static inline uint8_t LEDs_GetLEDs(void) ATTR_WARN_UNUSED_RESULT; + static inline uint8_t LEDs_GetLEDs(void) + { + return (~PORT(QMK_LED) & LEDS_LED1) | (~(PORT(QMK_SPEAKER) & LEDS_LED2)); + } + #endif + + /* Disable C linkage for C++ Compilers: */ + #if defined(__cplusplus) + } + #endif + +#endif + +/** @} */ + diff --git a/LUFA/StudioIntegration/Docbook/placeholder.txt b/LUFA/StudioIntegration/Docbook/placeholder.txt index c017acfd7..dd69b7e0b 100644 --- a/LUFA/StudioIntegration/Docbook/placeholder.txt +++ b/LUFA/StudioIntegration/Docbook/placeholder.txt @@ -1 +1 @@ -Copy the Docbook XSLT docbook-xsl-1.78.1 release contents into this directory (i.e. with the root Docbook files in the current folder). The Docbook releases can be found at http://sourceforge.net/projects/docbook/files/docbook-xsl/ . +Copy the Docbook XSLT docbook-xsl-1.78.1 release contents into this directory (i.e. with the root Docbook files in the current folder). The Docbook releases can be found at http://sourceforge.net/projects/docbook/files/docbook-xsl/ . diff --git a/LUFA/StudioIntegration/HV1/lufa_hv1_transform.xslt b/LUFA/StudioIntegration/HV1/lufa_hv1_transform.xslt index e7e230166..e7b57ab64 100644 --- a/LUFA/StudioIntegration/HV1/lufa_hv1_transform.xslt +++ b/LUFA/StudioIntegration/HV1/lufa_hv1_transform.xslt @@ -1,45 +1,45 @@ -<!-- - LUFA Library - Copyright (C) Dean Camera, 2017. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org ---> - -<!-- Docbook XML to Microsoft Help Viewer 1.0 transform file --> - -<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> - - <xsl:import href="../Docbook/mshelp/docbook.xsl"/> - - <xsl:output method="xml" indent="no"/> - - <xsl:template match="emphasis[@role = 'keyword' or @role = 'keywordtype' or @role = 'keywordflow']"> - <span class="hl-keyword" style="color: #0079C1"> - <xsl:apply-templates/> - </span> - </xsl:template> - - <xsl:template match="emphasis[@role = 'stringliteral' or @role = 'charliteral']"> - <span class="hl-string" style="color: #800000"> - <xsl:apply-templates/> - </span> - </xsl:template> - - <xsl:template match="emphasis[@role = 'comment']"> - <em class="hl-comment" style="color: #008000"> - <xsl:apply-templates/> - </em> - </xsl:template> - - <xsl:template match="emphasis[@role = 'preprocessor']"> - <span class="hl-preprocessor" style="color: #A000A0"> - <xsl:apply-templates/> - </span> - </xsl:template> - - <xsl:template match="emphasis[@role = 'normal' and ancestor::programlisting]"> - <xsl:apply-templates /> - </xsl:template> - -</xsl:stylesheet> +<!-- + LUFA Library + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +--> + +<!-- Docbook XML to Microsoft Help Viewer 1.0 transform file --> + +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + + <xsl:import href="../Docbook/mshelp/docbook.xsl"/> + + <xsl:output method="xml" indent="no"/> + + <xsl:template match="emphasis[@role = 'keyword' or @role = 'keywordtype' or @role = 'keywordflow']"> + <span class="hl-keyword" style="color: #0079C1"> + <xsl:apply-templates/> + </span> + </xsl:template> + + <xsl:template match="emphasis[@role = 'stringliteral' or @role = 'charliteral']"> + <span class="hl-string" style="color: #800000"> + <xsl:apply-templates/> + </span> + </xsl:template> + + <xsl:template match="emphasis[@role = 'comment']"> + <em class="hl-comment" style="color: #008000"> + <xsl:apply-templates/> + </em> + </xsl:template> + + <xsl:template match="emphasis[@role = 'preprocessor']"> + <span class="hl-preprocessor" style="color: #A000A0"> + <xsl:apply-templates/> + </span> + </xsl:template> + + <xsl:template match="emphasis[@role = 'normal' and ancestor::programlisting]"> + <xsl:apply-templates /> + </xsl:template> + +</xsl:stylesheet> diff --git a/LUFA/StudioIntegration/HV1/lufa_studio_help_styling.css b/LUFA/StudioIntegration/HV1/lufa_studio_help_styling.css index a4a025cc8..b1b9cafd1 100644 --- a/LUFA/StudioIntegration/HV1/lufa_studio_help_styling.css +++ b/LUFA/StudioIntegration/HV1/lufa_studio_help_styling.css @@ -1,53 +1,53 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2017. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org -*/ - -.programlisting { - display: block; - margin-left: 15px; - padding: 10px; - background-color: #f4f4f4; - border: 1px solid #aaaaaa; - font-family: "Consolas", "Courier New", sans-serif; - } - - code { - background-color: #f4f4f4; - font-family: "Consolas", "Courier New", sans-serif; - } - -.note, .warning, .tip { - display: block; - margin-left: 15px; - padding-left: 10px; - padding-bottom: 5px; - background-color: #f4f4f4; - border: 1px solid #aaaaaa; -} - -table { - border: 1px solid #aaaaaa; - border-collapse: collapse; - margin-left: 15px; - font-size: 10pt; -} - -table thead { - background-color: #f4f4f4; -} - -table thead th { - padding: 5px; -} - -table tbody td { - padding: 5px; -} - -ul { - padding-left: 20px; -} +/* + LUFA Library + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +*/ + +.programlisting { + display: block; + margin-left: 15px; + padding: 10px; + background-color: #f4f4f4; + border: 1px solid #aaaaaa; + font-family: "Consolas", "Courier New", sans-serif; + } + + code { + background-color: #f4f4f4; + font-family: "Consolas", "Courier New", sans-serif; + } + +.note, .warning, .tip { + display: block; + margin-left: 15px; + padding-left: 10px; + padding-bottom: 5px; + background-color: #f4f4f4; + border: 1px solid #aaaaaa; +} + +table { + border: 1px solid #aaaaaa; + border-collapse: collapse; + margin-left: 15px; + font-size: 10pt; +} + +table thead { + background-color: #f4f4f4; +} + +table thead th { + padding: 5px; +} + +table tbody td { + padding: 5px; +} + +ul { + padding-left: 20px; +} diff --git a/LUFA/StudioIntegration/VSIX/[Content_Types].xml b/LUFA/StudioIntegration/VSIX/[Content_Types].xml index 05ef8b6ba..112d16994 100644 --- a/LUFA/StudioIntegration/VSIX/[Content_Types].xml +++ b/LUFA/StudioIntegration/VSIX/[Content_Types].xml @@ -1,13 +1,13 @@ -<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"> - <Default Extension="vsixmanifest" ContentType="text/xml"/> - <Default Extension="cache" ContentType="text/xml"/> - <Default Extension="png" ContentType="application/octet-stream"/> - <Default Extension="txt" ContentType="text/plain"/> - <Default Extension="xml" ContentType="text/xml"/> - <Default Extension="zip" ContentType="application/octet-stream"/> - <Default Extension="dll" ContentType="application/octet-stream" /> - <Default Extension="pkgdef" ContentType="text/plain" /> - <Default Extension="htm" ContentType="text/html" /> - <Default Extension="msha" ContentType="text/html" /> - <Default Extension="mshc" ContentType="application/octet-stream"/> -</Types> +<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"> + <Default Extension="vsixmanifest" ContentType="text/xml"/> + <Default Extension="cache" ContentType="text/xml"/> + <Default Extension="png" ContentType="application/octet-stream"/> + <Default Extension="txt" ContentType="text/plain"/> + <Default Extension="xml" ContentType="text/xml"/> + <Default Extension="zip" ContentType="application/octet-stream"/> + <Default Extension="dll" ContentType="application/octet-stream" /> + <Default Extension="pkgdef" ContentType="text/plain" /> + <Default Extension="htm" ContentType="text/html" /> + <Default Extension="msha" ContentType="text/html" /> + <Default Extension="mshc" ContentType="application/octet-stream"/> +</Types> diff --git a/LUFA/StudioIntegration/VSIX/asf-manifest.xml b/LUFA/StudioIntegration/VSIX/asf-manifest.xml index 794fd689e..bd969518a 100644 --- a/LUFA/StudioIntegration/VSIX/asf-manifest.xml +++ b/LUFA/StudioIntegration/VSIX/asf-manifest.xml @@ -1,18 +1,18 @@ -<AsfContentProvider Version="1.0.0"> - <Identifier Id="0e160d5c-e331-48d9-850b-e0387912171b"> - <Org>FourWalledCubicle</Org> - <ShortName>LUFA</ShortName> - <Author>Dean Camera</Author> - <Description/> - <FollowFolderStructure>True</FollowFolderStructure> - </Identifier> - <AsfContent Type="zip" Path="contents.zip"> - <Content> - <Version>0</Version> - <HelpURL/> - <Locator/> - <DbXMLPath>content.xml.cache</DbXMLPath> - <Description/> - </Content> - </AsfContent> -</AsfContentProvider> +<AsfContentProvider Version="1.0.0"> + <Identifier Id="0e160d5c-e331-48d9-850b-e0387912171b"> + <Org>FourWalledCubicle</Org> + <ShortName>LUFA</ShortName> + <Author>Dean Camera</Author> + <Description/> + <FollowFolderStructure>True</FollowFolderStructure> + </Identifier> + <AsfContent Type="zip" Path="contents.zip"> + <Content> + <Version>0</Version> + <HelpURL/> + <Locator/> + <DbXMLPath>content.xml.cache</DbXMLPath> + <Description/> + </Content> + </AsfContent> +</AsfContentProvider> diff --git a/LUFA/StudioIntegration/VSIX/extension.vsixmanifest b/LUFA/StudioIntegration/VSIX/extension.vsixmanifest index f155618b7..a1901cb56 100644 --- a/LUFA/StudioIntegration/VSIX/extension.vsixmanifest +++ b/LUFA/StudioIntegration/VSIX/extension.vsixmanifest @@ -1,32 +1,32 @@ -<?xml version="1.0" encoding="utf-8"?> - -<Vsix xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="1.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2010"> - <Identifier Id="FourWalledCubicle.LUFA.0e160d5c-e331-48d9-850b-e0387912171b"> - <Name>LUFA Library</Name> - <Author>Dean Camera</Author> - <Version>0</Version> - <MoreInfoUrl>http://www.lufa-lib.org</MoreInfoUrl> - <Description xml:space="preserve">LUFA, the Lightweight USB Framework for AVRs.</Description> - - <License>License.txt</License> - <Icon>LUFA_thumb.png</Icon> - <PreviewImage>LUFA.png</PreviewImage> - - <SupportedProducts> - <IsolatedShell Version="7.0">AtmelStudio</IsolatedShell> - </SupportedProducts> - - <SupportedFrameworkRuntimeEdition MinVersion="4.0" MaxVersion="4.5"/> - <Locale>1033</Locale> - - <AllUsers>false</AllUsers> - </Identifier> - - <References/> - - <Content> - <VsPackage>LUFA.pkgdef</VsPackage> - <CustomExtension Type="MSHelp">helpcontentsetup.msha</CustomExtension> - <CustomExtension Type="asf-manifest">asf-manifest.xml</CustomExtension> - </Content> -</Vsix> +<?xml version="1.0" encoding="utf-8"?> + +<Vsix xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="1.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2010"> + <Identifier Id="FourWalledCubicle.LUFA.0e160d5c-e331-48d9-850b-e0387912171b"> + <Name>LUFA Library</Name> + <Author>Dean Camera</Author> + <Version>0</Version> + <MoreInfoUrl>http://www.lufa-lib.org</MoreInfoUrl> + <Description xml:space="preserve">LUFA, the Lightweight USB Framework for AVRs.</Description> + + <License>License.txt</License> + <Icon>LUFA_thumb.png</Icon> + <PreviewImage>LUFA.png</PreviewImage> + + <SupportedProducts> + <IsolatedShell Version="7.0">AtmelStudio</IsolatedShell> + </SupportedProducts> + + <SupportedFrameworkRuntimeEdition MinVersion="4.0" MaxVersion="4.5"/> + <Locale>1033</Locale> + + <AllUsers>false</AllUsers> + </Identifier> + + <References/> + + <Content> + <VsPackage>LUFA.pkgdef</VsPackage> + <CustomExtension Type="MSHelp">helpcontentsetup.msha</CustomExtension> + <CustomExtension Type="asf-manifest">asf-manifest.xml</CustomExtension> + </Content> +</Vsix> diff --git a/LUFA/StudioIntegration/VSIX/generate_caches.py b/LUFA/StudioIntegration/VSIX/generate_caches.py index ab787e8ec..671bed9d5 100644 --- a/LUFA/StudioIntegration/VSIX/generate_caches.py +++ b/LUFA/StudioIntegration/VSIX/generate_caches.py @@ -1,38 +1,38 @@ -""" - LUFA Library - Copyright (C) Dean Camera, 2017. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org -""" - -import sys -sys.path.append("ProjectGenerator") - - -def show_message(message): - print("[Project Generator] %s" % message) - sys.stdout.flush() - - -def main(lufa_root_path): - try: - from asf_avrstudio5_interface import PythonFacade - except ImportError: - print("Fatal Error: The ASF project generator is missing.") - return 1 - - p = PythonFacade(lufa_root_path) - - show_message("Checking database sanity...") - p.check_extension_database_sanity(lufa_root_path) - - show_message("Building cache files...") - p.generate_extension_cache_files(lufa_root_path) - - show_message("Cache files created.") - return 0 - - -if __name__ == "__main__": - sys.exit(main(sys.argv[1])) +""" + LUFA Library + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +""" + +import sys +sys.path.append("ProjectGenerator") + + +def show_message(message): + print("[Project Generator] %s" % message) + sys.stdout.flush() + + +def main(lufa_root_path): + try: + from asf_avrstudio5_interface import PythonFacade + except ImportError: + print("Fatal Error: The ASF project generator is missing.") + return 1 + + p = PythonFacade(lufa_root_path) + + show_message("Checking database sanity...") + p.check_extension_database_sanity(lufa_root_path) + + show_message("Building cache files...") + p.generate_extension_cache_files(lufa_root_path) + + show_message("Cache files created.") + return 0 + + +if __name__ == "__main__": + sys.exit(main(sys.argv[1])) diff --git a/LUFA/StudioIntegration/lufa.xml b/LUFA/StudioIntegration/lufa.xml index c83894986..d7ac1ca85 100644 --- a/LUFA/StudioIntegration/lufa.xml +++ b/LUFA/StudioIntegration/lufa.xml @@ -1,96 +1,96 @@ -<!-- - LUFA Library - Copyright (C) Dean Camera, 2017. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org ---> - -<!-- Atmel Studio framework integration file --> - -<lufa> - <extension-container> - <extension uuid="0e160d5c-e331-48d9-850b-e0387912171b" org="FourWalledCubicle" shortname="LUFA" version="" fullname="Lightweight USB Framework for AVRs (LUFA)"> - <author name="Dean Camera" website="http://www.lufa-lib.org/" email="dean@fourwalledcubicle.com"/> - <description>Lightweight USB Framework for AVRs (LUFA), a USB software stack/framework.</description> - <icon-image path="LUFA/DoxygenPages/Images/LUFA_thumb.png"/> - <preview-image path="LUFA/DoxygenPages/Images/LUFA.png"/> - <license caption="LUFA License" path="LUFA/License.txt"/> - <release-notes caption="LUFA Information" url="http://www.lufa-lib.org"/> - <online-help> - <index-page caption="LUFA Documentation" url="http://www.lufa-lib.org/documentation/"/> - <module-help-page scheme="append" baseurl="http://www.lufa-lib.org/documentation/"/> - <module-guide-page scheme="append" baseurl="http://www.lufa-lib.org/documentation/"/> - </online-help> - <dependencies/> - </extension> - </extension-container> - - <asf> - <device-alias-map name="lufa_avr8"> - <device-support value="at90usb82"/> - <device-support value="atmega8u2"/> - <device-support value="at90usb162"/> - <device-support value="atmega16u2"/> - <device-support value="atmega16u4"/> - <device-support value="atmega32u2"/> - <device-support value="atmega32u4"/> - <device-support value="at90usb646"/> - <device-support value="at90usb647"/> - <device-support value="at90usb1286"/> - <device-support value="at90usb1287"/> - </device-alias-map> - - <device-alias-map name="lufa_xmega"> - <device-support value="atxmega16a4u"/> - <device-support value="atxmega32a4u"/> - <device-support value="atxmega64a4u"/> - <device-support value="atxmega128a4u"/> - <device-support value="atxmega64a3u"/> - <device-support value="atxmega128a3u"/> - <device-support value="atxmega192a3u"/> - <device-support value="atxmega256a3u"/> - <device-support value="atxmega256a3bu"/> - <device-support value="atxmega128a1u"/> - <device-support value="atxmega64b3"/> - <device-support value="atxmega128b3"/> - <device-support value="atxmega64b1"/> - <device-support value="atxmega128b1"/> - <device-support value="atxmega64c3"/> - <device-support value="atxmega128c3"/> - <device-support value="atxmega192c3"/> - <device-support value="atxmega256c3"/> - <device-support value="atxmega384c3"/> - <device-support value="atxmega16c4"/> - </device-alias-map> - - <device-alias-map name="lufa_uc3"> - <device-support value="at32uc3a364"/> - <device-support value="at32uc3a364s"/> - <device-support value="at32uc3a464"/> - <device-support value="at32uc3a464s"/> - <device-support value="at32uc3b064"/> - <device-support value="at32uc3b164"/> - <device-support value="at32uc3a0128"/> - <device-support value="at32uc3a1128"/> - <device-support value="at32uc3a3128"/> - <device-support value="at32uc3a3128s"/> - <device-support value="at32uc3a4128"/> - <device-support value="at32uc3a4128s"/> - <device-support value="at32uc3b0128"/> - <device-support value="at32uc3b1128"/> - <device-support value="at32uc3a0256"/> - <device-support value="at32uc3a1256"/> - <device-support value="at32uc3a3256"/> - <device-support value="at32uc3a3256s"/> - <device-support value="at32uc3a4256"/> - <device-support value="at32uc3a4256s"/> - <device-support value="at32uc3b0256"/> - <device-support value="at32uc3b1256"/> - <device-support value="at32uc3a0512"/> - <device-support value="at32uc3a1512"/> - <device-support value="at32uc3b0512"/> - <device-support value="at32uc3b1512"/> - </device-alias-map> - </asf> -</lufa> +<!-- + LUFA Library + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +--> + +<!-- Atmel Studio framework integration file --> + +<lufa> + <extension-container> + <extension uuid="0e160d5c-e331-48d9-850b-e0387912171b" org="FourWalledCubicle" shortname="LUFA" version="" fullname="Lightweight USB Framework for AVRs (LUFA)"> + <author name="Dean Camera" website="http://www.lufa-lib.org/" email="dean@fourwalledcubicle.com"/> + <description>Lightweight USB Framework for AVRs (LUFA), a USB software stack/framework.</description> + <icon-image path="LUFA/DoxygenPages/Images/LUFA_thumb.png"/> + <preview-image path="LUFA/DoxygenPages/Images/LUFA.png"/> + <license caption="LUFA License" path="LUFA/License.txt"/> + <release-notes caption="LUFA Information" url="http://www.lufa-lib.org"/> + <online-help> + <index-page caption="LUFA Documentation" url="http://www.lufa-lib.org/documentation/"/> + <module-help-page scheme="append" baseurl="http://www.lufa-lib.org/documentation/"/> + <module-guide-page scheme="append" baseurl="http://www.lufa-lib.org/documentation/"/> + </online-help> + <dependencies/> + </extension> + </extension-container> + + <asf> + <device-alias-map name="lufa_avr8"> + <device-support value="at90usb82"/> + <device-support value="atmega8u2"/> + <device-support value="at90usb162"/> + <device-support value="atmega16u2"/> + <device-support value="atmega16u4"/> + <device-support value="atmega32u2"/> + <device-support value="atmega32u4"/> + <device-support value="at90usb646"/> + <device-support value="at90usb647"/> + <device-support value="at90usb1286"/> + <device-support value="at90usb1287"/> + </device-alias-map> + + <device-alias-map name="lufa_xmega"> + <device-support value="atxmega16a4u"/> + <device-support value="atxmega32a4u"/> + <device-support value="atxmega64a4u"/> + <device-support value="atxmega128a4u"/> + <device-support value="atxmega64a3u"/> + <device-support value="atxmega128a3u"/> + <device-support value="atxmega192a3u"/> + <device-support value="atxmega256a3u"/> + <device-support value="atxmega256a3bu"/> + <device-support value="atxmega128a1u"/> + <device-support value="atxmega64b3"/> + <device-support value="atxmega128b3"/> + <device-support value="atxmega64b1"/> + <device-support value="atxmega128b1"/> + <device-support value="atxmega64c3"/> + <device-support value="atxmega128c3"/> + <device-support value="atxmega192c3"/> + <device-support value="atxmega256c3"/> + <device-support value="atxmega384c3"/> + <device-support value="atxmega16c4"/> + </device-alias-map> + + <device-alias-map name="lufa_uc3"> + <device-support value="at32uc3a364"/> + <device-support value="at32uc3a364s"/> + <device-support value="at32uc3a464"/> + <device-support value="at32uc3a464s"/> + <device-support value="at32uc3b064"/> + <device-support value="at32uc3b164"/> + <device-support value="at32uc3a0128"/> + <device-support value="at32uc3a1128"/> + <device-support value="at32uc3a3128"/> + <device-support value="at32uc3a3128s"/> + <device-support value="at32uc3a4128"/> + <device-support value="at32uc3a4128s"/> + <device-support value="at32uc3b0128"/> + <device-support value="at32uc3b1128"/> + <device-support value="at32uc3a0256"/> + <device-support value="at32uc3a1256"/> + <device-support value="at32uc3a3256"/> + <device-support value="at32uc3a3256s"/> + <device-support value="at32uc3a4256"/> + <device-support value="at32uc3a4256s"/> + <device-support value="at32uc3b0256"/> + <device-support value="at32uc3b1256"/> + <device-support value="at32uc3a0512"/> + <device-support value="at32uc3a1512"/> + <device-support value="at32uc3b0512"/> + <device-support value="at32uc3b1512"/> + </device-alias-map> + </asf> +</lufa> diff --git a/LUFA/StudioIntegration/lufa_common.xml b/LUFA/StudioIntegration/lufa_common.xml index b72f84cd9..e5e107434 100644 --- a/LUFA/StudioIntegration/lufa_common.xml +++ b/LUFA/StudioIntegration/lufa_common.xml @@ -1,34 +1,34 @@ -<!-- - LUFA Library - Copyright (C) Dean Camera, 2017. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org ---> - -<!-- Atmel Studio framework integration file --> - -<lufa> - <asf> - <module type="service" id="lufa.common" caption="LUFA Common Infrastructure"> - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <info type="gui-flag" value="hidden"/> - <build type="doxygen-entry-point" value="Group_Common"/> - - <build type="include-path" value=".."/> - <build type="header-file" subtype="api" value="Version.h"/> - <build type="distribute" subtype="license" value="License.txt"/> - - <build type="header-file" subtype="api" value="Common/Common.h"/> - <build type="header-file" value="Common/Architectures.h"/> - <build type="header-file" value="Common/ArchitectureSpecific.h"/> - <build type="header-file" value="Common/Attributes.h"/> - <build type="header-file" value="Common/BoardTypes.h"/> - <build type="header-file" value="Common/CompilerSpecific.h"/> - <build type="header-file" value="Common/Endianness.h"/> - </module> - </asf> -</lufa> +<!-- + LUFA Library + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +--> + +<!-- Atmel Studio framework integration file --> + +<lufa> + <asf> + <module type="service" id="lufa.common" caption="LUFA Common Infrastructure"> + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <info type="gui-flag" value="hidden"/> + <build type="doxygen-entry-point" value="Group_Common"/> + + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Version.h"/> + <build type="distribute" subtype="license" value="License.txt"/> + + <build type="header-file" subtype="api" value="Common/Common.h"/> + <build type="header-file" value="Common/Architectures.h"/> + <build type="header-file" value="Common/ArchitectureSpecific.h"/> + <build type="header-file" value="Common/Attributes.h"/> + <build type="header-file" value="Common/BoardTypes.h"/> + <build type="header-file" value="Common/CompilerSpecific.h"/> + <build type="header-file" value="Common/Endianness.h"/> + </module> + </asf> +</lufa> diff --git a/LUFA/StudioIntegration/lufa_drivers_board.xml b/LUFA/StudioIntegration/lufa_drivers_board.xml index bd0359f68..faaf56bfc 100644 --- a/LUFA/StudioIntegration/lufa_drivers_board.xml +++ b/LUFA/StudioIntegration/lufa_drivers_board.xml @@ -1,114 +1,114 @@ -<!-- - LUFA Library - Copyright (C) Dean Camera, 2017. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org ---> - -<!-- Atmel Studio framework integration file --> - -<lufa> - <asf> - <board id="lufa.boards.dummy.avr8" vendor="LUFA" caption="AVR8 Architecture"> - <device-support value="mega"/> - - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.info"/> - </board> - - <board id="lufa.boards.dummy.xmega" vendor="LUFA" caption="XMEGA Architecture"> - <device-support value="xmega"/> - - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.info"/> - </board> - - <board id="lufa.boards.dummy.uc3" vendor="LUFA" caption="UC3 Architecture"> - <device-support value="uc3"/> - - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.info"/> - </board> - - <module type="driver" id="lufa.drivers.board.info" caption="LUFA Board Hardware Information Driver"> - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="doxygen-entry-point" value="Group_BoardInfo"/> - - <require idref="lufa.common"/> - - <build type="include-path" value=".."/> - <build type="header-file" subtype="api" value="Drivers/Board/Board.h"/> - </module> - - <module type="driver" id="lufa.drivers.board.leds" caption="LUFA Board LED Driver"> - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="doxygen-entry-point" value="Group_LEDs"/> - - <require idref="lufa.common"/> - - <build type="include-path" value=".."/> - <build type="header-file" subtype="api" value="Drivers/Board/LEDs.h"/> - </module> - - <module type="driver" id="lufa.drivers.board.buttons" caption="LUFA Board Buttons Driver"> - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="doxygen-entry-point" value="Group_Buttons"/> - - <require idref="lufa.common"/> - - <build type="include-path" value=".."/> - <build type="header-file" subtype="api" value="Drivers/Board/Buttons.h"/> - </module> - - <module type="driver" id="lufa.drivers.board.dataflash" caption="LUFA Board Dataflash Driver"> - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="doxygen-entry-point" value="Group_Dataflash"/> - - <require idref="lufa.common"/> - - <build type="include-path" value=".."/> - <build type="header-file" subtype="api" value="Drivers/Board/Dataflash.h"/> - </module> - - <module type="driver" id="lufa.drivers.board.joystick" caption="LUFA Board Joystick Driver"> - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="doxygen-entry-point" value="Group_Joystick"/> - - <require idref="lufa.common"/> - - <build type="include-path" value=".."/> - <build type="header-file" subtype="api" value="Drivers/Board/Joystick.h"/> - </module> - - <module type="driver" id="lufa.drivers.board.temperature" caption="LUFA Board Temperature Sensor Driver"> - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="doxygen-entry-point" value="Group_Temperature"/> - - <require idref="lufa.common"/> - <require idref="lufa.drivers.peripheral.adc"/> - - <build type="c-source" value="Drivers/Board/Temperature.c"/> - <build type="include-path" value=".."/> - <build type="header-file" subtype="api" value="Drivers/Board/Temperature.h"/> - </module> - </asf> -</lufa> +<!-- + LUFA Library + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +--> + +<!-- Atmel Studio framework integration file --> + +<lufa> + <asf> + <board id="lufa.boards.dummy.avr8" vendor="LUFA" caption="AVR8 Architecture"> + <device-support value="mega"/> + + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.info"/> + </board> + + <board id="lufa.boards.dummy.xmega" vendor="LUFA" caption="XMEGA Architecture"> + <device-support value="xmega"/> + + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.info"/> + </board> + + <board id="lufa.boards.dummy.uc3" vendor="LUFA" caption="UC3 Architecture"> + <device-support value="uc3"/> + + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.info"/> + </board> + + <module type="driver" id="lufa.drivers.board.info" caption="LUFA Board Hardware Information Driver"> + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="doxygen-entry-point" value="Group_BoardInfo"/> + + <require idref="lufa.common"/> + + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Board/Board.h"/> + </module> + + <module type="driver" id="lufa.drivers.board.leds" caption="LUFA Board LED Driver"> + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="doxygen-entry-point" value="Group_LEDs"/> + + <require idref="lufa.common"/> + + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Board/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board.buttons" caption="LUFA Board Buttons Driver"> + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="doxygen-entry-point" value="Group_Buttons"/> + + <require idref="lufa.common"/> + + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Board/Buttons.h"/> + </module> + + <module type="driver" id="lufa.drivers.board.dataflash" caption="LUFA Board Dataflash Driver"> + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="doxygen-entry-point" value="Group_Dataflash"/> + + <require idref="lufa.common"/> + + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Board/Dataflash.h"/> + </module> + + <module type="driver" id="lufa.drivers.board.joystick" caption="LUFA Board Joystick Driver"> + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="doxygen-entry-point" value="Group_Joystick"/> + + <require idref="lufa.common"/> + + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Board/Joystick.h"/> + </module> + + <module type="driver" id="lufa.drivers.board.temperature" caption="LUFA Board Temperature Sensor Driver"> + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="doxygen-entry-point" value="Group_Temperature"/> + + <require idref="lufa.common"/> + <require idref="lufa.drivers.peripheral.adc"/> + + <build type="c-source" value="Drivers/Board/Temperature.c"/> + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Board/Temperature.h"/> + </module> + </asf> +</lufa> diff --git a/LUFA/StudioIntegration/lufa_drivers_board_names.xml b/LUFA/StudioIntegration/lufa_drivers_board_names.xml index 69a38c5f7..bd1d4bdfd 100644 --- a/LUFA/StudioIntegration/lufa_drivers_board_names.xml +++ b/LUFA/StudioIntegration/lufa_drivers_board_names.xml @@ -1,853 +1,853 @@ -<!-- - LUFA Library - Copyright (C) Dean Camera, 2017. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org ---> - -<!-- Atmel Studio framework integration file --> - -<lufa> - <asf> - <select-by-config id="lufa.drivers.board" name="lufa.drivers.board.name" default="none" caption="LUFA Board Support"> - <info type="description" value="summary"> - Board hardware (LEDs, Buttons, etc.) drivers for the preconfigured LUFA boards. Note that only the boards - compatible with the currently selected device will be shown. - - To disable all hardware drivers silently, use NONE. To supply customer drivers, use USER (see manual). - </info> - - <module type="driver" id="lufa.drivers.board#none" caption="Board Support - None"> - <device-support value="avr"/> - <build type="define" name="BOARD" value="BOARD_NONE"/> - </module> - - <module type="driver" id="lufa.drivers.board#user" caption="Board Support - User Supplied"> - <device-support value="avr"/> - <build type="define" name="BOARD" value="BOARD_USER"/> - </module> - - <module type="driver" id="lufa.drivers.board#adafruit_u4" caption="Board Support - ADAFRUITU4"> - <build type="doxygen-entry-point" value="Group_BoardInfo_ADAFRUITU4"/> - - <device-support value="atmega32u4"/> - <build type="define" name="BOARD" value="BOARD_ADAFRUITU4"/> - - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/AVR8/ADAFRUITU4/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/ADAFRUITU4/LEDs.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#atavrusbrf01" caption="Board Support - ATAVRUSBRF01"> - <build type="doxygen-entry-point" value="Group_BoardInfo_ATAVRUSBRF01"/> - - <device-support value="at90usb1287"/> - <build type="define" name="BOARD" value="BOARD_ATAVRUSBRF01"/> - - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/AVR8/ATAVRUSBRF01/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/ATAVRUSBRF01/Buttons.h"/> - <build type="header-file" value="Drivers/Board/AVR8/ATAVRUSBRF01/LEDs.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#benito" caption="Board Support - BENITO"> - <build type="doxygen-entry-point" value="Group_BoardInfo_BENITO"/> - - <device-support value="at90usb162"/> - <build type="define" name="BOARD" value="BOARD_BENITO"/> - - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/AVR8/BENITO/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/BENITO/Buttons.h"/> - <build type="header-file" value="Drivers/Board/AVR8/BENITO/LEDs.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#big_multio" caption="Board Support - BIGMULTIO"> - <build type="doxygen-entry-point" value="Group_BoardInfo_BIGMULTIO"/> - - <device-support value="atmega32u4"/> - <build type="define" name="BOARD" value="BOARD_BIGMULTIO"/> - - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/AVR8/BIGMULTIO/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/BIGMULTIO/LEDs.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#blackcat" caption="Board Support - BLACKCAT"> - <build type="doxygen-entry-point" value="Group_BoardInfo_BLACKCAT"/> - - <device-support value="at90usb162"/> - <build type="define" name="BOARD" value="BOARD_BLACKCAT"/> - - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/AVR8/BLACKCAT/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/BLACKCAT/LEDs.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#bui" caption="Board Support - BUI"> - <build type="doxygen-entry-point" value="Group_BoardInfo_BUI"/> - - <device-support value="at90usb646"/> - <build type="define" name="BOARD" value="BOARD_BUI"/> - - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/AVR8/BUI/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/BUI/LEDs.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#bumbleb" caption="Board Support - BUMBLEB"> - <build type="doxygen-entry-point" value="Group_BoardInfo_BUMBLEB"/> - - <device-support value="at90usb162"/> - <build type="define" name="BOARD" value="BOARD_BUMBLEB"/> - - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.joystick"/> - - <build type="header-file" value="Drivers/Board/AVR8/BUMBLEB/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/BUMBLEB/Buttons.h"/> - <build type="header-file" value="Drivers/Board/AVR8/BUMBLEB/Joystick.h"/> - <build type="header-file" value="Drivers/Board/AVR8/BUMBLEB/LEDs.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#culv3" caption="Board Support - CULV3"> - <build type="doxygen-entry-point" value="Group_BoardInfo_CULV3"/> - - <device-support value="atmega32u4"/> - <build type="define" name="BOARD" value="BOARD_CULV3"/> - - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/AVR8/CULV3/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/CULV3/Buttons.h"/> - <build type="header-file" value="Drivers/Board/AVR8/CULV3/LEDs.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#duce" caption="Board Support - DUCE"> - <build type="doxygen-entry-point" value="Group_BoardInfo_DUCE"/> - - <device-support value="atmega32u2"/> - <build type="define" name="BOARD" value="BOARD_DUCE"/> - - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/AVR8/DUCE/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/DUCE/LEDs.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#evk527" caption="Board Support - EVK527"> - <build type="doxygen-entry-point" value="Group_BoardInfo_EVK527"/> - - <device-support value="atmega32u4"/> - <build type="define" name="BOARD" value="BOARD_EVK527"/> - - <require idref="lufa.drivers.misc.at45db321c"/> - <require idref="lufa.drivers.peripheral.spi"/> - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.dataflash"/> - <require idref="lufa.drivers.board.joystick"/> - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/AVR8/EVK527/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/EVK527/Buttons.h"/> - <build type="header-file" value="Drivers/Board/AVR8/EVK527/Dataflash.h"/> - <build type="header-file" value="Drivers/Board/AVR8/EVK527/Joystick.h"/> - <build type="header-file" value="Drivers/Board/AVR8/EVK527/LEDs.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#jm_db_u2" caption="Board Support - JMDBU2"> - <build type="doxygen-entry-point" value="Group_BoardInfo_JMDBU2"/> - - <device-support value="atmega32u2"/> - <build type="define" name="BOARD" value="BOARD_JMDBU2"/> - - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/AVR8/JMDBU2/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/JMDBU2/Buttons.h"/> - <build type="header-file" value="Drivers/Board/AVR8/JMDBU2/LEDs.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#leonardo" caption="Board Support - LEONARDO"> - <build type="doxygen-entry-point" value="Group_BoardInfo_LEONARDO"/> - - <device-support value="atmega32u4"/> - <build type="define" name="BOARD" value="BOARD_LEONARDO"/> - - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/AVR8/LEONARDO/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/LEONARDO/LEDs.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#maximus" caption="Board Support - MAXIMUS"> - <build type="doxygen-entry-point" value="Group_BoardInfo_MAXIMUS"/> - - <device-support value="at90usb162"/> - <build type="define" name="BOARD" value="BOARD_MAXIMUS"/> - - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/AVR8/MAXIMUS/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/MAXIMUS/LEDs.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#micropendous_32u2" caption="Board Support - MICROPENDOUS_32U2"> - <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_32U2"/> - - <device-support value="atmega32u2"/> - <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_32U2"/> - - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.buttons"/> - - <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/LEDs.h"/> - <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#micropendous_a" caption="Board Support - MICROPENDOUS_A"> - <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_A"/> - - <device-support value="at90usb1287"/> - <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_A"/> - - <require idref="lufa.drivers.board.buttons"/> - - <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#micropendous_1" caption="Board Support - MICROPENDOUS_1"> - <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_1"/> - - <device-support value="at90usb162"/> - <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_1"/> - - <require idref="lufa.drivers.board.buttons"/> - - <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#micropendous_2" caption="Board Support - MICROPENDOUS_2"> - <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_2"/> - - <device-support value="atmega32u4"/> - <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_2"/> - - <require idref="lufa.drivers.board.buttons"/> - - <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#micropendous_3" caption="Board Support - MICROPENDOUS_3"> - <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_3"/> - - <device-support value="at90usb1287"/> - <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_3"/> - - <require idref="lufa.drivers.board.buttons"/> - - <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#micropendous_4" caption="Board Support - MICROPENDOUS_4"> - <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_4"/> - - <device-support value="at90usb1287"/> - <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_4"/> - - <require idref="lufa.drivers.board.buttons"/> - - <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#micropendous_dip" caption="Board Support - MICROPENDOUS_DIP"> - <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_DIP"/> - - <device-support value="at90usb1287"/> - <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_DIP"/> - - <require idref="lufa.drivers.board.buttons"/> - - <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#micropendous_rev1" caption="Board Support - MICROPENDOUS_REV1"> - <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_REV1"/> - - <device-support value="at90usb1287"/> - <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_REV1"/> - - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.buttons"/> - - <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/LEDs.h"/> - <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#micropendous_rev2" caption="Board Support - MICROPENDOUS_REV2"> - <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_REV2"/> - - <device-support value="at90usb1287"/> - <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_REV2"/> - - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.buttons"/> - - <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/LEDs.h"/> - <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#microsin_162" caption="Board Support - MICROSIN162"> - <build type="doxygen-entry-point" value="Group_BoardInfo_MICROSIN162"/> - - <device-support value="atmega162"/> - <build type="define" name="BOARD" value="BOARD_MICROSIN162"/> - - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.buttons"/> - - <build type="header-file" value="Drivers/Board/AVR8/MICROSIN162/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/MICROSIN162/LEDs.h"/> - <build type="header-file" value="Drivers/Board/AVR8/MICROSIN162/Buttons.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#minimus" caption="Board Support - MINIMUS"> - <build type="doxygen-entry-point" value="Group_BoardInfo_MINIMUS"/> - - <device-support value="atmega32u2"/> - <build type="define" name="BOARD" value="BOARD_MINIMUS"/> - - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.buttons"/> - - <build type="header-file" value="Drivers/Board/AVR8/MINIMUS/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/MINIMUS/LEDs.h"/> - <build type="header-file" value="Drivers/Board/AVR8/MINIMUS/Buttons.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#multio" caption="Board Support - MULTIO"> - <build type="doxygen-entry-point" value="Group_BoardInfo_MULTIO"/> - - <device-support value="at90usb162"/> - <build type="define" name="BOARD" value="BOARD_MULTIO"/> - - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/AVR8/MULTIO/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/MULTIO/LEDs.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#olimex_162" caption="Board Support - OLIMEX162"> - <build type="doxygen-entry-point" value="Group_BoardInfo_OLIMEX162"/> - - <device-support value="at90usb162"/> - <build type="define" name="BOARD" value="BOARD_OLIMEX162"/> - - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.buttons"/> - - <build type="header-file" value="Drivers/Board/AVR8/OLIMEX162/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/OLIMEX162/LEDs.h"/> - <build type="header-file" value="Drivers/Board/AVR8/OLIMEX162/Buttons.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#olimex_32u4" caption="Board Support - OLIMEX32U4"> - <build type="doxygen-entry-point" value="Group_BoardInfo_OLIMEX32U4"/> - - <device-support value="atmega32u4"/> - <build type="define" name="BOARD" value="BOARD_OLIMEX32U4"/> - - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.buttons"/> - - <build type="header-file" value="Drivers/Board/AVR8/OLIMEX32U4/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/OLIMEX32U4/LEDs.h"/> - <build type="header-file" value="Drivers/Board/AVR8/OLIMEX32U4/Buttons.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#olimex_isp_mkii" caption="Board Support - OLIMEXISPMK2"> - <build type="doxygen-entry-point" value="Group_BoardInfo_OLIMEXISPMK2"/> - - <device-support value="at90usb162"/> - <build type="define" name="BOARD" value="BOARD_OLIMEXISPMK2"/> - - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.buttons"/> - - <build type="header-file" value="Drivers/Board/AVR8/OLIMEXISPMK2/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/OLIMEXISPMK2/LEDs.h"/> - <build type="header-file" value="Drivers/Board/AVR8/OLIMEXISPMK2/Buttons.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#olimex_t32u4" caption="Board Support - OLIMEX_T32U4"> - <build type="doxygen-entry-point" value="Group_BoardInfo_OLIMEXT32U4"/> - - <device-support value="atmega32u4"/> - <build type="define" name="BOARD" value="BOARD_OLIMEXT32U4"/> - - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.buttons"/> - - <build type="header-file" value="Drivers/Board/AVR8/OLIMEXT32U4/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/OLIMEXT32U4/LEDs.h"/> - <build type="header-file" value="Drivers/Board/AVR8/OLIMEXT32U4/Buttons.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#rzusbstick" caption="Board Support - RZUSBSTICK"> - <build type="doxygen-entry-point" value="Group_BoardInfo_RZUSBSTICK"/> - - <device-support value="at90usb1287"/> - <build type="define" name="BOARD" value="BOARD_RZUSBSTICK"/> - - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/AVR8/RZUSBSTICK/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/RZUSBSTICK/LEDs.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#sparkfun_8u2" caption="Board Support - SPARKFUN8U2"> - <build type="doxygen-entry-point" value="Group_BoardInfo_SPARKFUN8U2"/> - - <device-support value="atmega8u2"/> - <build type="define" name="BOARD" value="BOARD_SPARKFUN8U2"/> - - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/AVR8/SPARKFUN8U2/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/SPARKFUN8U2/LEDs.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#stk525" caption="Board Support - STK525"> - <build type="doxygen-entry-point" value="Group_BoardInfo_STK525"/> - - <device-support value="at90usb1287"/> - <device-support value="at90usb1286"/> - <device-support value="at90usb647"/> - <device-support value="at90usb646"/> - <build type="define" name="BOARD" value="BOARD_STK525"/> - - <require idref="lufa.drivers.misc.at45db321c"/> - <require idref="lufa.drivers.peripheral.spi"/> - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.dataflash"/> - <require idref="lufa.drivers.board.joystick"/> - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/AVR8/STK525/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/STK525/Buttons.h"/> - <build type="header-file" value="Drivers/Board/AVR8/STK525/Dataflash.h"/> - <build type="header-file" value="Drivers/Board/AVR8/STK525/Joystick.h"/> - <build type="header-file" value="Drivers/Board/AVR8/STK525/LEDs.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#stk526" caption="Board Support - STK526"> - <build type="doxygen-entry-point" value="Group_BoardInfo_STK526"/> - - <device-support value="at90usb162"/> - <device-support value="at90usb82"/> - <device-support value="atmega32u2"/> - <device-support value="atmega16u2"/> - <device-support value="atmega8u2"/> - <build type="define" name="BOARD" value="BOARD_STK526"/> - - <require idref="lufa.drivers.misc.at45db642d"/> - <require idref="lufa.drivers.peripheral.spi"/> - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.dataflash"/> - <require idref="lufa.drivers.board.joystick"/> - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/AVR8/STK526/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/STK526/Buttons.h"/> - <build type="header-file" value="Drivers/Board/AVR8/STK526/Dataflash.h"/> - <build type="header-file" value="Drivers/Board/AVR8/STK526/Joystick.h"/> - <build type="header-file" value="Drivers/Board/AVR8/STK526/LEDs.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#teensy" caption="Board Support - TEENSY"> - <build type="doxygen-entry-point" value="Group_BoardInfo_TEENSY"/> - - <device-support value="at90usb162"/> - <build type="define" name="BOARD" value="BOARD_TEENSY"/> - - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/AVR8/TEENSY/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/TEENSY/LEDs.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#teensy2" caption="Board Support - TEENSY2"> - <build type="doxygen-entry-point" value="Group_BoardInfo_TEENSY2"/> - - <device-support value="at90usb646"/> - <build type="define" name="BOARD" value="BOARD_TEENSY2"/> - - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/AVR8/TEENSY/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/TEENSY/LEDs.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#tul" caption="Board Support - TUL"> - <build type="doxygen-entry-point" value="Group_BoardInfo_TUL"/> - - <device-support value="atmega32u4"/> - <build type="define" name="BOARD" value="BOARD_TUL"/> - - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/AVR8/TUL/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/TUL/Buttons.h"/> - <build type="header-file" value="Drivers/Board/AVR8/TUL/LEDs.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#udip" caption="Board Support - UDIP"> - <build type="doxygen-entry-point" value="Group_BoardInfo_UDIP"/> - - <device-support value="atmega32u2"/> - <build type="define" name="BOARD" value="BOARD_UDIP"/> - - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/AVR8/UDIP/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/UDIP/Buttons.h"/> - <build type="header-file" value="Drivers/Board/AVR8/UDIP/LEDs.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#uno" caption="Board Support - UNO"> - <build type="doxygen-entry-point" value="Group_BoardInfo_UNO"/> - - <device-support value="atmega8u2"/> - <device-support value="atmega16u2"/> - <build type="define" name="BOARD" value="BOARD_UNO"/> - - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/AVR8/UNO/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/UNO/LEDs.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#usb2ax" caption="Board Support - USB2AX"> - <build type="doxygen-entry-point" value="Group_BoardInfo_USB2AX"/> - - <device-support value="atmega32u2"/> - <build type="define" name="BOARD" value="BOARD_USB2AX"/> - - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Buttons.h"/> - <build type="header-file" value="Drivers/Board/AVR8/USB2AX/LEDs.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#usb2ax_v3" caption="Board Support - USB2AX_V3"> - <build type="doxygen-entry-point" value="Group_BoardInfo_USB2AX_V3"/> - - <device-support value="atmega32u2"/> - <build type="define" name="BOARD" value="BOARD_USB2AX_V3"/> - - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Buttons.h"/> - <build type="header-file" value="Drivers/Board/AVR8/USB2AX/LEDs.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#usb2ax_v3_1" caption="Board Support - USB2AX_V31"> - <build type="doxygen-entry-point" value="Group_BoardInfo_USB2AX_V31"/> - - <device-support value="atmega32u2"/> - <build type="define" name="BOARD" value="BOARD_USB2AX_V31"/> - - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Buttons.h"/> - <build type="header-file" value="Drivers/Board/AVR8/USB2AX/LEDs.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#usbfoo" caption="Board Support - USBFOO"> - <build type="doxygen-entry-point" value="Group_BoardInfo_USBFOO"/> - - <device-support value="atmega162"/> - <build type="define" name="BOARD" value="BOARD_USBFOO"/> - - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/AVR8/USBFOO/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/USBFOO/Buttons.h"/> - <build type="header-file" value="Drivers/Board/AVR8/USBFOO/LEDs.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#usbkey" caption="Board Support - USBKEY"> - <build type="doxygen-entry-point" value="Group_BoardInfo_USBKEY"/> - - <device-support value="at90usb1287"/> - <build type="define" name="BOARD" value="BOARD_USBKEY"/> - - <require idref="lufa.drivers.misc.at45db642d"/> - <require idref="lufa.drivers.peripheral.spi"/> - - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.dataflash"/> - <require idref="lufa.drivers.board.joystick"/> - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/AVR8/USBKEY/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/USBKEY/Buttons.h"/> - <build type="header-file" value="Drivers/Board/AVR8/USBKEY/Dataflash.h"/> - <build type="header-file" value="Drivers/Board/AVR8/USBKEY/Joystick.h"/> - <build type="header-file" value="Drivers/Board/AVR8/USBKEY/LEDs.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#usbtiny_mkii" caption="Board Support - USBTINYMKII"> - <build type="doxygen-entry-point" value="Group_BoardInfo_USBTINYMKII"/> - - <device-support value="at90usb162"/> - <build type="define" name="BOARD" value="BOARD_USBTINYMKII"/> - - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/AVR8/USBTINYMKII/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/USBTINYMKII/Buttons.h"/> - <build type="header-file" value="Drivers/Board/AVR8/USBTINYMKII/LEDs.h"/> - </module> - - <module type="driver" id="lufa.drivers.board#xplain_rev1" caption="Board Support - XPLAIN (HW Rev 1)"> - <build type="doxygen-entry-point" value="Group_BoardInfo_XPLAIN_REV1"/> - - <device-support value="at90usb1287"/> - - <require idref="lufa.drivers.misc.at45db642d"/> - <require idref="lufa.drivers.peripheral.spi"/> - <require idref="lufa.drivers.board.dataflash"/> - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/Dataflash.h"/> - <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/LEDs.h"/> - - <build type="define" name="BOARD" value="BOARD_XPLAIN_REV1"/> - </module> - - <module type="driver" id="lufa.drivers.board#xplain" caption="Board Support - XPLAIN (HW Rev 2+)"> - <build type="doxygen-entry-point" value="Group_BoardInfo_XPLAIN"/> - - <device-support value="at90usb1287"/> - - <require idref="lufa.drivers.misc.at45db642d"/> - <require idref="lufa.drivers.peripheral.spi"/> - <require idref="lufa.drivers.board.dataflash"/> - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/Dataflash.h"/> - <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/LEDs.h"/> - - <build type="define" name="BOARD" value="BOARD_XPLAIN"/> - </module> - - <module type="driver" id="lufa.drivers.board#a3bu_xplained" caption="Board Support - A3BU_XPLAINED"> - <build type="doxygen-entry-point" value="Group_BoardInfo_A3BU_XPLAINED"/> - - <device-support value="atxmega256a3bu"/> - - <require idref="lufa.drivers.misc.at45db642d"/> - <require idref="lufa.drivers.peripheral.usart_spi"/> - - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.dataflash"/> - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/XMEGA/A3BU_XPLAINED/Board.h"/> - <build type="header-file" value="Drivers/Board/XMEGA/A3BU_XPLAINED/Buttons.h"/> - <build type="header-file" value="Drivers/Board/XMEGA/A3BU_XPLAINED/Dataflash.h"/> - <build type="header-file" value="Drivers/Board/XMEGA/A3BU_XPLAINED/LEDs.h"/> - - <build type="define" name="BOARD" value="BOARD_A3BU_XPLAINED"/> - </module> - - <module type="driver" id="lufa.drivers.board#b1_xplained" caption="Board Support - B1_XPLAINED"> - <build type="doxygen-entry-point" value="Group_BoardInfo_B1_XPLAINED"/> - - <device-support value="atxmega128b1"/> - - <require idref="lufa.drivers.misc.at45db642d"/> - <require idref="lufa.drivers.peripheral.usart_spi"/> - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.dataflash"/> - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/XMEGA/B1_XPLAINED/Board.h"/> - <build type="header-file" value="Drivers/Board/XMEGA/B1_XPLAINED/Buttons.h"/> - <build type="header-file" value="Drivers/Board/XMEGA/B1_XPLAINED/Dataflash.h"/> - <build type="header-file" value="Drivers/Board/XMEGA/B1_XPLAINED/LEDs.h"/> - - <build type="define" name="BOARD" value="BOARD_B1_XPLAINED"/> - </module> - - <module type="driver" id="lufa.drivers.board#evk1100" caption="Board Support - EVK1100"> - <build type="doxygen-entry-point" value="Group_BoardInfo_EVK1100"/> - - <device-support value="at32uc3a0512"/> - - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.joystick"/> - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/UC3/EVK1100/Board.h"/> - <build type="header-file" value="Drivers/Board/UC3/EVK1100/Buttons.h"/> - <build type="header-file" value="Drivers/Board/UC3/EVK1100/Joystick.h"/> - <build type="header-file" value="Drivers/Board/UC3/EVK1100/LEDs.h"/> - - <build type="define" name="BOARD" value="BOARD_EVK1100"/> - </module> - - <module type="driver" id="lufa.drivers.board#evk1101" caption="Board Support - EVK1101"> - <build type="doxygen-entry-point" value="Group_BoardInfo_EVK1101"/> - - <device-support value="at32uc3b0256"/> - - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.joystick"/> - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/UC3/EVK1101/Board.h"/> - <build type="header-file" value="Drivers/Board/UC3/EVK1101/Buttons.h"/> - <build type="header-file" value="Drivers/Board/UC3/EVK1101/Joystick.h"/> - <build type="header-file" value="Drivers/Board/UC3/EVK1101/LEDs.h"/> - - <build type="define" name="BOARD" value="BOARD_EVK1101"/> - </module> - - <module type="driver" id="lufa.drivers.board#evk1104" caption="Board Support - EVK1104"> - <build type="doxygen-entry-point" value="Group_BoardInfo_EVK1104"/> - - <device-support value="at32uc3a3256"/> - - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/UC3/EVK1104/Board.h"/> - <build type="header-file" value="Drivers/Board/UC3/EVK1104/Buttons.h"/> - <build type="header-file" value="Drivers/Board/UC3/EVK1104/LEDs.h"/> - - <build type="define" name="BOARD" value="BOARD_EVK1104"/> - </module> - - <module type="driver" id="lufa.drivers.board#uc3a3_xplained" caption="Board Support - UC3A3_XPLAINED"> - <build type="doxygen-entry-point" value="Group_BoardInfo_UC3_A3_XPLAINED"/> - - <device-support value="at32uc3a3256"/> - - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/UC3/UC3A3_XPLAINED/Board.h"/> - <build type="header-file" value="Drivers/Board/UC3/UC3A3_XPLAINED/Buttons.h"/> - <build type="header-file" value="Drivers/Board/UC3/UC3A3_XPLAINED/LEDs.h"/> - - <build type="define" name="BOARD" value="BOARD_UC3A3_XPLAINED"/> - </module> - - <module type="driver" id="lufa.drivers.board#stange_isp" caption="Board Support - STANGE_ISP"> - <build type="doxygen-entry-point" value="Group_BoardInfo_STANGE_ISP"/> - - <device-support value="at90usb162"/> - - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/AVR8/STANGE_ISP/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/STANGE_ISP/Buttons.h"/> - <build type="header-file" value="Drivers/Board/AVR8/STANGE_ISP/LEDs.h"/> - - <build type="define" name="BOARD" value="BOARD_STANGE_ISP"/> - </module> - - <module type="driver" id="lufa.drivers.board#c3_xplained" caption="Board Support - C3_XPLAINED"> - <build type="doxygen-entry-point" value="Group_BoardInfo_C3_XPLAINED"/> - - <device-support value="atxmega384c3"/> - - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/XMEGA/C3_XPLAINED/Board.h"/> - <build type="header-file" value="Drivers/Board/XMEGA/C3_XPLAINED/Buttons.h"/> - <build type="header-file" value="Drivers/Board/XMEGA/C3_XPLAINED/LEDs.h"/> - - <build type="define" name="BOARD" value="BOARD_C3_XPLAINED"/> - </module> - - <module type="driver" id="lufa.drivers.board#u2s" caption="Board Support - U2S"> - <build type="doxygen-entry-point" value="Group_BoardInfo_U2S"/> - - <device-support value="atmega32u2"/> - - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/AVR8/U2S/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/U2S/Buttons.h"/> - <build type="header-file" value="Drivers/Board/AVR8/U2S/LEDs.h"/> - - <build type="define" name="BOARD" value="BOARD_U2S"/> - </module> - - <module type="driver" id="lufa.drivers.board#yun" caption="Board Support - YUN"> - <build type="doxygen-entry-point" value="Group_BoardInfo_YUN"/> - - <device-support value="atmega32u4"/> - - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/AVR8/YUN/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/YUN/LEDs.h"/> - - <build type="define" name="BOARD" value="BOARD_YUN"/> - </module> - - <module type="driver" id="lufa.drivers.board#micro" caption="Board Support - MICRO"> - <build type="doxygen-entry-point" value="Group_BoardInfo_MICRO"/> - - <device-support value="atmega32u4"/> - - <require idref="lufa.drivers.board.leds"/> - - <build type="header-file" value="Drivers/Board/AVR8/MICRO/Board.h"/> - <build type="header-file" value="Drivers/Board/AVR8/MICRO/LEDs.h"/> - - <build type="define" name="BOARD" value="BOARD_MICRO"/> - </module> - </select-by-config> - </asf> -</lufa> +<!-- + LUFA Library + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +--> + +<!-- Atmel Studio framework integration file --> + +<lufa> + <asf> + <select-by-config id="lufa.drivers.board" name="lufa.drivers.board.name" default="none" caption="LUFA Board Support"> + <info type="description" value="summary"> + Board hardware (LEDs, Buttons, etc.) drivers for the preconfigured LUFA boards. Note that only the boards + compatible with the currently selected device will be shown. + + To disable all hardware drivers silently, use NONE. To supply customer drivers, use USER (see manual). + </info> + + <module type="driver" id="lufa.drivers.board#none" caption="Board Support - None"> + <device-support value="avr"/> + <build type="define" name="BOARD" value="BOARD_NONE"/> + </module> + + <module type="driver" id="lufa.drivers.board#user" caption="Board Support - User Supplied"> + <device-support value="avr"/> + <build type="define" name="BOARD" value="BOARD_USER"/> + </module> + + <module type="driver" id="lufa.drivers.board#adafruit_u4" caption="Board Support - ADAFRUITU4"> + <build type="doxygen-entry-point" value="Group_BoardInfo_ADAFRUITU4"/> + + <device-support value="atmega32u4"/> + <build type="define" name="BOARD" value="BOARD_ADAFRUITU4"/> + + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/ADAFRUITU4/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/ADAFRUITU4/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#atavrusbrf01" caption="Board Support - ATAVRUSBRF01"> + <build type="doxygen-entry-point" value="Group_BoardInfo_ATAVRUSBRF01"/> + + <device-support value="at90usb1287"/> + <build type="define" name="BOARD" value="BOARD_ATAVRUSBRF01"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/ATAVRUSBRF01/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/ATAVRUSBRF01/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/ATAVRUSBRF01/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#benito" caption="Board Support - BENITO"> + <build type="doxygen-entry-point" value="Group_BoardInfo_BENITO"/> + + <device-support value="at90usb162"/> + <build type="define" name="BOARD" value="BOARD_BENITO"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/BENITO/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/BENITO/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/BENITO/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#big_multio" caption="Board Support - BIGMULTIO"> + <build type="doxygen-entry-point" value="Group_BoardInfo_BIGMULTIO"/> + + <device-support value="atmega32u4"/> + <build type="define" name="BOARD" value="BOARD_BIGMULTIO"/> + + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/BIGMULTIO/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/BIGMULTIO/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#blackcat" caption="Board Support - BLACKCAT"> + <build type="doxygen-entry-point" value="Group_BoardInfo_BLACKCAT"/> + + <device-support value="at90usb162"/> + <build type="define" name="BOARD" value="BOARD_BLACKCAT"/> + + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/BLACKCAT/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/BLACKCAT/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#bui" caption="Board Support - BUI"> + <build type="doxygen-entry-point" value="Group_BoardInfo_BUI"/> + + <device-support value="at90usb646"/> + <build type="define" name="BOARD" value="BOARD_BUI"/> + + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/BUI/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/BUI/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#bumbleb" caption="Board Support - BUMBLEB"> + <build type="doxygen-entry-point" value="Group_BoardInfo_BUMBLEB"/> + + <device-support value="at90usb162"/> + <build type="define" name="BOARD" value="BOARD_BUMBLEB"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.joystick"/> + + <build type="header-file" value="Drivers/Board/AVR8/BUMBLEB/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/BUMBLEB/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/BUMBLEB/Joystick.h"/> + <build type="header-file" value="Drivers/Board/AVR8/BUMBLEB/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#culv3" caption="Board Support - CULV3"> + <build type="doxygen-entry-point" value="Group_BoardInfo_CULV3"/> + + <device-support value="atmega32u4"/> + <build type="define" name="BOARD" value="BOARD_CULV3"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/CULV3/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/CULV3/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/CULV3/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#duce" caption="Board Support - DUCE"> + <build type="doxygen-entry-point" value="Group_BoardInfo_DUCE"/> + + <device-support value="atmega32u2"/> + <build type="define" name="BOARD" value="BOARD_DUCE"/> + + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/DUCE/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/DUCE/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#evk527" caption="Board Support - EVK527"> + <build type="doxygen-entry-point" value="Group_BoardInfo_EVK527"/> + + <device-support value="atmega32u4"/> + <build type="define" name="BOARD" value="BOARD_EVK527"/> + + <require idref="lufa.drivers.misc.at45db321c"/> + <require idref="lufa.drivers.peripheral.spi"/> + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.dataflash"/> + <require idref="lufa.drivers.board.joystick"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/EVK527/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/EVK527/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/EVK527/Dataflash.h"/> + <build type="header-file" value="Drivers/Board/AVR8/EVK527/Joystick.h"/> + <build type="header-file" value="Drivers/Board/AVR8/EVK527/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#jm_db_u2" caption="Board Support - JMDBU2"> + <build type="doxygen-entry-point" value="Group_BoardInfo_JMDBU2"/> + + <device-support value="atmega32u2"/> + <build type="define" name="BOARD" value="BOARD_JMDBU2"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/JMDBU2/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/JMDBU2/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/JMDBU2/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#leonardo" caption="Board Support - LEONARDO"> + <build type="doxygen-entry-point" value="Group_BoardInfo_LEONARDO"/> + + <device-support value="atmega32u4"/> + <build type="define" name="BOARD" value="BOARD_LEONARDO"/> + + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/LEONARDO/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/LEONARDO/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#maximus" caption="Board Support - MAXIMUS"> + <build type="doxygen-entry-point" value="Group_BoardInfo_MAXIMUS"/> + + <device-support value="at90usb162"/> + <build type="define" name="BOARD" value="BOARD_MAXIMUS"/> + + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/MAXIMUS/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MAXIMUS/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#micropendous_32u2" caption="Board Support - MICROPENDOUS_32U2"> + <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_32U2"/> + + <device-support value="atmega32u2"/> + <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_32U2"/> + + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.buttons"/> + + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/LEDs.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#micropendous_a" caption="Board Support - MICROPENDOUS_A"> + <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_A"/> + + <device-support value="at90usb1287"/> + <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_A"/> + + <require idref="lufa.drivers.board.buttons"/> + + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#micropendous_1" caption="Board Support - MICROPENDOUS_1"> + <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_1"/> + + <device-support value="at90usb162"/> + <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_1"/> + + <require idref="lufa.drivers.board.buttons"/> + + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#micropendous_2" caption="Board Support - MICROPENDOUS_2"> + <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_2"/> + + <device-support value="atmega32u4"/> + <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_2"/> + + <require idref="lufa.drivers.board.buttons"/> + + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#micropendous_3" caption="Board Support - MICROPENDOUS_3"> + <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_3"/> + + <device-support value="at90usb1287"/> + <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_3"/> + + <require idref="lufa.drivers.board.buttons"/> + + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#micropendous_4" caption="Board Support - MICROPENDOUS_4"> + <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_4"/> + + <device-support value="at90usb1287"/> + <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_4"/> + + <require idref="lufa.drivers.board.buttons"/> + + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#micropendous_dip" caption="Board Support - MICROPENDOUS_DIP"> + <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_DIP"/> + + <device-support value="at90usb1287"/> + <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_DIP"/> + + <require idref="lufa.drivers.board.buttons"/> + + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#micropendous_rev1" caption="Board Support - MICROPENDOUS_REV1"> + <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_REV1"/> + + <device-support value="at90usb1287"/> + <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_REV1"/> + + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.buttons"/> + + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/LEDs.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#micropendous_rev2" caption="Board Support - MICROPENDOUS_REV2"> + <build type="doxygen-entry-point" value="Group_BoardInfo_MICROPENDOUS_REV2"/> + + <device-support value="at90usb1287"/> + <build type="define" name="BOARD" value="BOARD_MICROPENDOUS_REV2"/> + + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.buttons"/> + + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/LEDs.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MICROPENDOUS/Buttons.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#microsin_162" caption="Board Support - MICROSIN162"> + <build type="doxygen-entry-point" value="Group_BoardInfo_MICROSIN162"/> + + <device-support value="atmega162"/> + <build type="define" name="BOARD" value="BOARD_MICROSIN162"/> + + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.buttons"/> + + <build type="header-file" value="Drivers/Board/AVR8/MICROSIN162/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MICROSIN162/LEDs.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MICROSIN162/Buttons.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#minimus" caption="Board Support - MINIMUS"> + <build type="doxygen-entry-point" value="Group_BoardInfo_MINIMUS"/> + + <device-support value="atmega32u2"/> + <build type="define" name="BOARD" value="BOARD_MINIMUS"/> + + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.buttons"/> + + <build type="header-file" value="Drivers/Board/AVR8/MINIMUS/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MINIMUS/LEDs.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MINIMUS/Buttons.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#multio" caption="Board Support - MULTIO"> + <build type="doxygen-entry-point" value="Group_BoardInfo_MULTIO"/> + + <device-support value="at90usb162"/> + <build type="define" name="BOARD" value="BOARD_MULTIO"/> + + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/MULTIO/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MULTIO/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#olimex_162" caption="Board Support - OLIMEX162"> + <build type="doxygen-entry-point" value="Group_BoardInfo_OLIMEX162"/> + + <device-support value="at90usb162"/> + <build type="define" name="BOARD" value="BOARD_OLIMEX162"/> + + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.buttons"/> + + <build type="header-file" value="Drivers/Board/AVR8/OLIMEX162/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/OLIMEX162/LEDs.h"/> + <build type="header-file" value="Drivers/Board/AVR8/OLIMEX162/Buttons.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#olimex_32u4" caption="Board Support - OLIMEX32U4"> + <build type="doxygen-entry-point" value="Group_BoardInfo_OLIMEX32U4"/> + + <device-support value="atmega32u4"/> + <build type="define" name="BOARD" value="BOARD_OLIMEX32U4"/> + + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.buttons"/> + + <build type="header-file" value="Drivers/Board/AVR8/OLIMEX32U4/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/OLIMEX32U4/LEDs.h"/> + <build type="header-file" value="Drivers/Board/AVR8/OLIMEX32U4/Buttons.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#olimex_isp_mkii" caption="Board Support - OLIMEXISPMK2"> + <build type="doxygen-entry-point" value="Group_BoardInfo_OLIMEXISPMK2"/> + + <device-support value="at90usb162"/> + <build type="define" name="BOARD" value="BOARD_OLIMEXISPMK2"/> + + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.buttons"/> + + <build type="header-file" value="Drivers/Board/AVR8/OLIMEXISPMK2/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/OLIMEXISPMK2/LEDs.h"/> + <build type="header-file" value="Drivers/Board/AVR8/OLIMEXISPMK2/Buttons.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#olimex_t32u4" caption="Board Support - OLIMEX_T32U4"> + <build type="doxygen-entry-point" value="Group_BoardInfo_OLIMEXT32U4"/> + + <device-support value="atmega32u4"/> + <build type="define" name="BOARD" value="BOARD_OLIMEXT32U4"/> + + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.buttons"/> + + <build type="header-file" value="Drivers/Board/AVR8/OLIMEXT32U4/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/OLIMEXT32U4/LEDs.h"/> + <build type="header-file" value="Drivers/Board/AVR8/OLIMEXT32U4/Buttons.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#rzusbstick" caption="Board Support - RZUSBSTICK"> + <build type="doxygen-entry-point" value="Group_BoardInfo_RZUSBSTICK"/> + + <device-support value="at90usb1287"/> + <build type="define" name="BOARD" value="BOARD_RZUSBSTICK"/> + + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/RZUSBSTICK/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/RZUSBSTICK/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#sparkfun_8u2" caption="Board Support - SPARKFUN8U2"> + <build type="doxygen-entry-point" value="Group_BoardInfo_SPARKFUN8U2"/> + + <device-support value="atmega8u2"/> + <build type="define" name="BOARD" value="BOARD_SPARKFUN8U2"/> + + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/SPARKFUN8U2/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/SPARKFUN8U2/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#stk525" caption="Board Support - STK525"> + <build type="doxygen-entry-point" value="Group_BoardInfo_STK525"/> + + <device-support value="at90usb1287"/> + <device-support value="at90usb1286"/> + <device-support value="at90usb647"/> + <device-support value="at90usb646"/> + <build type="define" name="BOARD" value="BOARD_STK525"/> + + <require idref="lufa.drivers.misc.at45db321c"/> + <require idref="lufa.drivers.peripheral.spi"/> + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.dataflash"/> + <require idref="lufa.drivers.board.joystick"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/STK525/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/STK525/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/STK525/Dataflash.h"/> + <build type="header-file" value="Drivers/Board/AVR8/STK525/Joystick.h"/> + <build type="header-file" value="Drivers/Board/AVR8/STK525/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#stk526" caption="Board Support - STK526"> + <build type="doxygen-entry-point" value="Group_BoardInfo_STK526"/> + + <device-support value="at90usb162"/> + <device-support value="at90usb82"/> + <device-support value="atmega32u2"/> + <device-support value="atmega16u2"/> + <device-support value="atmega8u2"/> + <build type="define" name="BOARD" value="BOARD_STK526"/> + + <require idref="lufa.drivers.misc.at45db642d"/> + <require idref="lufa.drivers.peripheral.spi"/> + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.dataflash"/> + <require idref="lufa.drivers.board.joystick"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/STK526/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/STK526/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/STK526/Dataflash.h"/> + <build type="header-file" value="Drivers/Board/AVR8/STK526/Joystick.h"/> + <build type="header-file" value="Drivers/Board/AVR8/STK526/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#teensy" caption="Board Support - TEENSY"> + <build type="doxygen-entry-point" value="Group_BoardInfo_TEENSY"/> + + <device-support value="at90usb162"/> + <build type="define" name="BOARD" value="BOARD_TEENSY"/> + + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/TEENSY/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/TEENSY/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#teensy2" caption="Board Support - TEENSY2"> + <build type="doxygen-entry-point" value="Group_BoardInfo_TEENSY2"/> + + <device-support value="at90usb646"/> + <build type="define" name="BOARD" value="BOARD_TEENSY2"/> + + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/TEENSY/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/TEENSY/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#tul" caption="Board Support - TUL"> + <build type="doxygen-entry-point" value="Group_BoardInfo_TUL"/> + + <device-support value="atmega32u4"/> + <build type="define" name="BOARD" value="BOARD_TUL"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/TUL/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/TUL/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/TUL/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#udip" caption="Board Support - UDIP"> + <build type="doxygen-entry-point" value="Group_BoardInfo_UDIP"/> + + <device-support value="atmega32u2"/> + <build type="define" name="BOARD" value="BOARD_UDIP"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/UDIP/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/UDIP/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/UDIP/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#uno" caption="Board Support - UNO"> + <build type="doxygen-entry-point" value="Group_BoardInfo_UNO"/> + + <device-support value="atmega8u2"/> + <device-support value="atmega16u2"/> + <build type="define" name="BOARD" value="BOARD_UNO"/> + + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/UNO/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/UNO/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#usb2ax" caption="Board Support - USB2AX"> + <build type="doxygen-entry-point" value="Group_BoardInfo_USB2AX"/> + + <device-support value="atmega32u2"/> + <build type="define" name="BOARD" value="BOARD_USB2AX"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/USB2AX/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#usb2ax_v3" caption="Board Support - USB2AX_V3"> + <build type="doxygen-entry-point" value="Group_BoardInfo_USB2AX_V3"/> + + <device-support value="atmega32u2"/> + <build type="define" name="BOARD" value="BOARD_USB2AX_V3"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/USB2AX/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#usb2ax_v3_1" caption="Board Support - USB2AX_V31"> + <build type="doxygen-entry-point" value="Group_BoardInfo_USB2AX_V31"/> + + <device-support value="atmega32u2"/> + <build type="define" name="BOARD" value="BOARD_USB2AX_V31"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/USB2AX/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/USB2AX/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#usbfoo" caption="Board Support - USBFOO"> + <build type="doxygen-entry-point" value="Group_BoardInfo_USBFOO"/> + + <device-support value="atmega162"/> + <build type="define" name="BOARD" value="BOARD_USBFOO"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/USBFOO/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/USBFOO/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/USBFOO/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#usbkey" caption="Board Support - USBKEY"> + <build type="doxygen-entry-point" value="Group_BoardInfo_USBKEY"/> + + <device-support value="at90usb1287"/> + <build type="define" name="BOARD" value="BOARD_USBKEY"/> + + <require idref="lufa.drivers.misc.at45db642d"/> + <require idref="lufa.drivers.peripheral.spi"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.dataflash"/> + <require idref="lufa.drivers.board.joystick"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/USBKEY/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/USBKEY/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/USBKEY/Dataflash.h"/> + <build type="header-file" value="Drivers/Board/AVR8/USBKEY/Joystick.h"/> + <build type="header-file" value="Drivers/Board/AVR8/USBKEY/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#usbtiny_mkii" caption="Board Support - USBTINYMKII"> + <build type="doxygen-entry-point" value="Group_BoardInfo_USBTINYMKII"/> + + <device-support value="at90usb162"/> + <build type="define" name="BOARD" value="BOARD_USBTINYMKII"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/USBTINYMKII/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/USBTINYMKII/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/USBTINYMKII/LEDs.h"/> + </module> + + <module type="driver" id="lufa.drivers.board#xplain_rev1" caption="Board Support - XPLAIN (HW Rev 1)"> + <build type="doxygen-entry-point" value="Group_BoardInfo_XPLAIN_REV1"/> + + <device-support value="at90usb1287"/> + + <require idref="lufa.drivers.misc.at45db642d"/> + <require idref="lufa.drivers.peripheral.spi"/> + <require idref="lufa.drivers.board.dataflash"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/Dataflash.h"/> + <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/LEDs.h"/> + + <build type="define" name="BOARD" value="BOARD_XPLAIN_REV1"/> + </module> + + <module type="driver" id="lufa.drivers.board#xplain" caption="Board Support - XPLAIN (HW Rev 2+)"> + <build type="doxygen-entry-point" value="Group_BoardInfo_XPLAIN"/> + + <device-support value="at90usb1287"/> + + <require idref="lufa.drivers.misc.at45db642d"/> + <require idref="lufa.drivers.peripheral.spi"/> + <require idref="lufa.drivers.board.dataflash"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/Dataflash.h"/> + <build type="header-file" value="Drivers/Board/AVR8/XPLAIN/LEDs.h"/> + + <build type="define" name="BOARD" value="BOARD_XPLAIN"/> + </module> + + <module type="driver" id="lufa.drivers.board#a3bu_xplained" caption="Board Support - A3BU_XPLAINED"> + <build type="doxygen-entry-point" value="Group_BoardInfo_A3BU_XPLAINED"/> + + <device-support value="atxmega256a3bu"/> + + <require idref="lufa.drivers.misc.at45db642d"/> + <require idref="lufa.drivers.peripheral.usart_spi"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.dataflash"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/XMEGA/A3BU_XPLAINED/Board.h"/> + <build type="header-file" value="Drivers/Board/XMEGA/A3BU_XPLAINED/Buttons.h"/> + <build type="header-file" value="Drivers/Board/XMEGA/A3BU_XPLAINED/Dataflash.h"/> + <build type="header-file" value="Drivers/Board/XMEGA/A3BU_XPLAINED/LEDs.h"/> + + <build type="define" name="BOARD" value="BOARD_A3BU_XPLAINED"/> + </module> + + <module type="driver" id="lufa.drivers.board#b1_xplained" caption="Board Support - B1_XPLAINED"> + <build type="doxygen-entry-point" value="Group_BoardInfo_B1_XPLAINED"/> + + <device-support value="atxmega128b1"/> + + <require idref="lufa.drivers.misc.at45db642d"/> + <require idref="lufa.drivers.peripheral.usart_spi"/> + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.dataflash"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/XMEGA/B1_XPLAINED/Board.h"/> + <build type="header-file" value="Drivers/Board/XMEGA/B1_XPLAINED/Buttons.h"/> + <build type="header-file" value="Drivers/Board/XMEGA/B1_XPLAINED/Dataflash.h"/> + <build type="header-file" value="Drivers/Board/XMEGA/B1_XPLAINED/LEDs.h"/> + + <build type="define" name="BOARD" value="BOARD_B1_XPLAINED"/> + </module> + + <module type="driver" id="lufa.drivers.board#evk1100" caption="Board Support - EVK1100"> + <build type="doxygen-entry-point" value="Group_BoardInfo_EVK1100"/> + + <device-support value="at32uc3a0512"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.joystick"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/UC3/EVK1100/Board.h"/> + <build type="header-file" value="Drivers/Board/UC3/EVK1100/Buttons.h"/> + <build type="header-file" value="Drivers/Board/UC3/EVK1100/Joystick.h"/> + <build type="header-file" value="Drivers/Board/UC3/EVK1100/LEDs.h"/> + + <build type="define" name="BOARD" value="BOARD_EVK1100"/> + </module> + + <module type="driver" id="lufa.drivers.board#evk1101" caption="Board Support - EVK1101"> + <build type="doxygen-entry-point" value="Group_BoardInfo_EVK1101"/> + + <device-support value="at32uc3b0256"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.joystick"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/UC3/EVK1101/Board.h"/> + <build type="header-file" value="Drivers/Board/UC3/EVK1101/Buttons.h"/> + <build type="header-file" value="Drivers/Board/UC3/EVK1101/Joystick.h"/> + <build type="header-file" value="Drivers/Board/UC3/EVK1101/LEDs.h"/> + + <build type="define" name="BOARD" value="BOARD_EVK1101"/> + </module> + + <module type="driver" id="lufa.drivers.board#evk1104" caption="Board Support - EVK1104"> + <build type="doxygen-entry-point" value="Group_BoardInfo_EVK1104"/> + + <device-support value="at32uc3a3256"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/UC3/EVK1104/Board.h"/> + <build type="header-file" value="Drivers/Board/UC3/EVK1104/Buttons.h"/> + <build type="header-file" value="Drivers/Board/UC3/EVK1104/LEDs.h"/> + + <build type="define" name="BOARD" value="BOARD_EVK1104"/> + </module> + + <module type="driver" id="lufa.drivers.board#uc3a3_xplained" caption="Board Support - UC3A3_XPLAINED"> + <build type="doxygen-entry-point" value="Group_BoardInfo_UC3_A3_XPLAINED"/> + + <device-support value="at32uc3a3256"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/UC3/UC3A3_XPLAINED/Board.h"/> + <build type="header-file" value="Drivers/Board/UC3/UC3A3_XPLAINED/Buttons.h"/> + <build type="header-file" value="Drivers/Board/UC3/UC3A3_XPLAINED/LEDs.h"/> + + <build type="define" name="BOARD" value="BOARD_UC3A3_XPLAINED"/> + </module> + + <module type="driver" id="lufa.drivers.board#stange_isp" caption="Board Support - STANGE_ISP"> + <build type="doxygen-entry-point" value="Group_BoardInfo_STANGE_ISP"/> + + <device-support value="at90usb162"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/STANGE_ISP/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/STANGE_ISP/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/STANGE_ISP/LEDs.h"/> + + <build type="define" name="BOARD" value="BOARD_STANGE_ISP"/> + </module> + + <module type="driver" id="lufa.drivers.board#c3_xplained" caption="Board Support - C3_XPLAINED"> + <build type="doxygen-entry-point" value="Group_BoardInfo_C3_XPLAINED"/> + + <device-support value="atxmega384c3"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/XMEGA/C3_XPLAINED/Board.h"/> + <build type="header-file" value="Drivers/Board/XMEGA/C3_XPLAINED/Buttons.h"/> + <build type="header-file" value="Drivers/Board/XMEGA/C3_XPLAINED/LEDs.h"/> + + <build type="define" name="BOARD" value="BOARD_C3_XPLAINED"/> + </module> + + <module type="driver" id="lufa.drivers.board#u2s" caption="Board Support - U2S"> + <build type="doxygen-entry-point" value="Group_BoardInfo_U2S"/> + + <device-support value="atmega32u2"/> + + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/U2S/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/U2S/Buttons.h"/> + <build type="header-file" value="Drivers/Board/AVR8/U2S/LEDs.h"/> + + <build type="define" name="BOARD" value="BOARD_U2S"/> + </module> + + <module type="driver" id="lufa.drivers.board#yun" caption="Board Support - YUN"> + <build type="doxygen-entry-point" value="Group_BoardInfo_YUN"/> + + <device-support value="atmega32u4"/> + + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/YUN/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/YUN/LEDs.h"/> + + <build type="define" name="BOARD" value="BOARD_YUN"/> + </module> + + <module type="driver" id="lufa.drivers.board#micro" caption="Board Support - MICRO"> + <build type="doxygen-entry-point" value="Group_BoardInfo_MICRO"/> + + <device-support value="atmega32u4"/> + + <require idref="lufa.drivers.board.leds"/> + + <build type="header-file" value="Drivers/Board/AVR8/MICRO/Board.h"/> + <build type="header-file" value="Drivers/Board/AVR8/MICRO/LEDs.h"/> + + <build type="define" name="BOARD" value="BOARD_MICRO"/> + </module> + </select-by-config> + </asf> +</lufa> diff --git a/LUFA/StudioIntegration/lufa_drivers_misc.xml b/LUFA/StudioIntegration/lufa_drivers_misc.xml index ee72f33db..458588774 100644 --- a/LUFA/StudioIntegration/lufa_drivers_misc.xml +++ b/LUFA/StudioIntegration/lufa_drivers_misc.xml @@ -1,57 +1,57 @@ -<!-- - LUFA Library - Copyright (C) Dean Camera, 2017. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org ---> - -<!-- Atmel Studio framework integration file --> - -<lufa> - <asf> - <module type="component" id="lufa.drivers.misc.at45db321c" caption="LUFA AT45DB321C Dataflash Commands"> - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="doxygen-entry-point" value="Group_AT45DB321C"/> - - <build type="include-path" value=".."/> - <build type="header-file" subtype="api" value="Drivers/Misc/AT45DB321C.h"/> - </module> - - <module type="component" id="lufa.drivers.misc.at45db642d" caption="LUFA AT45DB642D Dataflash Commands"> - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="doxygen-entry-point" value="Group_AT45DB321C"/> - - <build type="include-path" value=".."/> - <build type="header-file" subtype="api" value="Drivers/Misc/AT45DB642D.h"/> - </module> - - <module type="service" id="lufa.drivers.misc.ringbuffer" caption="LUFA Ring Buffer"> - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="doxygen-entry-point" value="Group_RingBuff"/> - - <build type="include-path" value=".."/> - <build type="header-file" subtype="api" value="Drivers/Misc/RingBuffer.h"/> - </module> - - <module type="service" id="lufa.drivers.misc.ansi" caption="LUFA ANSI Terminal Commands"> - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="doxygen-entry-point" value="Group_Terminal"/> - - <build type="include-path" value=".."/> - <build type="header-file" subtype="api" value="Drivers/Misc/TerminalCodes.h"/> - </module> - </asf> -</lufa> +<!-- + LUFA Library + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +--> + +<!-- Atmel Studio framework integration file --> + +<lufa> + <asf> + <module type="component" id="lufa.drivers.misc.at45db321c" caption="LUFA AT45DB321C Dataflash Commands"> + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="doxygen-entry-point" value="Group_AT45DB321C"/> + + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Misc/AT45DB321C.h"/> + </module> + + <module type="component" id="lufa.drivers.misc.at45db642d" caption="LUFA AT45DB642D Dataflash Commands"> + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="doxygen-entry-point" value="Group_AT45DB321C"/> + + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Misc/AT45DB642D.h"/> + </module> + + <module type="service" id="lufa.drivers.misc.ringbuffer" caption="LUFA Ring Buffer"> + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="doxygen-entry-point" value="Group_RingBuff"/> + + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Misc/RingBuffer.h"/> + </module> + + <module type="service" id="lufa.drivers.misc.ansi" caption="LUFA ANSI Terminal Commands"> + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="doxygen-entry-point" value="Group_Terminal"/> + + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Misc/TerminalCodes.h"/> + </module> + </asf> +</lufa> diff --git a/LUFA/StudioIntegration/lufa_drivers_peripheral.xml b/LUFA/StudioIntegration/lufa_drivers_peripheral.xml index b4eb8747a..55cf3fa88 100644 --- a/LUFA/StudioIntegration/lufa_drivers_peripheral.xml +++ b/LUFA/StudioIntegration/lufa_drivers_peripheral.xml @@ -1,198 +1,198 @@ -<!-- - LUFA Library - Copyright (C) Dean Camera, 2017. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org ---> - -<!-- Atmel Studio framework integration file --> - -<lufa> - <asf> - <select-by-device id="lufa.drivers.peripheral.usart" caption="LUFA USART Driver"> - <module type="driver" id="lufa.drivers.peripheral.usart#avr8" caption="LUFA USART Driver - AVR8"> - <device-support-alias value="lufa_avr8"/> - - <build type="doxygen-entry-point" value="Group_Serial"/> - - <require idref="lufa.common"/> - <require idref="lufa.drivers.misc.ansi"/> - - <build type="c-source" value="Drivers/Peripheral/AVR8/Serial_AVR8.c"/> - <build type="header-file" value="Drivers/Peripheral/AVR8/Serial_AVR8.h"/> - <build type="include-path" value=".."/> - <build type="header-file" subtype="api" value="Drivers/Peripheral/Serial.h"/> - </module> - - <module type="driver" id="lufa.drivers.peripheral.usart#xmega" caption="LUFA USART Driver - AVR8"> - <device-support-alias value="lufa_xmega"/> - - <build type="doxygen-entry-point" value="Group_Serial"/> - - <require idref="lufa.common"/> - <require idref="lufa.drivers.misc.ansi"/> - - <build type="c-source" value="Drivers/Peripheral/XMEGA/Serial_XMEGA.c"/> - <build type="header-file" value="Drivers/Peripheral/XMEGA/Serial_XMEGA.h"/> - <build type="include-path" value=".."/> - <build type="header-file" subtype="api" value="Drivers/Peripheral/Serial.h"/> - </module> - - <module type="driver" id="lufa.drivers.peripheral.usart#uc3" caption="LUFA USART Driver - UC3"> - <device-support-alias value="lufa_uc3"/> - - <build type="doxygen-entry-point" value="Group_Serial"/> - - <require idref="lufa.common"/> - <require idref="lufa.drivers.misc.ansi"/> - - <info type="gui-flag" value="hidden"/> - </module> - </select-by-device> - - <select-by-device id="lufa.drivers.peripheral.spi" caption="LUFA SPI Driver"> - <module type="driver" id="lufa.drivers.peripheral.spi#avr8" caption="LUFA SPI Driver - AVR8"> - <device-support-alias value="lufa_avr8"/> - - <build type="doxygen-entry-point" value="Group_SPI"/> - - <require idref="lufa.common"/> - - <build type="header-file" value="Drivers/Peripheral/AVR8/SPI_AVR8.h"/> - <build type="include-path" value=".."/> - <build type="header-file" subtype="api" value="Drivers/Peripheral/SPI.h"/> - </module> - - <module type="driver" id="lufa.drivers.peripheral.spi#xmega" caption="LUFA SPI Driver - XMEGA"> - <device-support-alias value="lufa_xmega"/> - - <build type="doxygen-entry-point" value="Group_SPI"/> - - <require idref="lufa.common"/> - - <build type="header-file" value="Drivers/Peripheral/XMEGA/SPI_XMEGA.h"/> - <build type="include-path" value=".."/> - <build type="header-file" subtype="api" value="Drivers/Peripheral/SPI.h"/> - </module> - - <module type="driver" id="lufa.drivers.peripheral.spi#uc3" caption="LUFA SPI Driver - UC3"> - <device-support-alias value="lufa_uc3"/> - - <build type="doxygen-entry-point" value="Group_SPI"/> - - <require idref="lufa.common"/> - - <info type="gui-flag" value="hidden"/> - </module> - </select-by-device> - - <select-by-device id="lufa.drivers.peripheral.usart_spi" caption="LUFA USART SPI Driver"> - <module type="driver" id="lufa.drivers.peripheral.usart_spi#avr8" caption="LUFA USART SPI Driver - AVR8"> - <device-support-alias value="lufa_avr8"/> - - <build type="doxygen-entry-point" value="Group_SerialSPI"/> - - <require idref="lufa.common"/> - - <build type="header-file" value="Drivers/Peripheral/AVR8/SerialSPI_AVR8.h"/> - <build type="include-path" value=".."/> - <build type="header-file" subtype="api" value="Drivers/Peripheral/SerialSPI.h"/> - </module> - - <module type="driver" id="lufa.drivers.peripheral.usart_spi#xmega" caption="LUFA USART SPI Driver - XMEGA"> - <device-support-alias value="lufa_xmega"/> - - <build type="doxygen-entry-point" value="Group_SerialSPI"/> - - <require idref="lufa.common"/> - - <build type="header-file" value="Drivers/Peripheral/XMEGA/SerialSPI_XMEGA.h"/> - <build type="include-path" value=".."/> - <build type="header-file" subtype="api" value="Drivers/Peripheral/SerialSPI.h"/> - </module> - - <module type="driver" id="lufa.drivers.peripheral.usart_spi#uc3" caption="LUFA USART SPI Driver - UC3"> - <device-support-alias value="lufa_uc3"/> - - <build type="doxygen-entry-point" value="Group_SerialSPI"/> - - <require idref="lufa.common"/> - - <info type="gui-flag" value="hidden"/> - </module> - </select-by-device> - - <select-by-device id="lufa.drivers.peripheral.twi" caption="LUFA TWI Master Driver"> - <module type="driver" id="lufa.drivers.peripheral.twi#avr8" caption="LUFA TWI Master Driver - AVR8"> - <device-support-alias value="lufa_avr8"/> - - <build type="doxygen-entry-point" value="Group_TWI"/> - - <require idref="lufa.common"/> - - <build type="c-source" value="Drivers/Peripheral/AVR8/TWI_AVR8.c"/> - <build type="header-file" value="Drivers/Peripheral/AVR8/TWI_AVR8.h"/> - <build type="include-path" value=".."/> - <build type="header-file" subtype="api" value="Drivers/Peripheral/TWI.h"/> - </module> - - <module type="driver" id="lufa.drivers.peripheral.twi#xmega" caption="LUFA TWI Master Driver - XMEGA"> - <device-support-alias value="lufa_xmega"/> - - <build type="doxygen-entry-point" value="Group_TWI"/> - - <require idref="lufa.common"/> - - <build type="c-source" value="Drivers/Peripheral/XMEGA/TWI_XMEGA.c"/> - <build type="header-file" value="Drivers/Peripheral/XMEGA/TWI_XMEGA.h"/> - <build type="include-path" value=".."/> - <build type="header-file" subtype="api" value="Drivers/Peripheral/TWI.h"/> - </module> - - <module type="driver" id="lufa.drivers.peripheral.twi#uc3" caption="LUFA TWI Master Driver - UC3"> - <device-support-alias value="lufa_uc3"/> - - <build type="doxygen-entry-point" value="Group_TWI"/> - - <require idref="lufa.common"/> - - <info type="gui-flag" value="hidden"/> - </module> - </select-by-device> - - <select-by-device id="lufa.drivers.peripheral.adc" caption="LUFA ADC Driver"> - <module type="driver" id="lufa.drivers.peripheral.adc#avr8" caption="LUFA ADC Driver - AVR8"> - <device-support-alias value="lufa_avr8"/> - - <build type="doxygen-entry-point" value="Group_ADC"/> - - <require idref="lufa.common"/> - - <build type="header-file" value="Drivers/Peripheral/AVR8/ADC_AVR8.h"/> - <build type="include-path" value=".."/> - <build type="header-file" subtype="api" value="Drivers/Peripheral/ADC.h"/> - </module> - - <module type="driver" id="lufa.drivers.peripheral.adc#xmega" caption="LUFA ADC Driver - XMEGA"> - <device-support-alias value="lufa_xmega"/> - - <build type="doxygen-entry-point" value="Group_ADC"/> - - <require idref="lufa.common"/> - - <info type="gui-flag" value="hidden"/> - </module> - - <module type="driver" id="lufa.drivers.peripheral.adc#uc3" caption="LUFA ADC Driver - UC3"> - <device-support-alias value="lufa_uc3"/> - - <build type="doxygen-entry-point" value="Group_ADC"/> - - <require idref="lufa.common"/> - - <info type="gui-flag" value="hidden"/> - </module> - </select-by-device> - </asf> -</lufa> +<!-- + LUFA Library + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +--> + +<!-- Atmel Studio framework integration file --> + +<lufa> + <asf> + <select-by-device id="lufa.drivers.peripheral.usart" caption="LUFA USART Driver"> + <module type="driver" id="lufa.drivers.peripheral.usart#avr8" caption="LUFA USART Driver - AVR8"> + <device-support-alias value="lufa_avr8"/> + + <build type="doxygen-entry-point" value="Group_Serial"/> + + <require idref="lufa.common"/> + <require idref="lufa.drivers.misc.ansi"/> + + <build type="c-source" value="Drivers/Peripheral/AVR8/Serial_AVR8.c"/> + <build type="header-file" value="Drivers/Peripheral/AVR8/Serial_AVR8.h"/> + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Peripheral/Serial.h"/> + </module> + + <module type="driver" id="lufa.drivers.peripheral.usart#xmega" caption="LUFA USART Driver - AVR8"> + <device-support-alias value="lufa_xmega"/> + + <build type="doxygen-entry-point" value="Group_Serial"/> + + <require idref="lufa.common"/> + <require idref="lufa.drivers.misc.ansi"/> + + <build type="c-source" value="Drivers/Peripheral/XMEGA/Serial_XMEGA.c"/> + <build type="header-file" value="Drivers/Peripheral/XMEGA/Serial_XMEGA.h"/> + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Peripheral/Serial.h"/> + </module> + + <module type="driver" id="lufa.drivers.peripheral.usart#uc3" caption="LUFA USART Driver - UC3"> + <device-support-alias value="lufa_uc3"/> + + <build type="doxygen-entry-point" value="Group_Serial"/> + + <require idref="lufa.common"/> + <require idref="lufa.drivers.misc.ansi"/> + + <info type="gui-flag" value="hidden"/> + </module> + </select-by-device> + + <select-by-device id="lufa.drivers.peripheral.spi" caption="LUFA SPI Driver"> + <module type="driver" id="lufa.drivers.peripheral.spi#avr8" caption="LUFA SPI Driver - AVR8"> + <device-support-alias value="lufa_avr8"/> + + <build type="doxygen-entry-point" value="Group_SPI"/> + + <require idref="lufa.common"/> + + <build type="header-file" value="Drivers/Peripheral/AVR8/SPI_AVR8.h"/> + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Peripheral/SPI.h"/> + </module> + + <module type="driver" id="lufa.drivers.peripheral.spi#xmega" caption="LUFA SPI Driver - XMEGA"> + <device-support-alias value="lufa_xmega"/> + + <build type="doxygen-entry-point" value="Group_SPI"/> + + <require idref="lufa.common"/> + + <build type="header-file" value="Drivers/Peripheral/XMEGA/SPI_XMEGA.h"/> + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Peripheral/SPI.h"/> + </module> + + <module type="driver" id="lufa.drivers.peripheral.spi#uc3" caption="LUFA SPI Driver - UC3"> + <device-support-alias value="lufa_uc3"/> + + <build type="doxygen-entry-point" value="Group_SPI"/> + + <require idref="lufa.common"/> + + <info type="gui-flag" value="hidden"/> + </module> + </select-by-device> + + <select-by-device id="lufa.drivers.peripheral.usart_spi" caption="LUFA USART SPI Driver"> + <module type="driver" id="lufa.drivers.peripheral.usart_spi#avr8" caption="LUFA USART SPI Driver - AVR8"> + <device-support-alias value="lufa_avr8"/> + + <build type="doxygen-entry-point" value="Group_SerialSPI"/> + + <require idref="lufa.common"/> + + <build type="header-file" value="Drivers/Peripheral/AVR8/SerialSPI_AVR8.h"/> + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Peripheral/SerialSPI.h"/> + </module> + + <module type="driver" id="lufa.drivers.peripheral.usart_spi#xmega" caption="LUFA USART SPI Driver - XMEGA"> + <device-support-alias value="lufa_xmega"/> + + <build type="doxygen-entry-point" value="Group_SerialSPI"/> + + <require idref="lufa.common"/> + + <build type="header-file" value="Drivers/Peripheral/XMEGA/SerialSPI_XMEGA.h"/> + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Peripheral/SerialSPI.h"/> + </module> + + <module type="driver" id="lufa.drivers.peripheral.usart_spi#uc3" caption="LUFA USART SPI Driver - UC3"> + <device-support-alias value="lufa_uc3"/> + + <build type="doxygen-entry-point" value="Group_SerialSPI"/> + + <require idref="lufa.common"/> + + <info type="gui-flag" value="hidden"/> + </module> + </select-by-device> + + <select-by-device id="lufa.drivers.peripheral.twi" caption="LUFA TWI Master Driver"> + <module type="driver" id="lufa.drivers.peripheral.twi#avr8" caption="LUFA TWI Master Driver - AVR8"> + <device-support-alias value="lufa_avr8"/> + + <build type="doxygen-entry-point" value="Group_TWI"/> + + <require idref="lufa.common"/> + + <build type="c-source" value="Drivers/Peripheral/AVR8/TWI_AVR8.c"/> + <build type="header-file" value="Drivers/Peripheral/AVR8/TWI_AVR8.h"/> + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Peripheral/TWI.h"/> + </module> + + <module type="driver" id="lufa.drivers.peripheral.twi#xmega" caption="LUFA TWI Master Driver - XMEGA"> + <device-support-alias value="lufa_xmega"/> + + <build type="doxygen-entry-point" value="Group_TWI"/> + + <require idref="lufa.common"/> + + <build type="c-source" value="Drivers/Peripheral/XMEGA/TWI_XMEGA.c"/> + <build type="header-file" value="Drivers/Peripheral/XMEGA/TWI_XMEGA.h"/> + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Peripheral/TWI.h"/> + </module> + + <module type="driver" id="lufa.drivers.peripheral.twi#uc3" caption="LUFA TWI Master Driver - UC3"> + <device-support-alias value="lufa_uc3"/> + + <build type="doxygen-entry-point" value="Group_TWI"/> + + <require idref="lufa.common"/> + + <info type="gui-flag" value="hidden"/> + </module> + </select-by-device> + + <select-by-device id="lufa.drivers.peripheral.adc" caption="LUFA ADC Driver"> + <module type="driver" id="lufa.drivers.peripheral.adc#avr8" caption="LUFA ADC Driver - AVR8"> + <device-support-alias value="lufa_avr8"/> + + <build type="doxygen-entry-point" value="Group_ADC"/> + + <require idref="lufa.common"/> + + <build type="header-file" value="Drivers/Peripheral/AVR8/ADC_AVR8.h"/> + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/Peripheral/ADC.h"/> + </module> + + <module type="driver" id="lufa.drivers.peripheral.adc#xmega" caption="LUFA ADC Driver - XMEGA"> + <device-support-alias value="lufa_xmega"/> + + <build type="doxygen-entry-point" value="Group_ADC"/> + + <require idref="lufa.common"/> + + <info type="gui-flag" value="hidden"/> + </module> + + <module type="driver" id="lufa.drivers.peripheral.adc#uc3" caption="LUFA ADC Driver - UC3"> + <device-support-alias value="lufa_uc3"/> + + <build type="doxygen-entry-point" value="Group_ADC"/> + + <require idref="lufa.common"/> + + <info type="gui-flag" value="hidden"/> + </module> + </select-by-device> + </asf> +</lufa> diff --git a/LUFA/StudioIntegration/lufa_drivers_usb.xml b/LUFA/StudioIntegration/lufa_drivers_usb.xml index f07aad672..15c65bf86 100644 --- a/LUFA/StudioIntegration/lufa_drivers_usb.xml +++ b/LUFA/StudioIntegration/lufa_drivers_usb.xml @@ -1,32 +1,32 @@ -<!-- - LUFA Library - Copyright (C) Dean Camera, 2017. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org ---> - -<!-- Atmel Studio framework integration file --> - -<lufa> - <asf> - <module type="driver" id="lufa.drivers.usb" caption="LUFA USB Driver"> - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="doxygen-entry-point" value="Group_USB"/> - - <build type="define" name="USE_LUFA_CONFIG_HEADER" value=""/> - <build type="module-config" subtype="path" value="CodeTemplates"/> - <build type="module-config" subtype="required-header-file" value="LUFAConfig.h"/> - - <build type="include-path" value=".."/> - <build type="header-file" subtype="api" value="Drivers/USB/USB.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.drivers.usb.class"/> - <require idref="lufa.drivers.usb.core"/> - </module> - </asf> -</lufa> +<!-- + LUFA Library + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +--> + +<!-- Atmel Studio framework integration file --> + +<lufa> + <asf> + <module type="driver" id="lufa.drivers.usb" caption="LUFA USB Driver"> + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="doxygen-entry-point" value="Group_USB"/> + + <build type="define" name="USE_LUFA_CONFIG_HEADER" value=""/> + <build type="module-config" subtype="path" value="CodeTemplates"/> + <build type="module-config" subtype="required-header-file" value="LUFAConfig.h"/> + + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Drivers/USB/USB.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.drivers.usb.class"/> + <require idref="lufa.drivers.usb.core"/> + </module> + </asf> +</lufa> diff --git a/LUFA/StudioIntegration/lufa_drivers_usb_class.xml b/LUFA/StudioIntegration/lufa_drivers_usb_class.xml index 123d60643..5d07af05e 100644 --- a/LUFA/StudioIntegration/lufa_drivers_usb_class.xml +++ b/LUFA/StudioIntegration/lufa_drivers_usb_class.xml @@ -1,32 +1,32 @@ -<!-- - LUFA Library - Copyright (C) Dean Camera, 2017. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org ---> - -<!-- Atmel Studio framework integration file --> - -<lufa> - <asf> - <module type="service" id="lufa.drivers.usb.class" caption="LUFA USB Class Drivers"> - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <info type="gui-flag" value="hidden"/> - <build type="doxygen-entry-point" value="Group_USBClassDrivers"/> - - <require idref="lufa.drivers.usb.class.android"/> - <require idref="lufa.drivers.usb.class.audio"/> - <require idref="lufa.drivers.usb.class.cdc"/> - <require idref="lufa.drivers.usb.class.hid"/> - <require idref="lufa.drivers.usb.class.ms"/> - <require idref="lufa.drivers.usb.class.midi"/> - <require idref="lufa.drivers.usb.class.printer"/> - <require idref="lufa.drivers.usb.class.rndis"/> - <require idref="lufa.drivers.usb.class.si"/> - </module> - </asf> -</lufa> +<!-- + LUFA Library + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +--> + +<!-- Atmel Studio framework integration file --> + +<lufa> + <asf> + <module type="service" id="lufa.drivers.usb.class" caption="LUFA USB Class Drivers"> + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <info type="gui-flag" value="hidden"/> + <build type="doxygen-entry-point" value="Group_USBClassDrivers"/> + + <require idref="lufa.drivers.usb.class.android"/> + <require idref="lufa.drivers.usb.class.audio"/> + <require idref="lufa.drivers.usb.class.cdc"/> + <require idref="lufa.drivers.usb.class.hid"/> + <require idref="lufa.drivers.usb.class.ms"/> + <require idref="lufa.drivers.usb.class.midi"/> + <require idref="lufa.drivers.usb.class.printer"/> + <require idref="lufa.drivers.usb.class.rndis"/> + <require idref="lufa.drivers.usb.class.si"/> + </module> + </asf> +</lufa> diff --git a/LUFA/StudioIntegration/lufa_drivers_usb_core.xml b/LUFA/StudioIntegration/lufa_drivers_usb_core.xml index 095bcd279..bfcd0f1e8 100644 --- a/LUFA/StudioIntegration/lufa_drivers_usb_core.xml +++ b/LUFA/StudioIntegration/lufa_drivers_usb_core.xml @@ -1,85 +1,85 @@ -<!-- - LUFA Library - Copyright (C) Dean Camera, 2017. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org ---> - -<!-- Atmel Studio framework integration file --> - -<lufa> - <asf> - <module type="driver" id="lufa.drivers.usb.core.common" caption="LUFA USB Core Driver - Common"> - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="doxygen-entry-point" value="Group_USBManagement"/> - - <info type="gui-flag" value="hidden"/> - - <build type="header-file" value="Drivers/USB/Core/Device.h"/> - <build type="header-file" value="Drivers/USB/Core/Endpoint.h"/> - <build type="header-file" value="Drivers/USB/Core/Host.h"/> - <build type="header-file" value="Drivers/USB/Core/Pipe.h"/> - <build type="header-file" value="Drivers/USB/Core/OTG.h"/> - <build type="header-file" value="Drivers/USB/Core/USBController.h"/> - <build type="header-file" value="Drivers/USB/Core/USBInterrupt.h"/> - <build type="header-file" value="Drivers/USB/Core/EndpointStream.h"/> - <build type="header-file" value="Drivers/USB/Core/PipeStream.h"/> - <build type="c-source" value="Drivers/USB/Core/ConfigDescriptors.c"/> - <build type="header-file" value="Drivers/USB/Core/ConfigDescriptors.h"/> - <build type="c-source" value="Drivers/USB/Core/DeviceStandardReq.c"/> - <build type="header-file" value="Drivers/USB/Core/DeviceStandardReq.h"/> - <build type="c-source" value="Drivers/USB/Core/Events.c"/> - <build type="header-file" value="Drivers/USB/Core/Events.h"/> - <build type="c-source" value="Drivers/USB/Core/HostStandardReq.c"/> - <build type="header-file" value="Drivers/USB/Core/HostStandardReq.h"/> - <build type="c-source" value="Drivers/USB/Core/USBTask.c"/> - <build type="header-file" value="Drivers/USB/Core/USBTask.h"/> - <build type="header-file" value="Drivers/USB/Core/USBMode.h"/> - <build type="header-file" value="Drivers/USB/Core/StdDescriptors.h"/> - <build type="header-file" value="Drivers/USB/Core/StdRequestType.h"/> - - <build type="c-source" value="Drivers/USB/Class/Common/HIDParser.c"/> - <build type="header-file" value="Drivers/USB/Class/Common/HIDParser.h"/> - <build type="header-file" value="Drivers/USB/Class/Common/HIDReportData.h"/> - </module> - - <select-by-device id="lufa.drivers.usb.core" caption="LUFA USB Core Driver"> - <module type="driver" id="lufa.drivers.usb.core#avr8" caption="LUFA USB Core Driver - AVR8"> - <device-support-alias value="lufa_avr8"/> - - <info type="gui-flag" value="hidden"/> - - <build type="doxygen-entry-point" value="Group_USBManagement_AVR8"/> - - <require idref="lufa.drivers.usb.core.common"/> - <require idref="lufa.drivers.usb.core.avr8"/> - </module> - - <module type="driver" id="lufa.drivers.usb.core#xmega" caption="LUFA USB Core Driver - XMEGA"> - <device-support-alias value="lufa_xmega"/> - - <info type="gui-flag" value="hidden"/> - - <build type="doxygen-entry-point" value="Group_USBManagement_XMEGA"/> - - <require idref="lufa.drivers.usb.core.common"/> - <require idref="lufa.drivers.usb.core.xmega"/> - </module> - - <module type="driver" id="lufa.drivers.usb.core#uc3" caption="LUFA USB Core Driver - UC3"> - <device-support-alias value="lufa_uc3"/> - - <info type="gui-flag" value="hidden"/> - - <build type="doxygen-entry-point" value="Group_USBManagement_UC3"/> - - <require idref="lufa.drivers.usb.core.common"/> - <require idref="lufa.drivers.usb.core.uc3"/> - </module> - </select-by-device> - </asf> -</lufa> +<!-- + LUFA Library + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +--> + +<!-- Atmel Studio framework integration file --> + +<lufa> + <asf> + <module type="driver" id="lufa.drivers.usb.core.common" caption="LUFA USB Core Driver - Common"> + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="doxygen-entry-point" value="Group_USBManagement"/> + + <info type="gui-flag" value="hidden"/> + + <build type="header-file" value="Drivers/USB/Core/Device.h"/> + <build type="header-file" value="Drivers/USB/Core/Endpoint.h"/> + <build type="header-file" value="Drivers/USB/Core/Host.h"/> + <build type="header-file" value="Drivers/USB/Core/Pipe.h"/> + <build type="header-file" value="Drivers/USB/Core/OTG.h"/> + <build type="header-file" value="Drivers/USB/Core/USBController.h"/> + <build type="header-file" value="Drivers/USB/Core/USBInterrupt.h"/> + <build type="header-file" value="Drivers/USB/Core/EndpointStream.h"/> + <build type="header-file" value="Drivers/USB/Core/PipeStream.h"/> + <build type="c-source" value="Drivers/USB/Core/ConfigDescriptors.c"/> + <build type="header-file" value="Drivers/USB/Core/ConfigDescriptors.h"/> + <build type="c-source" value="Drivers/USB/Core/DeviceStandardReq.c"/> + <build type="header-file" value="Drivers/USB/Core/DeviceStandardReq.h"/> + <build type="c-source" value="Drivers/USB/Core/Events.c"/> + <build type="header-file" value="Drivers/USB/Core/Events.h"/> + <build type="c-source" value="Drivers/USB/Core/HostStandardReq.c"/> + <build type="header-file" value="Drivers/USB/Core/HostStandardReq.h"/> + <build type="c-source" value="Drivers/USB/Core/USBTask.c"/> + <build type="header-file" value="Drivers/USB/Core/USBTask.h"/> + <build type="header-file" value="Drivers/USB/Core/USBMode.h"/> + <build type="header-file" value="Drivers/USB/Core/StdDescriptors.h"/> + <build type="header-file" value="Drivers/USB/Core/StdRequestType.h"/> + + <build type="c-source" value="Drivers/USB/Class/Common/HIDParser.c"/> + <build type="header-file" value="Drivers/USB/Class/Common/HIDParser.h"/> + <build type="header-file" value="Drivers/USB/Class/Common/HIDReportData.h"/> + </module> + + <select-by-device id="lufa.drivers.usb.core" caption="LUFA USB Core Driver"> + <module type="driver" id="lufa.drivers.usb.core#avr8" caption="LUFA USB Core Driver - AVR8"> + <device-support-alias value="lufa_avr8"/> + + <info type="gui-flag" value="hidden"/> + + <build type="doxygen-entry-point" value="Group_USBManagement_AVR8"/> + + <require idref="lufa.drivers.usb.core.common"/> + <require idref="lufa.drivers.usb.core.avr8"/> + </module> + + <module type="driver" id="lufa.drivers.usb.core#xmega" caption="LUFA USB Core Driver - XMEGA"> + <device-support-alias value="lufa_xmega"/> + + <info type="gui-flag" value="hidden"/> + + <build type="doxygen-entry-point" value="Group_USBManagement_XMEGA"/> + + <require idref="lufa.drivers.usb.core.common"/> + <require idref="lufa.drivers.usb.core.xmega"/> + </module> + + <module type="driver" id="lufa.drivers.usb.core#uc3" caption="LUFA USB Core Driver - UC3"> + <device-support-alias value="lufa_uc3"/> + + <info type="gui-flag" value="hidden"/> + + <build type="doxygen-entry-point" value="Group_USBManagement_UC3"/> + + <require idref="lufa.drivers.usb.core.common"/> + <require idref="lufa.drivers.usb.core.uc3"/> + </module> + </select-by-device> + </asf> +</lufa> diff --git a/LUFA/StudioIntegration/lufa_drivers_usb_core_avr8.xml b/LUFA/StudioIntegration/lufa_drivers_usb_core_avr8.xml index b2792cb2f..51493b460 100644 --- a/LUFA/StudioIntegration/lufa_drivers_usb_core_avr8.xml +++ b/LUFA/StudioIntegration/lufa_drivers_usb_core_avr8.xml @@ -1,43 +1,43 @@ -<!-- - LUFA Library - Copyright (C) Dean Camera, 2017. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org ---> - -<!-- Atmel Studio framework integration file --> - -<lufa> - <asf> - <module type="driver" id="lufa.drivers.usb.core.avr8" caption="LUFA USB Core Driver for AVR8"> - <device-support-alias value="lufa_avr8"/> - - <info type="gui-flag" value="hidden"/> - - <build type="doxygen-entry-point" value="Group_USBManagement_AVR8"/> - - <build type="c-source" value="Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_R.c"/> - <build type="c-source" value="Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_W.c"/> - <build type="c-source" value="Drivers/USB/Core/AVR8/Template/Template_Endpoint_RW.c"/> - <build type="c-source" value="Drivers/USB/Core/AVR8/Template/Template_Pipe_RW.c"/> - <build type="c-source" value="Drivers/USB/Core/AVR8/Device_AVR8.c"/> - <build type="header-file" value="Drivers/USB/Core/AVR8/Device_AVR8.h"/> - <build type="c-source" value="Drivers/USB/Core/AVR8/Endpoint_AVR8.c"/> - <build type="header-file" value="Drivers/USB/Core/AVR8/Endpoint_AVR8.h"/> - <build type="c-source" value="Drivers/USB/Core/AVR8/Host_AVR8.c"/> - <build type="header-file" value="Drivers/USB/Core/AVR8/Host_AVR8.h"/> - <build type="c-source" value="Drivers/USB/Core/AVR8/Pipe_AVR8.c"/> - <build type="header-file" value="Drivers/USB/Core/AVR8/Pipe_AVR8.h"/> - <build type="header-file" value="Drivers/USB/Core/AVR8/OTG_AVR8.h"/> - <build type="c-source" value="Drivers/USB/Core/AVR8/USBController_AVR8.c"/> - <build type="header-file" value="Drivers/USB/Core/AVR8/USBController_AVR8.h"/> - <build type="c-source" value="Drivers/USB/Core/AVR8/USBInterrupt_AVR8.c"/> - <build type="header-file" value="Drivers/USB/Core/AVR8/USBInterrupt_AVR8.h"/> - <build type="c-source" value="Drivers/USB/Core/AVR8/EndpointStream_AVR8.c"/> - <build type="header-file" value="Drivers/USB/Core/AVR8/EndpointStream_AVR8.h"/> - <build type="c-source" value="Drivers/USB/Core/AVR8/PipeStream_AVR8.c"/> - <build type="header-file" value="Drivers/USB/Core/AVR8/PipeStream_AVR8.h"/> - </module> - </asf> -</lufa> +<!-- + LUFA Library + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +--> + +<!-- Atmel Studio framework integration file --> + +<lufa> + <asf> + <module type="driver" id="lufa.drivers.usb.core.avr8" caption="LUFA USB Core Driver for AVR8"> + <device-support-alias value="lufa_avr8"/> + + <info type="gui-flag" value="hidden"/> + + <build type="doxygen-entry-point" value="Group_USBManagement_AVR8"/> + + <build type="c-source" value="Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_R.c"/> + <build type="c-source" value="Drivers/USB/Core/AVR8/Template/Template_Endpoint_Control_W.c"/> + <build type="c-source" value="Drivers/USB/Core/AVR8/Template/Template_Endpoint_RW.c"/> + <build type="c-source" value="Drivers/USB/Core/AVR8/Template/Template_Pipe_RW.c"/> + <build type="c-source" value="Drivers/USB/Core/AVR8/Device_AVR8.c"/> + <build type="header-file" value="Drivers/USB/Core/AVR8/Device_AVR8.h"/> + <build type="c-source" value="Drivers/USB/Core/AVR8/Endpoint_AVR8.c"/> + <build type="header-file" value="Drivers/USB/Core/AVR8/Endpoint_AVR8.h"/> + <build type="c-source" value="Drivers/USB/Core/AVR8/Host_AVR8.c"/> + <build type="header-file" value="Drivers/USB/Core/AVR8/Host_AVR8.h"/> + <build type="c-source" value="Drivers/USB/Core/AVR8/Pipe_AVR8.c"/> + <build type="header-file" value="Drivers/USB/Core/AVR8/Pipe_AVR8.h"/> + <build type="header-file" value="Drivers/USB/Core/AVR8/OTG_AVR8.h"/> + <build type="c-source" value="Drivers/USB/Core/AVR8/USBController_AVR8.c"/> + <build type="header-file" value="Drivers/USB/Core/AVR8/USBController_AVR8.h"/> + <build type="c-source" value="Drivers/USB/Core/AVR8/USBInterrupt_AVR8.c"/> + <build type="header-file" value="Drivers/USB/Core/AVR8/USBInterrupt_AVR8.h"/> + <build type="c-source" value="Drivers/USB/Core/AVR8/EndpointStream_AVR8.c"/> + <build type="header-file" value="Drivers/USB/Core/AVR8/EndpointStream_AVR8.h"/> + <build type="c-source" value="Drivers/USB/Core/AVR8/PipeStream_AVR8.c"/> + <build type="header-file" value="Drivers/USB/Core/AVR8/PipeStream_AVR8.h"/> + </module> + </asf> +</lufa> diff --git a/LUFA/StudioIntegration/lufa_drivers_usb_core_uc3.xml b/LUFA/StudioIntegration/lufa_drivers_usb_core_uc3.xml index d815fca44..055ebde23 100644 --- a/LUFA/StudioIntegration/lufa_drivers_usb_core_uc3.xml +++ b/LUFA/StudioIntegration/lufa_drivers_usb_core_uc3.xml @@ -1,42 +1,42 @@ -<!-- - LUFA Library - Copyright (C) Dean Camera, 2017. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org ---> - -<!-- Atmel Studio framework integration file --> - -<lufa> - <asf> - <module type="driver" id="lufa.drivers.usb.core.uc3" caption="LUFA USB Core Driver for UC3"> - <device-support-alias value="lufa_uc3"/> - - <info type="gui-flag" value="hidden"/> - - <build type="doxygen-entry-point" value="Group_USBManagement_UC3"/> - - <build type="c-source" value="Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_R.c"/> - <build type="c-source" value="Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_W.c"/> - <build type="c-source" value="Drivers/USB/Core/UC3/Template/Template_Endpoint_RW.c"/> - <build type="c-source" value="Drivers/USB/Core/UC3/Template/Template_Pipe_RW.c"/> - <build type="c-source" value="Drivers/USB/Core/UC3/Device_UC3.c"/> - <build type="header-file" value="Drivers/USB/Core/UC3/Device_UC3.h"/> - <build type="c-source" value="Drivers/USB/Core/UC3/Endpoint_UC3.c"/> - <build type="header-file" value="Drivers/USB/Core/UC3/Endpoint_UC3.h"/> - <build type="c-source" value="Drivers/USB/Core/UC3/Host_UC3.c"/> - <build type="header-file" value="Drivers/USB/Core/UC3/Host_UC3.h"/> - <build type="c-source" value="Drivers/USB/Core/UC3/Pipe_UC3.c"/> - <build type="header-file" value="Drivers/USB/Core/UC3/Pipe_UC3.h"/> - <build type="c-source" value="Drivers/USB/Core/UC3/USBController_UC3.c"/> - <build type="header-file" value="Drivers/USB/Core/UC3/USBController_UC3.h"/> - <build type="c-source" value="Drivers/USB/Core/UC3/USBInterrupt_UC3.c"/> - <build type="header-file" value="Drivers/USB/Core/UC3/USBInterrupt_UC3.h"/> - <build type="c-source" value="Drivers/USB/Core/UC3/EndpointStream_UC3.c"/> - <build type="header-file" value="Drivers/USB/Core/UC3/EndpointStream_UC3.h"/> - <build type="c-source" value="Drivers/USB/Core/UC3/PipeStream_UC3.c"/> - <build type="header-file" value="Drivers/USB/Core/UC3/PipeStream_UC3.h"/> - </module> - </asf> -</lufa> +<!-- + LUFA Library + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +--> + +<!-- Atmel Studio framework integration file --> + +<lufa> + <asf> + <module type="driver" id="lufa.drivers.usb.core.uc3" caption="LUFA USB Core Driver for UC3"> + <device-support-alias value="lufa_uc3"/> + + <info type="gui-flag" value="hidden"/> + + <build type="doxygen-entry-point" value="Group_USBManagement_UC3"/> + + <build type="c-source" value="Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_R.c"/> + <build type="c-source" value="Drivers/USB/Core/UC3/Template/Template_Endpoint_Control_W.c"/> + <build type="c-source" value="Drivers/USB/Core/UC3/Template/Template_Endpoint_RW.c"/> + <build type="c-source" value="Drivers/USB/Core/UC3/Template/Template_Pipe_RW.c"/> + <build type="c-source" value="Drivers/USB/Core/UC3/Device_UC3.c"/> + <build type="header-file" value="Drivers/USB/Core/UC3/Device_UC3.h"/> + <build type="c-source" value="Drivers/USB/Core/UC3/Endpoint_UC3.c"/> + <build type="header-file" value="Drivers/USB/Core/UC3/Endpoint_UC3.h"/> + <build type="c-source" value="Drivers/USB/Core/UC3/Host_UC3.c"/> + <build type="header-file" value="Drivers/USB/Core/UC3/Host_UC3.h"/> + <build type="c-source" value="Drivers/USB/Core/UC3/Pipe_UC3.c"/> + <build type="header-file" value="Drivers/USB/Core/UC3/Pipe_UC3.h"/> + <build type="c-source" value="Drivers/USB/Core/UC3/USBController_UC3.c"/> + <build type="header-file" value="Drivers/USB/Core/UC3/USBController_UC3.h"/> + <build type="c-source" value="Drivers/USB/Core/UC3/USBInterrupt_UC3.c"/> + <build type="header-file" value="Drivers/USB/Core/UC3/USBInterrupt_UC3.h"/> + <build type="c-source" value="Drivers/USB/Core/UC3/EndpointStream_UC3.c"/> + <build type="header-file" value="Drivers/USB/Core/UC3/EndpointStream_UC3.h"/> + <build type="c-source" value="Drivers/USB/Core/UC3/PipeStream_UC3.c"/> + <build type="header-file" value="Drivers/USB/Core/UC3/PipeStream_UC3.h"/> + </module> + </asf> +</lufa> diff --git a/LUFA/StudioIntegration/lufa_drivers_usb_core_xmega.xml b/LUFA/StudioIntegration/lufa_drivers_usb_core_xmega.xml index 364a0f3ed..085fe85e8 100644 --- a/LUFA/StudioIntegration/lufa_drivers_usb_core_xmega.xml +++ b/LUFA/StudioIntegration/lufa_drivers_usb_core_xmega.xml @@ -1,36 +1,36 @@ -<!-- - LUFA Library - Copyright (C) Dean Camera, 2017. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org ---> - -<!-- Atmel Studio framework integration file --> - -<lufa> - <asf> - <module type="driver" id="lufa.drivers.usb.core.xmega" caption="LUFA USB Core Driver for XMEGA"> - <device-support-alias value="lufa_xmega"/> - - <info type="gui-flag" value="hidden"/> - - <build type="doxygen-entry-point" value="Group_USBManagement_XMEGA"/> - - <build type="c-source" value="Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_R.c"/> - <build type="c-source" value="Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_W.c"/> - <build type="c-source" value="Drivers/USB/Core/XMEGA/Template/Template_Endpoint_RW.c"/> - <build type="c-source" value="Drivers/USB/Core/XMEGA/Device_XMEGA.c"/> - <build type="header-file" value="Drivers/USB/Core/XMEGA/Device_XMEGA.h"/> - <build type="c-source" value="Drivers/USB/Core/XMEGA/Endpoint_XMEGA.c"/> - <build type="header-file" value="Drivers/USB/Core/XMEGA/Endpoint_XMEGA.h"/> - <build type="c-source" value="Drivers/USB/Core/XMEGA/Pipe_XMEGA.c"/> - <build type="c-source" value="Drivers/USB/Core/XMEGA/USBController_XMEGA.c"/> - <build type="header-file" value="Drivers/USB/Core/XMEGA/USBController_XMEGA.h"/> - <build type="c-source" value="Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.c"/> - <build type="header-file" value="Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.h"/> - <build type="c-source" value="Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.c"/> - <build type="header-file" value="Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.h"/> - </module> - </asf> -</lufa> +<!-- + LUFA Library + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +--> + +<!-- Atmel Studio framework integration file --> + +<lufa> + <asf> + <module type="driver" id="lufa.drivers.usb.core.xmega" caption="LUFA USB Core Driver for XMEGA"> + <device-support-alias value="lufa_xmega"/> + + <info type="gui-flag" value="hidden"/> + + <build type="doxygen-entry-point" value="Group_USBManagement_XMEGA"/> + + <build type="c-source" value="Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_R.c"/> + <build type="c-source" value="Drivers/USB/Core/XMEGA/Template/Template_Endpoint_Control_W.c"/> + <build type="c-source" value="Drivers/USB/Core/XMEGA/Template/Template_Endpoint_RW.c"/> + <build type="c-source" value="Drivers/USB/Core/XMEGA/Device_XMEGA.c"/> + <build type="header-file" value="Drivers/USB/Core/XMEGA/Device_XMEGA.h"/> + <build type="c-source" value="Drivers/USB/Core/XMEGA/Endpoint_XMEGA.c"/> + <build type="header-file" value="Drivers/USB/Core/XMEGA/Endpoint_XMEGA.h"/> + <build type="c-source" value="Drivers/USB/Core/XMEGA/Pipe_XMEGA.c"/> + <build type="c-source" value="Drivers/USB/Core/XMEGA/USBController_XMEGA.c"/> + <build type="header-file" value="Drivers/USB/Core/XMEGA/USBController_XMEGA.h"/> + <build type="c-source" value="Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.c"/> + <build type="header-file" value="Drivers/USB/Core/XMEGA/USBInterrupt_XMEGA.h"/> + <build type="c-source" value="Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.c"/> + <build type="header-file" value="Drivers/USB/Core/XMEGA/EndpointStream_XMEGA.h"/> + </module> + </asf> +</lufa> diff --git a/LUFA/StudioIntegration/lufa_platform.xml b/LUFA/StudioIntegration/lufa_platform.xml index e20b718fb..d33f435c6 100644 --- a/LUFA/StudioIntegration/lufa_platform.xml +++ b/LUFA/StudioIntegration/lufa_platform.xml @@ -1,60 +1,60 @@ -<!-- - LUFA Library - Copyright (C) Dean Camera, 2017. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org ---> - -<!-- Atmel Studio framework integration file --> - -<lufa> - <asf> - <select-by-device id="lufa.platform" caption="LUFA Platform Specific Support"> - <module type="service" id="lufa.platform#avr8" caption="LUFA Platform Specific Support - AVR8"> - <device-support-alias value="lufa_avr8"/> - - <build type="define" name="ARCH" value="ARCH_AVR8"/> - - <build type="doxygen-entry-point" value="Group_PlatformDrivers"/> - - <build type="include-path" value=".."/> - <build type="header-file" subtype="api" value="Platform/Platform.h"/> - - <require idref="lufa.common"/> - </module> - - <module type="service" id="lufa.platform#xmega" caption="LUFA Platform Specific Support - XMEGA"> - <device-support-alias value="lufa_xmega"/> - - <build type="define" name="ARCH" value="ARCH_XMEGA"/> - - <build type="doxygen-entry-point" value="Group_PlatformDrivers"/> - - <build type="include-path" value=".."/> - <build type="header-file" subtype="api" value="Platform/Platform.h"/> - - <build type="distribute" value="Platform/XMEGA/XMEGAExperimentalInfo.txt" subtype="license"/> - - <require idref="lufa.platform.xmega"/> - <require idref="lufa.common"/> - </module> - - <module type="service" id="lufa.platform#uc3" caption="LUFA Platform Specific Support - UC3"> - <device-support-alias value="lufa_uc3"/> - - <build type="define" name="ARCH" value="ARCH_UC3"/> - - <build type="doxygen-entry-point" value="Group_PlatformDrivers"/> - - <build type="include-path" value=".."/> - <build type="header-file" subtype="api" value="Platform/Platform.h"/> - - <build type="distribute" value="Platform/UC3/UC3ExperimentalInfo.txt" subtype="license"/> - - <require idref="lufa.platform.uc3"/> - <require idref="lufa.common"/> - </module> - </select-by-device> - </asf> -</lufa> +<!-- + LUFA Library + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +--> + +<!-- Atmel Studio framework integration file --> + +<lufa> + <asf> + <select-by-device id="lufa.platform" caption="LUFA Platform Specific Support"> + <module type="service" id="lufa.platform#avr8" caption="LUFA Platform Specific Support - AVR8"> + <device-support-alias value="lufa_avr8"/> + + <build type="define" name="ARCH" value="ARCH_AVR8"/> + + <build type="doxygen-entry-point" value="Group_PlatformDrivers"/> + + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Platform/Platform.h"/> + + <require idref="lufa.common"/> + </module> + + <module type="service" id="lufa.platform#xmega" caption="LUFA Platform Specific Support - XMEGA"> + <device-support-alias value="lufa_xmega"/> + + <build type="define" name="ARCH" value="ARCH_XMEGA"/> + + <build type="doxygen-entry-point" value="Group_PlatformDrivers"/> + + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Platform/Platform.h"/> + + <build type="distribute" value="Platform/XMEGA/XMEGAExperimentalInfo.txt" subtype="license"/> + + <require idref="lufa.platform.xmega"/> + <require idref="lufa.common"/> + </module> + + <module type="service" id="lufa.platform#uc3" caption="LUFA Platform Specific Support - UC3"> + <device-support-alias value="lufa_uc3"/> + + <build type="define" name="ARCH" value="ARCH_UC3"/> + + <build type="doxygen-entry-point" value="Group_PlatformDrivers"/> + + <build type="include-path" value=".."/> + <build type="header-file" subtype="api" value="Platform/Platform.h"/> + + <build type="distribute" value="Platform/UC3/UC3ExperimentalInfo.txt" subtype="license"/> + + <require idref="lufa.platform.uc3"/> + <require idref="lufa.common"/> + </module> + </select-by-device> + </asf> +</lufa> diff --git a/LUFA/StudioIntegration/lufa_platform_uc3.xml b/LUFA/StudioIntegration/lufa_platform_uc3.xml index 8c26d2304..3e875699a 100644 --- a/LUFA/StudioIntegration/lufa_platform_uc3.xml +++ b/LUFA/StudioIntegration/lufa_platform_uc3.xml @@ -1,26 +1,26 @@ -<!-- - LUFA Library - Copyright (C) Dean Camera, 2017. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org ---> - -<!-- Atmel Studio framework integration file --> - -<lufa> - <asf> - <module type="driver" id="lufa.platform.uc3" caption="LUFA UC3 Platform Drivers"> - <device-support-alias value="lufa_uc3"/> - - <info type="gui-flag" value="hidden"/> - - <build type="doxygen-entry-point" value="Group_PlatformDrivers_UC3"/> - - <build type="header-file" value="Platform/UC3/ClockManagement.h"/> - <build type="header-file" value="Platform/UC3/InterruptManagement.h"/> - <build type="c-source" value="Platform/UC3/InterruptManagement.c"/> - <build type="asm-source" value="Platform/UC3/Exception.S"/> - </module> - </asf> -</lufa> +<!-- + LUFA Library + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +--> + +<!-- Atmel Studio framework integration file --> + +<lufa> + <asf> + <module type="driver" id="lufa.platform.uc3" caption="LUFA UC3 Platform Drivers"> + <device-support-alias value="lufa_uc3"/> + + <info type="gui-flag" value="hidden"/> + + <build type="doxygen-entry-point" value="Group_PlatformDrivers_UC3"/> + + <build type="header-file" value="Platform/UC3/ClockManagement.h"/> + <build type="header-file" value="Platform/UC3/InterruptManagement.h"/> + <build type="c-source" value="Platform/UC3/InterruptManagement.c"/> + <build type="asm-source" value="Platform/UC3/Exception.S"/> + </module> + </asf> +</lufa> diff --git a/LUFA/StudioIntegration/lufa_platform_xmega.xml b/LUFA/StudioIntegration/lufa_platform_xmega.xml index 299c85966..2704bcf00 100644 --- a/LUFA/StudioIntegration/lufa_platform_xmega.xml +++ b/LUFA/StudioIntegration/lufa_platform_xmega.xml @@ -1,23 +1,23 @@ -<!-- - LUFA Library - Copyright (C) Dean Camera, 2017. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org ---> - -<!-- Atmel Studio framework integration file --> - -<lufa> - <asf xmlversion="1.0"> - <module type="driver" id="lufa.platform.xmega" caption="LUFA XMEGA Platform Drivers"> - <device-support-alias value="lufa_xmega"/> - - <info type="gui-flag" value="hidden"/> - - <build type="doxygen-entry-point" value="Group_PlatformDrivers_XMEGA"/> - - <build type="header-file" value="Platform/XMEGA/ClockManagement.h"/> - </module> - </asf> -</lufa> +<!-- + LUFA Library + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +--> + +<!-- Atmel Studio framework integration file --> + +<lufa> + <asf xmlversion="1.0"> + <module type="driver" id="lufa.platform.xmega" caption="LUFA XMEGA Platform Drivers"> + <device-support-alias value="lufa_xmega"/> + + <info type="gui-flag" value="hidden"/> + + <build type="doxygen-entry-point" value="Group_PlatformDrivers_XMEGA"/> + + <build type="header-file" value="Platform/XMEGA/ClockManagement.h"/> + </module> + </asf> +</lufa> diff --git a/LUFA/StudioIntegration/lufa_toolchain.xml b/LUFA/StudioIntegration/lufa_toolchain.xml index 66b416e28..b1f4062d5 100644 --- a/LUFA/StudioIntegration/lufa_toolchain.xml +++ b/LUFA/StudioIntegration/lufa_toolchain.xml @@ -1,45 +1,45 @@ -<!-- - LUFA Library - Copyright (C) Dean Camera, 2017. - - dean [at] fourwalledcubicle [dot] com - www.lufa-lib.org ---> - -<!-- Atmel Studio framework integration file --> - -<lufa> - <asf> - <select-by-device id="common.utils.toolchain_config" caption="Toolchain configuration defaults"> - <module type="build-specific" id="common.utils.toolchain_config#avr" caption="Toolchain configuration defaults for 8-bit AVR"> - <info type="gui-flag" value="hidden"/> - <device-support value="avr"/> - - <toolchain-config name="avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned" value="True" toolchain="avrgcc"/> - <toolchain-config name="avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned" value="True" toolchain="avrgcc"/> - <toolchain-config name="avrgcc.compiler.optimization.OtherFlags" value="-fdata-sections" toolchain="avrgcc"/> - <toolchain-config name="avrgcc.compiler.optimization.PrepareFunctionsForGarbageCollection" value="True" toolchain="avrgcc"/> - <toolchain-config name="avrgcc.compiler.warnings.AllWarnings" value="True" toolchain="avrgcc"/> - <toolchain-config name="avrgcc.compiler.miscellaneous.OtherFlags" value="-mrelax -std=gnu99 -fno-strict-aliasing -fno-jump-tables" toolchain="avrgcc"/> - <toolchain-config name="avrgcc.linker.optimization.GarbageCollectUnusedSections" value="True" toolchain="avrgcc"/> - <toolchain-config name="avrgcc.linker.optimization.RelaxBranches" value="True" toolchain="avrgcc"/> - <toolchain-config name="avrgcc.linker.miscellaneous.LinkerFlags" value="-Wl,--relax" toolchain="avrgcc"/> - </module> - </select-by-device> - - <module type="build-specific" id="common.utils.toolchain_config#uc3" caption="Toolchain configuration defaults for 32-bit AVR"> - <info type="gui-flag" value="hidden"/> - <device-support value="uc3"/> - - <toolchain-config name="avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned" value="True" toolchain="avr32gcc"/> - <toolchain-config name="avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned" value="True" toolchain="avr32gcc"/> - <toolchain-config name="avr32gcc.compiler.optimization.OtherFlags" value="-fdata-sections" toolchain="avr32gcc"/> - <toolchain-config name="avr32gcc.compiler.optimization.PrepareFunctionsForGarbageCollection" value="True" toolchain="avr32gcc"/> - <toolchain-config name="avr32gcc.compiler.warnings.AllWarnings" value="True" toolchain="avr32gcc"/> - <toolchain-config name="avr32gcc.compiler.miscellaneous.OtherFlags" value="-mrelax -std=gnu99 -fno-strict-aliasing -mno-cond-exec-before-reload" toolchain="avr32gcc"/> - <toolchain-config name="avr32gcc.linker.optimization.GarbageCollectUnusedSections" value="True" toolchain="avr32gcc"/> - <toolchain-config name="avr32gcc.linker.optimization.RelaxBranches" value="True" toolchain="avr32gcc"/> - <toolchain-config name="avr32gcc.linker.miscellaneous.LinkerFlags" value="-Wl,--relax" toolchain="avr32gcc"/> - </module> - </asf> -</lufa> +<!-- + LUFA Library + Copyright (C) Dean Camera, 2017. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +--> + +<!-- Atmel Studio framework integration file --> + +<lufa> + <asf> + <select-by-device id="common.utils.toolchain_config" caption="Toolchain configuration defaults"> + <module type="build-specific" id="common.utils.toolchain_config#avr" caption="Toolchain configuration defaults for 8-bit AVR"> + <info type="gui-flag" value="hidden"/> + <device-support value="avr"/> + + <toolchain-config name="avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned" value="True" toolchain="avrgcc"/> + <toolchain-config name="avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned" value="True" toolchain="avrgcc"/> + <toolchain-config name="avrgcc.compiler.optimization.OtherFlags" value="-fdata-sections" toolchain="avrgcc"/> + <toolchain-config name="avrgcc.compiler.optimization.PrepareFunctionsForGarbageCollection" value="True" toolchain="avrgcc"/> + <toolchain-config name="avrgcc.compiler.warnings.AllWarnings" value="True" toolchain="avrgcc"/> + <toolchain-config name="avrgcc.compiler.miscellaneous.OtherFlags" value="-mrelax -std=gnu99 -fno-strict-aliasing -fno-jump-tables" toolchain="avrgcc"/> + <toolchain-config name="avrgcc.linker.optimization.GarbageCollectUnusedSections" value="True" toolchain="avrgcc"/> + <toolchain-config name="avrgcc.linker.optimization.RelaxBranches" value="True" toolchain="avrgcc"/> + <toolchain-config name="avrgcc.linker.miscellaneous.LinkerFlags" value="-Wl,--relax" toolchain="avrgcc"/> + </module> + </select-by-device> + + <module type="build-specific" id="common.utils.toolchain_config#uc3" caption="Toolchain configuration defaults for 32-bit AVR"> + <info type="gui-flag" value="hidden"/> + <device-support value="uc3"/> + + <toolchain-config name="avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned" value="True" toolchain="avr32gcc"/> + <toolchain-config name="avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned" value="True" toolchain="avr32gcc"/> + <toolchain-config name="avr32gcc.compiler.optimization.OtherFlags" value="-fdata-sections" toolchain="avr32gcc"/> + <toolchain-config name="avr32gcc.compiler.optimization.PrepareFunctionsForGarbageCollection" value="True" toolchain="avr32gcc"/> + <toolchain-config name="avr32gcc.compiler.warnings.AllWarnings" value="True" toolchain="avr32gcc"/> + <toolchain-config name="avr32gcc.compiler.miscellaneous.OtherFlags" value="-mrelax -std=gnu99 -fno-strict-aliasing -mno-cond-exec-before-reload" toolchain="avr32gcc"/> + <toolchain-config name="avr32gcc.linker.optimization.GarbageCollectUnusedSections" value="True" toolchain="avr32gcc"/> + <toolchain-config name="avr32gcc.linker.optimization.RelaxBranches" value="True" toolchain="avr32gcc"/> + <toolchain-config name="avr32gcc.linker.miscellaneous.LinkerFlags" value="-Wl,--relax" toolchain="avr32gcc"/> + </module> + </asf> +</lufa> diff --git a/Projects/AVRISP-MKII/asf.xml b/Projects/AVRISP-MKII/asf.xml index 11467236b..d774b8c6b 100644 --- a/Projects/AVRISP-MKII/asf.xml +++ b/Projects/AVRISP-MKII/asf.xml @@ -1,91 +1,91 @@ -<asf xmlversion="1.0"> - <project caption="AVRISP-MKII Clone Programmer" id="lufa.projects.avrispmkii_clone.avr8"> - <require idref="lufa.projects.avrispmkii_clone"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="usbkey"/> - - <build type="define" name="F_CPU" value="8000000UL"/> - <build type="define" name="F_USB" value="8000000UL"/> - </project> - - <!-- Required by the XPLAIN Bridge project as well, so split into a meta module --> - <module type="meta" id="lufa.projects.avrispmkii_clone.src" caption="AVRISP-MKII Clone Programmer"> - <info type="gui-flag" value="hidden"/> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <info type="gui-flag" value="move-to-root"/> - - <build type="include-path" value="."/> - - <build type="c-source" value="AVRISPDescriptors.c"/> - <build type="header-file" value="AVRISPDescriptors.h"/> - - <build type="include-path" value="Lib"/> - - <build type="header-file" value="Lib/V2ProtocolConstants.h"/> - <build type="c-source" value="Lib/V2Protocol.c"/> - <build type="header-file" value="Lib/V2Protocol.h"/> - <build type="c-source" value="Lib/V2ProtocolParams.c"/> - <build type="header-file" value="Lib/V2ProtocolParams.h"/> - <build type="c-source" value="Lib/ISP/ISPProtocol.c"/> - <build type="header-file" value="Lib/ISP/ISPProtocol.h"/> - <build type="c-source" value="Lib/ISP/ISPTarget.c"/> - <build type="header-file" value="Lib/ISP/ISPTarget.h"/> - <build type="c-source" value="Lib/XPROG/XPROGTarget.c"/> - <build type="header-file" value="Lib/XPROG/XPROGTarget.h"/> - <build type="c-source" value="Lib/XPROG/XPROGProtocol.c"/> - <build type="header-file" value="Lib/XPROG/XPROGProtocol.h"/> - <build type="c-source" value="Lib/XPROG/XMEGANVM.c"/> - <build type="header-file" value="Lib/XPROG/XMEGANVM.h"/> - <build type="c-source" value="Lib/XPROG/TINYNVM.c"/> - <build type="header-file" value="Lib/XPROG/TINYNVM.h"/> - - <require idref="lufa.drivers.peripheral.adc"/> - <require idref="lufa.drivers.peripheral.spi"/> - </module> - - <module type="application" id="lufa.projects.avrispmkii_clone" caption="AVRISP-MKII Clone Programmer"> - <info type="description" value="summary"> - Clone firmware of the Atmel AVRISP-MKII programmer. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Low Level APIs"/> - <keyword value="USB Device"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="AVRISP-MKII.txt"/> - <build type="distribute" subtype="directory" value="WindowsDriver"/> - - <build type="c-source" value="AVRISP-MKII.c"/> - <build type="header-file" value="AVRISP-MKII.h"/> - - <require idref="lufa.projects.avrispmkii_clone.src"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> - <build type="header-file" value="Config/AppConfig.h"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.adc"/> - <require idref="lufa.drivers.peripheral.spi"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="AVRISP-MKII Clone Programmer" id="lufa.projects.avrispmkii_clone.avr8"> + <require idref="lufa.projects.avrispmkii_clone"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="usbkey"/> + + <build type="define" name="F_CPU" value="8000000UL"/> + <build type="define" name="F_USB" value="8000000UL"/> + </project> + + <!-- Required by the XPLAIN Bridge project as well, so split into a meta module --> + <module type="meta" id="lufa.projects.avrispmkii_clone.src" caption="AVRISP-MKII Clone Programmer"> + <info type="gui-flag" value="hidden"/> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <info type="gui-flag" value="move-to-root"/> + + <build type="include-path" value="."/> + + <build type="c-source" value="AVRISPDescriptors.c"/> + <build type="header-file" value="AVRISPDescriptors.h"/> + + <build type="include-path" value="Lib"/> + + <build type="header-file" value="Lib/V2ProtocolConstants.h"/> + <build type="c-source" value="Lib/V2Protocol.c"/> + <build type="header-file" value="Lib/V2Protocol.h"/> + <build type="c-source" value="Lib/V2ProtocolParams.c"/> + <build type="header-file" value="Lib/V2ProtocolParams.h"/> + <build type="c-source" value="Lib/ISP/ISPProtocol.c"/> + <build type="header-file" value="Lib/ISP/ISPProtocol.h"/> + <build type="c-source" value="Lib/ISP/ISPTarget.c"/> + <build type="header-file" value="Lib/ISP/ISPTarget.h"/> + <build type="c-source" value="Lib/XPROG/XPROGTarget.c"/> + <build type="header-file" value="Lib/XPROG/XPROGTarget.h"/> + <build type="c-source" value="Lib/XPROG/XPROGProtocol.c"/> + <build type="header-file" value="Lib/XPROG/XPROGProtocol.h"/> + <build type="c-source" value="Lib/XPROG/XMEGANVM.c"/> + <build type="header-file" value="Lib/XPROG/XMEGANVM.h"/> + <build type="c-source" value="Lib/XPROG/TINYNVM.c"/> + <build type="header-file" value="Lib/XPROG/TINYNVM.h"/> + + <require idref="lufa.drivers.peripheral.adc"/> + <require idref="lufa.drivers.peripheral.spi"/> + </module> + + <module type="application" id="lufa.projects.avrispmkii_clone" caption="AVRISP-MKII Clone Programmer"> + <info type="description" value="summary"> + Clone firmware of the Atmel AVRISP-MKII programmer. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Low Level APIs"/> + <keyword value="USB Device"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="AVRISP-MKII.txt"/> + <build type="distribute" subtype="directory" value="WindowsDriver"/> + + <build type="c-source" value="AVRISP-MKII.c"/> + <build type="header-file" value="AVRISP-MKII.h"/> + + <require idref="lufa.projects.avrispmkii_clone.src"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> + <build type="header-file" value="Config/AppConfig.h"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.peripheral.adc"/> + <require idref="lufa.drivers.peripheral.spi"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Projects/Benito/asf.xml b/Projects/Benito/asf.xml index 6f36da767..e138b0ccd 100644 --- a/Projects/Benito/asf.xml +++ b/Projects/Benito/asf.xml @@ -1,53 +1,53 @@ -<asf xmlversion="1.0"> - <project caption="Benito Programmer" id="lufa.projects.benito.avr8"> - <require idref="lufa.projects.benito"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="usbkey"/> - - <build type="define" name="F_CPU" value="8000000UL"/> - <build type="define" name="F_USB" value="8000000UL"/> - </project> - - <module type="application" id="lufa.projects.benito" caption="Benito Programmer"> - <info type="description" value="summary"> - Benito AVR programmer. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Device"/> - <keyword value="CDC Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="Benito.txt"/> - <build type="distribute" subtype="user-file" value="LUFA Benito Programmer.inf"/> - - <build type="c-source" value="Benito.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="Benito.h"/> - <build type="header-file" value="Descriptors.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> - <build type="header-file" value="Config/AppConfig.h"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.misc.ringbuffer"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Benito Programmer" id="lufa.projects.benito.avr8"> + <require idref="lufa.projects.benito"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="usbkey"/> + + <build type="define" name="F_CPU" value="8000000UL"/> + <build type="define" name="F_USB" value="8000000UL"/> + </project> + + <module type="application" id="lufa.projects.benito" caption="Benito Programmer"> + <info type="description" value="summary"> + Benito AVR programmer. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Device"/> + <keyword value="CDC Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="Benito.txt"/> + <build type="distribute" subtype="user-file" value="LUFA Benito Programmer.inf"/> + + <build type="c-source" value="Benito.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="Benito.h"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> + <build type="header-file" value="Config/AppConfig.h"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.peripheral.usart"/> + <require idref="lufa.drivers.misc.ringbuffer"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Projects/HIDReportViewer/asf.xml b/Projects/HIDReportViewer/asf.xml index 7819aabf8..eb5d4bbe8 100644 --- a/Projects/HIDReportViewer/asf.xml +++ b/Projects/HIDReportViewer/asf.xml @@ -1,48 +1,48 @@ -<asf xmlversion="1.0"> - <project caption="HID Report Viewer" id="lufa.projects.hid_viewer.avr8"> - <require idref="lufa.projects.hid_viewer"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="usbkey"/> - - <build type="define" name="F_CPU" value="8000000UL"/> - <build type="define" name="F_USB" value="8000000UL"/> - </project> - - <module type="application" id="lufa.projects.hid_viewer" caption="HID Report Viewer"> - <info type="description" value="summary"> - HID device report viewer project. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Host"/> - <keyword value="HID Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="HIDReportViewer.txt"/> - - <build type="c-source" value="HIDReportViewer.c"/> - <build type="header-file" value="HIDReportViewer.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.misc.ansi"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="HID Report Viewer" id="lufa.projects.hid_viewer.avr8"> + <require idref="lufa.projects.hid_viewer"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="usbkey"/> + + <build type="define" name="F_CPU" value="8000000UL"/> + <build type="define" name="F_USB" value="8000000UL"/> + </project> + + <module type="application" id="lufa.projects.hid_viewer" caption="HID Report Viewer"> + <info type="description" value="summary"> + HID device report viewer project. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Host"/> + <keyword value="HID Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="HIDReportViewer.txt"/> + + <build type="c-source" value="HIDReportViewer.c"/> + <build type="header-file" value="HIDReportViewer.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.peripheral.usart"/> + <require idref="lufa.drivers.misc.ansi"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Projects/LEDNotifier/asf.xml b/Projects/LEDNotifier/asf.xml index 01f346838..c3f42899a 100644 --- a/Projects/LEDNotifier/asf.xml +++ b/Projects/LEDNotifier/asf.xml @@ -1,51 +1,51 @@ -<asf xmlversion="1.0"> - <project caption="LED Notifier Widget" id="lufa.projects.led_notifier.avr8"> - <require idref="lufa.projects.led_notifier"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="usbkey"/> - - <build type="define" name="F_CPU" value="8000000UL"/> - <build type="define" name="F_USB" value="8000000UL"/> - </project> - - <module type="application" id="lufa.projects.led_notifier" caption="LED Notifier Widget"> - <info type="description" value="summary"> - RGB LED notification widget project. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Device"/> - <keyword value="CDC Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="LEDNotifier.txt"/> - <build type="distribute" subtype="user-file" value="LUFA LED Notifier.inf"/> - <build type="distribute" subtype="directory" value="CPUUsageApp"/> - <build type="distribute" subtype="directory" value="LEDMixerApp"/> - - <build type="c-source" value="LEDNotifier.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="LEDNotifier.h"/> - <build type="header-file" value="Descriptors.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="LED Notifier Widget" id="lufa.projects.led_notifier.avr8"> + <require idref="lufa.projects.led_notifier"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="usbkey"/> + + <build type="define" name="F_CPU" value="8000000UL"/> + <build type="define" name="F_USB" value="8000000UL"/> + </project> + + <module type="application" id="lufa.projects.led_notifier" caption="LED Notifier Widget"> + <info type="description" value="summary"> + RGB LED notification widget project. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Device"/> + <keyword value="CDC Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="LEDNotifier.txt"/> + <build type="distribute" subtype="user-file" value="LUFA LED Notifier.inf"/> + <build type="distribute" subtype="directory" value="CPUUsageApp"/> + <build type="distribute" subtype="directory" value="LEDMixerApp"/> + + <build type="c-source" value="LEDNotifier.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="LEDNotifier.h"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Projects/MIDIToneGenerator/asf.xml b/Projects/MIDIToneGenerator/asf.xml index 6795c1bb8..258393ac5 100644 --- a/Projects/MIDIToneGenerator/asf.xml +++ b/Projects/MIDIToneGenerator/asf.xml @@ -1,50 +1,50 @@ -<asf xmlversion="1.0"> - <project caption="MIDI Tone Generator" id="lufa.projects.midi_tone_gen.avr8"> - <require idref="lufa.projects.midi_tone_gen"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="usbkey"/> - - <build type="define" name="F_CPU" value="8000000UL"/> - <build type="define" name="F_USB" value="8000000UL"/> - </project> - - <module type="application" id="lufa.projects.midi_tone_gen" caption="MIDI Tone Generator"> - <info type="description" value="summary"> - MIDI tone generator project. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Device"/> - <keyword value="MIDI Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="MIDIToneGenerator.txt"/> - - <build type="c-source" value="MIDIToneGenerator.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="MIDIToneGenerator.h"/> - <build type="header-file" value="Descriptors.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> - <build type="header-file" value="Config/AppConfig.h"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="MIDI Tone Generator" id="lufa.projects.midi_tone_gen.avr8"> + <require idref="lufa.projects.midi_tone_gen"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="usbkey"/> + + <build type="define" name="F_CPU" value="8000000UL"/> + <build type="define" name="F_USB" value="8000000UL"/> + </project> + + <module type="application" id="lufa.projects.midi_tone_gen" caption="MIDI Tone Generator"> + <info type="description" value="summary"> + MIDI tone generator project. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Device"/> + <keyword value="MIDI Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="MIDIToneGenerator.txt"/> + + <build type="c-source" value="MIDIToneGenerator.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="MIDIToneGenerator.h"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> + <build type="header-file" value="Config/AppConfig.h"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Projects/Magstripe/asf.xml b/Projects/Magstripe/asf.xml index 9fc5311e2..068eaa6fc 100644 --- a/Projects/Magstripe/asf.xml +++ b/Projects/Magstripe/asf.xml @@ -1,52 +1,52 @@ -<asf xmlversion="1.0"> - <project caption="Magnetic Strip Card Reader" id="lufa.projects.magstripe.avr8"> - <require idref="lufa.projects.magstripe"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="usbkey"/> - - <build type="define" name="F_CPU" value="8000000UL"/> - <build type="define" name="F_USB" value="8000000UL"/> - </project> - - <module type="application" id="lufa.projects.magstripe" caption="Magnetic Strip Card Reader"> - <info type="description" value="summary"> - Magnetic strip card reader project. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Device"/> - <keyword value="HID Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="Magstripe.txt"/> - - <build type="c-source" value="Magstripe.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="Magstripe.h"/> - <build type="header-file" value="Descriptors.h"/> - - <build type="c-source" value="Lib/CircularBitBuffer.c"/> - <build type="header-file" value="Lib/CircularBitBuffer.h"/> - <build type="header-file" value="Lib/MagstripeHW.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> - <build type="header-file" value="Config/AppConfig.h"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Magnetic Strip Card Reader" id="lufa.projects.magstripe.avr8"> + <require idref="lufa.projects.magstripe"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="usbkey"/> + + <build type="define" name="F_CPU" value="8000000UL"/> + <build type="define" name="F_USB" value="8000000UL"/> + </project> + + <module type="application" id="lufa.projects.magstripe" caption="Magnetic Strip Card Reader"> + <info type="description" value="summary"> + Magnetic strip card reader project. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Device"/> + <keyword value="HID Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="Magstripe.txt"/> + + <build type="c-source" value="Magstripe.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="Magstripe.h"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="c-source" value="Lib/CircularBitBuffer.c"/> + <build type="header-file" value="Lib/CircularBitBuffer.h"/> + <build type="header-file" value="Lib/MagstripeHW.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> + <build type="header-file" value="Config/AppConfig.h"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + </module> +</asf> diff --git a/Projects/MediaController/asf.xml b/Projects/MediaController/asf.xml index 2d476da51..8a9fa2af9 100644 --- a/Projects/MediaController/asf.xml +++ b/Projects/MediaController/asf.xml @@ -1,50 +1,50 @@ -<asf xmlversion="1.0"> - <project caption="Media Controller" id="lufa.projects.media_control.avr8"> - <require idref="lufa.projects.media_control"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="usbkey"/> - - <build type="define" name="F_CPU" value="8000000UL"/> - <build type="define" name="F_USB" value="8000000UL"/> - </project> - - <module type="application" id="lufa.projects.media_control" caption="Media Controller"> - <info type="description" value="summary"> - Magnetic strip card reader project. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Device"/> - <keyword value="HID Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="MediaController.txt"/> - - <build type="c-source" value="MediaController.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="MediaController.h"/> - <build type="header-file" value="Descriptors.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.joystick"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Media Controller" id="lufa.projects.media_control.avr8"> + <require idref="lufa.projects.media_control"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="usbkey"/> + + <build type="define" name="F_CPU" value="8000000UL"/> + <build type="define" name="F_USB" value="8000000UL"/> + </project> + + <module type="application" id="lufa.projects.media_control" caption="Media Controller"> + <info type="description" value="summary"> + Magnetic strip card reader project. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Device"/> + <keyword value="HID Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="MediaController.txt"/> + + <build type="c-source" value="MediaController.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="MediaController.h"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.joystick"/> + </module> +</asf> diff --git a/Projects/MissileLauncher/asf.xml b/Projects/MissileLauncher/asf.xml index 1b8ac1bd5..6e359ccb0 100644 --- a/Projects/MissileLauncher/asf.xml +++ b/Projects/MissileLauncher/asf.xml @@ -1,49 +1,49 @@ -<asf xmlversion="1.0"> - <project caption="Missile Launcher" id="lufa.projects.missile_launcher.avr8"> - <require idref="lufa.projects.missile_launcher"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="usbkey"/> - - <build type="define" name="F_CPU" value="8000000UL"/> - <build type="define" name="F_USB" value="8000000UL"/> - </project> - - <module type="application" id="lufa.projects.missile_launcher" caption="Missile Launcher"> - <info type="description" value="summary"> - Missile launcher project. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Low Level APIs"/> - <keyword value="USB Host"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="MissileLauncher.txt"/> - - <build type="c-source" value="MissileLauncher.c"/> - <build type="c-source" value="ConfigDescriptor.c"/> - <build type="header-file" value="MissileLauncher.h"/> - <build type="header-file" value="ConfigDescriptor.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.buttons"/> - <require idref="lufa.drivers.board.joystick"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Missile Launcher" id="lufa.projects.missile_launcher.avr8"> + <require idref="lufa.projects.missile_launcher"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="usbkey"/> + + <build type="define" name="F_CPU" value="8000000UL"/> + <build type="define" name="F_USB" value="8000000UL"/> + </project> + + <module type="application" id="lufa.projects.missile_launcher" caption="Missile Launcher"> + <info type="description" value="summary"> + Missile launcher project. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Low Level APIs"/> + <keyword value="USB Host"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="MissileLauncher.txt"/> + + <build type="c-source" value="MissileLauncher.c"/> + <build type="c-source" value="ConfigDescriptor.c"/> + <build type="header-file" value="MissileLauncher.h"/> + <build type="header-file" value="ConfigDescriptor.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.buttons"/> + <require idref="lufa.drivers.board.joystick"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Projects/RelayBoard/asf.xml b/Projects/RelayBoard/asf.xml index e3a2ef4b2..ca71c2144 100644 --- a/Projects/RelayBoard/asf.xml +++ b/Projects/RelayBoard/asf.xml @@ -1,47 +1,47 @@ -<asf xmlversion="1.0"> - <project caption="Relay Board Controller" id="lufa.projects.relay_board.avr8"> - <require idref="lufa.projects.relay_board"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="usbkey"/> - - <build type="define" name="F_CPU" value="8000000UL"/> - <build type="define" name="F_USB" value="8000000UL"/> - </project> - - <module type="application" id="lufa.projects.relay_board" caption="Relay Board Controller"> - <info type="description" value="summary"> - Relay Board Controller project. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Low Level APIs"/> - <keyword value="USB Device"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="RelayBoard.txt"/> - - <build type="c-source" value="RelayBoard.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="RelayBoard.h"/> - <build type="header-file" value="Descriptors.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Relay Board Controller" id="lufa.projects.relay_board.avr8"> + <require idref="lufa.projects.relay_board"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="usbkey"/> + + <build type="define" name="F_CPU" value="8000000UL"/> + <build type="define" name="F_USB" value="8000000UL"/> + </project> + + <module type="application" id="lufa.projects.relay_board" caption="Relay Board Controller"> + <info type="description" value="summary"> + Relay Board Controller project. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Low Level APIs"/> + <keyword value="USB Device"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="RelayBoard.txt"/> + + <build type="c-source" value="RelayBoard.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="RelayBoard.h"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + </module> +</asf> diff --git a/Projects/SerialToLCD/asf.xml b/Projects/SerialToLCD/asf.xml index f29872794..e0a41823e 100644 --- a/Projects/SerialToLCD/asf.xml +++ b/Projects/SerialToLCD/asf.xml @@ -1,51 +1,51 @@ -<asf xmlversion="1.0"> - <project caption="USB Serial to LCD Display" id="lufa.projects.serial_to_lcd.avr8"> - <require idref="lufa.projects.serial_to_lcd"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="usbkey"/> - - <build type="define" name="F_CPU" value="8000000UL"/> - <build type="define" name="F_USB" value="8000000UL"/> - </project> - - <module type="application" id="lufa.projects.serial_to_lcd" caption="USB Serial to LCD Display"> - <info type="description" value="summary"> - USB Serial to LCD Controller project. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Device"/> - <keyword value="CDC Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="SerialToLCD.txt"/> - <build type="distribute" subtype="user-file" value="LUFA SerialToLCD.inf"/> - - <build type="c-source" value="SerialToLCD.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="SerialToLCD.h"/> - <build type="header-file" value="Descriptors.h"/> - - <build type="c-source" value="Lib/HD44780.c"/> - <build type="header-file" value="Lib/HD44780.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.misc.ringbuffer"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="USB Serial to LCD Display" id="lufa.projects.serial_to_lcd.avr8"> + <require idref="lufa.projects.serial_to_lcd"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="usbkey"/> + + <build type="define" name="F_CPU" value="8000000UL"/> + <build type="define" name="F_USB" value="8000000UL"/> + </project> + + <module type="application" id="lufa.projects.serial_to_lcd" caption="USB Serial to LCD Display"> + <info type="description" value="summary"> + USB Serial to LCD Controller project. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Device"/> + <keyword value="CDC Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="SerialToLCD.txt"/> + <build type="distribute" subtype="user-file" value="LUFA SerialToLCD.inf"/> + + <build type="c-source" value="SerialToLCD.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="SerialToLCD.h"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="c-source" value="Lib/HD44780.c"/> + <build type="header-file" value="Lib/HD44780.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.misc.ringbuffer"/> + </module> +</asf> diff --git a/Projects/TempDataLogger/asf.xml b/Projects/TempDataLogger/asf.xml index bf7ee2c3f..ca08c55b4 100644 --- a/Projects/TempDataLogger/asf.xml +++ b/Projects/TempDataLogger/asf.xml @@ -1,72 +1,72 @@ -<asf xmlversion="1.0"> - <project caption="Temperature Datalogger" id="lufa.projects.temp_datalogger.avr8"> - <require idref="lufa.projects.temp_datalogger"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="usbkey"/> - - <build type="define" name="F_CPU" value="8000000UL"/> - <build type="define" name="F_USB" value="8000000UL"/> - </project> - - <module type="application" id="lufa.projects.temp_datalogger" caption="Temperature Datalogger"> - <info type="description" value="summary"> - Temperature Datalogger project. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Device"/> - <keyword value="HID Class"/> - <keyword value="Mass Storage Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="TemperatureDataLogger.txt"/> - <build type="distribute" subtype="directory" value="TempLogHostApp"/> - <build type="distribute" subtype="directory" value="TempLogHostApp_Python"/> - - <build type="c-source" value="TempDataLogger.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="TempDataLogger.h"/> - <build type="header-file" value="Descriptors.h"/> - - <build type="c-source" value="Lib/DataflashManager.c"/> - <build type="header-file" value="Lib/DataflashManager.h"/> - <build type="c-source" value="Lib/RTC.c"/> - <build type="header-file" value="Lib/RTC.h"/> - <build type="c-source" value="Lib/SCSI.c"/> - <build type="header-file" value="Lib/SCSI.h"/> - - <build type="include-path" value="Lib/FATFs/"/> - <build type="c-source" value="Lib/FATFs/ff.c"/> - <build type="header-file" value="Lib/FATFs/ff.h"/> - <build type="c-source" value="Lib/FATFs/diskio.c"/> - <build type="header-file" value="Lib/FATFs/diskio.h"/> - <build type="header-file" value="Lib/FATFs/ffconf.h"/> - <build type="header-file" value="Lib/FATFs/integer.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> - <build type="header-file" value="Config/AppConfig.h"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.temperature"/> - <require idref="lufa.drivers.board.dataflash"/> - <require idref="lufa.drivers.peripheral.adc"/> - <require idref="lufa.drivers.peripheral.twi"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="Temperature Datalogger" id="lufa.projects.temp_datalogger.avr8"> + <require idref="lufa.projects.temp_datalogger"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="usbkey"/> + + <build type="define" name="F_CPU" value="8000000UL"/> + <build type="define" name="F_USB" value="8000000UL"/> + </project> + + <module type="application" id="lufa.projects.temp_datalogger" caption="Temperature Datalogger"> + <info type="description" value="summary"> + Temperature Datalogger project. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Device"/> + <keyword value="HID Class"/> + <keyword value="Mass Storage Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="TemperatureDataLogger.txt"/> + <build type="distribute" subtype="directory" value="TempLogHostApp"/> + <build type="distribute" subtype="directory" value="TempLogHostApp_Python"/> + + <build type="c-source" value="TempDataLogger.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="TempDataLogger.h"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="c-source" value="Lib/DataflashManager.c"/> + <build type="header-file" value="Lib/DataflashManager.h"/> + <build type="c-source" value="Lib/RTC.c"/> + <build type="header-file" value="Lib/RTC.h"/> + <build type="c-source" value="Lib/SCSI.c"/> + <build type="header-file" value="Lib/SCSI.h"/> + + <build type="include-path" value="Lib/FATFs/"/> + <build type="c-source" value="Lib/FATFs/ff.c"/> + <build type="header-file" value="Lib/FATFs/ff.h"/> + <build type="c-source" value="Lib/FATFs/diskio.c"/> + <build type="header-file" value="Lib/FATFs/diskio.h"/> + <build type="header-file" value="Lib/FATFs/ffconf.h"/> + <build type="header-file" value="Lib/FATFs/integer.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> + <build type="header-file" value="Config/AppConfig.h"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.temperature"/> + <require idref="lufa.drivers.board.dataflash"/> + <require idref="lufa.drivers.peripheral.adc"/> + <require idref="lufa.drivers.peripheral.twi"/> + </module> +</asf> diff --git a/Projects/USBtoSerial/asf.xml b/Projects/USBtoSerial/asf.xml index 5afcafe7c..13f9ba8fb 100644 --- a/Projects/USBtoSerial/asf.xml +++ b/Projects/USBtoSerial/asf.xml @@ -1,51 +1,51 @@ -<asf xmlversion="1.0"> - <project caption="USB to Serial Converter" id="lufa.projects.usb_to_serial.avr8"> - <require idref="lufa.projects.usb_to_serial"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="usbkey"/> - - <build type="define" name="F_CPU" value="8000000UL"/> - <build type="define" name="F_USB" value="8000000UL"/> - </project> - - <module type="application" id="lufa.projects.usb_to_serial" caption="USB to Serial Converter"> - <info type="description" value="summary"> - USB to Serial USART converter project. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Device"/> - <keyword value="CDC Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="USBtoSerial.txt"/> - <build type="distribute" subtype="user-file" value="LUFA USBtoSerial.inf"/> - - <build type="c-source" value="USBtoSerial.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="USBtoSerial.h"/> - <build type="header-file" value="Descriptors.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.peripheral.usart"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.misc.ringbuffer"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="USB to Serial Converter" id="lufa.projects.usb_to_serial.avr8"> + <require idref="lufa.projects.usb_to_serial"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="usbkey"/> + + <build type="define" name="F_CPU" value="8000000UL"/> + <build type="define" name="F_USB" value="8000000UL"/> + </project> + + <module type="application" id="lufa.projects.usb_to_serial" caption="USB to Serial Converter"> + <info type="description" value="summary"> + USB to Serial USART converter project. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Device"/> + <keyword value="CDC Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="USBtoSerial.txt"/> + <build type="distribute" subtype="user-file" value="LUFA USBtoSerial.inf"/> + + <build type="c-source" value="USBtoSerial.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="USBtoSerial.h"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.peripheral.usart"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.misc.ringbuffer"/> + </module> +</asf> diff --git a/Projects/Webserver/asf.xml b/Projects/Webserver/asf.xml index ea6b4c66f..ca1733e85 100644 --- a/Projects/Webserver/asf.xml +++ b/Projects/Webserver/asf.xml @@ -1,96 +1,96 @@ -<asf xmlversion="1.0"> - <project caption="RNDIS Webserver" id="lufa.projects.webserver.avr8"> - <require idref="lufa.projects.webserver"/> - <require idref="lufa.boards.dummy.avr8"/> - <generator value="as5_8"/> - - <device-support value="at90usb1287"/> - <config name="lufa.drivers.board.name" value="usbkey"/> - - <build type="define" name="F_CPU" value="8000000UL"/> - <build type="define" name="F_USB" value="8000000UL"/> - </project> - - <module type="application" id="lufa.projects.webserver" caption="RNDIS Webserver"> - <info type="description" value="summary"> - RNDIS Webserver project, using the open source uIP network stack. - </info> - - <info type="gui-flag" value="move-to-root"/> - - <info type="keyword" value="Technology"> - <keyword value="Class Driver APIs"/> - <keyword value="USB Dual Role"/> - <keyword value="RNDIS Class"/> - <keyword value="Mass Storage Class"/> - </info> - - <device-support-alias value="lufa_avr8"/> - <device-support-alias value="lufa_xmega"/> - <device-support-alias value="lufa_uc3"/> - - <build type="distribute" subtype="user-file" value="doxyfile"/> - <build type="distribute" subtype="user-file" value="Webserver.txt"/> - <build type="distribute" subtype="user-file" value="LUFA Webserver RNDIS.inf"/> - - <build type="c-source" value="Webserver.c"/> - <build type="c-source" value="USBDeviceMode.c"/> - <build type="c-source" value="USBHostMode.c"/> - <build type="c-source" value="Descriptors.c"/> - <build type="header-file" value="Webserver.h"/> - <build type="header-file" value="USBDeviceMode.h"/> - <build type="header-file" value="USBHostMode.h"/> - <build type="header-file" value="Descriptors.h"/> - - <build type="c-source" value="Lib/DataflashManager.c"/> - <build type="header-file" value="Lib/DataflashManager.h"/> - <build type="c-source" value="Lib/DHCPClientApp.c"/> - <build type="header-file" value="Lib/DHCPClientApp.h"/> - <build type="c-source" value="Lib/DHCPCommon.c"/> - <build type="header-file" value="Lib/DHCPCommon.h"/> - <build type="c-source" value="Lib/DHCPServerApp.c"/> - <build type="header-file" value="Lib/DHCPServerApp.h"/> - <build type="c-source" value="Lib/HTTPServerApp.c"/> - <build type="header-file" value="Lib/HTTPServerApp.h"/> - <build type="c-source" value="Lib/SCSI.c"/> - <build type="header-file" value="Lib/SCSI.h"/> - <build type="c-source" value="Lib/TELNETServerApp.c"/> - <build type="header-file" value="Lib/TELNETServerApp.h"/> - <build type="c-source" value="Lib/uIPManagement.c"/> - <build type="header-file" value="Lib/uIPManagement.h"/> - - <build type="include-path" value="Lib/FATFs/"/> - <build type="c-source" value="Lib/FATFs/ff.c"/> - <build type="header-file" value="Lib/FATFs/ff.h"/> - <build type="c-source" value="Lib/FATFs/diskio.c"/> - <build type="header-file" value="Lib/FATFs/diskio.h"/> - <build type="header-file" value="Lib/FATFs/ffconf.h"/> - <build type="header-file" value="Lib/FATFs/integer.h"/> - - <build type="include-path" value="Lib/uip/"/> - <build type="c-source" value="Lib/uip/clock.c"/> - <build type="header-file" value="Lib/uip/clock.h"/> - <build type="c-source" value="Lib/uip/timer.c"/> - <build type="header-file" value="Lib/uip/timer.h"/> - <build type="c-source" value="Lib/uip/uip.c"/> - <build type="header-file" value="Lib/uip/uip.h"/> - <build type="c-source" value="Lib/uip/uip_arp.c"/> - <build type="header-file" value="Lib/uip/uip_arp.h"/> - <build type="c-source" value="Lib/uip/uip-split.c"/> - <build type="header-file" value="Lib/uip/uip-split.h"/> - <build type="header-file" value="Lib/uip/uipopt.h"/> - - <build type="module-config" subtype="path" value="Config"/> - <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> - <build type="header-file" value="Config/AppConfig.h"/> - <build type="header-file" value="Config/LUFAConfig.h"/> - - <require idref="lufa.common"/> - <require idref="lufa.platform"/> - <require idref="lufa.drivers.usb"/> - <require idref="lufa.drivers.board"/> - <require idref="lufa.drivers.board.leds"/> - <require idref="lufa.drivers.board.dataflash"/> - <require idref="lufa.drivers.peripheral.spi"/> - </module> -</asf> +<asf xmlversion="1.0"> + <project caption="RNDIS Webserver" id="lufa.projects.webserver.avr8"> + <require idref="lufa.projects.webserver"/> + <require idref="lufa.boards.dummy.avr8"/> + <generator value="as5_8"/> + + <device-support value="at90usb1287"/> + <config name="lufa.drivers.board.name" value="usbkey"/> + + <build type="define" name="F_CPU" value="8000000UL"/> + <build type="define" name="F_USB" value="8000000UL"/> + </project> + + <module type="application" id="lufa.projects.webserver" caption="RNDIS Webserver"> + <info type="description" value="summary"> + RNDIS Webserver project, using the open source uIP network stack. + </info> + + <info type="gui-flag" value="move-to-root"/> + + <info type="keyword" value="Technology"> + <keyword value="Class Driver APIs"/> + <keyword value="USB Dual Role"/> + <keyword value="RNDIS Class"/> + <keyword value="Mass Storage Class"/> + </info> + + <device-support-alias value="lufa_avr8"/> + <device-support-alias value="lufa_xmega"/> + <device-support-alias value="lufa_uc3"/> + + <build type="distribute" subtype="user-file" value="doxyfile"/> + <build type="distribute" subtype="user-file" value="Webserver.txt"/> + <build type="distribute" subtype="user-file" value="LUFA Webserver RNDIS.inf"/> + + <build type="c-source" value="Webserver.c"/> + <build type="c-source" value="USBDeviceMode.c"/> + <build type="c-source" value="USBHostMode.c"/> + <build type="c-source" value="Descriptors.c"/> + <build type="header-file" value="Webserver.h"/> + <build type="header-file" value="USBDeviceMode.h"/> + <build type="header-file" value="USBHostMode.h"/> + <build type="header-file" value="Descriptors.h"/> + + <build type="c-source" value="Lib/DataflashManager.c"/> + <build type="header-file" value="Lib/DataflashManager.h"/> + <build type="c-source" value="Lib/DHCPClientApp.c"/> + <build type="header-file" value="Lib/DHCPClientApp.h"/> + <build type="c-source" value="Lib/DHCPCommon.c"/> + <build type="header-file" value="Lib/DHCPCommon.h"/> + <build type="c-source" value="Lib/DHCPServerApp.c"/> + <build type="header-file" value="Lib/DHCPServerApp.h"/> + <build type="c-source" value="Lib/HTTPServerApp.c"/> + <build type="header-file" value="Lib/HTTPServerApp.h"/> + <build type="c-source" value="Lib/SCSI.c"/> + <build type="header-file" value="Lib/SCSI.h"/> + <build type="c-source" value="Lib/TELNETServerApp.c"/> + <build type="header-file" value="Lib/TELNETServerApp.h"/> + <build type="c-source" value="Lib/uIPManagement.c"/> + <build type="header-file" value="Lib/uIPManagement.h"/> + + <build type="include-path" value="Lib/FATFs/"/> + <build type="c-source" value="Lib/FATFs/ff.c"/> + <build type="header-file" value="Lib/FATFs/ff.h"/> + <build type="c-source" value="Lib/FATFs/diskio.c"/> + <build type="header-file" value="Lib/FATFs/diskio.h"/> + <build type="header-file" value="Lib/FATFs/ffconf.h"/> + <build type="header-file" value="Lib/FATFs/integer.h"/> + + <build type="include-path" value="Lib/uip/"/> + <build type="c-source" value="Lib/uip/clock.c"/> + <build type="header-file" value="Lib/uip/clock.h"/> + <build type="c-source" value="Lib/uip/timer.c"/> + <build type="header-file" value="Lib/uip/timer.h"/> + <build type="c-source" value="Lib/uip/uip.c"/> + <build type="header-file" value="Lib/uip/uip.h"/> + <build type="c-source" value="Lib/uip/uip_arp.c"/> + <build type="header-file" value="Lib/uip/uip_arp.h"/> + <build type="c-source" value="Lib/uip/uip-split.c"/> + <build type="header-file" value="Lib/uip/uip-split.h"/> + <build type="header-file" value="Lib/uip/uipopt.h"/> + + <build type="module-config" subtype="path" value="Config"/> + <build type="module-config" subtype="required-header-file" value="AppConfig.h"/> + <build type="header-file" value="Config/AppConfig.h"/> + <build type="header-file" value="Config/LUFAConfig.h"/> + + <require idref="lufa.common"/> + <require idref="lufa.platform"/> + <require idref="lufa.drivers.usb"/> + <require idref="lufa.drivers.board"/> + <require idref="lufa.drivers.board.leds"/> + <require idref="lufa.drivers.board.dataflash"/> + <require idref="lufa.drivers.peripheral.spi"/> + </module> +</asf> -- cgit v1.2.3 From 7ea8753b72ed7ddecdcb2db5b223ca920f8155b3 Mon Sep 17 00:00:00 2001 From: Fred Sundvik <fsundvik@gmail.com> Date: Mon, 10 Jul 2017 13:46:39 +0300 Subject: Don't run dfu-programmer unless specified as a target This introduces a grep dependency, which I believe we didn't have before, but it should be available and installed by default on all the supported systems. --- tmk_core/avr.mk | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/tmk_core/avr.mk b/tmk_core/avr.mk index ccecdb192..a36d219dd 100644 --- a/tmk_core/avr.mk +++ b/tmk_core/avr.mk @@ -115,11 +115,11 @@ dfu: $(BUILD_DIR)/$(TARGET).hex sizeafter echo "Error: Bootloader not found. Trying again in 5s." ;\ sleep 5 ;\ done -ifneq (, $(findstring 0.7, $(shell $(DFU_PROGRAMMER) --version 2>&1))) - $(DFU_PROGRAMMER) $(MCU) erase --force -else - $(DFU_PROGRAMMER) $(MCU) erase -endif + if $(DFU_PROGRAMMER) --version 2>&1 | grep -q 0.7 ; then\ + $(DFU_PROGRAMMER) $(MCU) erase --force;\ + else\ + $(DFU_PROGRAMMER) $(MCU) erase;\ + fi $(DFU_PROGRAMMER) $(MCU) flash $(BUILD_DIR)/$(TARGET).hex $(DFU_PROGRAMMER) $(MCU) reset @@ -135,11 +135,11 @@ flip-ee: $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).eep $(REMOVE) $(BUILD_DIR)/$(TARGET)eep.hex dfu-ee: $(BUILD_DIR)/$(TARGET).hex $(BUILD_DIR)/$(TARGET).eep -ifneq (, $(findstring 0.7, $(shell dfu-programmer --version 2>&1))) - $(DFU_PROGRAMMER) $(MCU) flash --eeprom $(BUILD_DIR)/$(TARGET).eep -else - $(DFU_PROGRAMMER) $(MCU) flash-eeprom $(BUILD_DIR)/$(TARGET).eep -endif + if $(DFU_PROGRAMMER) --version 2>&1 | grep -q 0.7 ; then\ + $(DFU_PROGRAMMER) $(MCU) flash --eeprom $(BUILD_DIR)/$(TARGET).eep;\ + else\ + $(DFU_PROGRAMMER) $(MCU) flash-eeprom $(BUILD_DIR)/$(TARGET).eep;\ + fi $(DFU_PROGRAMMER) $(MCU) reset # Convert hex to bin. -- cgit v1.2.3 From ba405cfbb4b887af8007edfeed4d9fc43766d911 Mon Sep 17 00:00:00 2001 From: Fred Sundvik <fsundvik@gmail.com> Date: Mon, 10 Jul 2017 13:50:07 +0300 Subject: Don't search for TEENSY_LOADER_CLI if it's already defined --- tmk_core/avr.mk | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/tmk_core/avr.mk b/tmk_core/avr.mk index a36d219dd..6773726ee 100644 --- a/tmk_core/avr.mk +++ b/tmk_core/avr.mk @@ -87,11 +87,13 @@ DEBUG_PORT = 4242 DEBUG_HOST = localhost #============================================================================ -# Autodecct teensy loader -ifneq (, $(shell which teensy-loader-cli 2>/dev/null)) - TEENSY_LOADER_CLI ?= teensy-loader-cli -else - TEENSY_LOADER_CLI ?= teensy_loader_cli +# Autodetect teensy loader +ifndef TEENSY_LOADER_CLI + ifneq (, $(shell which teensy-loader-cli 2>/dev/null)) + TEENSY_LOADER_CLI ?= teensy-loader-cli + else + TEENSY_LOADER_CLI ?= teensy_loader_cli + endif endif # Program the device. -- cgit v1.2.3 From 1ff5fb000f7d38f16710e753886d8bc9635d47e2 Mon Sep 17 00:00:00 2001 From: Fred Sundvik <fsundvik@gmail.com> Date: Mon, 10 Jul 2017 13:04:27 +0300 Subject: Fix Makefile error_occured output for unit tests --- Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Makefile b/Makefile index f789409b7..b429200fe 100644 --- a/Makefile +++ b/Makefile @@ -483,6 +483,8 @@ define RUN_TEST +error_occurred=0;\ $($(TEST)_COMMAND)\ if [ $$error_occurred -gt 0 ]; then $(HANDLE_ERROR); fi; + + endef # Allow specifying just the subproject, in the keyboard directory, which will compile all keymaps -- cgit v1.2.3 From aca0f4dcaed3af3ae2ed689e3ae556269c3f6691 Mon Sep 17 00:00:00 2001 From: Fred Sundvik <fsundvik@gmail.com> Date: Sun, 9 Jul 2017 13:20:03 +0300 Subject: Move GDISP drivers to /drivers/ugfx --- drivers/ugfx/gdisp/IS31FL3731C/driver.mk | 2 + drivers/ugfx/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c | 312 +++++++++++++++++++ drivers/ugfx/gdisp/IS31FL3731C/gdisp_lld_config.h | 36 +++ drivers/ugfx/gdisp/st7565ergodox/driver.mk | 2 + .../ugfx/gdisp/st7565ergodox/gdisp_lld_ST7565.c | 329 +++++++++++++++++++++ .../ugfx/gdisp/st7565ergodox/gdisp_lld_config.h | 27 ++ drivers/ugfx/gdisp/st7565ergodox/st7565.h | 39 +++ keyboards/ergodox/infinity/board_IS31FL3731C.h | 113 +++++++ keyboards/ergodox/infinity/board_ST7565.h | 113 +++++++ .../drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h | 113 ------- .../infinity/drivers/gdisp/IS31FL3731C/driver.mk | 2 - .../drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c | 312 ------------------- .../drivers/gdisp/IS31FL3731C/gdisp_lld_config.h | 36 --- .../drivers/gdisp/st7565ergodox/board_ST7565.h | 113 ------- .../infinity/drivers/gdisp/st7565ergodox/driver.mk | 2 - .../drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c | 329 --------------------- .../drivers/gdisp/st7565ergodox/gdisp_lld_config.h | 27 -- .../infinity/drivers/gdisp/st7565ergodox/st7565.h | 39 --- keyboards/ergodox/infinity/rules.mk | 4 +- keyboards/whitefox/board_IS31FL3731C.h | 109 +++++++ .../drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h | 109 ------- .../whitefox/drivers/gdisp/IS31FL3731C/driver.mk | 2 - .../drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c | 312 ------------------- .../drivers/gdisp/IS31FL3731C/gdisp_lld_config.h | 36 --- keyboards/whitefox/rules.mk | 2 +- 25 files changed, 1085 insertions(+), 1435 deletions(-) create mode 100644 drivers/ugfx/gdisp/IS31FL3731C/driver.mk create mode 100644 drivers/ugfx/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c create mode 100644 drivers/ugfx/gdisp/IS31FL3731C/gdisp_lld_config.h create mode 100644 drivers/ugfx/gdisp/st7565ergodox/driver.mk create mode 100644 drivers/ugfx/gdisp/st7565ergodox/gdisp_lld_ST7565.c create mode 100644 drivers/ugfx/gdisp/st7565ergodox/gdisp_lld_config.h create mode 100644 drivers/ugfx/gdisp/st7565ergodox/st7565.h create mode 100644 keyboards/ergodox/infinity/board_IS31FL3731C.h create mode 100644 keyboards/ergodox/infinity/board_ST7565.h delete mode 100644 keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h delete mode 100644 keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/driver.mk delete mode 100644 keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c delete mode 100644 keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h delete mode 100644 keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h delete mode 100644 keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/driver.mk delete mode 100644 keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c delete mode 100644 keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_config.h delete mode 100644 keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/st7565.h create mode 100644 keyboards/whitefox/board_IS31FL3731C.h delete mode 100644 keyboards/whitefox/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h delete mode 100644 keyboards/whitefox/drivers/gdisp/IS31FL3731C/driver.mk delete mode 100644 keyboards/whitefox/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c delete mode 100644 keyboards/whitefox/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h diff --git a/drivers/ugfx/gdisp/IS31FL3731C/driver.mk b/drivers/ugfx/gdisp/IS31FL3731C/driver.mk new file mode 100644 index 000000000..58a16d209 --- /dev/null +++ b/drivers/ugfx/gdisp/IS31FL3731C/driver.mk @@ -0,0 +1,2 @@ +GFXINC += drivers/ugfx/gdisp/IS31FL3731C +GFXSRC += drivers/ugfx/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c diff --git a/drivers/ugfx/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c b/drivers/ugfx/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c new file mode 100644 index 000000000..2d78a5533 --- /dev/null +++ b/drivers/ugfx/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c @@ -0,0 +1,312 @@ +/* +Copyright 2016 Fred Sundvik <fsundvik@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/>. +*/ + +#include "gfx.h" + +#if GFX_USE_GDISP + +#define GDISP_DRIVER_VMT GDISPVMT_IS31FL3731C_ERGODOX +#include "gdisp_lld_config.h" +#include "src/gdisp/gdisp_driver.h" + +#include "board_IS31FL3731C.h" + + +// Can't include led_tables from here +extern const uint8_t CIE1931_CURVE[]; + +/*===========================================================================*/ +/* Driver local definitions. */ +/*===========================================================================*/ + +#ifndef GDISP_SCREEN_HEIGHT + #define GDISP_SCREEN_HEIGHT 9 +#endif +#ifndef GDISP_SCREEN_WIDTH + #define GDISP_SCREEN_WIDTH 16 +#endif +#ifndef GDISP_INITIAL_CONTRAST + #define GDISP_INITIAL_CONTRAST 0 +#endif +#ifndef GDISP_INITIAL_BACKLIGHT + #define GDISP_INITIAL_BACKLIGHT 0 +#endif + +#define GDISP_FLG_NEEDFLUSH (GDISP_FLG_DRIVER<<0) + +#define IS31_ADDR_DEFAULT 0x74 + +#define IS31_REG_CONFIG 0x00 +// bits in reg +#define IS31_REG_CONFIG_PICTUREMODE 0x00 +#define IS31_REG_CONFIG_AUTOPLAYMODE 0x08 +#define IS31_REG_CONFIG_AUDIOPLAYMODE 0x18 +// D2:D0 bits are starting frame for autoplay mode + +#define IS31_REG_PICTDISP 0x01 // D2:D0 frame select for picture mode + +#define IS31_REG_AUTOPLAYCTRL1 0x02 +// D6:D4 number of loops (000=infty) +// D2:D0 number of frames to be used + +#define IS31_REG_AUTOPLAYCTRL2 0x03 // D5:D0 delay time (*11ms) + +#define IS31_REG_DISPLAYOPT 0x05 +#define IS31_REG_DISPLAYOPT_INTENSITY_SAME 0x20 // same intensity for all frames +#define IS31_REG_DISPLAYOPT_BLINK_ENABLE 0x8 +// D2:D0 bits blink period time (*0.27s) + +#define IS31_REG_AUDIOSYNC 0x06 +#define IS31_REG_AUDIOSYNC_ENABLE 0x1 + +#define IS31_REG_FRAMESTATE 0x07 + +#define IS31_REG_BREATHCTRL1 0x08 +// D6:D4 fade out time (26ms*2^i) +// D2:D0 fade in time (26ms*2^i) + +#define IS31_REG_BREATHCTRL2 0x09 +#define IS31_REG_BREATHCTRL2_ENABLE 0x10 +// D2:D0 extinguish time (3.5ms*2^i) + +#define IS31_REG_SHUTDOWN 0x0A +#define IS31_REG_SHUTDOWN_OFF 0x0 +#define IS31_REG_SHUTDOWN_ON 0x1 + +#define IS31_REG_AGCCTRL 0x0B +#define IS31_REG_ADCRATE 0x0C + +#define IS31_COMMANDREGISTER 0xFD +#define IS31_FUNCTIONREG 0x0B // helpfully called 'page nine' +#define IS31_FUNCTIONREG_SIZE 0xD + +#define IS31_FRAME_SIZE 0xB4 + +#define IS31_PWM_REG 0x24 +#define IS31_PWM_SIZE 0x90 + +#define IS31_LED_MASK_SIZE 0x12 +#define IS31_SCREEN_WIDTH 16 + +#define IS31 + +/*===========================================================================*/ +/* Driver local functions. */ +/*===========================================================================*/ + +typedef struct{ + uint8_t write_buffer_offset; + uint8_t write_buffer[IS31_FRAME_SIZE]; + uint8_t frame_buffer[GDISP_SCREEN_HEIGHT * GDISP_SCREEN_WIDTH]; + uint8_t page; +}__attribute__((__packed__)) PrivData; + +// Some common routines and macros +#define PRIV(g) ((PrivData*)g->priv) + +/*===========================================================================*/ +/* Driver exported functions. */ +/*===========================================================================*/ + +static GFXINLINE void write_page(GDisplay* g, uint8_t page) { + uint8_t tx[2] __attribute__((aligned(2))); + tx[0] = IS31_COMMANDREGISTER; + tx[1] = page; + write_data(g, tx, 2); +} + +static GFXINLINE void write_register(GDisplay* g, uint8_t page, uint8_t reg, uint8_t data) { + uint8_t tx[2] __attribute__((aligned(2))); + tx[0] = reg; + tx[1] = data; + write_page(g, page); + write_data(g, tx, 2); +} + +static GFXINLINE void write_ram(GDisplay *g, uint8_t page, uint16_t offset, uint16_t length) { + PRIV(g)->write_buffer_offset = offset; + write_page(g, page); + write_data(g, (uint8_t*)PRIV(g), length + 1); +} + +LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { + // The private area is the display surface. + g->priv = gfxAlloc(sizeof(PrivData)); + __builtin_memset(PRIV(g), 0, sizeof(PrivData)); + PRIV(g)->page = 0; + + // Initialise the board interface + init_board(g); + gfxSleepMilliseconds(10); + + // zero function page, all registers (assuming full_page is all zeroes) + write_ram(g, IS31_FUNCTIONREG, 0, IS31_FUNCTIONREG_SIZE); + set_hardware_shutdown(g, false); + gfxSleepMilliseconds(10); + // software shutdown + write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); + gfxSleepMilliseconds(10); + // zero function page, all registers + write_ram(g, IS31_FUNCTIONREG, 0, IS31_FUNCTIONREG_SIZE); + gfxSleepMilliseconds(10); + + + // zero all LED registers on all 8 pages, and enable the mask + __builtin_memcpy(PRIV(g)->write_buffer, get_led_mask(g), IS31_LED_MASK_SIZE); + for(uint8_t i=0; i<8; i++) { + write_ram(g, i, 0, IS31_FRAME_SIZE); + gfxSleepMilliseconds(1); + } + + // software shutdown disable (i.e. turn stuff on) + write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); + gfxSleepMilliseconds(10); + + // Finish Init + post_init_board(g); + + /* Initialise the GDISP structure */ + g->g.Width = GDISP_SCREEN_WIDTH; + g->g.Height = GDISP_SCREEN_HEIGHT; + g->g.Orientation = GDISP_ROTATE_0; + g->g.Powermode = powerOff; + g->g.Backlight = GDISP_INITIAL_BACKLIGHT; + g->g.Contrast = GDISP_INITIAL_CONTRAST; + return TRUE; +} + +#if GDISP_HARDWARE_FLUSH + LLDSPEC void gdisp_lld_flush(GDisplay *g) { + // Don't flush if we don't need it. + if (!(g->flags & GDISP_FLG_NEEDFLUSH)) + return; + + PRIV(g)->page++; + PRIV(g)->page %= 2; + // TODO: some smarter algorithm for this + // We should run only one physical page at a time + // This way we don't need to send so much data, and + // we could use slightly less memory + uint8_t* src = PRIV(g)->frame_buffer; + for (int y=0;y<GDISP_SCREEN_HEIGHT;y++) { + for (int x=0;x<GDISP_SCREEN_WIDTH;x++) { + uint8_t val = (uint16_t)*src * g->g.Backlight / 100; + PRIV(g)->write_buffer[get_led_address(g, x, y)]=CIE1931_CURVE[val]; + ++src; + } + } + write_ram(g, PRIV(g)->page, IS31_PWM_REG, IS31_PWM_SIZE); + gfxSleepMilliseconds(1); + write_register(g, IS31_FUNCTIONREG, IS31_REG_PICTDISP, PRIV(g)->page); + + g->flags &= ~GDISP_FLG_NEEDFLUSH; + } +#endif + +#if GDISP_HARDWARE_DRAWPIXEL + LLDSPEC void gdisp_lld_draw_pixel(GDisplay *g) { + coord_t x, y; + + switch(g->g.Orientation) { + default: + case GDISP_ROTATE_0: + x = g->p.x; + y = g->p.y; + break; + case GDISP_ROTATE_180: + x = GDISP_SCREEN_WIDTH-1 - g->p.x; + y = g->p.y; + break; + } + PRIV(g)->frame_buffer[y * GDISP_SCREEN_WIDTH + x] = gdispColor2Native(g->p.color); + g->flags |= GDISP_FLG_NEEDFLUSH; + } +#endif + +#if GDISP_HARDWARE_PIXELREAD + LLDSPEC color_t gdisp_lld_get_pixel_color(GDisplay *g) { + coord_t x, y; + + switch(g->g.Orientation) { + default: + case GDISP_ROTATE_0: + x = g->p.x; + y = g->p.y; + break; + case GDISP_ROTATE_180: + x = GDISP_SCREEN_WIDTH-1 - g->p.x; + y = g->p.y; + break; + } + return gdispNative2Color(PRIV(g)->frame_buffer[y * GDISP_SCREEN_WIDTH + x]); + } +#endif + +#if GDISP_NEED_CONTROL && GDISP_HARDWARE_CONTROL + LLDSPEC void gdisp_lld_control(GDisplay *g) { + switch(g->p.x) { + case GDISP_CONTROL_POWER: + if (g->g.Powermode == (powermode_t)g->p.ptr) + return; + switch((powermode_t)g->p.ptr) { + case powerOff: + case powerSleep: + case powerDeepSleep: + write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); + break; + case powerOn: + write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON); + break; + default: + return; + } + g->g.Powermode = (powermode_t)g->p.ptr; + return; + + case GDISP_CONTROL_ORIENTATION: + if (g->g.Orientation == (orientation_t)g->p.ptr) + return; + switch((orientation_t)g->p.ptr) { + /* Rotation is handled by the drawing routines */ + case GDISP_ROTATE_0: + case GDISP_ROTATE_180: + g->g.Height = GDISP_SCREEN_HEIGHT; + g->g.Width = GDISP_SCREEN_WIDTH; + break; + case GDISP_ROTATE_90: + case GDISP_ROTATE_270: + g->g.Height = GDISP_SCREEN_WIDTH; + g->g.Width = GDISP_SCREEN_HEIGHT; + break; + default: + return; + } + g->g.Orientation = (orientation_t)g->p.ptr; + return; + + case GDISP_CONTROL_BACKLIGHT: + if (g->g.Backlight == (unsigned)g->p.ptr) + return; + unsigned val = (unsigned)g->p.ptr; + g->g.Backlight = val > 100 ? 100 : val; + g->flags |= GDISP_FLG_NEEDFLUSH; + return; + } + } +#endif // GDISP_NEED_CONTROL + +#endif // GFX_USE_GDISP diff --git a/drivers/ugfx/gdisp/IS31FL3731C/gdisp_lld_config.h b/drivers/ugfx/gdisp/IS31FL3731C/gdisp_lld_config.h new file mode 100644 index 000000000..bb28ad775 --- /dev/null +++ b/drivers/ugfx/gdisp/IS31FL3731C/gdisp_lld_config.h @@ -0,0 +1,36 @@ +/* +Copyright 2016 Fred Sundvik <fsundvik@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/>. +*/ + +#ifndef _GDISP_LLD_CONFIG_H +#define _GDISP_LLD_CONFIG_H + +#if GFX_USE_GDISP + +/*===========================================================================*/ +/* Driver hardware support. */ +/*===========================================================================*/ + +#define GDISP_HARDWARE_FLUSH TRUE // This controller requires flushing +#define GDISP_HARDWARE_DRAWPIXEL TRUE +#define GDISP_HARDWARE_PIXELREAD TRUE +#define GDISP_HARDWARE_CONTROL TRUE + +#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_GRAY256 + +#endif /* GFX_USE_GDISP */ + +#endif /* _GDISP_LLD_CONFIG_H */ diff --git a/drivers/ugfx/gdisp/st7565ergodox/driver.mk b/drivers/ugfx/gdisp/st7565ergodox/driver.mk new file mode 100644 index 000000000..401e15e69 --- /dev/null +++ b/drivers/ugfx/gdisp/st7565ergodox/driver.mk @@ -0,0 +1,2 @@ +GFXINC += drivers/ugfx/gdisp/st7565ergodox +GFXSRC += drivers/ugfx/gdisp/st7565ergodox/gdisp_lld_ST7565.c diff --git a/drivers/ugfx/gdisp/st7565ergodox/gdisp_lld_ST7565.c b/drivers/ugfx/gdisp/st7565ergodox/gdisp_lld_ST7565.c new file mode 100644 index 000000000..c576280a1 --- /dev/null +++ b/drivers/ugfx/gdisp/st7565ergodox/gdisp_lld_ST7565.c @@ -0,0 +1,329 @@ +/* + * This file is subject to the terms of the GFX License. If a copy of + * the license was not distributed with this file, you can obtain one at: + * + * http://ugfx.org/license.html + */ + +#include "gfx.h" + +#if GFX_USE_GDISP + +#define GDISP_DRIVER_VMT GDISPVMT_ST7565_ERGODOX +#include "gdisp_lld_config.h" +#include "src/gdisp/gdisp_driver.h" + +#include "board_ST7565.h" + +/*===========================================================================*/ +/* Driver local definitions. */ +/*===========================================================================*/ + +#ifndef GDISP_SCREEN_HEIGHT +#define GDISP_SCREEN_HEIGHT 32 +#endif +#ifndef GDISP_SCREEN_WIDTH +#define GDISP_SCREEN_WIDTH 128 +#endif +#ifndef GDISP_INITIAL_CONTRAST +#define GDISP_INITIAL_CONTRAST 35 +#endif +#ifndef GDISP_INITIAL_BACKLIGHT +#define GDISP_INITIAL_BACKLIGHT 100 +#endif + +#define GDISP_FLG_NEEDFLUSH (GDISP_FLG_DRIVER<<0) + +#include "st7565.h" + +/*===========================================================================*/ +/* Driver config defaults for backward compatibility. */ +/*===========================================================================*/ +#ifndef ST7565_LCD_BIAS +#define ST7565_LCD_BIAS ST7565_LCD_BIAS_7 +#endif +#ifndef ST7565_ADC +#define ST7565_ADC ST7565_ADC_NORMAL +#endif +#ifndef ST7565_COM_SCAN +#define ST7565_COM_SCAN ST7565_COM_SCAN_INC +#endif +#ifndef ST7565_PAGE_ORDER +#define ST7565_PAGE_ORDER 0,1,2,3 +#endif + +/*===========================================================================*/ +/* Driver local functions. */ +/*===========================================================================*/ + +typedef struct{ + bool_t buffer2; + uint8_t data_pos; + uint8_t data[16]; + uint8_t ram[GDISP_SCREEN_HEIGHT * GDISP_SCREEN_WIDTH / 8]; +}PrivData; + +// Some common routines and macros +#define PRIV(g) ((PrivData*)g->priv) +#define RAM(g) (PRIV(g)->ram) + +static GFXINLINE void write_cmd(GDisplay* g, uint8_t cmd) { + PRIV(g)->data[PRIV(g)->data_pos++] = cmd; +} + +static GFXINLINE void flush_cmd(GDisplay* g) { + write_data(g, PRIV(g)->data, PRIV(g)->data_pos); + PRIV(g)->data_pos = 0; +} + +#define write_cmd2(g, cmd1, cmd2) { write_cmd(g, cmd1); write_cmd(g, cmd2); } +#define write_cmd3(g, cmd1, cmd2, cmd3) { write_cmd(g, cmd1); write_cmd(g, cmd2); write_cmd(g, cmd3); } + +// Some common routines and macros +#define delay(us) gfxSleepMicroseconds(us) +#define delay_ms(ms) gfxSleepMilliseconds(ms) + +#define xyaddr(x, y) ((x) + ((y)>>3)*GDISP_SCREEN_WIDTH) +#define xybit(y) (1<<((y)&7)) + +/*===========================================================================*/ +/* Driver exported functions. */ +/*===========================================================================*/ + +/* + * As this controller can't update on a pixel boundary we need to maintain the + * the entire display surface in memory so that we can do the necessary bit + * operations. Fortunately it is a small display in monochrome. + * 64 * 128 / 8 = 1024 bytes. + */ + +LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { + // The private area is the display surface. + g->priv = gfxAlloc(sizeof(PrivData)); + PRIV(g)->buffer2 = false; + PRIV(g)->data_pos = 0; + + // Initialise the board interface + init_board(g); + + // Hardware reset + setpin_reset(g, TRUE); + gfxSleepMilliseconds(20); + setpin_reset(g, FALSE); + gfxSleepMilliseconds(20); + acquire_bus(g); + enter_cmd_mode(g); + + write_cmd(g, ST7565_RESET); + write_cmd(g, ST7565_LCD_BIAS); + write_cmd(g, ST7565_ADC); + write_cmd(g, ST7565_COM_SCAN); + + write_cmd(g, ST7565_RESISTOR_RATIO | 0x1); + write_cmd2(g, ST7565_CONTRAST, GDISP_INITIAL_CONTRAST); + + // turn on internal power supply (VC=1, VR=1, VF=1) + write_cmd(g, ST7565_POWER_CONTROL | 0x07); + + write_cmd(g, ST7565_INVERT_DISPLAY); + write_cmd(g, ST7565_ALLON_NORMAL); + + write_cmd(g, ST7565_START_LINE | 0); + write_cmd(g, ST7565_RMW); + flush_cmd(g); + + // Finish Init + post_init_board(g); + + // Release the bus + release_bus(g); + + /* Initialise the GDISP structure */ + g->g.Width = GDISP_SCREEN_WIDTH; + g->g.Height = GDISP_SCREEN_HEIGHT; + g->g.Orientation = GDISP_ROTATE_0; + g->g.Powermode = powerOff; + g->g.Backlight = GDISP_INITIAL_BACKLIGHT; + g->g.Contrast = GDISP_INITIAL_CONTRAST; + return TRUE; +} + +#if GDISP_HARDWARE_FLUSH +LLDSPEC void gdisp_lld_flush(GDisplay *g) { + unsigned p; + + // Don't flush if we don't need it. + if (!(g->flags & GDISP_FLG_NEEDFLUSH)) + return; + + acquire_bus(g); + enter_cmd_mode(g); + unsigned dstOffset = (PRIV(g)->buffer2 ? 4 : 0); + for (p = 0; p < 4; p++) { + write_cmd(g, ST7565_PAGE | (p + dstOffset)); + write_cmd(g, ST7565_COLUMN_MSB | 0); + write_cmd(g, ST7565_COLUMN_LSB | 0); + write_cmd(g, ST7565_RMW); + flush_cmd(g); + enter_data_mode(g); + write_data(g, RAM(g) + (p*GDISP_SCREEN_WIDTH), GDISP_SCREEN_WIDTH); + enter_cmd_mode(g); + } + unsigned line = (PRIV(g)->buffer2 ? 32 : 0); + write_cmd(g, ST7565_START_LINE | line); + flush_cmd(g); + PRIV(g)->buffer2 = !PRIV(g)->buffer2; + release_bus(g); + + g->flags &= ~GDISP_FLG_NEEDFLUSH; +} +#endif + +#if GDISP_HARDWARE_DRAWPIXEL +LLDSPEC void gdisp_lld_draw_pixel(GDisplay *g) { + coord_t x, y; + + switch(g->g.Orientation) { + default: + case GDISP_ROTATE_0: + x = g->p.x; + y = g->p.y; + break; + case GDISP_ROTATE_90: + x = g->p.y; + y = GDISP_SCREEN_HEIGHT-1 - g->p.x; + break; + case GDISP_ROTATE_180: + x = GDISP_SCREEN_WIDTH-1 - g->p.x; + y = GDISP_SCREEN_HEIGHT-1 - g->p.y; + break; + case GDISP_ROTATE_270: + x = GDISP_SCREEN_HEIGHT-1 - g->p.y; + y = g->p.x; + break; + } + if (gdispColor2Native(g->p.color) != Black) + RAM(g)[xyaddr(x, y)] |= xybit(y); + else + RAM(g)[xyaddr(x, y)] &= ~xybit(y); + g->flags |= GDISP_FLG_NEEDFLUSH; +} +#endif + +#if GDISP_HARDWARE_PIXELREAD +LLDSPEC color_t gdisp_lld_get_pixel_color(GDisplay *g) { + coord_t x, y; + + switch(g->g.Orientation) { + default: + case GDISP_ROTATE_0: + x = g->p.x; + y = g->p.y; + break; + case GDISP_ROTATE_90: + x = g->p.y; + y = GDISP_SCREEN_HEIGHT-1 - g->p.x; + break; + case GDISP_ROTATE_180: + x = GDISP_SCREEN_WIDTH-1 - g->p.x; + y = GDISP_SCREEN_HEIGHT-1 - g->p.y; + break; + case GDISP_ROTATE_270: + x = GDISP_SCREEN_HEIGHT-1 - g->p.y; + y = g->p.x; + break; + } + return (RAM(g)[xyaddr(x, y)] & xybit(y)) ? White : Black; +} +#endif + +LLDSPEC void gdisp_lld_blit_area(GDisplay *g) { + uint8_t* buffer = (uint8_t*)g->p.ptr; + int linelength = g->p.cx; + for (int i = 0; i < g->p.cy; i++) { + unsigned dstx = g->p.x; + unsigned dsty = g->p.y + i; + unsigned srcx = g->p.x1; + unsigned srcy = g->p.y1 + i; + unsigned srcbit = srcy * g->p.x2 + srcx; + for(int j=0; j < linelength; j++) { + uint8_t src = buffer[srcbit / 8]; + uint8_t bit = 7-(srcbit % 8); + uint8_t bitset = (src >> bit) & 1; + uint8_t* dst = &(RAM(g)[xyaddr(dstx, dsty)]); + if (bitset) { + *dst |= xybit(dsty); + } + else { + *dst &= ~xybit(dsty); + } + dstx++; + srcbit++; + } + } + g->flags |= GDISP_FLG_NEEDFLUSH; +} + +#if GDISP_NEED_CONTROL && GDISP_HARDWARE_CONTROL +LLDSPEC void gdisp_lld_control(GDisplay *g) { + switch(g->p.x) { + case GDISP_CONTROL_POWER: + if (g->g.Powermode == (powermode_t)g->p.ptr) + return; + switch((powermode_t)g->p.ptr) { + case powerOff: + case powerSleep: + case powerDeepSleep: + acquire_bus(g); + enter_cmd_mode(g); + write_cmd(g, ST7565_DISPLAY_OFF); + flush_cmd(g); + release_bus(g); + break; + case powerOn: + acquire_bus(g); + enter_cmd_mode(g); + write_cmd(g, ST7565_DISPLAY_ON); + flush_cmd(g); + release_bus(g); + break; + default: + return; + } + g->g.Powermode = (powermode_t)g->p.ptr; + return; + + case GDISP_CONTROL_ORIENTATION: + if (g->g.Orientation == (orientation_t)g->p.ptr) + return; + switch((orientation_t)g->p.ptr) { + /* Rotation is handled by the drawing routines */ + case GDISP_ROTATE_0: + case GDISP_ROTATE_180: + g->g.Height = GDISP_SCREEN_HEIGHT; + g->g.Width = GDISP_SCREEN_WIDTH; + break; + case GDISP_ROTATE_90: + case GDISP_ROTATE_270: + g->g.Height = GDISP_SCREEN_WIDTH; + g->g.Width = GDISP_SCREEN_HEIGHT; + break; + default: + return; + } + g->g.Orientation = (orientation_t)g->p.ptr; + return; + + case GDISP_CONTROL_CONTRAST: + g->g.Contrast = (unsigned)g->p.ptr & 63; + acquire_bus(g); + enter_cmd_mode(g); + write_cmd2(g, ST7565_CONTRAST, g->g.Contrast); + flush_cmd(g); + release_bus(g); + return; + } +} +#endif // GDISP_NEED_CONTROL + +#endif // GFX_USE_GDISP diff --git a/drivers/ugfx/gdisp/st7565ergodox/gdisp_lld_config.h b/drivers/ugfx/gdisp/st7565ergodox/gdisp_lld_config.h new file mode 100644 index 000000000..2b66a877c --- /dev/null +++ b/drivers/ugfx/gdisp/st7565ergodox/gdisp_lld_config.h @@ -0,0 +1,27 @@ +/* + * This file is subject to the terms of the GFX License. If a copy of + * the license was not distributed with this file, you can obtain one at: + * + * http://ugfx.org/license.html + */ + +#ifndef _GDISP_LLD_CONFIG_H +#define _GDISP_LLD_CONFIG_H + +#if GFX_USE_GDISP + +/*===========================================================================*/ +/* Driver hardware support. */ +/*===========================================================================*/ + +#define GDISP_HARDWARE_FLUSH TRUE // This controller requires flushing +#define GDISP_HARDWARE_DRAWPIXEL TRUE +#define GDISP_HARDWARE_PIXELREAD TRUE +#define GDISP_HARDWARE_CONTROL TRUE +#define GDISP_HARDWARE_BITFILLS TRUE + +#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_MONO + +#endif /* GFX_USE_GDISP */ + +#endif /* _GDISP_LLD_CONFIG_H */ diff --git a/drivers/ugfx/gdisp/st7565ergodox/st7565.h b/drivers/ugfx/gdisp/st7565ergodox/st7565.h new file mode 100644 index 000000000..24924ff05 --- /dev/null +++ b/drivers/ugfx/gdisp/st7565ergodox/st7565.h @@ -0,0 +1,39 @@ +/* + * This file is subject to the terms of the GFX License. If a copy of + * the license was not distributed with this file, you can obtain one at: + * + * http://ugfx.org/license.html + */ + +#ifndef _ST7565_H +#define _ST7565_H + +#define ST7565_CONTRAST 0x81 +#define ST7565_ALLON_NORMAL 0xA4 +#define ST7565_ALLON 0xA5 +#define ST7565_POSITIVE_DISPLAY 0xA6 +#define ST7565_INVERT_DISPLAY 0xA7 +#define ST7565_DISPLAY_OFF 0xAE +#define ST7565_DISPLAY_ON 0xAF + +#define ST7565_LCD_BIAS_7 0xA3 +#define ST7565_LCD_BIAS_9 0xA2 + +#define ST7565_ADC_NORMAL 0xA0 +#define ST7565_ADC_REVERSE 0xA1 + +#define ST7565_COM_SCAN_INC 0xC0 +#define ST7565_COM_SCAN_DEC 0xC8 + +#define ST7565_START_LINE 0x40 +#define ST7565_PAGE 0xB0 +#define ST7565_COLUMN_MSB 0x10 +#define ST7565_COLUMN_LSB 0x00 +#define ST7565_RMW 0xE0 + +#define ST7565_RESISTOR_RATIO 0x20 +#define ST7565_POWER_CONTROL 0x28 + +#define ST7565_RESET 0xE2 + +#endif /* _ST7565_H */ diff --git a/keyboards/ergodox/infinity/board_IS31FL3731C.h b/keyboards/ergodox/infinity/board_IS31FL3731C.h new file mode 100644 index 000000000..2ea73f1fb --- /dev/null +++ b/keyboards/ergodox/infinity/board_IS31FL3731C.h @@ -0,0 +1,113 @@ +/* +Copyright 2016 Fred Sundvik <fsundvik@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/>. +*/ + +#ifndef _GDISP_LLD_BOARD_H +#define _GDISP_LLD_BOARD_H + +static const I2CConfig i2ccfg = { + 400000 // clock speed (Hz); 400kHz max for IS31 +}; + +#define GDISP_SCREEN_WIDTH 7 +#define GDISP_SCREEN_HEIGHT 7 + +static const uint8_t led_mask[] = { + 0xFF, 0x00, /* C1-1 -> C1-16 */ + 0xFF, 0x00, /* C2-1 -> C2-16 */ + 0xFF, 0x00, /* C3-1 -> C3-16 */ + 0xFF, 0x00, /* C4-1 -> C4-16 */ + 0x3F, 0x00, /* C5-1 -> C5-16 */ + 0x00, 0x00, /* C6-1 -> C6-16 */ + 0x00, 0x00, /* C7-1 -> C7-16 */ + 0x00, 0x00, /* C8-1 -> C8-16 */ + 0x00, 0x00, /* C9-1 -> C9-16 */ +}; + +// The address of the LED +#define LA(c, r) (c + r * 16 ) +// Need to be an address that is not mapped, but inside the range of the controller matrix +#define NA LA(8, 8) + +// The numbers in the comments are the led numbers DXX on the PCB +// The mapping is taken from the schematic of left hand side +static const uint8_t led_mapping[GDISP_SCREEN_HEIGHT][GDISP_SCREEN_WIDTH] = { +// 45 44 43 42 41 40 39 + { LA(1, 1), LA(1, 0), LA(0, 4), LA(0, 3), LA(0, 2), LA(0, 1), LA(0, 0)}, +// 52 51 50 49 48 47 46 + { LA(2, 3), LA(2, 2), LA(2, 1), LA(2, 0), LA(1, 4), LA(1, 3), LA(1, 2) }, +// 58 57 56 55 54 53 N/A + { LA(3, 4), LA(3, 3), LA(3, 2), LA(3, 1), LA(3, 0), LA(2, 4), NA }, +// 67 66 65 64 63 62 61 + { LA(5, 3), LA(5, 2), LA(5, 1), LA(5, 0), LA(4, 4), LA(4, 3), LA(4, 2) }, +// 76 75 74 73 72 60 59 + { LA(7, 3), LA(7, 2), LA(7, 1), LA(7, 0), LA(6, 3), LA(4, 1), LA(4, 0) }, +// N/A N/A N/A N/A N/A N/A 68 + { NA, NA, NA, NA, NA, NA, LA(5, 4) }, +// N/A N/A N/A N/A 71 70 69 + { NA, NA, NA, NA, LA(6, 2), LA(6, 1), LA(6, 0) }, +}; + + +#define IS31_ADDR_DEFAULT 0x74 // AD connected to GND +#define IS31_TIMEOUT 5000 + +static GFXINLINE void init_board(GDisplay *g) { + (void) g; + /* I2C pins */ + palSetPadMode(GPIOB, 0, PAL_MODE_ALTERNATIVE_2); // PTB0/I2C0/SCL + palSetPadMode(GPIOB, 1, PAL_MODE_ALTERNATIVE_2); // PTB1/I2C0/SDA + palSetPadMode(GPIOB, 16, PAL_MODE_OUTPUT_PUSHPULL); + palClearPad(GPIOB, 16); + /* start I2C */ + i2cStart(&I2CD1, &i2ccfg); + // try high drive (from kiibohd) + I2CD1.i2c->C2 |= I2Cx_C2_HDRS; + // try glitch fixing (from kiibohd) + I2CD1.i2c->FLT = 4; +} + +static GFXINLINE void post_init_board(GDisplay *g) { + (void) g; +} + +static GFXINLINE const uint8_t* get_led_mask(GDisplay* g) { + (void) g; + return led_mask; +} + +static GFXINLINE uint8_t get_led_address(GDisplay* g, uint16_t x, uint16_t y) +{ + (void) g; + return led_mapping[y][x]; +} + +static GFXINLINE void set_hardware_shutdown(GDisplay* g, bool shutdown) { + (void) g; + if(!shutdown) { + palSetPad(GPIOB, 16); + } + else { + palClearPad(GPIOB, 16); + } +} + +static GFXINLINE void write_data(GDisplay *g, uint8_t* data, uint16_t length) { + (void) g; + i2cMasterTransmitTimeout(&I2CD1, IS31_ADDR_DEFAULT, data, length, 0, 0, US2ST(IS31_TIMEOUT)); +} + +#endif /* _GDISP_LLD_BOARD_H */ diff --git a/keyboards/ergodox/infinity/board_ST7565.h b/keyboards/ergodox/infinity/board_ST7565.h new file mode 100644 index 000000000..9650ffb44 --- /dev/null +++ b/keyboards/ergodox/infinity/board_ST7565.h @@ -0,0 +1,113 @@ +/* + * This file is subject to the terms of the GFX License. If a copy of + * the license was not distributed with this file, you can obtain one at: + * + * http://ugfx.org/license.html + */ + +#ifndef _GDISP_LLD_BOARD_H +#define _GDISP_LLD_BOARD_H + +#define ST7565_LCD_BIAS ST7565_LCD_BIAS_9 // actually 6 +#define ST7565_ADC ST7565_ADC_NORMAL +#define ST7565_COM_SCAN ST7565_COM_SCAN_DEC +#define ST7565_PAGE_ORDER 0,1,2,3 +/* + * Custom page order for several LCD boards, e.g. HEM12864-99 + * #define ST7565_PAGE_ORDER 4,5,6,7,0,1,2,3 + */ + +#define ST7565_GPIOPORT GPIOC +#define ST7565_PORT PORTC +#define ST7565_A0_PIN 7 +#define ST7565_RST_PIN 8 +#define ST7565_MOSI_PIN 6 +#define ST7565_SLCK_PIN 5 +#define ST7565_SS_PIN 4 + +#define palSetPadModeRaw(portname, bits) \ + ST7565_PORT->PCR[ST7565_##portname##_PIN] = bits + +#define palSetPadModeNamed(portname, portmode) \ + palSetPadMode(ST7565_GPIOPORT, ST7565_##portname##_PIN, portmode) + +#define ST7565_SPI_MODE PORTx_PCRn_DSE | PORTx_PCRn_MUX(2) +// DSPI Clock and Transfer Attributes +// Frame Size: 8 bits +// MSB First +// CLK Low by default +static const SPIConfig spi1config = { + // Operation complete callback or @p NULL. + .end_cb = NULL, + //The chip select line port - when not using pcs. + .ssport = ST7565_GPIOPORT, + // brief The chip select line pad number - when not using pcs. + .sspad=ST7565_SS_PIN, + // SPI initialization data. + .tar0 = + SPIx_CTARn_FMSZ(7) // Frame size = 8 bytes + | SPIx_CTARn_ASC(1) // After SCK Delay Scaler (min 50 ns) = 55.56ns + | SPIx_CTARn_DT(0) // Delay After Transfer Scaler (no minimum)= 27.78ns + | SPIx_CTARn_CSSCK(0) // PCS to SCK Delay Scaler (min 20 ns) = 27.78ns + | SPIx_CTARn_PBR(0) // Baud Rate Prescaler = 2 + | SPIx_CTARn_BR(0) // Baud rate (min 50ns) = 55.56ns +}; + +static GFXINLINE void acquire_bus(GDisplay *g) { + (void) g; + // Only the LCD is using the SPI bus, so no need to acquire + // spiAcquireBus(&SPID1); + spiSelect(&SPID1); +} + +static GFXINLINE void release_bus(GDisplay *g) { + (void) g; + // Only the LCD is using the SPI bus, so no need to release + //spiReleaseBus(&SPID1); + spiUnselect(&SPID1); +} + +static GFXINLINE void init_board(GDisplay *g) { + (void) g; + palSetPadModeNamed(A0, PAL_MODE_OUTPUT_PUSHPULL); + palSetPad(ST7565_GPIOPORT, ST7565_A0_PIN); + palSetPadModeNamed(RST, PAL_MODE_OUTPUT_PUSHPULL); + palSetPad(ST7565_GPIOPORT, ST7565_RST_PIN); + palSetPadModeRaw(MOSI, ST7565_SPI_MODE); + palSetPadModeRaw(SLCK, ST7565_SPI_MODE); + palSetPadModeNamed(SS, PAL_MODE_OUTPUT_PUSHPULL); + + spiInit(); + spiStart(&SPID1, &spi1config); + release_bus(g); +} + +static GFXINLINE void post_init_board(GDisplay *g) { + (void) g; +} + +static GFXINLINE void setpin_reset(GDisplay *g, bool_t state) { + (void) g; + if (state) { + palClearPad(ST7565_GPIOPORT, ST7565_RST_PIN); + } + else { + palSetPad(ST7565_GPIOPORT, ST7565_RST_PIN); + } +} + +static GFXINLINE void enter_data_mode(GDisplay *g) { + palSetPad(ST7565_GPIOPORT, ST7565_A0_PIN); +} + +static GFXINLINE void enter_cmd_mode(GDisplay *g) { + palClearPad(ST7565_GPIOPORT, ST7565_A0_PIN); +} + + +static GFXINLINE void write_data(GDisplay *g, uint8_t* data, uint16_t length) { + (void) g; + spiSend(&SPID1, length, data); +} + +#endif /* _GDISP_LLD_BOARD_H */ diff --git a/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h deleted file mode 100644 index 2ea73f1fb..000000000 --- a/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h +++ /dev/null @@ -1,113 +0,0 @@ -/* -Copyright 2016 Fred Sundvik <fsundvik@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/>. -*/ - -#ifndef _GDISP_LLD_BOARD_H -#define _GDISP_LLD_BOARD_H - -static const I2CConfig i2ccfg = { - 400000 // clock speed (Hz); 400kHz max for IS31 -}; - -#define GDISP_SCREEN_WIDTH 7 -#define GDISP_SCREEN_HEIGHT 7 - -static const uint8_t led_mask[] = { - 0xFF, 0x00, /* C1-1 -> C1-16 */ - 0xFF, 0x00, /* C2-1 -> C2-16 */ - 0xFF, 0x00, /* C3-1 -> C3-16 */ - 0xFF, 0x00, /* C4-1 -> C4-16 */ - 0x3F, 0x00, /* C5-1 -> C5-16 */ - 0x00, 0x00, /* C6-1 -> C6-16 */ - 0x00, 0x00, /* C7-1 -> C7-16 */ - 0x00, 0x00, /* C8-1 -> C8-16 */ - 0x00, 0x00, /* C9-1 -> C9-16 */ -}; - -// The address of the LED -#define LA(c, r) (c + r * 16 ) -// Need to be an address that is not mapped, but inside the range of the controller matrix -#define NA LA(8, 8) - -// The numbers in the comments are the led numbers DXX on the PCB -// The mapping is taken from the schematic of left hand side -static const uint8_t led_mapping[GDISP_SCREEN_HEIGHT][GDISP_SCREEN_WIDTH] = { -// 45 44 43 42 41 40 39 - { LA(1, 1), LA(1, 0), LA(0, 4), LA(0, 3), LA(0, 2), LA(0, 1), LA(0, 0)}, -// 52 51 50 49 48 47 46 - { LA(2, 3), LA(2, 2), LA(2, 1), LA(2, 0), LA(1, 4), LA(1, 3), LA(1, 2) }, -// 58 57 56 55 54 53 N/A - { LA(3, 4), LA(3, 3), LA(3, 2), LA(3, 1), LA(3, 0), LA(2, 4), NA }, -// 67 66 65 64 63 62 61 - { LA(5, 3), LA(5, 2), LA(5, 1), LA(5, 0), LA(4, 4), LA(4, 3), LA(4, 2) }, -// 76 75 74 73 72 60 59 - { LA(7, 3), LA(7, 2), LA(7, 1), LA(7, 0), LA(6, 3), LA(4, 1), LA(4, 0) }, -// N/A N/A N/A N/A N/A N/A 68 - { NA, NA, NA, NA, NA, NA, LA(5, 4) }, -// N/A N/A N/A N/A 71 70 69 - { NA, NA, NA, NA, LA(6, 2), LA(6, 1), LA(6, 0) }, -}; - - -#define IS31_ADDR_DEFAULT 0x74 // AD connected to GND -#define IS31_TIMEOUT 5000 - -static GFXINLINE void init_board(GDisplay *g) { - (void) g; - /* I2C pins */ - palSetPadMode(GPIOB, 0, PAL_MODE_ALTERNATIVE_2); // PTB0/I2C0/SCL - palSetPadMode(GPIOB, 1, PAL_MODE_ALTERNATIVE_2); // PTB1/I2C0/SDA - palSetPadMode(GPIOB, 16, PAL_MODE_OUTPUT_PUSHPULL); - palClearPad(GPIOB, 16); - /* start I2C */ - i2cStart(&I2CD1, &i2ccfg); - // try high drive (from kiibohd) - I2CD1.i2c->C2 |= I2Cx_C2_HDRS; - // try glitch fixing (from kiibohd) - I2CD1.i2c->FLT = 4; -} - -static GFXINLINE void post_init_board(GDisplay *g) { - (void) g; -} - -static GFXINLINE const uint8_t* get_led_mask(GDisplay* g) { - (void) g; - return led_mask; -} - -static GFXINLINE uint8_t get_led_address(GDisplay* g, uint16_t x, uint16_t y) -{ - (void) g; - return led_mapping[y][x]; -} - -static GFXINLINE void set_hardware_shutdown(GDisplay* g, bool shutdown) { - (void) g; - if(!shutdown) { - palSetPad(GPIOB, 16); - } - else { - palClearPad(GPIOB, 16); - } -} - -static GFXINLINE void write_data(GDisplay *g, uint8_t* data, uint16_t length) { - (void) g; - i2cMasterTransmitTimeout(&I2CD1, IS31_ADDR_DEFAULT, data, length, 0, 0, US2ST(IS31_TIMEOUT)); -} - -#endif /* _GDISP_LLD_BOARD_H */ diff --git a/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/driver.mk b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/driver.mk deleted file mode 100644 index f32d0d868..000000000 --- a/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/driver.mk +++ /dev/null @@ -1,2 +0,0 @@ -GFXINC += drivers/gdisp/IS31FL3731C -GFXSRC += drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c diff --git a/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c deleted file mode 100644 index b4a5c84b0..000000000 --- a/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c +++ /dev/null @@ -1,312 +0,0 @@ -/* -Copyright 2016 Fred Sundvik <fsundvik@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/>. -*/ - -#include "gfx.h" - -#if GFX_USE_GDISP - -#define GDISP_DRIVER_VMT GDISPVMT_IS31FL3731C_ERGODOX -#include "drivers/gdisp/IS31FL3731C/gdisp_lld_config.h" -#include "src/gdisp/gdisp_driver.h" - -#include "board_IS31FL3731C.h" - - -// Can't include led_tables from here -extern const uint8_t CIE1931_CURVE[]; - -/*===========================================================================*/ -/* Driver local definitions. */ -/*===========================================================================*/ - -#ifndef GDISP_SCREEN_HEIGHT - #define GDISP_SCREEN_HEIGHT 9 -#endif -#ifndef GDISP_SCREEN_WIDTH - #define GDISP_SCREEN_WIDTH 16 -#endif -#ifndef GDISP_INITIAL_CONTRAST - #define GDISP_INITIAL_CONTRAST 0 -#endif -#ifndef GDISP_INITIAL_BACKLIGHT - #define GDISP_INITIAL_BACKLIGHT 0 -#endif - -#define GDISP_FLG_NEEDFLUSH (GDISP_FLG_DRIVER<<0) - -#define IS31_ADDR_DEFAULT 0x74 - -#define IS31_REG_CONFIG 0x00 -// bits in reg -#define IS31_REG_CONFIG_PICTUREMODE 0x00 -#define IS31_REG_CONFIG_AUTOPLAYMODE 0x08 -#define IS31_REG_CONFIG_AUDIOPLAYMODE 0x18 -// D2:D0 bits are starting frame for autoplay mode - -#define IS31_REG_PICTDISP 0x01 // D2:D0 frame select for picture mode - -#define IS31_REG_AUTOPLAYCTRL1 0x02 -// D6:D4 number of loops (000=infty) -// D2:D0 number of frames to be used - -#define IS31_REG_AUTOPLAYCTRL2 0x03 // D5:D0 delay time (*11ms) - -#define IS31_REG_DISPLAYOPT 0x05 -#define IS31_REG_DISPLAYOPT_INTENSITY_SAME 0x20 // same intensity for all frames -#define IS31_REG_DISPLAYOPT_BLINK_ENABLE 0x8 -// D2:D0 bits blink period time (*0.27s) - -#define IS31_REG_AUDIOSYNC 0x06 -#define IS31_REG_AUDIOSYNC_ENABLE 0x1 - -#define IS31_REG_FRAMESTATE 0x07 - -#define IS31_REG_BREATHCTRL1 0x08 -// D6:D4 fade out time (26ms*2^i) -// D2:D0 fade in time (26ms*2^i) - -#define IS31_REG_BREATHCTRL2 0x09 -#define IS31_REG_BREATHCTRL2_ENABLE 0x10 -// D2:D0 extinguish time (3.5ms*2^i) - -#define IS31_REG_SHUTDOWN 0x0A -#define IS31_REG_SHUTDOWN_OFF 0x0 -#define IS31_REG_SHUTDOWN_ON 0x1 - -#define IS31_REG_AGCCTRL 0x0B -#define IS31_REG_ADCRATE 0x0C - -#define IS31_COMMANDREGISTER 0xFD -#define IS31_FUNCTIONREG 0x0B // helpfully called 'page nine' -#define IS31_FUNCTIONREG_SIZE 0xD - -#define IS31_FRAME_SIZE 0xB4 - -#define IS31_PWM_REG 0x24 -#define IS31_PWM_SIZE 0x90 - -#define IS31_LED_MASK_SIZE 0x12 -#define IS31_SCREEN_WIDTH 16 - -#define IS31 - -/*===========================================================================*/ -/* Driver local functions. */ -/*===========================================================================*/ - -typedef struct{ - uint8_t write_buffer_offset; - uint8_t write_buffer[IS31_FRAME_SIZE]; - uint8_t frame_buffer[GDISP_SCREEN_HEIGHT * GDISP_SCREEN_WIDTH]; - uint8_t page; -}__attribute__((__packed__)) PrivData; - -// Some common routines and macros -#define PRIV(g) ((PrivData*)g->priv) - -/*===========================================================================*/ -/* Driver exported functions. */ -/*===========================================================================*/ - -static GFXINLINE void write_page(GDisplay* g, uint8_t page) { - uint8_t tx[2] __attribute__((aligned(2))); - tx[0] = IS31_COMMANDREGISTER; - tx[1] = page; - write_data(g, tx, 2); -} - -static GFXINLINE void write_register(GDisplay* g, uint8_t page, uint8_t reg, uint8_t data) { - uint8_t tx[2] __attribute__((aligned(2))); - tx[0] = reg; - tx[1] = data; - write_page(g, page); - write_data(g, tx, 2); -} - -static GFXINLINE void write_ram(GDisplay *g, uint8_t page, uint16_t offset, uint16_t length) { - PRIV(g)->write_buffer_offset = offset; - write_page(g, page); - write_data(g, (uint8_t*)PRIV(g), length + 1); -} - -LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { - // The private area is the display surface. - g->priv = gfxAlloc(sizeof(PrivData)); - __builtin_memset(PRIV(g), 0, sizeof(PrivData)); - PRIV(g)->page = 0; - - // Initialise the board interface - init_board(g); - gfxSleepMilliseconds(10); - - // zero function page, all registers (assuming full_page is all zeroes) - write_ram(g, IS31_FUNCTIONREG, 0, IS31_FUNCTIONREG_SIZE); - set_hardware_shutdown(g, false); - gfxSleepMilliseconds(10); - // software shutdown - write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); - gfxSleepMilliseconds(10); - // zero function page, all registers - write_ram(g, IS31_FUNCTIONREG, 0, IS31_FUNCTIONREG_SIZE); - gfxSleepMilliseconds(10); - - - // zero all LED registers on all 8 pages, and enable the mask - __builtin_memcpy(PRIV(g)->write_buffer, get_led_mask(g), IS31_LED_MASK_SIZE); - for(uint8_t i=0; i<8; i++) { - write_ram(g, i, 0, IS31_FRAME_SIZE); - gfxSleepMilliseconds(1); - } - - // software shutdown disable (i.e. turn stuff on) - write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); - gfxSleepMilliseconds(10); - - // Finish Init - post_init_board(g); - - /* Initialise the GDISP structure */ - g->g.Width = GDISP_SCREEN_WIDTH; - g->g.Height = GDISP_SCREEN_HEIGHT; - g->g.Orientation = GDISP_ROTATE_0; - g->g.Powermode = powerOff; - g->g.Backlight = GDISP_INITIAL_BACKLIGHT; - g->g.Contrast = GDISP_INITIAL_CONTRAST; - return TRUE; -} - -#if GDISP_HARDWARE_FLUSH - LLDSPEC void gdisp_lld_flush(GDisplay *g) { - // Don't flush if we don't need it. - if (!(g->flags & GDISP_FLG_NEEDFLUSH)) - return; - - PRIV(g)->page++; - PRIV(g)->page %= 2; - // TODO: some smarter algorithm for this - // We should run only one physical page at a time - // This way we don't need to send so much data, and - // we could use slightly less memory - uint8_t* src = PRIV(g)->frame_buffer; - for (int y=0;y<GDISP_SCREEN_HEIGHT;y++) { - for (int x=0;x<GDISP_SCREEN_WIDTH;x++) { - uint8_t val = (uint16_t)*src * g->g.Backlight / 100; - PRIV(g)->write_buffer[get_led_address(g, x, y)]=CIE1931_CURVE[val]; - ++src; - } - } - write_ram(g, PRIV(g)->page, IS31_PWM_REG, IS31_PWM_SIZE); - gfxSleepMilliseconds(1); - write_register(g, IS31_FUNCTIONREG, IS31_REG_PICTDISP, PRIV(g)->page); - - g->flags &= ~GDISP_FLG_NEEDFLUSH; - } -#endif - -#if GDISP_HARDWARE_DRAWPIXEL - LLDSPEC void gdisp_lld_draw_pixel(GDisplay *g) { - coord_t x, y; - - switch(g->g.Orientation) { - default: - case GDISP_ROTATE_0: - x = g->p.x; - y = g->p.y; - break; - case GDISP_ROTATE_180: - x = GDISP_SCREEN_WIDTH-1 - g->p.x; - y = g->p.y; - break; - } - PRIV(g)->frame_buffer[y * GDISP_SCREEN_WIDTH + x] = gdispColor2Native(g->p.color); - g->flags |= GDISP_FLG_NEEDFLUSH; - } -#endif - -#if GDISP_HARDWARE_PIXELREAD - LLDSPEC color_t gdisp_lld_get_pixel_color(GDisplay *g) { - coord_t x, y; - - switch(g->g.Orientation) { - default: - case GDISP_ROTATE_0: - x = g->p.x; - y = g->p.y; - break; - case GDISP_ROTATE_180: - x = GDISP_SCREEN_WIDTH-1 - g->p.x; - y = g->p.y; - break; - } - return gdispNative2Color(PRIV(g)->frame_buffer[y * GDISP_SCREEN_WIDTH + x]); - } -#endif - -#if GDISP_NEED_CONTROL && GDISP_HARDWARE_CONTROL - LLDSPEC void gdisp_lld_control(GDisplay *g) { - switch(g->p.x) { - case GDISP_CONTROL_POWER: - if (g->g.Powermode == (powermode_t)g->p.ptr) - return; - switch((powermode_t)g->p.ptr) { - case powerOff: - case powerSleep: - case powerDeepSleep: - write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); - break; - case powerOn: - write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON); - break; - default: - return; - } - g->g.Powermode = (powermode_t)g->p.ptr; - return; - - case GDISP_CONTROL_ORIENTATION: - if (g->g.Orientation == (orientation_t)g->p.ptr) - return; - switch((orientation_t)g->p.ptr) { - /* Rotation is handled by the drawing routines */ - case GDISP_ROTATE_0: - case GDISP_ROTATE_180: - g->g.Height = GDISP_SCREEN_HEIGHT; - g->g.Width = GDISP_SCREEN_WIDTH; - break; - case GDISP_ROTATE_90: - case GDISP_ROTATE_270: - g->g.Height = GDISP_SCREEN_WIDTH; - g->g.Width = GDISP_SCREEN_HEIGHT; - break; - default: - return; - } - g->g.Orientation = (orientation_t)g->p.ptr; - return; - - case GDISP_CONTROL_BACKLIGHT: - if (g->g.Backlight == (unsigned)g->p.ptr) - return; - unsigned val = (unsigned)g->p.ptr; - g->g.Backlight = val > 100 ? 100 : val; - g->flags |= GDISP_FLG_NEEDFLUSH; - return; - } - } -#endif // GDISP_NEED_CONTROL - -#endif // GFX_USE_GDISP diff --git a/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h b/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h deleted file mode 100644 index bb28ad775..000000000 --- a/keyboards/ergodox/infinity/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h +++ /dev/null @@ -1,36 +0,0 @@ -/* -Copyright 2016 Fred Sundvik <fsundvik@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/>. -*/ - -#ifndef _GDISP_LLD_CONFIG_H -#define _GDISP_LLD_CONFIG_H - -#if GFX_USE_GDISP - -/*===========================================================================*/ -/* Driver hardware support. */ -/*===========================================================================*/ - -#define GDISP_HARDWARE_FLUSH TRUE // This controller requires flushing -#define GDISP_HARDWARE_DRAWPIXEL TRUE -#define GDISP_HARDWARE_PIXELREAD TRUE -#define GDISP_HARDWARE_CONTROL TRUE - -#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_GRAY256 - -#endif /* GFX_USE_GDISP */ - -#endif /* _GDISP_LLD_CONFIG_H */ diff --git a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h deleted file mode 100644 index 9650ffb44..000000000 --- a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/board_ST7565.h +++ /dev/null @@ -1,113 +0,0 @@ -/* - * This file is subject to the terms of the GFX License. If a copy of - * the license was not distributed with this file, you can obtain one at: - * - * http://ugfx.org/license.html - */ - -#ifndef _GDISP_LLD_BOARD_H -#define _GDISP_LLD_BOARD_H - -#define ST7565_LCD_BIAS ST7565_LCD_BIAS_9 // actually 6 -#define ST7565_ADC ST7565_ADC_NORMAL -#define ST7565_COM_SCAN ST7565_COM_SCAN_DEC -#define ST7565_PAGE_ORDER 0,1,2,3 -/* - * Custom page order for several LCD boards, e.g. HEM12864-99 - * #define ST7565_PAGE_ORDER 4,5,6,7,0,1,2,3 - */ - -#define ST7565_GPIOPORT GPIOC -#define ST7565_PORT PORTC -#define ST7565_A0_PIN 7 -#define ST7565_RST_PIN 8 -#define ST7565_MOSI_PIN 6 -#define ST7565_SLCK_PIN 5 -#define ST7565_SS_PIN 4 - -#define palSetPadModeRaw(portname, bits) \ - ST7565_PORT->PCR[ST7565_##portname##_PIN] = bits - -#define palSetPadModeNamed(portname, portmode) \ - palSetPadMode(ST7565_GPIOPORT, ST7565_##portname##_PIN, portmode) - -#define ST7565_SPI_MODE PORTx_PCRn_DSE | PORTx_PCRn_MUX(2) -// DSPI Clock and Transfer Attributes -// Frame Size: 8 bits -// MSB First -// CLK Low by default -static const SPIConfig spi1config = { - // Operation complete callback or @p NULL. - .end_cb = NULL, - //The chip select line port - when not using pcs. - .ssport = ST7565_GPIOPORT, - // brief The chip select line pad number - when not using pcs. - .sspad=ST7565_SS_PIN, - // SPI initialization data. - .tar0 = - SPIx_CTARn_FMSZ(7) // Frame size = 8 bytes - | SPIx_CTARn_ASC(1) // After SCK Delay Scaler (min 50 ns) = 55.56ns - | SPIx_CTARn_DT(0) // Delay After Transfer Scaler (no minimum)= 27.78ns - | SPIx_CTARn_CSSCK(0) // PCS to SCK Delay Scaler (min 20 ns) = 27.78ns - | SPIx_CTARn_PBR(0) // Baud Rate Prescaler = 2 - | SPIx_CTARn_BR(0) // Baud rate (min 50ns) = 55.56ns -}; - -static GFXINLINE void acquire_bus(GDisplay *g) { - (void) g; - // Only the LCD is using the SPI bus, so no need to acquire - // spiAcquireBus(&SPID1); - spiSelect(&SPID1); -} - -static GFXINLINE void release_bus(GDisplay *g) { - (void) g; - // Only the LCD is using the SPI bus, so no need to release - //spiReleaseBus(&SPID1); - spiUnselect(&SPID1); -} - -static GFXINLINE void init_board(GDisplay *g) { - (void) g; - palSetPadModeNamed(A0, PAL_MODE_OUTPUT_PUSHPULL); - palSetPad(ST7565_GPIOPORT, ST7565_A0_PIN); - palSetPadModeNamed(RST, PAL_MODE_OUTPUT_PUSHPULL); - palSetPad(ST7565_GPIOPORT, ST7565_RST_PIN); - palSetPadModeRaw(MOSI, ST7565_SPI_MODE); - palSetPadModeRaw(SLCK, ST7565_SPI_MODE); - palSetPadModeNamed(SS, PAL_MODE_OUTPUT_PUSHPULL); - - spiInit(); - spiStart(&SPID1, &spi1config); - release_bus(g); -} - -static GFXINLINE void post_init_board(GDisplay *g) { - (void) g; -} - -static GFXINLINE void setpin_reset(GDisplay *g, bool_t state) { - (void) g; - if (state) { - palClearPad(ST7565_GPIOPORT, ST7565_RST_PIN); - } - else { - palSetPad(ST7565_GPIOPORT, ST7565_RST_PIN); - } -} - -static GFXINLINE void enter_data_mode(GDisplay *g) { - palSetPad(ST7565_GPIOPORT, ST7565_A0_PIN); -} - -static GFXINLINE void enter_cmd_mode(GDisplay *g) { - palClearPad(ST7565_GPIOPORT, ST7565_A0_PIN); -} - - -static GFXINLINE void write_data(GDisplay *g, uint8_t* data, uint16_t length) { - (void) g; - spiSend(&SPID1, length, data); -} - -#endif /* _GDISP_LLD_BOARD_H */ diff --git a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/driver.mk b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/driver.mk deleted file mode 100644 index 889a1a031..000000000 --- a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/driver.mk +++ /dev/null @@ -1,2 +0,0 @@ -GFXINC += drivers/gdisp/st7565ergodox -GFXSRC += drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c diff --git a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c deleted file mode 100644 index b04ad0293..000000000 --- a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_ST7565.c +++ /dev/null @@ -1,329 +0,0 @@ -/* - * This file is subject to the terms of the GFX License. If a copy of - * the license was not distributed with this file, you can obtain one at: - * - * http://ugfx.org/license.html - */ - -#include "gfx.h" - -#if GFX_USE_GDISP - -#define GDISP_DRIVER_VMT GDISPVMT_ST7565_ERGODOX -#include "drivers/gdisp/st7565ergodox/gdisp_lld_config.h" -#include "src/gdisp/gdisp_driver.h" - -#include "board_ST7565.h" - -/*===========================================================================*/ -/* Driver local definitions. */ -/*===========================================================================*/ - -#ifndef GDISP_SCREEN_HEIGHT -#define GDISP_SCREEN_HEIGHT 32 -#endif -#ifndef GDISP_SCREEN_WIDTH -#define GDISP_SCREEN_WIDTH 128 -#endif -#ifndef GDISP_INITIAL_CONTRAST -#define GDISP_INITIAL_CONTRAST 35 -#endif -#ifndef GDISP_INITIAL_BACKLIGHT -#define GDISP_INITIAL_BACKLIGHT 100 -#endif - -#define GDISP_FLG_NEEDFLUSH (GDISP_FLG_DRIVER<<0) - -#include "drivers/gdisp/st7565ergodox/st7565.h" - -/*===========================================================================*/ -/* Driver config defaults for backward compatibility. */ -/*===========================================================================*/ -#ifndef ST7565_LCD_BIAS -#define ST7565_LCD_BIAS ST7565_LCD_BIAS_7 -#endif -#ifndef ST7565_ADC -#define ST7565_ADC ST7565_ADC_NORMAL -#endif -#ifndef ST7565_COM_SCAN -#define ST7565_COM_SCAN ST7565_COM_SCAN_INC -#endif -#ifndef ST7565_PAGE_ORDER -#define ST7565_PAGE_ORDER 0,1,2,3 -#endif - -/*===========================================================================*/ -/* Driver local functions. */ -/*===========================================================================*/ - -typedef struct{ - bool_t buffer2; - uint8_t data_pos; - uint8_t data[16]; - uint8_t ram[GDISP_SCREEN_HEIGHT * GDISP_SCREEN_WIDTH / 8]; -}PrivData; - -// Some common routines and macros -#define PRIV(g) ((PrivData*)g->priv) -#define RAM(g) (PRIV(g)->ram) - -static GFXINLINE void write_cmd(GDisplay* g, uint8_t cmd) { - PRIV(g)->data[PRIV(g)->data_pos++] = cmd; -} - -static GFXINLINE void flush_cmd(GDisplay* g) { - write_data(g, PRIV(g)->data, PRIV(g)->data_pos); - PRIV(g)->data_pos = 0; -} - -#define write_cmd2(g, cmd1, cmd2) { write_cmd(g, cmd1); write_cmd(g, cmd2); } -#define write_cmd3(g, cmd1, cmd2, cmd3) { write_cmd(g, cmd1); write_cmd(g, cmd2); write_cmd(g, cmd3); } - -// Some common routines and macros -#define delay(us) gfxSleepMicroseconds(us) -#define delay_ms(ms) gfxSleepMilliseconds(ms) - -#define xyaddr(x, y) ((x) + ((y)>>3)*GDISP_SCREEN_WIDTH) -#define xybit(y) (1<<((y)&7)) - -/*===========================================================================*/ -/* Driver exported functions. */ -/*===========================================================================*/ - -/* - * As this controller can't update on a pixel boundary we need to maintain the - * the entire display surface in memory so that we can do the necessary bit - * operations. Fortunately it is a small display in monochrome. - * 64 * 128 / 8 = 1024 bytes. - */ - -LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { - // The private area is the display surface. - g->priv = gfxAlloc(sizeof(PrivData)); - PRIV(g)->buffer2 = false; - PRIV(g)->data_pos = 0; - - // Initialise the board interface - init_board(g); - - // Hardware reset - setpin_reset(g, TRUE); - gfxSleepMilliseconds(20); - setpin_reset(g, FALSE); - gfxSleepMilliseconds(20); - acquire_bus(g); - enter_cmd_mode(g); - - write_cmd(g, ST7565_RESET); - write_cmd(g, ST7565_LCD_BIAS); - write_cmd(g, ST7565_ADC); - write_cmd(g, ST7565_COM_SCAN); - - write_cmd(g, ST7565_RESISTOR_RATIO | 0x1); - write_cmd2(g, ST7565_CONTRAST, GDISP_INITIAL_CONTRAST); - - // turn on internal power supply (VC=1, VR=1, VF=1) - write_cmd(g, ST7565_POWER_CONTROL | 0x07); - - write_cmd(g, ST7565_INVERT_DISPLAY); - write_cmd(g, ST7565_ALLON_NORMAL); - - write_cmd(g, ST7565_START_LINE | 0); - write_cmd(g, ST7565_RMW); - flush_cmd(g); - - // Finish Init - post_init_board(g); - - // Release the bus - release_bus(g); - - /* Initialise the GDISP structure */ - g->g.Width = GDISP_SCREEN_WIDTH; - g->g.Height = GDISP_SCREEN_HEIGHT; - g->g.Orientation = GDISP_ROTATE_0; - g->g.Powermode = powerOff; - g->g.Backlight = GDISP_INITIAL_BACKLIGHT; - g->g.Contrast = GDISP_INITIAL_CONTRAST; - return TRUE; -} - -#if GDISP_HARDWARE_FLUSH -LLDSPEC void gdisp_lld_flush(GDisplay *g) { - unsigned p; - - // Don't flush if we don't need it. - if (!(g->flags & GDISP_FLG_NEEDFLUSH)) - return; - - acquire_bus(g); - enter_cmd_mode(g); - unsigned dstOffset = (PRIV(g)->buffer2 ? 4 : 0); - for (p = 0; p < 4; p++) { - write_cmd(g, ST7565_PAGE | (p + dstOffset)); - write_cmd(g, ST7565_COLUMN_MSB | 0); - write_cmd(g, ST7565_COLUMN_LSB | 0); - write_cmd(g, ST7565_RMW); - flush_cmd(g); - enter_data_mode(g); - write_data(g, RAM(g) + (p*GDISP_SCREEN_WIDTH), GDISP_SCREEN_WIDTH); - enter_cmd_mode(g); - } - unsigned line = (PRIV(g)->buffer2 ? 32 : 0); - write_cmd(g, ST7565_START_LINE | line); - flush_cmd(g); - PRIV(g)->buffer2 = !PRIV(g)->buffer2; - release_bus(g); - - g->flags &= ~GDISP_FLG_NEEDFLUSH; -} -#endif - -#if GDISP_HARDWARE_DRAWPIXEL -LLDSPEC void gdisp_lld_draw_pixel(GDisplay *g) { - coord_t x, y; - - switch(g->g.Orientation) { - default: - case GDISP_ROTATE_0: - x = g->p.x; - y = g->p.y; - break; - case GDISP_ROTATE_90: - x = g->p.y; - y = GDISP_SCREEN_HEIGHT-1 - g->p.x; - break; - case GDISP_ROTATE_180: - x = GDISP_SCREEN_WIDTH-1 - g->p.x; - y = GDISP_SCREEN_HEIGHT-1 - g->p.y; - break; - case GDISP_ROTATE_270: - x = GDISP_SCREEN_HEIGHT-1 - g->p.y; - y = g->p.x; - break; - } - if (gdispColor2Native(g->p.color) != Black) - RAM(g)[xyaddr(x, y)] |= xybit(y); - else - RAM(g)[xyaddr(x, y)] &= ~xybit(y); - g->flags |= GDISP_FLG_NEEDFLUSH; -} -#endif - -#if GDISP_HARDWARE_PIXELREAD -LLDSPEC color_t gdisp_lld_get_pixel_color(GDisplay *g) { - coord_t x, y; - - switch(g->g.Orientation) { - default: - case GDISP_ROTATE_0: - x = g->p.x; - y = g->p.y; - break; - case GDISP_ROTATE_90: - x = g->p.y; - y = GDISP_SCREEN_HEIGHT-1 - g->p.x; - break; - case GDISP_ROTATE_180: - x = GDISP_SCREEN_WIDTH-1 - g->p.x; - y = GDISP_SCREEN_HEIGHT-1 - g->p.y; - break; - case GDISP_ROTATE_270: - x = GDISP_SCREEN_HEIGHT-1 - g->p.y; - y = g->p.x; - break; - } - return (RAM(g)[xyaddr(x, y)] & xybit(y)) ? White : Black; -} -#endif - -LLDSPEC void gdisp_lld_blit_area(GDisplay *g) { - uint8_t* buffer = (uint8_t*)g->p.ptr; - int linelength = g->p.cx; - for (int i = 0; i < g->p.cy; i++) { - unsigned dstx = g->p.x; - unsigned dsty = g->p.y + i; - unsigned srcx = g->p.x1; - unsigned srcy = g->p.y1 + i; - unsigned srcbit = srcy * g->p.x2 + srcx; - for(int j=0; j < linelength; j++) { - uint8_t src = buffer[srcbit / 8]; - uint8_t bit = 7-(srcbit % 8); - uint8_t bitset = (src >> bit) & 1; - uint8_t* dst = &(RAM(g)[xyaddr(dstx, dsty)]); - if (bitset) { - *dst |= xybit(dsty); - } - else { - *dst &= ~xybit(dsty); - } - dstx++; - srcbit++; - } - } - g->flags |= GDISP_FLG_NEEDFLUSH; -} - -#if GDISP_NEED_CONTROL && GDISP_HARDWARE_CONTROL -LLDSPEC void gdisp_lld_control(GDisplay *g) { - switch(g->p.x) { - case GDISP_CONTROL_POWER: - if (g->g.Powermode == (powermode_t)g->p.ptr) - return; - switch((powermode_t)g->p.ptr) { - case powerOff: - case powerSleep: - case powerDeepSleep: - acquire_bus(g); - enter_cmd_mode(g); - write_cmd(g, ST7565_DISPLAY_OFF); - flush_cmd(g); - release_bus(g); - break; - case powerOn: - acquire_bus(g); - enter_cmd_mode(g); - write_cmd(g, ST7565_DISPLAY_ON); - flush_cmd(g); - release_bus(g); - break; - default: - return; - } - g->g.Powermode = (powermode_t)g->p.ptr; - return; - - case GDISP_CONTROL_ORIENTATION: - if (g->g.Orientation == (orientation_t)g->p.ptr) - return; - switch((orientation_t)g->p.ptr) { - /* Rotation is handled by the drawing routines */ - case GDISP_ROTATE_0: - case GDISP_ROTATE_180: - g->g.Height = GDISP_SCREEN_HEIGHT; - g->g.Width = GDISP_SCREEN_WIDTH; - break; - case GDISP_ROTATE_90: - case GDISP_ROTATE_270: - g->g.Height = GDISP_SCREEN_WIDTH; - g->g.Width = GDISP_SCREEN_HEIGHT; - break; - default: - return; - } - g->g.Orientation = (orientation_t)g->p.ptr; - return; - - case GDISP_CONTROL_CONTRAST: - g->g.Contrast = (unsigned)g->p.ptr & 63; - acquire_bus(g); - enter_cmd_mode(g); - write_cmd2(g, ST7565_CONTRAST, g->g.Contrast); - flush_cmd(g); - release_bus(g); - return; - } -} -#endif // GDISP_NEED_CONTROL - -#endif // GFX_USE_GDISP diff --git a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_config.h b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_config.h deleted file mode 100644 index 2b66a877c..000000000 --- a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/gdisp_lld_config.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * This file is subject to the terms of the GFX License. If a copy of - * the license was not distributed with this file, you can obtain one at: - * - * http://ugfx.org/license.html - */ - -#ifndef _GDISP_LLD_CONFIG_H -#define _GDISP_LLD_CONFIG_H - -#if GFX_USE_GDISP - -/*===========================================================================*/ -/* Driver hardware support. */ -/*===========================================================================*/ - -#define GDISP_HARDWARE_FLUSH TRUE // This controller requires flushing -#define GDISP_HARDWARE_DRAWPIXEL TRUE -#define GDISP_HARDWARE_PIXELREAD TRUE -#define GDISP_HARDWARE_CONTROL TRUE -#define GDISP_HARDWARE_BITFILLS TRUE - -#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_MONO - -#endif /* GFX_USE_GDISP */ - -#endif /* _GDISP_LLD_CONFIG_H */ diff --git a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/st7565.h b/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/st7565.h deleted file mode 100644 index 24924ff05..000000000 --- a/keyboards/ergodox/infinity/drivers/gdisp/st7565ergodox/st7565.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * This file is subject to the terms of the GFX License. If a copy of - * the license was not distributed with this file, you can obtain one at: - * - * http://ugfx.org/license.html - */ - -#ifndef _ST7565_H -#define _ST7565_H - -#define ST7565_CONTRAST 0x81 -#define ST7565_ALLON_NORMAL 0xA4 -#define ST7565_ALLON 0xA5 -#define ST7565_POSITIVE_DISPLAY 0xA6 -#define ST7565_INVERT_DISPLAY 0xA7 -#define ST7565_DISPLAY_OFF 0xAE -#define ST7565_DISPLAY_ON 0xAF - -#define ST7565_LCD_BIAS_7 0xA3 -#define ST7565_LCD_BIAS_9 0xA2 - -#define ST7565_ADC_NORMAL 0xA0 -#define ST7565_ADC_REVERSE 0xA1 - -#define ST7565_COM_SCAN_INC 0xC0 -#define ST7565_COM_SCAN_DEC 0xC8 - -#define ST7565_START_LINE 0x40 -#define ST7565_PAGE 0xB0 -#define ST7565_COLUMN_MSB 0x10 -#define ST7565_COLUMN_LSB 0x00 -#define ST7565_RMW 0xE0 - -#define ST7565_RESISTOR_RATIO 0x20 -#define ST7565_POWER_CONTROL 0x28 - -#define ST7565_RESET 0xE2 - -#endif /* _ST7565_H */ diff --git a/keyboards/ergodox/infinity/rules.mk b/keyboards/ergodox/infinity/rules.mk index bbb0f6efe..9e2246363 100644 --- a/keyboards/ergodox/infinity/rules.mk +++ b/keyboards/ergodox/infinity/rules.mk @@ -67,5 +67,5 @@ LCD_BACKLIGHT_ENABLE = yes MIDI_ENABLE = no RGBLIGHT_ENABLE = no -include $(SUBPROJECT_PATH)/drivers/gdisp/st7565ergodox/driver.mk -include $(SUBPROJECT_PATH)/drivers/gdisp/IS31FL3731C/driver.mk \ No newline at end of file +include $(TOP_DIR)/drivers/ugfx/gdisp/st7565ergodox/driver.mk +include $(TOP_DIR)/drivers/ugfx/gdisp/IS31FL3731C/driver.mk \ No newline at end of file diff --git a/keyboards/whitefox/board_IS31FL3731C.h b/keyboards/whitefox/board_IS31FL3731C.h new file mode 100644 index 000000000..3dc5327a5 --- /dev/null +++ b/keyboards/whitefox/board_IS31FL3731C.h @@ -0,0 +1,109 @@ +/* +Copyright 2016 Fred Sundvik <fsundvik@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/>. +*/ + +#ifndef _GDISP_LLD_BOARD_H +#define _GDISP_LLD_BOARD_H + +static const I2CConfig i2ccfg = { + 400000 // clock speed (Hz); 400kHz max for IS31 +}; + +#define GDISP_SCREEN_WIDTH 16 +#define GDISP_SCREEN_HEIGHT 5 + +static const uint8_t led_mask[] = { + 0xFF, 0x00, /* C1-1 -> C1-16 */ + 0xFF, 0x00, /* C2-1 -> C2-16 */ + 0xFF, 0x00, /* C3-1 -> C3-16 */ + 0xFF, 0x00, /* C4-1 -> C4-16 */ + 0xFF, 0x00, /* C5-1 -> C5-16 */ + 0xFF, 0x00, /* C6-1 -> C6-16 */ + 0xFF, 0x00, /* C7-1 -> C7-16 */ + 0xFF, 0x00, /* C8-1 -> C8-16 */ + 0xFE, 0x00, /* C9-1 -> C9-16 */ +}; + +// The address of the LED +#define LA(c, r) (c + r * 16 ) +// Need to be an address that is not mapped, but inside the range of the controller matrix +#define NA LA(8, 8) + +// The numbers in the comments are the led numbers DXX on the PCB +// The mapping is taken from the schematic of left hand side +static const uint8_t led_mapping[GDISP_SCREEN_HEIGHT][GDISP_SCREEN_WIDTH] = { +// 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + { LA(0, 0), LA(1, 0), LA(2, 0), LA(3, 0), LA(4, 0), LA(5, 0), LA(6, 0), LA(7, 0), LA(0, 1), LA(1, 1), LA(2, 1), LA(3, 1), LA(4, 1), LA(5, 1), LA(6, 1), LA(7, 1)}, +// 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 + { LA(0, 2), LA(1, 2), LA(2, 2), LA(3, 2), LA(4, 2), LA(5, 2), LA(6, 2), LA(7, 2), LA(0, 3), LA(1, 3), NA, LA(2, 3), LA(3, 3), LA(4, 3), LA(5, 3), LA(6, 3)}, +// 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 + { LA(7, 3), LA(0, 4), LA(1, 4), LA(2, 4), LA(3, 4), LA(4, 4), LA(5, 4), LA(6, 4), LA(7, 4), LA(0, 5), NA, LA(1, 5), LA(2, 5), LA(3, 5), LA(4, 5), LA(5, 5)}, +// 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 + { LA(6, 5), LA(7, 5), LA(0, 6), LA(1, 6), LA(2, 6), LA(3, 6), LA(4, 6), LA(5, 6), LA(6, 6), LA(7, 6), NA, LA(0, 7), LA(1, 7), LA(2, 7), LA(3, 7), LA(4, 7)}, +// 62 63 64 65 66 67 68 69 70 71 + { LA(5, 7), LA(6, 7), LA(7, 7), NA, NA, NA, LA(0, 8), NA, NA, NA, LA(1, 8), LA(2, 8), LA(3, 8), LA(4, 8), LA(5, 8), LA(6, 8)}, +}; + + +#define IS31_ADDR_DEFAULT 0x74 // AD connected to GND +#define IS31_TIMEOUT 5000 + +static GFXINLINE void init_board(GDisplay *g) { + (void) g; + /* I2C pins */ + palSetPadMode(GPIOB, 0, PAL_MODE_ALTERNATIVE_2); // PTB0/I2C0/SCL + palSetPadMode(GPIOB, 1, PAL_MODE_ALTERNATIVE_2); // PTB1/I2C0/SDA + palSetPadMode(GPIOB, 16, PAL_MODE_OUTPUT_PUSHPULL); + palClearPad(GPIOB, 16); + /* start I2C */ + i2cStart(&I2CD1, &i2ccfg); + // try high drive (from kiibohd) + I2CD1.i2c->C2 |= I2Cx_C2_HDRS; + // try glitch fixing (from kiibohd) + I2CD1.i2c->FLT = 4; +} + +static GFXINLINE void post_init_board(GDisplay *g) { + (void) g; +} + +static GFXINLINE const uint8_t* get_led_mask(GDisplay* g) { + (void) g; + return led_mask; +} + +static GFXINLINE uint8_t get_led_address(GDisplay* g, uint16_t x, uint16_t y) +{ + (void) g; + return led_mapping[y][x]; +} + +static GFXINLINE void set_hardware_shutdown(GDisplay* g, bool shutdown) { + (void) g; + if(!shutdown) { + palSetPad(GPIOB, 16); + } + else { + palClearPad(GPIOB, 16); + } +} + +static GFXINLINE void write_data(GDisplay *g, uint8_t* data, uint16_t length) { + (void) g; + i2cMasterTransmitTimeout(&I2CD1, IS31_ADDR_DEFAULT, data, length, 0, 0, US2ST(IS31_TIMEOUT)); +} + +#endif /* _GDISP_LLD_BOARD_H */ diff --git a/keyboards/whitefox/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h b/keyboards/whitefox/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h deleted file mode 100644 index 3dc5327a5..000000000 --- a/keyboards/whitefox/drivers/gdisp/IS31FL3731C/board_IS31FL3731C.h +++ /dev/null @@ -1,109 +0,0 @@ -/* -Copyright 2016 Fred Sundvik <fsundvik@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/>. -*/ - -#ifndef _GDISP_LLD_BOARD_H -#define _GDISP_LLD_BOARD_H - -static const I2CConfig i2ccfg = { - 400000 // clock speed (Hz); 400kHz max for IS31 -}; - -#define GDISP_SCREEN_WIDTH 16 -#define GDISP_SCREEN_HEIGHT 5 - -static const uint8_t led_mask[] = { - 0xFF, 0x00, /* C1-1 -> C1-16 */ - 0xFF, 0x00, /* C2-1 -> C2-16 */ - 0xFF, 0x00, /* C3-1 -> C3-16 */ - 0xFF, 0x00, /* C4-1 -> C4-16 */ - 0xFF, 0x00, /* C5-1 -> C5-16 */ - 0xFF, 0x00, /* C6-1 -> C6-16 */ - 0xFF, 0x00, /* C7-1 -> C7-16 */ - 0xFF, 0x00, /* C8-1 -> C8-16 */ - 0xFE, 0x00, /* C9-1 -> C9-16 */ -}; - -// The address of the LED -#define LA(c, r) (c + r * 16 ) -// Need to be an address that is not mapped, but inside the range of the controller matrix -#define NA LA(8, 8) - -// The numbers in the comments are the led numbers DXX on the PCB -// The mapping is taken from the schematic of left hand side -static const uint8_t led_mapping[GDISP_SCREEN_HEIGHT][GDISP_SCREEN_WIDTH] = { -// 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 - { LA(0, 0), LA(1, 0), LA(2, 0), LA(3, 0), LA(4, 0), LA(5, 0), LA(6, 0), LA(7, 0), LA(0, 1), LA(1, 1), LA(2, 1), LA(3, 1), LA(4, 1), LA(5, 1), LA(6, 1), LA(7, 1)}, -// 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 - { LA(0, 2), LA(1, 2), LA(2, 2), LA(3, 2), LA(4, 2), LA(5, 2), LA(6, 2), LA(7, 2), LA(0, 3), LA(1, 3), NA, LA(2, 3), LA(3, 3), LA(4, 3), LA(5, 3), LA(6, 3)}, -// 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 - { LA(7, 3), LA(0, 4), LA(1, 4), LA(2, 4), LA(3, 4), LA(4, 4), LA(5, 4), LA(6, 4), LA(7, 4), LA(0, 5), NA, LA(1, 5), LA(2, 5), LA(3, 5), LA(4, 5), LA(5, 5)}, -// 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 - { LA(6, 5), LA(7, 5), LA(0, 6), LA(1, 6), LA(2, 6), LA(3, 6), LA(4, 6), LA(5, 6), LA(6, 6), LA(7, 6), NA, LA(0, 7), LA(1, 7), LA(2, 7), LA(3, 7), LA(4, 7)}, -// 62 63 64 65 66 67 68 69 70 71 - { LA(5, 7), LA(6, 7), LA(7, 7), NA, NA, NA, LA(0, 8), NA, NA, NA, LA(1, 8), LA(2, 8), LA(3, 8), LA(4, 8), LA(5, 8), LA(6, 8)}, -}; - - -#define IS31_ADDR_DEFAULT 0x74 // AD connected to GND -#define IS31_TIMEOUT 5000 - -static GFXINLINE void init_board(GDisplay *g) { - (void) g; - /* I2C pins */ - palSetPadMode(GPIOB, 0, PAL_MODE_ALTERNATIVE_2); // PTB0/I2C0/SCL - palSetPadMode(GPIOB, 1, PAL_MODE_ALTERNATIVE_2); // PTB1/I2C0/SDA - palSetPadMode(GPIOB, 16, PAL_MODE_OUTPUT_PUSHPULL); - palClearPad(GPIOB, 16); - /* start I2C */ - i2cStart(&I2CD1, &i2ccfg); - // try high drive (from kiibohd) - I2CD1.i2c->C2 |= I2Cx_C2_HDRS; - // try glitch fixing (from kiibohd) - I2CD1.i2c->FLT = 4; -} - -static GFXINLINE void post_init_board(GDisplay *g) { - (void) g; -} - -static GFXINLINE const uint8_t* get_led_mask(GDisplay* g) { - (void) g; - return led_mask; -} - -static GFXINLINE uint8_t get_led_address(GDisplay* g, uint16_t x, uint16_t y) -{ - (void) g; - return led_mapping[y][x]; -} - -static GFXINLINE void set_hardware_shutdown(GDisplay* g, bool shutdown) { - (void) g; - if(!shutdown) { - palSetPad(GPIOB, 16); - } - else { - palClearPad(GPIOB, 16); - } -} - -static GFXINLINE void write_data(GDisplay *g, uint8_t* data, uint16_t length) { - (void) g; - i2cMasterTransmitTimeout(&I2CD1, IS31_ADDR_DEFAULT, data, length, 0, 0, US2ST(IS31_TIMEOUT)); -} - -#endif /* _GDISP_LLD_BOARD_H */ diff --git a/keyboards/whitefox/drivers/gdisp/IS31FL3731C/driver.mk b/keyboards/whitefox/drivers/gdisp/IS31FL3731C/driver.mk deleted file mode 100644 index f32d0d868..000000000 --- a/keyboards/whitefox/drivers/gdisp/IS31FL3731C/driver.mk +++ /dev/null @@ -1,2 +0,0 @@ -GFXINC += drivers/gdisp/IS31FL3731C -GFXSRC += drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c diff --git a/keyboards/whitefox/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c b/keyboards/whitefox/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c deleted file mode 100644 index c807cbd1e..000000000 --- a/keyboards/whitefox/drivers/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c +++ /dev/null @@ -1,312 +0,0 @@ -/* -Copyright 2016 Fred Sundvik <fsundvik@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/>. -*/ - -#include "gfx.h" - -#if GFX_USE_GDISP - -#define GDISP_DRIVER_VMT GDISPVMT_IS31FL3731C_WHITEFOX -#include "drivers/gdisp/IS31FL3731C/gdisp_lld_config.h" -#include "src/gdisp/gdisp_driver.h" - -#include "board_IS31FL3731C.h" - - -// Can't include led_tables from here -extern const uint8_t CIE1931_CURVE[]; - -/*===========================================================================*/ -/* Driver local definitions. */ -/*===========================================================================*/ - -#ifndef GDISP_SCREEN_HEIGHT - #define GDISP_SCREEN_HEIGHT 9 -#endif -#ifndef GDISP_SCREEN_WIDTH - #define GDISP_SCREEN_WIDTH 16 -#endif -#ifndef GDISP_INITIAL_CONTRAST - #define GDISP_INITIAL_CONTRAST 0 -#endif -#ifndef GDISP_INITIAL_BACKLIGHT - #define GDISP_INITIAL_BACKLIGHT 0 -#endif - -#define GDISP_FLG_NEEDFLUSH (GDISP_FLG_DRIVER<<0) - -#define IS31_ADDR_DEFAULT 0x74 - -#define IS31_REG_CONFIG 0x00 -// bits in reg -#define IS31_REG_CONFIG_PICTUREMODE 0x00 -#define IS31_REG_CONFIG_AUTOPLAYMODE 0x08 -#define IS31_REG_CONFIG_AUDIOPLAYMODE 0x18 -// D2:D0 bits are starting frame for autoplay mode - -#define IS31_REG_PICTDISP 0x01 // D2:D0 frame select for picture mode - -#define IS31_REG_AUTOPLAYCTRL1 0x02 -// D6:D4 number of loops (000=infty) -// D2:D0 number of frames to be used - -#define IS31_REG_AUTOPLAYCTRL2 0x03 // D5:D0 delay time (*11ms) - -#define IS31_REG_DISPLAYOPT 0x05 -#define IS31_REG_DISPLAYOPT_INTENSITY_SAME 0x20 // same intensity for all frames -#define IS31_REG_DISPLAYOPT_BLINK_ENABLE 0x8 -// D2:D0 bits blink period time (*0.27s) - -#define IS31_REG_AUDIOSYNC 0x06 -#define IS31_REG_AUDIOSYNC_ENABLE 0x1 - -#define IS31_REG_FRAMESTATE 0x07 - -#define IS31_REG_BREATHCTRL1 0x08 -// D6:D4 fade out time (26ms*2^i) -// D2:D0 fade in time (26ms*2^i) - -#define IS31_REG_BREATHCTRL2 0x09 -#define IS31_REG_BREATHCTRL2_ENABLE 0x10 -// D2:D0 extinguish time (3.5ms*2^i) - -#define IS31_REG_SHUTDOWN 0x0A -#define IS31_REG_SHUTDOWN_OFF 0x0 -#define IS31_REG_SHUTDOWN_ON 0x1 - -#define IS31_REG_AGCCTRL 0x0B -#define IS31_REG_ADCRATE 0x0C - -#define IS31_COMMANDREGISTER 0xFD -#define IS31_FUNCTIONREG 0x0B // helpfully called 'page nine' -#define IS31_FUNCTIONREG_SIZE 0xD - -#define IS31_FRAME_SIZE 0xB4 - -#define IS31_PWM_REG 0x24 -#define IS31_PWM_SIZE 0x90 - -#define IS31_LED_MASK_SIZE 0x12 -#define IS31_SCREEN_WIDTH 16 - -#define IS31 - -/*===========================================================================*/ -/* Driver local functions. */ -/*===========================================================================*/ - -typedef struct{ - uint8_t write_buffer_offset; - uint8_t write_buffer[IS31_FRAME_SIZE]; - uint8_t frame_buffer[GDISP_SCREEN_HEIGHT * GDISP_SCREEN_WIDTH]; - uint8_t page; -}__attribute__((__packed__)) PrivData; - -// Some common routines and macros -#define PRIV(g) ((PrivData*)g->priv) - -/*===========================================================================*/ -/* Driver exported functions. */ -/*===========================================================================*/ - -static GFXINLINE void write_page(GDisplay* g, uint8_t page) { - uint8_t tx[2] __attribute__((aligned(2))); - tx[0] = IS31_COMMANDREGISTER; - tx[1] = page; - write_data(g, tx, 2); -} - -static GFXINLINE void write_register(GDisplay* g, uint8_t page, uint8_t reg, uint8_t data) { - uint8_t tx[2] __attribute__((aligned(2))); - tx[0] = reg; - tx[1] = data; - write_page(g, page); - write_data(g, tx, 2); -} - -static GFXINLINE void write_ram(GDisplay *g, uint8_t page, uint16_t offset, uint16_t length) { - PRIV(g)->write_buffer_offset = offset; - write_page(g, page); - write_data(g, (uint8_t*)PRIV(g), length + 1); -} - -LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { - // The private area is the display surface. - g->priv = gfxAlloc(sizeof(PrivData)); - __builtin_memset(PRIV(g), 0, sizeof(PrivData)); - PRIV(g)->page = 0; - - // Initialise the board interface - init_board(g); - gfxSleepMilliseconds(10); - - // zero function page, all registers (assuming full_page is all zeroes) - write_ram(g, IS31_FUNCTIONREG, 0, IS31_FUNCTIONREG_SIZE); - set_hardware_shutdown(g, false); - gfxSleepMilliseconds(10); - // software shutdown - write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); - gfxSleepMilliseconds(10); - // zero function page, all registers - write_ram(g, IS31_FUNCTIONREG, 0, IS31_FUNCTIONREG_SIZE); - gfxSleepMilliseconds(10); - - - // zero all LED registers on all 8 pages, and enable the mask - __builtin_memcpy(PRIV(g)->write_buffer, get_led_mask(g), IS31_LED_MASK_SIZE); - for(uint8_t i=0; i<8; i++) { - write_ram(g, i, 0, IS31_FRAME_SIZE); - gfxSleepMilliseconds(1); - } - - // software shutdown disable (i.e. turn stuff on) - write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); - gfxSleepMilliseconds(10); - - // Finish Init - post_init_board(g); - - /* Initialise the GDISP structure */ - g->g.Width = GDISP_SCREEN_WIDTH; - g->g.Height = GDISP_SCREEN_HEIGHT; - g->g.Orientation = GDISP_ROTATE_0; - g->g.Powermode = powerOff; - g->g.Backlight = GDISP_INITIAL_BACKLIGHT; - g->g.Contrast = GDISP_INITIAL_CONTRAST; - return TRUE; -} - -#if GDISP_HARDWARE_FLUSH - LLDSPEC void gdisp_lld_flush(GDisplay *g) { - // Don't flush if we don't need it. - if (!(g->flags & GDISP_FLG_NEEDFLUSH)) - return; - - PRIV(g)->page++; - PRIV(g)->page %= 2; - // TODO: some smarter algorithm for this - // We should run only one physical page at a time - // This way we don't need to send so much data, and - // we could use slightly less memory - uint8_t* src = PRIV(g)->frame_buffer; - for (int y=0;y<GDISP_SCREEN_HEIGHT;y++) { - for (int x=0;x<GDISP_SCREEN_WIDTH;x++) { - uint8_t val = (uint16_t)*src * g->g.Backlight / 100; - PRIV(g)->write_buffer[get_led_address(g, x, y)]=CIE1931_CURVE[val]; - ++src; - } - } - write_ram(g, PRIV(g)->page, IS31_PWM_REG, IS31_PWM_SIZE); - gfxSleepMilliseconds(1); - write_register(g, IS31_FUNCTIONREG, IS31_REG_PICTDISP, PRIV(g)->page); - - g->flags &= ~GDISP_FLG_NEEDFLUSH; - } -#endif - -#if GDISP_HARDWARE_DRAWPIXEL - LLDSPEC void gdisp_lld_draw_pixel(GDisplay *g) { - coord_t x, y; - - switch(g->g.Orientation) { - default: - case GDISP_ROTATE_0: - x = g->p.x; - y = g->p.y; - break; - case GDISP_ROTATE_180: - x = GDISP_SCREEN_WIDTH-1 - g->p.x; - y = g->p.y; - break; - } - PRIV(g)->frame_buffer[y * GDISP_SCREEN_WIDTH + x] = gdispColor2Native(g->p.color); - g->flags |= GDISP_FLG_NEEDFLUSH; - } -#endif - -#if GDISP_HARDWARE_PIXELREAD - LLDSPEC color_t gdisp_lld_get_pixel_color(GDisplay *g) { - coord_t x, y; - - switch(g->g.Orientation) { - default: - case GDISP_ROTATE_0: - x = g->p.x; - y = g->p.y; - break; - case GDISP_ROTATE_180: - x = GDISP_SCREEN_WIDTH-1 - g->p.x; - y = g->p.y; - break; - } - return gdispNative2Color(PRIV(g)->frame_buffer[y * GDISP_SCREEN_WIDTH + x]); - } -#endif - -#if GDISP_NEED_CONTROL && GDISP_HARDWARE_CONTROL - LLDSPEC void gdisp_lld_control(GDisplay *g) { - switch(g->p.x) { - case GDISP_CONTROL_POWER: - if (g->g.Powermode == (powermode_t)g->p.ptr) - return; - switch((powermode_t)g->p.ptr) { - case powerOff: - case powerSleep: - case powerDeepSleep: - write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); - break; - case powerOn: - write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON); - break; - default: - return; - } - g->g.Powermode = (powermode_t)g->p.ptr; - return; - - case GDISP_CONTROL_ORIENTATION: - if (g->g.Orientation == (orientation_t)g->p.ptr) - return; - switch((orientation_t)g->p.ptr) { - /* Rotation is handled by the drawing routines */ - case GDISP_ROTATE_0: - case GDISP_ROTATE_180: - g->g.Height = GDISP_SCREEN_HEIGHT; - g->g.Width = GDISP_SCREEN_WIDTH; - break; - case GDISP_ROTATE_90: - case GDISP_ROTATE_270: - g->g.Height = GDISP_SCREEN_WIDTH; - g->g.Width = GDISP_SCREEN_HEIGHT; - break; - default: - return; - } - g->g.Orientation = (orientation_t)g->p.ptr; - return; - - case GDISP_CONTROL_BACKLIGHT: - if (g->g.Backlight == (unsigned)g->p.ptr) - return; - unsigned val = (unsigned)g->p.ptr; - g->g.Backlight = val > 100 ? 100 : val; - g->flags |= GDISP_FLG_NEEDFLUSH; - return; - } - } -#endif // GDISP_NEED_CONTROL - -#endif // GFX_USE_GDISP diff --git a/keyboards/whitefox/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h b/keyboards/whitefox/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h deleted file mode 100644 index bb28ad775..000000000 --- a/keyboards/whitefox/drivers/gdisp/IS31FL3731C/gdisp_lld_config.h +++ /dev/null @@ -1,36 +0,0 @@ -/* -Copyright 2016 Fred Sundvik <fsundvik@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/>. -*/ - -#ifndef _GDISP_LLD_CONFIG_H -#define _GDISP_LLD_CONFIG_H - -#if GFX_USE_GDISP - -/*===========================================================================*/ -/* Driver hardware support. */ -/*===========================================================================*/ - -#define GDISP_HARDWARE_FLUSH TRUE // This controller requires flushing -#define GDISP_HARDWARE_DRAWPIXEL TRUE -#define GDISP_HARDWARE_PIXELREAD TRUE -#define GDISP_HARDWARE_CONTROL TRUE - -#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_GRAY256 - -#endif /* GFX_USE_GDISP */ - -#endif /* _GDISP_LLD_CONFIG_H */ diff --git a/keyboards/whitefox/rules.mk b/keyboards/whitefox/rules.mk index fb34dbb9a..4cf23a390 100644 --- a/keyboards/whitefox/rules.mk +++ b/keyboards/whitefox/rules.mk @@ -70,4 +70,4 @@ CUSTOM_MATRIX = yes # Custom matrix file BACKLIGHT_ENABLE = yes VISUALIZER_ENABLE = yes -include $(KEYBOARD_PATH)/drivers/gdisp/IS31FL3731C/driver.mk +include $(TOP_DIR)/drivers/ugfx/gdisp/IS31FL3731C/driver.mk -- cgit v1.2.3 From 630f065376618d94f4616687629aadb3ee91e562 Mon Sep 17 00:00:00 2001 From: Fred Sundvik <fsundvik@gmail.com> Date: Sun, 9 Jul 2017 13:37:24 +0300 Subject: Remove ergodox from gdisp driver names --- drivers/ugfx/gdisp/IS31FL3731C/driver.mk | 2 - drivers/ugfx/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c | 312 ------------------- drivers/ugfx/gdisp/IS31FL3731C/gdisp_lld_config.h | 36 --- drivers/ugfx/gdisp/is31fl3731c/driver.mk | 2 + drivers/ugfx/gdisp/is31fl3731c/gdisp_is31fl3731c.c | 312 +++++++++++++++++++ drivers/ugfx/gdisp/is31fl3731c/gdisp_lld_config.h | 36 +++ drivers/ugfx/gdisp/st7565/driver.mk | 2 + drivers/ugfx/gdisp/st7565/gdisp_lld_ST7565.c | 329 +++++++++++++++++++++ drivers/ugfx/gdisp/st7565/gdisp_lld_config.h | 27 ++ drivers/ugfx/gdisp/st7565/st7565.h | 39 +++ drivers/ugfx/gdisp/st7565ergodox/driver.mk | 2 - .../ugfx/gdisp/st7565ergodox/gdisp_lld_ST7565.c | 329 --------------------- .../ugfx/gdisp/st7565ergodox/gdisp_lld_config.h | 27 -- drivers/ugfx/gdisp/st7565ergodox/st7565.h | 39 --- keyboards/ergodox/infinity/gfxconf.h | 2 +- keyboards/ergodox/infinity/rules.mk | 4 +- keyboards/whitefox/gfxconf.h | 2 +- keyboards/whitefox/rules.mk | 2 +- 18 files changed, 752 insertions(+), 752 deletions(-) delete mode 100644 drivers/ugfx/gdisp/IS31FL3731C/driver.mk delete mode 100644 drivers/ugfx/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c delete mode 100644 drivers/ugfx/gdisp/IS31FL3731C/gdisp_lld_config.h create mode 100644 drivers/ugfx/gdisp/is31fl3731c/driver.mk create mode 100644 drivers/ugfx/gdisp/is31fl3731c/gdisp_is31fl3731c.c create mode 100644 drivers/ugfx/gdisp/is31fl3731c/gdisp_lld_config.h create mode 100644 drivers/ugfx/gdisp/st7565/driver.mk create mode 100644 drivers/ugfx/gdisp/st7565/gdisp_lld_ST7565.c create mode 100644 drivers/ugfx/gdisp/st7565/gdisp_lld_config.h create mode 100644 drivers/ugfx/gdisp/st7565/st7565.h delete mode 100644 drivers/ugfx/gdisp/st7565ergodox/driver.mk delete mode 100644 drivers/ugfx/gdisp/st7565ergodox/gdisp_lld_ST7565.c delete mode 100644 drivers/ugfx/gdisp/st7565ergodox/gdisp_lld_config.h delete mode 100644 drivers/ugfx/gdisp/st7565ergodox/st7565.h diff --git a/drivers/ugfx/gdisp/IS31FL3731C/driver.mk b/drivers/ugfx/gdisp/IS31FL3731C/driver.mk deleted file mode 100644 index 58a16d209..000000000 --- a/drivers/ugfx/gdisp/IS31FL3731C/driver.mk +++ /dev/null @@ -1,2 +0,0 @@ -GFXINC += drivers/ugfx/gdisp/IS31FL3731C -GFXSRC += drivers/ugfx/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c diff --git a/drivers/ugfx/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c b/drivers/ugfx/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c deleted file mode 100644 index 2d78a5533..000000000 --- a/drivers/ugfx/gdisp/IS31FL3731C/gdisp_IS31FL3731C.c +++ /dev/null @@ -1,312 +0,0 @@ -/* -Copyright 2016 Fred Sundvik <fsundvik@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/>. -*/ - -#include "gfx.h" - -#if GFX_USE_GDISP - -#define GDISP_DRIVER_VMT GDISPVMT_IS31FL3731C_ERGODOX -#include "gdisp_lld_config.h" -#include "src/gdisp/gdisp_driver.h" - -#include "board_IS31FL3731C.h" - - -// Can't include led_tables from here -extern const uint8_t CIE1931_CURVE[]; - -/*===========================================================================*/ -/* Driver local definitions. */ -/*===========================================================================*/ - -#ifndef GDISP_SCREEN_HEIGHT - #define GDISP_SCREEN_HEIGHT 9 -#endif -#ifndef GDISP_SCREEN_WIDTH - #define GDISP_SCREEN_WIDTH 16 -#endif -#ifndef GDISP_INITIAL_CONTRAST - #define GDISP_INITIAL_CONTRAST 0 -#endif -#ifndef GDISP_INITIAL_BACKLIGHT - #define GDISP_INITIAL_BACKLIGHT 0 -#endif - -#define GDISP_FLG_NEEDFLUSH (GDISP_FLG_DRIVER<<0) - -#define IS31_ADDR_DEFAULT 0x74 - -#define IS31_REG_CONFIG 0x00 -// bits in reg -#define IS31_REG_CONFIG_PICTUREMODE 0x00 -#define IS31_REG_CONFIG_AUTOPLAYMODE 0x08 -#define IS31_REG_CONFIG_AUDIOPLAYMODE 0x18 -// D2:D0 bits are starting frame for autoplay mode - -#define IS31_REG_PICTDISP 0x01 // D2:D0 frame select for picture mode - -#define IS31_REG_AUTOPLAYCTRL1 0x02 -// D6:D4 number of loops (000=infty) -// D2:D0 number of frames to be used - -#define IS31_REG_AUTOPLAYCTRL2 0x03 // D5:D0 delay time (*11ms) - -#define IS31_REG_DISPLAYOPT 0x05 -#define IS31_REG_DISPLAYOPT_INTENSITY_SAME 0x20 // same intensity for all frames -#define IS31_REG_DISPLAYOPT_BLINK_ENABLE 0x8 -// D2:D0 bits blink period time (*0.27s) - -#define IS31_REG_AUDIOSYNC 0x06 -#define IS31_REG_AUDIOSYNC_ENABLE 0x1 - -#define IS31_REG_FRAMESTATE 0x07 - -#define IS31_REG_BREATHCTRL1 0x08 -// D6:D4 fade out time (26ms*2^i) -// D2:D0 fade in time (26ms*2^i) - -#define IS31_REG_BREATHCTRL2 0x09 -#define IS31_REG_BREATHCTRL2_ENABLE 0x10 -// D2:D0 extinguish time (3.5ms*2^i) - -#define IS31_REG_SHUTDOWN 0x0A -#define IS31_REG_SHUTDOWN_OFF 0x0 -#define IS31_REG_SHUTDOWN_ON 0x1 - -#define IS31_REG_AGCCTRL 0x0B -#define IS31_REG_ADCRATE 0x0C - -#define IS31_COMMANDREGISTER 0xFD -#define IS31_FUNCTIONREG 0x0B // helpfully called 'page nine' -#define IS31_FUNCTIONREG_SIZE 0xD - -#define IS31_FRAME_SIZE 0xB4 - -#define IS31_PWM_REG 0x24 -#define IS31_PWM_SIZE 0x90 - -#define IS31_LED_MASK_SIZE 0x12 -#define IS31_SCREEN_WIDTH 16 - -#define IS31 - -/*===========================================================================*/ -/* Driver local functions. */ -/*===========================================================================*/ - -typedef struct{ - uint8_t write_buffer_offset; - uint8_t write_buffer[IS31_FRAME_SIZE]; - uint8_t frame_buffer[GDISP_SCREEN_HEIGHT * GDISP_SCREEN_WIDTH]; - uint8_t page; -}__attribute__((__packed__)) PrivData; - -// Some common routines and macros -#define PRIV(g) ((PrivData*)g->priv) - -/*===========================================================================*/ -/* Driver exported functions. */ -/*===========================================================================*/ - -static GFXINLINE void write_page(GDisplay* g, uint8_t page) { - uint8_t tx[2] __attribute__((aligned(2))); - tx[0] = IS31_COMMANDREGISTER; - tx[1] = page; - write_data(g, tx, 2); -} - -static GFXINLINE void write_register(GDisplay* g, uint8_t page, uint8_t reg, uint8_t data) { - uint8_t tx[2] __attribute__((aligned(2))); - tx[0] = reg; - tx[1] = data; - write_page(g, page); - write_data(g, tx, 2); -} - -static GFXINLINE void write_ram(GDisplay *g, uint8_t page, uint16_t offset, uint16_t length) { - PRIV(g)->write_buffer_offset = offset; - write_page(g, page); - write_data(g, (uint8_t*)PRIV(g), length + 1); -} - -LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { - // The private area is the display surface. - g->priv = gfxAlloc(sizeof(PrivData)); - __builtin_memset(PRIV(g), 0, sizeof(PrivData)); - PRIV(g)->page = 0; - - // Initialise the board interface - init_board(g); - gfxSleepMilliseconds(10); - - // zero function page, all registers (assuming full_page is all zeroes) - write_ram(g, IS31_FUNCTIONREG, 0, IS31_FUNCTIONREG_SIZE); - set_hardware_shutdown(g, false); - gfxSleepMilliseconds(10); - // software shutdown - write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); - gfxSleepMilliseconds(10); - // zero function page, all registers - write_ram(g, IS31_FUNCTIONREG, 0, IS31_FUNCTIONREG_SIZE); - gfxSleepMilliseconds(10); - - - // zero all LED registers on all 8 pages, and enable the mask - __builtin_memcpy(PRIV(g)->write_buffer, get_led_mask(g), IS31_LED_MASK_SIZE); - for(uint8_t i=0; i<8; i++) { - write_ram(g, i, 0, IS31_FRAME_SIZE); - gfxSleepMilliseconds(1); - } - - // software shutdown disable (i.e. turn stuff on) - write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); - gfxSleepMilliseconds(10); - - // Finish Init - post_init_board(g); - - /* Initialise the GDISP structure */ - g->g.Width = GDISP_SCREEN_WIDTH; - g->g.Height = GDISP_SCREEN_HEIGHT; - g->g.Orientation = GDISP_ROTATE_0; - g->g.Powermode = powerOff; - g->g.Backlight = GDISP_INITIAL_BACKLIGHT; - g->g.Contrast = GDISP_INITIAL_CONTRAST; - return TRUE; -} - -#if GDISP_HARDWARE_FLUSH - LLDSPEC void gdisp_lld_flush(GDisplay *g) { - // Don't flush if we don't need it. - if (!(g->flags & GDISP_FLG_NEEDFLUSH)) - return; - - PRIV(g)->page++; - PRIV(g)->page %= 2; - // TODO: some smarter algorithm for this - // We should run only one physical page at a time - // This way we don't need to send so much data, and - // we could use slightly less memory - uint8_t* src = PRIV(g)->frame_buffer; - for (int y=0;y<GDISP_SCREEN_HEIGHT;y++) { - for (int x=0;x<GDISP_SCREEN_WIDTH;x++) { - uint8_t val = (uint16_t)*src * g->g.Backlight / 100; - PRIV(g)->write_buffer[get_led_address(g, x, y)]=CIE1931_CURVE[val]; - ++src; - } - } - write_ram(g, PRIV(g)->page, IS31_PWM_REG, IS31_PWM_SIZE); - gfxSleepMilliseconds(1); - write_register(g, IS31_FUNCTIONREG, IS31_REG_PICTDISP, PRIV(g)->page); - - g->flags &= ~GDISP_FLG_NEEDFLUSH; - } -#endif - -#if GDISP_HARDWARE_DRAWPIXEL - LLDSPEC void gdisp_lld_draw_pixel(GDisplay *g) { - coord_t x, y; - - switch(g->g.Orientation) { - default: - case GDISP_ROTATE_0: - x = g->p.x; - y = g->p.y; - break; - case GDISP_ROTATE_180: - x = GDISP_SCREEN_WIDTH-1 - g->p.x; - y = g->p.y; - break; - } - PRIV(g)->frame_buffer[y * GDISP_SCREEN_WIDTH + x] = gdispColor2Native(g->p.color); - g->flags |= GDISP_FLG_NEEDFLUSH; - } -#endif - -#if GDISP_HARDWARE_PIXELREAD - LLDSPEC color_t gdisp_lld_get_pixel_color(GDisplay *g) { - coord_t x, y; - - switch(g->g.Orientation) { - default: - case GDISP_ROTATE_0: - x = g->p.x; - y = g->p.y; - break; - case GDISP_ROTATE_180: - x = GDISP_SCREEN_WIDTH-1 - g->p.x; - y = g->p.y; - break; - } - return gdispNative2Color(PRIV(g)->frame_buffer[y * GDISP_SCREEN_WIDTH + x]); - } -#endif - -#if GDISP_NEED_CONTROL && GDISP_HARDWARE_CONTROL - LLDSPEC void gdisp_lld_control(GDisplay *g) { - switch(g->p.x) { - case GDISP_CONTROL_POWER: - if (g->g.Powermode == (powermode_t)g->p.ptr) - return; - switch((powermode_t)g->p.ptr) { - case powerOff: - case powerSleep: - case powerDeepSleep: - write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); - break; - case powerOn: - write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON); - break; - default: - return; - } - g->g.Powermode = (powermode_t)g->p.ptr; - return; - - case GDISP_CONTROL_ORIENTATION: - if (g->g.Orientation == (orientation_t)g->p.ptr) - return; - switch((orientation_t)g->p.ptr) { - /* Rotation is handled by the drawing routines */ - case GDISP_ROTATE_0: - case GDISP_ROTATE_180: - g->g.Height = GDISP_SCREEN_HEIGHT; - g->g.Width = GDISP_SCREEN_WIDTH; - break; - case GDISP_ROTATE_90: - case GDISP_ROTATE_270: - g->g.Height = GDISP_SCREEN_WIDTH; - g->g.Width = GDISP_SCREEN_HEIGHT; - break; - default: - return; - } - g->g.Orientation = (orientation_t)g->p.ptr; - return; - - case GDISP_CONTROL_BACKLIGHT: - if (g->g.Backlight == (unsigned)g->p.ptr) - return; - unsigned val = (unsigned)g->p.ptr; - g->g.Backlight = val > 100 ? 100 : val; - g->flags |= GDISP_FLG_NEEDFLUSH; - return; - } - } -#endif // GDISP_NEED_CONTROL - -#endif // GFX_USE_GDISP diff --git a/drivers/ugfx/gdisp/IS31FL3731C/gdisp_lld_config.h b/drivers/ugfx/gdisp/IS31FL3731C/gdisp_lld_config.h deleted file mode 100644 index bb28ad775..000000000 --- a/drivers/ugfx/gdisp/IS31FL3731C/gdisp_lld_config.h +++ /dev/null @@ -1,36 +0,0 @@ -/* -Copyright 2016 Fred Sundvik <fsundvik@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/>. -*/ - -#ifndef _GDISP_LLD_CONFIG_H -#define _GDISP_LLD_CONFIG_H - -#if GFX_USE_GDISP - -/*===========================================================================*/ -/* Driver hardware support. */ -/*===========================================================================*/ - -#define GDISP_HARDWARE_FLUSH TRUE // This controller requires flushing -#define GDISP_HARDWARE_DRAWPIXEL TRUE -#define GDISP_HARDWARE_PIXELREAD TRUE -#define GDISP_HARDWARE_CONTROL TRUE - -#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_GRAY256 - -#endif /* GFX_USE_GDISP */ - -#endif /* _GDISP_LLD_CONFIG_H */ diff --git a/drivers/ugfx/gdisp/is31fl3731c/driver.mk b/drivers/ugfx/gdisp/is31fl3731c/driver.mk new file mode 100644 index 000000000..c9de62d1e --- /dev/null +++ b/drivers/ugfx/gdisp/is31fl3731c/driver.mk @@ -0,0 +1,2 @@ +GFXINC += drivers/ugfx/gdisp/is31fl3731c +GFXSRC += drivers/ugfx/gdisp/is31fl3731c/gdisp_is31fl3731c.c diff --git a/drivers/ugfx/gdisp/is31fl3731c/gdisp_is31fl3731c.c b/drivers/ugfx/gdisp/is31fl3731c/gdisp_is31fl3731c.c new file mode 100644 index 000000000..c55dd0a0e --- /dev/null +++ b/drivers/ugfx/gdisp/is31fl3731c/gdisp_is31fl3731c.c @@ -0,0 +1,312 @@ +/* +Copyright 2016 Fred Sundvik <fsundvik@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/>. +*/ + +#include "gfx.h" + +#if GFX_USE_GDISP + +#define GDISP_DRIVER_VMT GDISPVMT_IS31FL3731C_QMK +#include "gdisp_lld_config.h" +#include "src/gdisp/gdisp_driver.h" + +#include "board_IS31FL3731C.h" + + +// Can't include led_tables from here +extern const uint8_t CIE1931_CURVE[]; + +/*===========================================================================*/ +/* Driver local definitions. */ +/*===========================================================================*/ + +#ifndef GDISP_SCREEN_HEIGHT + #define GDISP_SCREEN_HEIGHT 9 +#endif +#ifndef GDISP_SCREEN_WIDTH + #define GDISP_SCREEN_WIDTH 16 +#endif +#ifndef GDISP_INITIAL_CONTRAST + #define GDISP_INITIAL_CONTRAST 0 +#endif +#ifndef GDISP_INITIAL_BACKLIGHT + #define GDISP_INITIAL_BACKLIGHT 0 +#endif + +#define GDISP_FLG_NEEDFLUSH (GDISP_FLG_DRIVER<<0) + +#define IS31_ADDR_DEFAULT 0x74 + +#define IS31_REG_CONFIG 0x00 +// bits in reg +#define IS31_REG_CONFIG_PICTUREMODE 0x00 +#define IS31_REG_CONFIG_AUTOPLAYMODE 0x08 +#define IS31_REG_CONFIG_AUDIOPLAYMODE 0x18 +// D2:D0 bits are starting frame for autoplay mode + +#define IS31_REG_PICTDISP 0x01 // D2:D0 frame select for picture mode + +#define IS31_REG_AUTOPLAYCTRL1 0x02 +// D6:D4 number of loops (000=infty) +// D2:D0 number of frames to be used + +#define IS31_REG_AUTOPLAYCTRL2 0x03 // D5:D0 delay time (*11ms) + +#define IS31_REG_DISPLAYOPT 0x05 +#define IS31_REG_DISPLAYOPT_INTENSITY_SAME 0x20 // same intensity for all frames +#define IS31_REG_DISPLAYOPT_BLINK_ENABLE 0x8 +// D2:D0 bits blink period time (*0.27s) + +#define IS31_REG_AUDIOSYNC 0x06 +#define IS31_REG_AUDIOSYNC_ENABLE 0x1 + +#define IS31_REG_FRAMESTATE 0x07 + +#define IS31_REG_BREATHCTRL1 0x08 +// D6:D4 fade out time (26ms*2^i) +// D2:D0 fade in time (26ms*2^i) + +#define IS31_REG_BREATHCTRL2 0x09 +#define IS31_REG_BREATHCTRL2_ENABLE 0x10 +// D2:D0 extinguish time (3.5ms*2^i) + +#define IS31_REG_SHUTDOWN 0x0A +#define IS31_REG_SHUTDOWN_OFF 0x0 +#define IS31_REG_SHUTDOWN_ON 0x1 + +#define IS31_REG_AGCCTRL 0x0B +#define IS31_REG_ADCRATE 0x0C + +#define IS31_COMMANDREGISTER 0xFD +#define IS31_FUNCTIONREG 0x0B // helpfully called 'page nine' +#define IS31_FUNCTIONREG_SIZE 0xD + +#define IS31_FRAME_SIZE 0xB4 + +#define IS31_PWM_REG 0x24 +#define IS31_PWM_SIZE 0x90 + +#define IS31_LED_MASK_SIZE 0x12 +#define IS31_SCREEN_WIDTH 16 + +#define IS31 + +/*===========================================================================*/ +/* Driver local functions. */ +/*===========================================================================*/ + +typedef struct{ + uint8_t write_buffer_offset; + uint8_t write_buffer[IS31_FRAME_SIZE]; + uint8_t frame_buffer[GDISP_SCREEN_HEIGHT * GDISP_SCREEN_WIDTH]; + uint8_t page; +}__attribute__((__packed__)) PrivData; + +// Some common routines and macros +#define PRIV(g) ((PrivData*)g->priv) + +/*===========================================================================*/ +/* Driver exported functions. */ +/*===========================================================================*/ + +static GFXINLINE void write_page(GDisplay* g, uint8_t page) { + uint8_t tx[2] __attribute__((aligned(2))); + tx[0] = IS31_COMMANDREGISTER; + tx[1] = page; + write_data(g, tx, 2); +} + +static GFXINLINE void write_register(GDisplay* g, uint8_t page, uint8_t reg, uint8_t data) { + uint8_t tx[2] __attribute__((aligned(2))); + tx[0] = reg; + tx[1] = data; + write_page(g, page); + write_data(g, tx, 2); +} + +static GFXINLINE void write_ram(GDisplay *g, uint8_t page, uint16_t offset, uint16_t length) { + PRIV(g)->write_buffer_offset = offset; + write_page(g, page); + write_data(g, (uint8_t*)PRIV(g), length + 1); +} + +LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { + // The private area is the display surface. + g->priv = gfxAlloc(sizeof(PrivData)); + __builtin_memset(PRIV(g), 0, sizeof(PrivData)); + PRIV(g)->page = 0; + + // Initialise the board interface + init_board(g); + gfxSleepMilliseconds(10); + + // zero function page, all registers (assuming full_page is all zeroes) + write_ram(g, IS31_FUNCTIONREG, 0, IS31_FUNCTIONREG_SIZE); + set_hardware_shutdown(g, false); + gfxSleepMilliseconds(10); + // software shutdown + write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); + gfxSleepMilliseconds(10); + // zero function page, all registers + write_ram(g, IS31_FUNCTIONREG, 0, IS31_FUNCTIONREG_SIZE); + gfxSleepMilliseconds(10); + + + // zero all LED registers on all 8 pages, and enable the mask + __builtin_memcpy(PRIV(g)->write_buffer, get_led_mask(g), IS31_LED_MASK_SIZE); + for(uint8_t i=0; i<8; i++) { + write_ram(g, i, 0, IS31_FRAME_SIZE); + gfxSleepMilliseconds(1); + } + + // software shutdown disable (i.e. turn stuff on) + write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); + gfxSleepMilliseconds(10); + + // Finish Init + post_init_board(g); + + /* Initialise the GDISP structure */ + g->g.Width = GDISP_SCREEN_WIDTH; + g->g.Height = GDISP_SCREEN_HEIGHT; + g->g.Orientation = GDISP_ROTATE_0; + g->g.Powermode = powerOff; + g->g.Backlight = GDISP_INITIAL_BACKLIGHT; + g->g.Contrast = GDISP_INITIAL_CONTRAST; + return TRUE; +} + +#if GDISP_HARDWARE_FLUSH + LLDSPEC void gdisp_lld_flush(GDisplay *g) { + // Don't flush if we don't need it. + if (!(g->flags & GDISP_FLG_NEEDFLUSH)) + return; + + PRIV(g)->page++; + PRIV(g)->page %= 2; + // TODO: some smarter algorithm for this + // We should run only one physical page at a time + // This way we don't need to send so much data, and + // we could use slightly less memory + uint8_t* src = PRIV(g)->frame_buffer; + for (int y=0;y<GDISP_SCREEN_HEIGHT;y++) { + for (int x=0;x<GDISP_SCREEN_WIDTH;x++) { + uint8_t val = (uint16_t)*src * g->g.Backlight / 100; + PRIV(g)->write_buffer[get_led_address(g, x, y)]=CIE1931_CURVE[val]; + ++src; + } + } + write_ram(g, PRIV(g)->page, IS31_PWM_REG, IS31_PWM_SIZE); + gfxSleepMilliseconds(1); + write_register(g, IS31_FUNCTIONREG, IS31_REG_PICTDISP, PRIV(g)->page); + + g->flags &= ~GDISP_FLG_NEEDFLUSH; + } +#endif + +#if GDISP_HARDWARE_DRAWPIXEL + LLDSPEC void gdisp_lld_draw_pixel(GDisplay *g) { + coord_t x, y; + + switch(g->g.Orientation) { + default: + case GDISP_ROTATE_0: + x = g->p.x; + y = g->p.y; + break; + case GDISP_ROTATE_180: + x = GDISP_SCREEN_WIDTH-1 - g->p.x; + y = g->p.y; + break; + } + PRIV(g)->frame_buffer[y * GDISP_SCREEN_WIDTH + x] = gdispColor2Native(g->p.color); + g->flags |= GDISP_FLG_NEEDFLUSH; + } +#endif + +#if GDISP_HARDWARE_PIXELREAD + LLDSPEC color_t gdisp_lld_get_pixel_color(GDisplay *g) { + coord_t x, y; + + switch(g->g.Orientation) { + default: + case GDISP_ROTATE_0: + x = g->p.x; + y = g->p.y; + break; + case GDISP_ROTATE_180: + x = GDISP_SCREEN_WIDTH-1 - g->p.x; + y = g->p.y; + break; + } + return gdispNative2Color(PRIV(g)->frame_buffer[y * GDISP_SCREEN_WIDTH + x]); + } +#endif + +#if GDISP_NEED_CONTROL && GDISP_HARDWARE_CONTROL + LLDSPEC void gdisp_lld_control(GDisplay *g) { + switch(g->p.x) { + case GDISP_CONTROL_POWER: + if (g->g.Powermode == (powermode_t)g->p.ptr) + return; + switch((powermode_t)g->p.ptr) { + case powerOff: + case powerSleep: + case powerDeepSleep: + write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); + break; + case powerOn: + write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON); + break; + default: + return; + } + g->g.Powermode = (powermode_t)g->p.ptr; + return; + + case GDISP_CONTROL_ORIENTATION: + if (g->g.Orientation == (orientation_t)g->p.ptr) + return; + switch((orientation_t)g->p.ptr) { + /* Rotation is handled by the drawing routines */ + case GDISP_ROTATE_0: + case GDISP_ROTATE_180: + g->g.Height = GDISP_SCREEN_HEIGHT; + g->g.Width = GDISP_SCREEN_WIDTH; + break; + case GDISP_ROTATE_90: + case GDISP_ROTATE_270: + g->g.Height = GDISP_SCREEN_WIDTH; + g->g.Width = GDISP_SCREEN_HEIGHT; + break; + default: + return; + } + g->g.Orientation = (orientation_t)g->p.ptr; + return; + + case GDISP_CONTROL_BACKLIGHT: + if (g->g.Backlight == (unsigned)g->p.ptr) + return; + unsigned val = (unsigned)g->p.ptr; + g->g.Backlight = val > 100 ? 100 : val; + g->flags |= GDISP_FLG_NEEDFLUSH; + return; + } + } +#endif // GDISP_NEED_CONTROL + +#endif // GFX_USE_GDISP diff --git a/drivers/ugfx/gdisp/is31fl3731c/gdisp_lld_config.h b/drivers/ugfx/gdisp/is31fl3731c/gdisp_lld_config.h new file mode 100644 index 000000000..bb28ad775 --- /dev/null +++ b/drivers/ugfx/gdisp/is31fl3731c/gdisp_lld_config.h @@ -0,0 +1,36 @@ +/* +Copyright 2016 Fred Sundvik <fsundvik@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/>. +*/ + +#ifndef _GDISP_LLD_CONFIG_H +#define _GDISP_LLD_CONFIG_H + +#if GFX_USE_GDISP + +/*===========================================================================*/ +/* Driver hardware support. */ +/*===========================================================================*/ + +#define GDISP_HARDWARE_FLUSH TRUE // This controller requires flushing +#define GDISP_HARDWARE_DRAWPIXEL TRUE +#define GDISP_HARDWARE_PIXELREAD TRUE +#define GDISP_HARDWARE_CONTROL TRUE + +#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_GRAY256 + +#endif /* GFX_USE_GDISP */ + +#endif /* _GDISP_LLD_CONFIG_H */ diff --git a/drivers/ugfx/gdisp/st7565/driver.mk b/drivers/ugfx/gdisp/st7565/driver.mk new file mode 100644 index 000000000..0190b6019 --- /dev/null +++ b/drivers/ugfx/gdisp/st7565/driver.mk @@ -0,0 +1,2 @@ +GFXINC += drivers/ugfx/gdisp/st7565 +GFXSRC += drivers/ugfx/gdisp/st7565/gdisp_lld_ST7565.c diff --git a/drivers/ugfx/gdisp/st7565/gdisp_lld_ST7565.c b/drivers/ugfx/gdisp/st7565/gdisp_lld_ST7565.c new file mode 100644 index 000000000..69c574772 --- /dev/null +++ b/drivers/ugfx/gdisp/st7565/gdisp_lld_ST7565.c @@ -0,0 +1,329 @@ +/* + * This file is subject to the terms of the GFX License. If a copy of + * the license was not distributed with this file, you can obtain one at: + * + * http://ugfx.org/license.html + */ + +#include "gfx.h" + +#if GFX_USE_GDISP + +#define GDISP_DRIVER_VMT GDISPVMT_ST7565_QMK +#include "gdisp_lld_config.h" +#include "src/gdisp/gdisp_driver.h" + +#include "board_ST7565.h" + +/*===========================================================================*/ +/* Driver local definitions. */ +/*===========================================================================*/ + +#ifndef GDISP_SCREEN_HEIGHT +#define GDISP_SCREEN_HEIGHT 32 +#endif +#ifndef GDISP_SCREEN_WIDTH +#define GDISP_SCREEN_WIDTH 128 +#endif +#ifndef GDISP_INITIAL_CONTRAST +#define GDISP_INITIAL_CONTRAST 35 +#endif +#ifndef GDISP_INITIAL_BACKLIGHT +#define GDISP_INITIAL_BACKLIGHT 100 +#endif + +#define GDISP_FLG_NEEDFLUSH (GDISP_FLG_DRIVER<<0) + +#include "st7565.h" + +/*===========================================================================*/ +/* Driver config defaults for backward compatibility. */ +/*===========================================================================*/ +#ifndef ST7565_LCD_BIAS +#define ST7565_LCD_BIAS ST7565_LCD_BIAS_7 +#endif +#ifndef ST7565_ADC +#define ST7565_ADC ST7565_ADC_NORMAL +#endif +#ifndef ST7565_COM_SCAN +#define ST7565_COM_SCAN ST7565_COM_SCAN_INC +#endif +#ifndef ST7565_PAGE_ORDER +#define ST7565_PAGE_ORDER 0,1,2,3 +#endif + +/*===========================================================================*/ +/* Driver local functions. */ +/*===========================================================================*/ + +typedef struct{ + bool_t buffer2; + uint8_t data_pos; + uint8_t data[16]; + uint8_t ram[GDISP_SCREEN_HEIGHT * GDISP_SCREEN_WIDTH / 8]; +}PrivData; + +// Some common routines and macros +#define PRIV(g) ((PrivData*)g->priv) +#define RAM(g) (PRIV(g)->ram) + +static GFXINLINE void write_cmd(GDisplay* g, uint8_t cmd) { + PRIV(g)->data[PRIV(g)->data_pos++] = cmd; +} + +static GFXINLINE void flush_cmd(GDisplay* g) { + write_data(g, PRIV(g)->data, PRIV(g)->data_pos); + PRIV(g)->data_pos = 0; +} + +#define write_cmd2(g, cmd1, cmd2) { write_cmd(g, cmd1); write_cmd(g, cmd2); } +#define write_cmd3(g, cmd1, cmd2, cmd3) { write_cmd(g, cmd1); write_cmd(g, cmd2); write_cmd(g, cmd3); } + +// Some common routines and macros +#define delay(us) gfxSleepMicroseconds(us) +#define delay_ms(ms) gfxSleepMilliseconds(ms) + +#define xyaddr(x, y) ((x) + ((y)>>3)*GDISP_SCREEN_WIDTH) +#define xybit(y) (1<<((y)&7)) + +/*===========================================================================*/ +/* Driver exported functions. */ +/*===========================================================================*/ + +/* + * As this controller can't update on a pixel boundary we need to maintain the + * the entire display surface in memory so that we can do the necessary bit + * operations. Fortunately it is a small display in monochrome. + * 64 * 128 / 8 = 1024 bytes. + */ + +LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { + // The private area is the display surface. + g->priv = gfxAlloc(sizeof(PrivData)); + PRIV(g)->buffer2 = false; + PRIV(g)->data_pos = 0; + + // Initialise the board interface + init_board(g); + + // Hardware reset + setpin_reset(g, TRUE); + gfxSleepMilliseconds(20); + setpin_reset(g, FALSE); + gfxSleepMilliseconds(20); + acquire_bus(g); + enter_cmd_mode(g); + + write_cmd(g, ST7565_RESET); + write_cmd(g, ST7565_LCD_BIAS); + write_cmd(g, ST7565_ADC); + write_cmd(g, ST7565_COM_SCAN); + + write_cmd(g, ST7565_RESISTOR_RATIO | 0x1); + write_cmd2(g, ST7565_CONTRAST, GDISP_INITIAL_CONTRAST); + + // turn on internal power supply (VC=1, VR=1, VF=1) + write_cmd(g, ST7565_POWER_CONTROL | 0x07); + + write_cmd(g, ST7565_INVERT_DISPLAY); + write_cmd(g, ST7565_ALLON_NORMAL); + + write_cmd(g, ST7565_START_LINE | 0); + write_cmd(g, ST7565_RMW); + flush_cmd(g); + + // Finish Init + post_init_board(g); + + // Release the bus + release_bus(g); + + /* Initialise the GDISP structure */ + g->g.Width = GDISP_SCREEN_WIDTH; + g->g.Height = GDISP_SCREEN_HEIGHT; + g->g.Orientation = GDISP_ROTATE_0; + g->g.Powermode = powerOff; + g->g.Backlight = GDISP_INITIAL_BACKLIGHT; + g->g.Contrast = GDISP_INITIAL_CONTRAST; + return TRUE; +} + +#if GDISP_HARDWARE_FLUSH +LLDSPEC void gdisp_lld_flush(GDisplay *g) { + unsigned p; + + // Don't flush if we don't need it. + if (!(g->flags & GDISP_FLG_NEEDFLUSH)) + return; + + acquire_bus(g); + enter_cmd_mode(g); + unsigned dstOffset = (PRIV(g)->buffer2 ? 4 : 0); + for (p = 0; p < 4; p++) { + write_cmd(g, ST7565_PAGE | (p + dstOffset)); + write_cmd(g, ST7565_COLUMN_MSB | 0); + write_cmd(g, ST7565_COLUMN_LSB | 0); + write_cmd(g, ST7565_RMW); + flush_cmd(g); + enter_data_mode(g); + write_data(g, RAM(g) + (p*GDISP_SCREEN_WIDTH), GDISP_SCREEN_WIDTH); + enter_cmd_mode(g); + } + unsigned line = (PRIV(g)->buffer2 ? 32 : 0); + write_cmd(g, ST7565_START_LINE | line); + flush_cmd(g); + PRIV(g)->buffer2 = !PRIV(g)->buffer2; + release_bus(g); + + g->flags &= ~GDISP_FLG_NEEDFLUSH; +} +#endif + +#if GDISP_HARDWARE_DRAWPIXEL +LLDSPEC void gdisp_lld_draw_pixel(GDisplay *g) { + coord_t x, y; + + switch(g->g.Orientation) { + default: + case GDISP_ROTATE_0: + x = g->p.x; + y = g->p.y; + break; + case GDISP_ROTATE_90: + x = g->p.y; + y = GDISP_SCREEN_HEIGHT-1 - g->p.x; + break; + case GDISP_ROTATE_180: + x = GDISP_SCREEN_WIDTH-1 - g->p.x; + y = GDISP_SCREEN_HEIGHT-1 - g->p.y; + break; + case GDISP_ROTATE_270: + x = GDISP_SCREEN_HEIGHT-1 - g->p.y; + y = g->p.x; + break; + } + if (gdispColor2Native(g->p.color) != Black) + RAM(g)[xyaddr(x, y)] |= xybit(y); + else + RAM(g)[xyaddr(x, y)] &= ~xybit(y); + g->flags |= GDISP_FLG_NEEDFLUSH; +} +#endif + +#if GDISP_HARDWARE_PIXELREAD +LLDSPEC color_t gdisp_lld_get_pixel_color(GDisplay *g) { + coord_t x, y; + + switch(g->g.Orientation) { + default: + case GDISP_ROTATE_0: + x = g->p.x; + y = g->p.y; + break; + case GDISP_ROTATE_90: + x = g->p.y; + y = GDISP_SCREEN_HEIGHT-1 - g->p.x; + break; + case GDISP_ROTATE_180: + x = GDISP_SCREEN_WIDTH-1 - g->p.x; + y = GDISP_SCREEN_HEIGHT-1 - g->p.y; + break; + case GDISP_ROTATE_270: + x = GDISP_SCREEN_HEIGHT-1 - g->p.y; + y = g->p.x; + break; + } + return (RAM(g)[xyaddr(x, y)] & xybit(y)) ? White : Black; +} +#endif + +LLDSPEC void gdisp_lld_blit_area(GDisplay *g) { + uint8_t* buffer = (uint8_t*)g->p.ptr; + int linelength = g->p.cx; + for (int i = 0; i < g->p.cy; i++) { + unsigned dstx = g->p.x; + unsigned dsty = g->p.y + i; + unsigned srcx = g->p.x1; + unsigned srcy = g->p.y1 + i; + unsigned srcbit = srcy * g->p.x2 + srcx; + for(int j=0; j < linelength; j++) { + uint8_t src = buffer[srcbit / 8]; + uint8_t bit = 7-(srcbit % 8); + uint8_t bitset = (src >> bit) & 1; + uint8_t* dst = &(RAM(g)[xyaddr(dstx, dsty)]); + if (bitset) { + *dst |= xybit(dsty); + } + else { + *dst &= ~xybit(dsty); + } + dstx++; + srcbit++; + } + } + g->flags |= GDISP_FLG_NEEDFLUSH; +} + +#if GDISP_NEED_CONTROL && GDISP_HARDWARE_CONTROL +LLDSPEC void gdisp_lld_control(GDisplay *g) { + switch(g->p.x) { + case GDISP_CONTROL_POWER: + if (g->g.Powermode == (powermode_t)g->p.ptr) + return; + switch((powermode_t)g->p.ptr) { + case powerOff: + case powerSleep: + case powerDeepSleep: + acquire_bus(g); + enter_cmd_mode(g); + write_cmd(g, ST7565_DISPLAY_OFF); + flush_cmd(g); + release_bus(g); + break; + case powerOn: + acquire_bus(g); + enter_cmd_mode(g); + write_cmd(g, ST7565_DISPLAY_ON); + flush_cmd(g); + release_bus(g); + break; + default: + return; + } + g->g.Powermode = (powermode_t)g->p.ptr; + return; + + case GDISP_CONTROL_ORIENTATION: + if (g->g.Orientation == (orientation_t)g->p.ptr) + return; + switch((orientation_t)g->p.ptr) { + /* Rotation is handled by the drawing routines */ + case GDISP_ROTATE_0: + case GDISP_ROTATE_180: + g->g.Height = GDISP_SCREEN_HEIGHT; + g->g.Width = GDISP_SCREEN_WIDTH; + break; + case GDISP_ROTATE_90: + case GDISP_ROTATE_270: + g->g.Height = GDISP_SCREEN_WIDTH; + g->g.Width = GDISP_SCREEN_HEIGHT; + break; + default: + return; + } + g->g.Orientation = (orientation_t)g->p.ptr; + return; + + case GDISP_CONTROL_CONTRAST: + g->g.Contrast = (unsigned)g->p.ptr & 63; + acquire_bus(g); + enter_cmd_mode(g); + write_cmd2(g, ST7565_CONTRAST, g->g.Contrast); + flush_cmd(g); + release_bus(g); + return; + } +} +#endif // GDISP_NEED_CONTROL + +#endif // GFX_USE_GDISP diff --git a/drivers/ugfx/gdisp/st7565/gdisp_lld_config.h b/drivers/ugfx/gdisp/st7565/gdisp_lld_config.h new file mode 100644 index 000000000..2b66a877c --- /dev/null +++ b/drivers/ugfx/gdisp/st7565/gdisp_lld_config.h @@ -0,0 +1,27 @@ +/* + * This file is subject to the terms of the GFX License. If a copy of + * the license was not distributed with this file, you can obtain one at: + * + * http://ugfx.org/license.html + */ + +#ifndef _GDISP_LLD_CONFIG_H +#define _GDISP_LLD_CONFIG_H + +#if GFX_USE_GDISP + +/*===========================================================================*/ +/* Driver hardware support. */ +/*===========================================================================*/ + +#define GDISP_HARDWARE_FLUSH TRUE // This controller requires flushing +#define GDISP_HARDWARE_DRAWPIXEL TRUE +#define GDISP_HARDWARE_PIXELREAD TRUE +#define GDISP_HARDWARE_CONTROL TRUE +#define GDISP_HARDWARE_BITFILLS TRUE + +#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_MONO + +#endif /* GFX_USE_GDISP */ + +#endif /* _GDISP_LLD_CONFIG_H */ diff --git a/drivers/ugfx/gdisp/st7565/st7565.h b/drivers/ugfx/gdisp/st7565/st7565.h new file mode 100644 index 000000000..24924ff05 --- /dev/null +++ b/drivers/ugfx/gdisp/st7565/st7565.h @@ -0,0 +1,39 @@ +/* + * This file is subject to the terms of the GFX License. If a copy of + * the license was not distributed with this file, you can obtain one at: + * + * http://ugfx.org/license.html + */ + +#ifndef _ST7565_H +#define _ST7565_H + +#define ST7565_CONTRAST 0x81 +#define ST7565_ALLON_NORMAL 0xA4 +#define ST7565_ALLON 0xA5 +#define ST7565_POSITIVE_DISPLAY 0xA6 +#define ST7565_INVERT_DISPLAY 0xA7 +#define ST7565_DISPLAY_OFF 0xAE +#define ST7565_DISPLAY_ON 0xAF + +#define ST7565_LCD_BIAS_7 0xA3 +#define ST7565_LCD_BIAS_9 0xA2 + +#define ST7565_ADC_NORMAL 0xA0 +#define ST7565_ADC_REVERSE 0xA1 + +#define ST7565_COM_SCAN_INC 0xC0 +#define ST7565_COM_SCAN_DEC 0xC8 + +#define ST7565_START_LINE 0x40 +#define ST7565_PAGE 0xB0 +#define ST7565_COLUMN_MSB 0x10 +#define ST7565_COLUMN_LSB 0x00 +#define ST7565_RMW 0xE0 + +#define ST7565_RESISTOR_RATIO 0x20 +#define ST7565_POWER_CONTROL 0x28 + +#define ST7565_RESET 0xE2 + +#endif /* _ST7565_H */ diff --git a/drivers/ugfx/gdisp/st7565ergodox/driver.mk b/drivers/ugfx/gdisp/st7565ergodox/driver.mk deleted file mode 100644 index 401e15e69..000000000 --- a/drivers/ugfx/gdisp/st7565ergodox/driver.mk +++ /dev/null @@ -1,2 +0,0 @@ -GFXINC += drivers/ugfx/gdisp/st7565ergodox -GFXSRC += drivers/ugfx/gdisp/st7565ergodox/gdisp_lld_ST7565.c diff --git a/drivers/ugfx/gdisp/st7565ergodox/gdisp_lld_ST7565.c b/drivers/ugfx/gdisp/st7565ergodox/gdisp_lld_ST7565.c deleted file mode 100644 index c576280a1..000000000 --- a/drivers/ugfx/gdisp/st7565ergodox/gdisp_lld_ST7565.c +++ /dev/null @@ -1,329 +0,0 @@ -/* - * This file is subject to the terms of the GFX License. If a copy of - * the license was not distributed with this file, you can obtain one at: - * - * http://ugfx.org/license.html - */ - -#include "gfx.h" - -#if GFX_USE_GDISP - -#define GDISP_DRIVER_VMT GDISPVMT_ST7565_ERGODOX -#include "gdisp_lld_config.h" -#include "src/gdisp/gdisp_driver.h" - -#include "board_ST7565.h" - -/*===========================================================================*/ -/* Driver local definitions. */ -/*===========================================================================*/ - -#ifndef GDISP_SCREEN_HEIGHT -#define GDISP_SCREEN_HEIGHT 32 -#endif -#ifndef GDISP_SCREEN_WIDTH -#define GDISP_SCREEN_WIDTH 128 -#endif -#ifndef GDISP_INITIAL_CONTRAST -#define GDISP_INITIAL_CONTRAST 35 -#endif -#ifndef GDISP_INITIAL_BACKLIGHT -#define GDISP_INITIAL_BACKLIGHT 100 -#endif - -#define GDISP_FLG_NEEDFLUSH (GDISP_FLG_DRIVER<<0) - -#include "st7565.h" - -/*===========================================================================*/ -/* Driver config defaults for backward compatibility. */ -/*===========================================================================*/ -#ifndef ST7565_LCD_BIAS -#define ST7565_LCD_BIAS ST7565_LCD_BIAS_7 -#endif -#ifndef ST7565_ADC -#define ST7565_ADC ST7565_ADC_NORMAL -#endif -#ifndef ST7565_COM_SCAN -#define ST7565_COM_SCAN ST7565_COM_SCAN_INC -#endif -#ifndef ST7565_PAGE_ORDER -#define ST7565_PAGE_ORDER 0,1,2,3 -#endif - -/*===========================================================================*/ -/* Driver local functions. */ -/*===========================================================================*/ - -typedef struct{ - bool_t buffer2; - uint8_t data_pos; - uint8_t data[16]; - uint8_t ram[GDISP_SCREEN_HEIGHT * GDISP_SCREEN_WIDTH / 8]; -}PrivData; - -// Some common routines and macros -#define PRIV(g) ((PrivData*)g->priv) -#define RAM(g) (PRIV(g)->ram) - -static GFXINLINE void write_cmd(GDisplay* g, uint8_t cmd) { - PRIV(g)->data[PRIV(g)->data_pos++] = cmd; -} - -static GFXINLINE void flush_cmd(GDisplay* g) { - write_data(g, PRIV(g)->data, PRIV(g)->data_pos); - PRIV(g)->data_pos = 0; -} - -#define write_cmd2(g, cmd1, cmd2) { write_cmd(g, cmd1); write_cmd(g, cmd2); } -#define write_cmd3(g, cmd1, cmd2, cmd3) { write_cmd(g, cmd1); write_cmd(g, cmd2); write_cmd(g, cmd3); } - -// Some common routines and macros -#define delay(us) gfxSleepMicroseconds(us) -#define delay_ms(ms) gfxSleepMilliseconds(ms) - -#define xyaddr(x, y) ((x) + ((y)>>3)*GDISP_SCREEN_WIDTH) -#define xybit(y) (1<<((y)&7)) - -/*===========================================================================*/ -/* Driver exported functions. */ -/*===========================================================================*/ - -/* - * As this controller can't update on a pixel boundary we need to maintain the - * the entire display surface in memory so that we can do the necessary bit - * operations. Fortunately it is a small display in monochrome. - * 64 * 128 / 8 = 1024 bytes. - */ - -LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { - // The private area is the display surface. - g->priv = gfxAlloc(sizeof(PrivData)); - PRIV(g)->buffer2 = false; - PRIV(g)->data_pos = 0; - - // Initialise the board interface - init_board(g); - - // Hardware reset - setpin_reset(g, TRUE); - gfxSleepMilliseconds(20); - setpin_reset(g, FALSE); - gfxSleepMilliseconds(20); - acquire_bus(g); - enter_cmd_mode(g); - - write_cmd(g, ST7565_RESET); - write_cmd(g, ST7565_LCD_BIAS); - write_cmd(g, ST7565_ADC); - write_cmd(g, ST7565_COM_SCAN); - - write_cmd(g, ST7565_RESISTOR_RATIO | 0x1); - write_cmd2(g, ST7565_CONTRAST, GDISP_INITIAL_CONTRAST); - - // turn on internal power supply (VC=1, VR=1, VF=1) - write_cmd(g, ST7565_POWER_CONTROL | 0x07); - - write_cmd(g, ST7565_INVERT_DISPLAY); - write_cmd(g, ST7565_ALLON_NORMAL); - - write_cmd(g, ST7565_START_LINE | 0); - write_cmd(g, ST7565_RMW); - flush_cmd(g); - - // Finish Init - post_init_board(g); - - // Release the bus - release_bus(g); - - /* Initialise the GDISP structure */ - g->g.Width = GDISP_SCREEN_WIDTH; - g->g.Height = GDISP_SCREEN_HEIGHT; - g->g.Orientation = GDISP_ROTATE_0; - g->g.Powermode = powerOff; - g->g.Backlight = GDISP_INITIAL_BACKLIGHT; - g->g.Contrast = GDISP_INITIAL_CONTRAST; - return TRUE; -} - -#if GDISP_HARDWARE_FLUSH -LLDSPEC void gdisp_lld_flush(GDisplay *g) { - unsigned p; - - // Don't flush if we don't need it. - if (!(g->flags & GDISP_FLG_NEEDFLUSH)) - return; - - acquire_bus(g); - enter_cmd_mode(g); - unsigned dstOffset = (PRIV(g)->buffer2 ? 4 : 0); - for (p = 0; p < 4; p++) { - write_cmd(g, ST7565_PAGE | (p + dstOffset)); - write_cmd(g, ST7565_COLUMN_MSB | 0); - write_cmd(g, ST7565_COLUMN_LSB | 0); - write_cmd(g, ST7565_RMW); - flush_cmd(g); - enter_data_mode(g); - write_data(g, RAM(g) + (p*GDISP_SCREEN_WIDTH), GDISP_SCREEN_WIDTH); - enter_cmd_mode(g); - } - unsigned line = (PRIV(g)->buffer2 ? 32 : 0); - write_cmd(g, ST7565_START_LINE | line); - flush_cmd(g); - PRIV(g)->buffer2 = !PRIV(g)->buffer2; - release_bus(g); - - g->flags &= ~GDISP_FLG_NEEDFLUSH; -} -#endif - -#if GDISP_HARDWARE_DRAWPIXEL -LLDSPEC void gdisp_lld_draw_pixel(GDisplay *g) { - coord_t x, y; - - switch(g->g.Orientation) { - default: - case GDISP_ROTATE_0: - x = g->p.x; - y = g->p.y; - break; - case GDISP_ROTATE_90: - x = g->p.y; - y = GDISP_SCREEN_HEIGHT-1 - g->p.x; - break; - case GDISP_ROTATE_180: - x = GDISP_SCREEN_WIDTH-1 - g->p.x; - y = GDISP_SCREEN_HEIGHT-1 - g->p.y; - break; - case GDISP_ROTATE_270: - x = GDISP_SCREEN_HEIGHT-1 - g->p.y; - y = g->p.x; - break; - } - if (gdispColor2Native(g->p.color) != Black) - RAM(g)[xyaddr(x, y)] |= xybit(y); - else - RAM(g)[xyaddr(x, y)] &= ~xybit(y); - g->flags |= GDISP_FLG_NEEDFLUSH; -} -#endif - -#if GDISP_HARDWARE_PIXELREAD -LLDSPEC color_t gdisp_lld_get_pixel_color(GDisplay *g) { - coord_t x, y; - - switch(g->g.Orientation) { - default: - case GDISP_ROTATE_0: - x = g->p.x; - y = g->p.y; - break; - case GDISP_ROTATE_90: - x = g->p.y; - y = GDISP_SCREEN_HEIGHT-1 - g->p.x; - break; - case GDISP_ROTATE_180: - x = GDISP_SCREEN_WIDTH-1 - g->p.x; - y = GDISP_SCREEN_HEIGHT-1 - g->p.y; - break; - case GDISP_ROTATE_270: - x = GDISP_SCREEN_HEIGHT-1 - g->p.y; - y = g->p.x; - break; - } - return (RAM(g)[xyaddr(x, y)] & xybit(y)) ? White : Black; -} -#endif - -LLDSPEC void gdisp_lld_blit_area(GDisplay *g) { - uint8_t* buffer = (uint8_t*)g->p.ptr; - int linelength = g->p.cx; - for (int i = 0; i < g->p.cy; i++) { - unsigned dstx = g->p.x; - unsigned dsty = g->p.y + i; - unsigned srcx = g->p.x1; - unsigned srcy = g->p.y1 + i; - unsigned srcbit = srcy * g->p.x2 + srcx; - for(int j=0; j < linelength; j++) { - uint8_t src = buffer[srcbit / 8]; - uint8_t bit = 7-(srcbit % 8); - uint8_t bitset = (src >> bit) & 1; - uint8_t* dst = &(RAM(g)[xyaddr(dstx, dsty)]); - if (bitset) { - *dst |= xybit(dsty); - } - else { - *dst &= ~xybit(dsty); - } - dstx++; - srcbit++; - } - } - g->flags |= GDISP_FLG_NEEDFLUSH; -} - -#if GDISP_NEED_CONTROL && GDISP_HARDWARE_CONTROL -LLDSPEC void gdisp_lld_control(GDisplay *g) { - switch(g->p.x) { - case GDISP_CONTROL_POWER: - if (g->g.Powermode == (powermode_t)g->p.ptr) - return; - switch((powermode_t)g->p.ptr) { - case powerOff: - case powerSleep: - case powerDeepSleep: - acquire_bus(g); - enter_cmd_mode(g); - write_cmd(g, ST7565_DISPLAY_OFF); - flush_cmd(g); - release_bus(g); - break; - case powerOn: - acquire_bus(g); - enter_cmd_mode(g); - write_cmd(g, ST7565_DISPLAY_ON); - flush_cmd(g); - release_bus(g); - break; - default: - return; - } - g->g.Powermode = (powermode_t)g->p.ptr; - return; - - case GDISP_CONTROL_ORIENTATION: - if (g->g.Orientation == (orientation_t)g->p.ptr) - return; - switch((orientation_t)g->p.ptr) { - /* Rotation is handled by the drawing routines */ - case GDISP_ROTATE_0: - case GDISP_ROTATE_180: - g->g.Height = GDISP_SCREEN_HEIGHT; - g->g.Width = GDISP_SCREEN_WIDTH; - break; - case GDISP_ROTATE_90: - case GDISP_ROTATE_270: - g->g.Height = GDISP_SCREEN_WIDTH; - g->g.Width = GDISP_SCREEN_HEIGHT; - break; - default: - return; - } - g->g.Orientation = (orientation_t)g->p.ptr; - return; - - case GDISP_CONTROL_CONTRAST: - g->g.Contrast = (unsigned)g->p.ptr & 63; - acquire_bus(g); - enter_cmd_mode(g); - write_cmd2(g, ST7565_CONTRAST, g->g.Contrast); - flush_cmd(g); - release_bus(g); - return; - } -} -#endif // GDISP_NEED_CONTROL - -#endif // GFX_USE_GDISP diff --git a/drivers/ugfx/gdisp/st7565ergodox/gdisp_lld_config.h b/drivers/ugfx/gdisp/st7565ergodox/gdisp_lld_config.h deleted file mode 100644 index 2b66a877c..000000000 --- a/drivers/ugfx/gdisp/st7565ergodox/gdisp_lld_config.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * This file is subject to the terms of the GFX License. If a copy of - * the license was not distributed with this file, you can obtain one at: - * - * http://ugfx.org/license.html - */ - -#ifndef _GDISP_LLD_CONFIG_H -#define _GDISP_LLD_CONFIG_H - -#if GFX_USE_GDISP - -/*===========================================================================*/ -/* Driver hardware support. */ -/*===========================================================================*/ - -#define GDISP_HARDWARE_FLUSH TRUE // This controller requires flushing -#define GDISP_HARDWARE_DRAWPIXEL TRUE -#define GDISP_HARDWARE_PIXELREAD TRUE -#define GDISP_HARDWARE_CONTROL TRUE -#define GDISP_HARDWARE_BITFILLS TRUE - -#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_MONO - -#endif /* GFX_USE_GDISP */ - -#endif /* _GDISP_LLD_CONFIG_H */ diff --git a/drivers/ugfx/gdisp/st7565ergodox/st7565.h b/drivers/ugfx/gdisp/st7565ergodox/st7565.h deleted file mode 100644 index 24924ff05..000000000 --- a/drivers/ugfx/gdisp/st7565ergodox/st7565.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * This file is subject to the terms of the GFX License. If a copy of - * the license was not distributed with this file, you can obtain one at: - * - * http://ugfx.org/license.html - */ - -#ifndef _ST7565_H -#define _ST7565_H - -#define ST7565_CONTRAST 0x81 -#define ST7565_ALLON_NORMAL 0xA4 -#define ST7565_ALLON 0xA5 -#define ST7565_POSITIVE_DISPLAY 0xA6 -#define ST7565_INVERT_DISPLAY 0xA7 -#define ST7565_DISPLAY_OFF 0xAE -#define ST7565_DISPLAY_ON 0xAF - -#define ST7565_LCD_BIAS_7 0xA3 -#define ST7565_LCD_BIAS_9 0xA2 - -#define ST7565_ADC_NORMAL 0xA0 -#define ST7565_ADC_REVERSE 0xA1 - -#define ST7565_COM_SCAN_INC 0xC0 -#define ST7565_COM_SCAN_DEC 0xC8 - -#define ST7565_START_LINE 0x40 -#define ST7565_PAGE 0xB0 -#define ST7565_COLUMN_MSB 0x10 -#define ST7565_COLUMN_LSB 0x00 -#define ST7565_RMW 0xE0 - -#define ST7565_RESISTOR_RATIO 0x20 -#define ST7565_POWER_CONTROL 0x28 - -#define ST7565_RESET 0xE2 - -#endif /* _ST7565_H */ diff --git a/keyboards/ergodox/infinity/gfxconf.h b/keyboards/ergodox/infinity/gfxconf.h index 45b9f5858..a3fb5b0c7 100644 --- a/keyboards/ergodox/infinity/gfxconf.h +++ b/keyboards/ergodox/infinity/gfxconf.h @@ -130,7 +130,7 @@ //#define GDISP_TOTAL_DISPLAYS 2 #ifndef EMULATOR -#define GDISP_DRIVER_LIST GDISPVMT_ST7565_ERGODOX, GDISPVMT_IS31FL3731C_ERGODOX +#define GDISP_DRIVER_LIST GDISPVMT_ST7565_QMK, GDISPVMT_IS31FL3731C_QMK #else #define GDISP_DRIVER_LIST GDISPVMT_EMULATOR_LCD_ERGODOX, GDISPVMT_EMULATOR_LED_ERGODOX #endif diff --git a/keyboards/ergodox/infinity/rules.mk b/keyboards/ergodox/infinity/rules.mk index 9e2246363..18171560d 100644 --- a/keyboards/ergodox/infinity/rules.mk +++ b/keyboards/ergodox/infinity/rules.mk @@ -67,5 +67,5 @@ LCD_BACKLIGHT_ENABLE = yes MIDI_ENABLE = no RGBLIGHT_ENABLE = no -include $(TOP_DIR)/drivers/ugfx/gdisp/st7565ergodox/driver.mk -include $(TOP_DIR)/drivers/ugfx/gdisp/IS31FL3731C/driver.mk \ No newline at end of file +include $(TOP_DIR)/drivers/ugfx/gdisp/st7565/driver.mk +include $(TOP_DIR)/drivers/ugfx/gdisp/is31fl3731c/driver.mk \ No newline at end of file diff --git a/keyboards/whitefox/gfxconf.h b/keyboards/whitefox/gfxconf.h index 890317a0f..27dfb94fb 100644 --- a/keyboards/whitefox/gfxconf.h +++ b/keyboards/whitefox/gfxconf.h @@ -130,7 +130,7 @@ //#define GDISP_TOTAL_DISPLAYS 2 #ifndef EMULATOR -#define GDISP_DRIVER_LIST GDISPVMT_IS31FL3731C_WHITEFOX +#define GDISP_DRIVER_LIST GDISPVMT_IS31FL3731C_QMK #endif #ifdef GDISP_DRIVER_LIST diff --git a/keyboards/whitefox/rules.mk b/keyboards/whitefox/rules.mk index 4cf23a390..c0effcb7b 100644 --- a/keyboards/whitefox/rules.mk +++ b/keyboards/whitefox/rules.mk @@ -70,4 +70,4 @@ CUSTOM_MATRIX = yes # Custom matrix file BACKLIGHT_ENABLE = yes VISUALIZER_ENABLE = yes -include $(TOP_DIR)/drivers/ugfx/gdisp/IS31FL3731C/driver.mk +include $(TOP_DIR)/drivers/ugfx/gdisp/is31fl3731c/driver.mk -- cgit v1.2.3 From 011ee294414800eaa18ce7c3f9447054d9eae765 Mon Sep 17 00:00:00 2001 From: Fred Sundvik <fsundvik@gmail.com> Date: Sun, 9 Jul 2017 13:50:18 +0300 Subject: Fixup mixed tabs/spaces --- drivers/ugfx/gdisp/is31fl3731c/gdisp_is31fl3731c.c | 246 ++++++++++----------- drivers/ugfx/gdisp/is31fl3731c/gdisp_lld_config.h | 14 +- drivers/ugfx/gdisp/st7565/gdisp_lld_ST7565.c | 36 +-- drivers/ugfx/gdisp/st7565/gdisp_lld_config.h | 6 +- keyboards/ergodox/infinity/board_ST7565.h | 6 +- 5 files changed, 154 insertions(+), 154 deletions(-) diff --git a/drivers/ugfx/gdisp/is31fl3731c/gdisp_is31fl3731c.c b/drivers/ugfx/gdisp/is31fl3731c/gdisp_is31fl3731c.c index c55dd0a0e..0691dbfbf 100644 --- a/drivers/ugfx/gdisp/is31fl3731c/gdisp_is31fl3731c.c +++ b/drivers/ugfx/gdisp/is31fl3731c/gdisp_is31fl3731c.c @@ -19,7 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #if GFX_USE_GDISP -#define GDISP_DRIVER_VMT GDISPVMT_IS31FL3731C_QMK +#define GDISP_DRIVER_VMT GDISPVMT_IS31FL3731C_QMK #include "gdisp_lld_config.h" #include "src/gdisp/gdisp_driver.h" @@ -34,26 +34,26 @@ extern const uint8_t CIE1931_CURVE[]; /*===========================================================================*/ #ifndef GDISP_SCREEN_HEIGHT - #define GDISP_SCREEN_HEIGHT 9 + #define GDISP_SCREEN_HEIGHT 9 #endif #ifndef GDISP_SCREEN_WIDTH - #define GDISP_SCREEN_WIDTH 16 + #define GDISP_SCREEN_WIDTH 16 #endif #ifndef GDISP_INITIAL_CONTRAST - #define GDISP_INITIAL_CONTRAST 0 + #define GDISP_INITIAL_CONTRAST 0 #endif #ifndef GDISP_INITIAL_BACKLIGHT - #define GDISP_INITIAL_BACKLIGHT 0 + #define GDISP_INITIAL_BACKLIGHT 0 #endif -#define GDISP_FLG_NEEDFLUSH (GDISP_FLG_DRIVER<<0) +#define GDISP_FLG_NEEDFLUSH (GDISP_FLG_DRIVER<<0) #define IS31_ADDR_DEFAULT 0x74 -#define IS31_REG_CONFIG 0x00 +#define IS31_REG_CONFIG 0x00 // bits in reg -#define IS31_REG_CONFIG_PICTUREMODE 0x00 -#define IS31_REG_CONFIG_AUTOPLAYMODE 0x08 +#define IS31_REG_CONFIG_PICTUREMODE 0x00 +#define IS31_REG_CONFIG_AUTOPLAYMODE 0x08 #define IS31_REG_CONFIG_AUDIOPLAYMODE 0x18 // D2:D0 bits are starting frame for autoplay mode @@ -144,14 +144,14 @@ static GFXINLINE void write_ram(GDisplay *g, uint8_t page, uint16_t offset, uint } LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { - // The private area is the display surface. - g->priv = gfxAlloc(sizeof(PrivData)); + // The private area is the display surface. + g->priv = gfxAlloc(sizeof(PrivData)); __builtin_memset(PRIV(g), 0, sizeof(PrivData)); - PRIV(g)->page = 0; + PRIV(g)->page = 0; - // Initialise the board interface - init_board(g); - gfxSleepMilliseconds(10); + // Initialise the board interface + init_board(g); + gfxSleepMilliseconds(10); // zero function page, all registers (assuming full_page is all zeroes) write_ram(g, IS31_FUNCTIONREG, 0, IS31_FUNCTIONREG_SIZE); @@ -179,134 +179,134 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { // Finish Init post_init_board(g); - /* Initialise the GDISP structure */ - g->g.Width = GDISP_SCREEN_WIDTH; - g->g.Height = GDISP_SCREEN_HEIGHT; - g->g.Orientation = GDISP_ROTATE_0; - g->g.Powermode = powerOff; - g->g.Backlight = GDISP_INITIAL_BACKLIGHT; - g->g.Contrast = GDISP_INITIAL_CONTRAST; - return TRUE; + /* Initialise the GDISP structure */ + g->g.Width = GDISP_SCREEN_WIDTH; + g->g.Height = GDISP_SCREEN_HEIGHT; + g->g.Orientation = GDISP_ROTATE_0; + g->g.Powermode = powerOff; + g->g.Backlight = GDISP_INITIAL_BACKLIGHT; + g->g.Contrast = GDISP_INITIAL_CONTRAST; + return TRUE; } #if GDISP_HARDWARE_FLUSH - LLDSPEC void gdisp_lld_flush(GDisplay *g) { - // Don't flush if we don't need it. - if (!(g->flags & GDISP_FLG_NEEDFLUSH)) - return; - - PRIV(g)->page++; - PRIV(g)->page %= 2; - // TODO: some smarter algorithm for this - // We should run only one physical page at a time - // This way we don't need to send so much data, and - // we could use slightly less memory - uint8_t* src = PRIV(g)->frame_buffer; - for (int y=0;y<GDISP_SCREEN_HEIGHT;y++) { - for (int x=0;x<GDISP_SCREEN_WIDTH;x++) { - uint8_t val = (uint16_t)*src * g->g.Backlight / 100; - PRIV(g)->write_buffer[get_led_address(g, x, y)]=CIE1931_CURVE[val]; - ++src; - } - } + LLDSPEC void gdisp_lld_flush(GDisplay *g) { + // Don't flush if we don't need it. + if (!(g->flags & GDISP_FLG_NEEDFLUSH)) + return; + + PRIV(g)->page++; + PRIV(g)->page %= 2; + // TODO: some smarter algorithm for this + // We should run only one physical page at a time + // This way we don't need to send so much data, and + // we could use slightly less memory + uint8_t* src = PRIV(g)->frame_buffer; + for (int y=0;y<GDISP_SCREEN_HEIGHT;y++) { + for (int x=0;x<GDISP_SCREEN_WIDTH;x++) { + uint8_t val = (uint16_t)*src * g->g.Backlight / 100; + PRIV(g)->write_buffer[get_led_address(g, x, y)]=CIE1931_CURVE[val]; + ++src; + } + } write_ram(g, PRIV(g)->page, IS31_PWM_REG, IS31_PWM_SIZE); gfxSleepMilliseconds(1); write_register(g, IS31_FUNCTIONREG, IS31_REG_PICTDISP, PRIV(g)->page); - g->flags &= ~GDISP_FLG_NEEDFLUSH; - } + g->flags &= ~GDISP_FLG_NEEDFLUSH; + } #endif #if GDISP_HARDWARE_DRAWPIXEL - LLDSPEC void gdisp_lld_draw_pixel(GDisplay *g) { - coord_t x, y; - - switch(g->g.Orientation) { - default: - case GDISP_ROTATE_0: - x = g->p.x; - y = g->p.y; - break; - case GDISP_ROTATE_180: - x = GDISP_SCREEN_WIDTH-1 - g->p.x; - y = g->p.y; - break; - } - PRIV(g)->frame_buffer[y * GDISP_SCREEN_WIDTH + x] = gdispColor2Native(g->p.color); - g->flags |= GDISP_FLG_NEEDFLUSH; - } + LLDSPEC void gdisp_lld_draw_pixel(GDisplay *g) { + coord_t x, y; + + switch(g->g.Orientation) { + default: + case GDISP_ROTATE_0: + x = g->p.x; + y = g->p.y; + break; + case GDISP_ROTATE_180: + x = GDISP_SCREEN_WIDTH-1 - g->p.x; + y = g->p.y; + break; + } + PRIV(g)->frame_buffer[y * GDISP_SCREEN_WIDTH + x] = gdispColor2Native(g->p.color); + g->flags |= GDISP_FLG_NEEDFLUSH; + } #endif #if GDISP_HARDWARE_PIXELREAD - LLDSPEC color_t gdisp_lld_get_pixel_color(GDisplay *g) { - coord_t x, y; - - switch(g->g.Orientation) { - default: - case GDISP_ROTATE_0: - x = g->p.x; - y = g->p.y; - break; - case GDISP_ROTATE_180: - x = GDISP_SCREEN_WIDTH-1 - g->p.x; - y = g->p.y; - break; - } - return gdispNative2Color(PRIV(g)->frame_buffer[y * GDISP_SCREEN_WIDTH + x]); - } + LLDSPEC color_t gdisp_lld_get_pixel_color(GDisplay *g) { + coord_t x, y; + + switch(g->g.Orientation) { + default: + case GDISP_ROTATE_0: + x = g->p.x; + y = g->p.y; + break; + case GDISP_ROTATE_180: + x = GDISP_SCREEN_WIDTH-1 - g->p.x; + y = g->p.y; + break; + } + return gdispNative2Color(PRIV(g)->frame_buffer[y * GDISP_SCREEN_WIDTH + x]); + } #endif #if GDISP_NEED_CONTROL && GDISP_HARDWARE_CONTROL - LLDSPEC void gdisp_lld_control(GDisplay *g) { - switch(g->p.x) { - case GDISP_CONTROL_POWER: - if (g->g.Powermode == (powermode_t)g->p.ptr) - return; - switch((powermode_t)g->p.ptr) { - case powerOff: - case powerSleep: - case powerDeepSleep: + LLDSPEC void gdisp_lld_control(GDisplay *g) { + switch(g->p.x) { + case GDISP_CONTROL_POWER: + if (g->g.Powermode == (powermode_t)g->p.ptr) + return; + switch((powermode_t)g->p.ptr) { + case powerOff: + case powerSleep: + case powerDeepSleep: write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF); - break; - case powerOn: + break; + case powerOn: write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON); - break; - default: - return; - } - g->g.Powermode = (powermode_t)g->p.ptr; - return; - - case GDISP_CONTROL_ORIENTATION: - if (g->g.Orientation == (orientation_t)g->p.ptr) - return; - switch((orientation_t)g->p.ptr) { - /* Rotation is handled by the drawing routines */ - case GDISP_ROTATE_0: - case GDISP_ROTATE_180: - g->g.Height = GDISP_SCREEN_HEIGHT; - g->g.Width = GDISP_SCREEN_WIDTH; - break; - case GDISP_ROTATE_90: - case GDISP_ROTATE_270: - g->g.Height = GDISP_SCREEN_WIDTH; - g->g.Width = GDISP_SCREEN_HEIGHT; - break; - default: - return; - } - g->g.Orientation = (orientation_t)g->p.ptr; - return; - - case GDISP_CONTROL_BACKLIGHT: - if (g->g.Backlight == (unsigned)g->p.ptr) + break; + default: return; - unsigned val = (unsigned)g->p.ptr; - g->g.Backlight = val > 100 ? 100 : val; + } + g->g.Powermode = (powermode_t)g->p.ptr; + return; + + case GDISP_CONTROL_ORIENTATION: + if (g->g.Orientation == (orientation_t)g->p.ptr) + return; + switch((orientation_t)g->p.ptr) { + /* Rotation is handled by the drawing routines */ + case GDISP_ROTATE_0: + case GDISP_ROTATE_180: + g->g.Height = GDISP_SCREEN_HEIGHT; + g->g.Width = GDISP_SCREEN_WIDTH; + break; + case GDISP_ROTATE_90: + case GDISP_ROTATE_270: + g->g.Height = GDISP_SCREEN_WIDTH; + g->g.Width = GDISP_SCREEN_HEIGHT; + break; + default: + return; + } + g->g.Orientation = (orientation_t)g->p.ptr; + return; + + case GDISP_CONTROL_BACKLIGHT: + if (g->g.Backlight == (unsigned)g->p.ptr) + return; + unsigned val = (unsigned)g->p.ptr; + g->g.Backlight = val > 100 ? 100 : val; g->flags |= GDISP_FLG_NEEDFLUSH; - return; - } - } + return; + } + } #endif // GDISP_NEED_CONTROL #endif // GFX_USE_GDISP diff --git a/drivers/ugfx/gdisp/is31fl3731c/gdisp_lld_config.h b/drivers/ugfx/gdisp/is31fl3731c/gdisp_lld_config.h index bb28ad775..588d688cf 100644 --- a/drivers/ugfx/gdisp/is31fl3731c/gdisp_lld_config.h +++ b/drivers/ugfx/gdisp/is31fl3731c/gdisp_lld_config.h @@ -24,13 +24,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. /* Driver hardware support. */ /*===========================================================================*/ -#define GDISP_HARDWARE_FLUSH TRUE // This controller requires flushing -#define GDISP_HARDWARE_DRAWPIXEL TRUE -#define GDISP_HARDWARE_PIXELREAD TRUE -#define GDISP_HARDWARE_CONTROL TRUE +#define GDISP_HARDWARE_FLUSH TRUE // This controller requires flushing +#define GDISP_HARDWARE_DRAWPIXEL TRUE +#define GDISP_HARDWARE_PIXELREAD TRUE +#define GDISP_HARDWARE_CONTROL TRUE -#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_GRAY256 +#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_GRAY256 -#endif /* GFX_USE_GDISP */ +#endif /* GFX_USE_GDISP */ -#endif /* _GDISP_LLD_CONFIG_H */ +#endif /* _GDISP_LLD_CONFIG_H */ diff --git a/drivers/ugfx/gdisp/st7565/gdisp_lld_ST7565.c b/drivers/ugfx/gdisp/st7565/gdisp_lld_ST7565.c index 69c574772..55552cb79 100644 --- a/drivers/ugfx/gdisp/st7565/gdisp_lld_ST7565.c +++ b/drivers/ugfx/gdisp/st7565/gdisp_lld_ST7565.c @@ -9,7 +9,7 @@ #if GFX_USE_GDISP -#define GDISP_DRIVER_VMT GDISPVMT_ST7565_QMK +#define GDISP_DRIVER_VMT GDISPVMT_ST7565_QMK #include "gdisp_lld_config.h" #include "src/gdisp/gdisp_driver.h" @@ -20,24 +20,24 @@ /*===========================================================================*/ #ifndef GDISP_SCREEN_HEIGHT -#define GDISP_SCREEN_HEIGHT 32 +#define GDISP_SCREEN_HEIGHT 32 #endif #ifndef GDISP_SCREEN_WIDTH -#define GDISP_SCREEN_WIDTH 128 +#define GDISP_SCREEN_WIDTH 128 #endif #ifndef GDISP_INITIAL_CONTRAST -#define GDISP_INITIAL_CONTRAST 35 +#define GDISP_INITIAL_CONTRAST 35 #endif #ifndef GDISP_INITIAL_BACKLIGHT -#define GDISP_INITIAL_BACKLIGHT 100 +#define GDISP_INITIAL_BACKLIGHT 100 #endif -#define GDISP_FLG_NEEDFLUSH (GDISP_FLG_DRIVER<<0) +#define GDISP_FLG_NEEDFLUSH (GDISP_FLG_DRIVER<<0) #include "st7565.h" /*===========================================================================*/ -/* Driver config defaults for backward compatibility. */ +/* Driver config defaults for backward compatibility. */ /*===========================================================================*/ #ifndef ST7565_LCD_BIAS #define ST7565_LCD_BIAS ST7565_LCD_BIAS_7 @@ -65,7 +65,7 @@ typedef struct{ // Some common routines and macros #define PRIV(g) ((PrivData*)g->priv) -#define RAM(g) (PRIV(g)->ram) +#define RAM(g) (PRIV(g)->ram) static GFXINLINE void write_cmd(GDisplay* g, uint8_t cmd) { PRIV(g)->data[PRIV(g)->data_pos++] = cmd; @@ -76,15 +76,15 @@ static GFXINLINE void flush_cmd(GDisplay* g) { PRIV(g)->data_pos = 0; } -#define write_cmd2(g, cmd1, cmd2) { write_cmd(g, cmd1); write_cmd(g, cmd2); } -#define write_cmd3(g, cmd1, cmd2, cmd3) { write_cmd(g, cmd1); write_cmd(g, cmd2); write_cmd(g, cmd3); } +#define write_cmd2(g, cmd1, cmd2) { write_cmd(g, cmd1); write_cmd(g, cmd2); } +#define write_cmd3(g, cmd1, cmd2, cmd3) { write_cmd(g, cmd1); write_cmd(g, cmd2); write_cmd(g, cmd3); } // Some common routines and macros -#define delay(us) gfxSleepMicroseconds(us) -#define delay_ms(ms) gfxSleepMilliseconds(ms) +#define delay(us) gfxSleepMicroseconds(us) +#define delay_ms(ms) gfxSleepMilliseconds(ms) -#define xyaddr(x, y) ((x) + ((y)>>3)*GDISP_SCREEN_WIDTH) -#define xybit(y) (1<<((y)&7)) +#define xyaddr(x, y) ((x) + ((y)>>3)*GDISP_SCREEN_WIDTH) +#define xybit(y) (1<<((y)&7)) /*===========================================================================*/ /* Driver exported functions. */ @@ -150,7 +150,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) { #if GDISP_HARDWARE_FLUSH LLDSPEC void gdisp_lld_flush(GDisplay *g) { - unsigned p; + unsigned p; // Don't flush if we don't need it. if (!(g->flags & GDISP_FLG_NEEDFLUSH)) @@ -181,7 +181,7 @@ LLDSPEC void gdisp_lld_flush(GDisplay *g) { #if GDISP_HARDWARE_DRAWPIXEL LLDSPEC void gdisp_lld_draw_pixel(GDisplay *g) { - coord_t x, y; + coord_t x, y; switch(g->g.Orientation) { default: @@ -212,7 +212,7 @@ LLDSPEC void gdisp_lld_draw_pixel(GDisplay *g) { #if GDISP_HARDWARE_PIXELREAD LLDSPEC color_t gdisp_lld_get_pixel_color(GDisplay *g) { - coord_t x, y; + coord_t x, y; switch(g->g.Orientation) { default: @@ -257,7 +257,7 @@ LLDSPEC void gdisp_lld_blit_area(GDisplay *g) { else { *dst &= ~xybit(dsty); } - dstx++; + dstx++; srcbit++; } } diff --git a/drivers/ugfx/gdisp/st7565/gdisp_lld_config.h b/drivers/ugfx/gdisp/st7565/gdisp_lld_config.h index 2b66a877c..4446bd38b 100644 --- a/drivers/ugfx/gdisp/st7565/gdisp_lld_config.h +++ b/drivers/ugfx/gdisp/st7565/gdisp_lld_config.h @@ -14,7 +14,7 @@ /* Driver hardware support. */ /*===========================================================================*/ -#define GDISP_HARDWARE_FLUSH TRUE // This controller requires flushing +#define GDISP_HARDWARE_FLUSH TRUE // This controller requires flushing #define GDISP_HARDWARE_DRAWPIXEL TRUE #define GDISP_HARDWARE_PIXELREAD TRUE #define GDISP_HARDWARE_CONTROL TRUE @@ -22,6 +22,6 @@ #define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_MONO -#endif /* GFX_USE_GDISP */ +#endif /* GFX_USE_GDISP */ -#endif /* _GDISP_LLD_CONFIG_H */ +#endif /* _GDISP_LLD_CONFIG_H */ diff --git a/keyboards/ergodox/infinity/board_ST7565.h b/keyboards/ergodox/infinity/board_ST7565.h index 9650ffb44..9ab636c95 100644 --- a/keyboards/ergodox/infinity/board_ST7565.h +++ b/keyboards/ergodox/infinity/board_ST7565.h @@ -83,7 +83,7 @@ static GFXINLINE void init_board(GDisplay *g) { } static GFXINLINE void post_init_board(GDisplay *g) { - (void) g; + (void) g; } static GFXINLINE void setpin_reset(GDisplay *g, bool_t state) { @@ -106,8 +106,8 @@ static GFXINLINE void enter_cmd_mode(GDisplay *g) { static GFXINLINE void write_data(GDisplay *g, uint8_t* data, uint16_t length) { - (void) g; - spiSend(&SPID1, length, data); + (void) g; + spiSend(&SPID1, length, data); } #endif /* _GDISP_LLD_BOARD_H */ -- cgit v1.2.3 From 8a962f7b271e965fa69eeb9aeab23a5969669984 Mon Sep 17 00:00:00 2001 From: Fred Sundvik <fsundvik@gmail.com> Date: Sun, 9 Jul 2017 14:03:36 +0300 Subject: Define visualizer thread priority by default --- keyboards/ergodox/infinity/config.h | 2 -- keyboards/whitefox/config.h | 4 +--- quantum/visualizer/visualizer.c | 3 ++- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/keyboards/ergodox/infinity/config.h b/keyboards/ergodox/infinity/config.h index 25cc8af0f..fa157a893 100644 --- a/keyboards/ergodox/infinity/config.h +++ b/keyboards/ergodox/infinity/config.h @@ -51,8 +51,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define SERIAL_LINK_BAUD 562500 #define SERIAL_LINK_THREAD_PRIORITY (NORMALPRIO - 1) -// The visualizer needs gfx thread priorities -#define VISUALIZER_THREAD_PRIORITY (NORMAL_PRIORITY - 2) #define VISUALIZER_USER_DATA_SIZE 16 diff --git a/keyboards/whitefox/config.h b/keyboards/whitefox/config.h index 08de9b9aa..76040bd74 100644 --- a/keyboards/whitefox/config.h +++ b/keyboards/whitefox/config.h @@ -87,6 +87,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define LED_DISPLAY_NUMBER 0 #define LED_NUM_ROWS 5 -#define LED_NUM_COLS 16 - -#define VISUALIZER_THREAD_PRIORITY (NORMAL_PRIORITY - 2) +#define LED_NUM_COLS 16 \ No newline at end of file diff --git a/quantum/visualizer/visualizer.c b/quantum/visualizer/visualizer.c index cc99d1e3b..68b86f590 100644 --- a/quantum/visualizer/visualizer.c +++ b/quantum/visualizer/visualizer.c @@ -52,7 +52,8 @@ SOFTWARE. // Define this in config.h #ifndef VISUALIZER_THREAD_PRIORITY -#define "Visualizer thread priority not defined" +// The visualizer needs gfx thread priorities +#define VISUALIZER_THREAD_PRIORITY (NORMAL_PRIORITY - 2) #endif static visualizer_keyboard_status_t current_status = { -- cgit v1.2.3 From f3c113fb5a5ea89762b5c51d5d182093f6fb999d Mon Sep 17 00:00:00 2001 From: Fred Sundvik <fsundvik@gmail.com> Date: Sun, 9 Jul 2017 14:31:38 +0300 Subject: Shared gfxconf --- keyboards/ergodox/infinity/gfxconf.h | 300 +------------------------------- keyboards/whitefox/gfxconf.h | 300 +------------------------------- quantum/visualizer/common_gfxconf.h | 325 +++++++++++++++++++++++++++++++++++ quantum/visualizer/visualizer.mk | 3 + 4 files changed, 330 insertions(+), 598 deletions(-) create mode 100644 quantum/visualizer/common_gfxconf.h diff --git a/keyboards/ergodox/infinity/gfxconf.h b/keyboards/ergodox/infinity/gfxconf.h index a3fb5b0c7..0d017aea9 100644 --- a/keyboards/ergodox/infinity/gfxconf.h +++ b/keyboards/ergodox/infinity/gfxconf.h @@ -22,310 +22,12 @@ #ifndef _GFXCONF_H #define _GFXCONF_H - -/////////////////////////////////////////////////////////////////////////// -// GOS - One of these must be defined, preferably in your Makefile // -/////////////////////////////////////////////////////////////////////////// -//#define GFX_USE_OS_CHIBIOS TRUE -//#define GFX_USE_OS_FREERTOS FALSE -// #define GFX_FREERTOS_USE_TRACE FALSE -//#define GFX_USE_OS_WIN32 FALSE -//#define GFX_USE_OS_LINUX FALSE -//#define GFX_USE_OS_OSX FALSE -//#define GFX_USE_OS_ECOS FALSE -//#define GFX_USE_OS_RAWRTOS FALSE -//#define GFX_USE_OS_ARDUINO FALSE -//#define GFX_USE_OS_KEIL FALSE -//#define GFX_USE_OS_CMSIS FALSE -//#define GFX_USE_OS_RAW32 FALSE -// #define INTERRUPTS_OFF() optional_code -// #define INTERRUPTS_ON() optional_code -// These are not defined by default for some reason -#define GOS_NEED_X_THREADS FALSE -#define GOS_NEED_X_HEAP FALSE - -// Options that (should where relevant) apply to all operating systems - #define GFX_NO_INLINE FALSE -// #define GFX_COMPILER GFX_COMPILER_UNKNOWN -// #define GFX_CPU GFX_CPU_UNKNOWN -// #define GFX_OS_HEAP_SIZE 0 -// #define GFX_OS_NO_INIT FALSE -// #define GFX_OS_INIT_NO_WARNING FALSE -// #define GFX_OS_PRE_INIT_FUNCTION myHardwareInitRoutine -// #define GFX_OS_EXTRA_INIT_FUNCTION myOSInitRoutine -// #define GFX_OS_EXTRA_DEINIT_FUNCTION myOSDeInitRoutine - - -/////////////////////////////////////////////////////////////////////////// -// GDISP // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GDISP TRUE - -//#define GDISP_NEED_AUTOFLUSH FALSE -//#define GDISP_NEED_TIMERFLUSH FALSE -//#define GDISP_NEED_VALIDATION TRUE -//#define GDISP_NEED_CLIP TRUE -#define GDISP_NEED_CIRCLE TRUE -#define GDISP_NEED_ELLIPSE TRUE -#define GDISP_NEED_ARC TRUE -#define GDISP_NEED_ARCSECTORS TRUE -#define GDISP_NEED_CONVEX_POLYGON TRUE -//#define GDISP_NEED_SCROLL FALSE -#define GDISP_NEED_PIXELREAD TRUE -#define GDISP_NEED_CONTROL TRUE -//#define GDISP_NEED_QUERY FALSE -//#define GDISP_NEED_MULTITHREAD FALSE -//#define GDISP_NEED_STREAMING FALSE -#define GDISP_NEED_TEXT TRUE -// #define GDISP_NEED_TEXT_WORDWRAP FALSE -// #define GDISP_NEED_ANTIALIAS FALSE -// #define GDISP_NEED_UTF8 FALSE - #define GDISP_NEED_TEXT_KERNING TRUE -// #define GDISP_INCLUDE_FONT_UI1 FALSE -// #define GDISP_INCLUDE_FONT_UI2 FALSE // The smallest preferred font. -// #define GDISP_INCLUDE_FONT_LARGENUMBERS FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS10 FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS12 FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS16 FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS20 FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS24 FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS32 FALSE - #define GDISP_INCLUDE_FONT_DEJAVUSANSBOLD12 TRUE -// #define GDISP_INCLUDE_FONT_FIXED_10X20 FALSE -// #define GDISP_INCLUDE_FONT_FIXED_7X14 FALSE - #define GDISP_INCLUDE_FONT_FIXED_5X8 TRUE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS12_AA FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS16_AA FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS20_AA FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS24_AA FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS32_AA FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANSBOLD12_AA FALSE -// #define GDISP_INCLUDE_USER_FONTS FALSE - -//#define GDISP_NEED_IMAGE FALSE -// #define GDISP_NEED_IMAGE_NATIVE FALSE -// #define GDISP_NEED_IMAGE_GIF FALSE -// #define GDISP_NEED_IMAGE_BMP FALSE -// #define GDISP_NEED_IMAGE_BMP_1 FALSE -// #define GDISP_NEED_IMAGE_BMP_4 FALSE -// #define GDISP_NEED_IMAGE_BMP_4_RLE FALSE -// #define GDISP_NEED_IMAGE_BMP_8 FALSE -// #define GDISP_NEED_IMAGE_BMP_8_RLE FALSE -// #define GDISP_NEED_IMAGE_BMP_16 FALSE -// #define GDISP_NEED_IMAGE_BMP_24 FALSE -// #define GDISP_NEED_IMAGE_BMP_32 FALSE -// #define GDISP_NEED_IMAGE_JPG FALSE -// #define GDISP_NEED_IMAGE_PNG FALSE -// #define GDISP_NEED_IMAGE_ACCOUNTING FALSE -#ifdef EMULATOR -#define GDISP_NEED_PIXMAP TRUE -#endif -// #define GDISP_NEED_PIXMAP_IMAGE FALSE - -//#define GDISP_DEFAULT_ORIENTATION GDISP_ROTATE_LANDSCAPE // If not defined the native hardware orientation is used. -//#define GDISP_LINEBUF_SIZE 128 -//#define GDISP_STARTUP_COLOR Black -#define GDISP_NEED_STARTUP_LOGO FALSE - -//#define GDISP_TOTAL_DISPLAYS 2 - #ifndef EMULATOR #define GDISP_DRIVER_LIST GDISPVMT_ST7565_QMK, GDISPVMT_IS31FL3731C_QMK #else #define GDISP_DRIVER_LIST GDISPVMT_EMULATOR_LCD_ERGODOX, GDISPVMT_EMULATOR_LED_ERGODOX #endif - #ifdef GDISP_DRIVER_LIST - // For code and speed optimization define as TRUE or FALSE if all controllers have the same capability - #define GDISP_HARDWARE_STREAM_WRITE FALSE - #define GDISP_HARDWARE_STREAM_READ FALSE - #define GDISP_HARDWARE_STREAM_POS FALSE - #define GDISP_HARDWARE_DRAWPIXEL TRUE - #define GDISP_HARDWARE_CLEARS FALSE - #define GDISP_HARDWARE_FILLS FALSE - //#define GDISP_HARDWARE_BITFILLS FALSE - #define GDISP_HARDWARE_SCROLL FALSE - #define GDISP_HARDWARE_PIXELREAD TRUE - #define GDISP_HARDWARE_CONTROL TRUE - #define GDISP_HARDWARE_QUERY FALSE - #define GDISP_HARDWARE_CLIP FALSE - - #define GDISP_PIXELFORMAT GDISP_PIXELFORMAT_RGB888 - #endif - -// The custom format is not defined for some reason, so define it as error -// so we don't get compiler warnings -#define GDISP_PIXELFORMAT_CUSTOM GDISP_PIXELFORMAT_ERROR - -#define GDISP_USE_GFXNET FALSE -// #define GDISP_GFXNET_PORT 13001 -// #define GDISP_GFXNET_CUSTOM_LWIP_STARTUP FALSE -// #define GDISP_DONT_WAIT_FOR_NET_DISPLAY FALSE -// #define GDISP_GFXNET_UNSAFE_SOCKETS FALSE - - -/////////////////////////////////////////////////////////////////////////// -// GWIN // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GWIN FALSE - -//#define GWIN_NEED_WINDOWMANAGER FALSE -// #define GWIN_REDRAW_IMMEDIATE FALSE -// #define GWIN_REDRAW_SINGLEOP FALSE -// #define GWIN_NEED_FLASHING FALSE -// #define GWIN_FLASHING_PERIOD 250 - -//#define GWIN_NEED_CONSOLE FALSE -// #define GWIN_CONSOLE_USE_HISTORY FALSE -// #define GWIN_CONSOLE_HISTORY_AVERAGING FALSE -// #define GWIN_CONSOLE_HISTORY_ATCREATE FALSE -// #define GWIN_CONSOLE_ESCSEQ FALSE -// #define GWIN_CONSOLE_USE_BASESTREAM FALSE -// #define GWIN_CONSOLE_USE_FLOAT FALSE -//#define GWIN_NEED_GRAPH FALSE -//#define GWIN_NEED_GL3D FALSE - -//#define GWIN_NEED_WIDGET FALSE -//#define GWIN_FOCUS_HIGHLIGHT_WIDTH 1 -// #define GWIN_NEED_LABEL FALSE -// #define GWIN_LABEL_ATTRIBUTE FALSE -// #define GWIN_NEED_BUTTON FALSE -// #define GWIN_BUTTON_LAZY_RELEASE FALSE -// #define GWIN_NEED_SLIDER FALSE -// #define GWIN_SLIDER_NOSNAP FALSE -// #define GWIN_SLIDER_DEAD_BAND 5 -// #define GWIN_SLIDER_TOGGLE_INC 20 -// #define GWIN_NEED_CHECKBOX FALSE -// #define GWIN_NEED_IMAGE FALSE -// #define GWIN_NEED_IMAGE_ANIMATION FALSE -// #define GWIN_NEED_RADIO FALSE -// #define GWIN_NEED_LIST FALSE -// #define GWIN_NEED_LIST_IMAGES FALSE -// #define GWIN_NEED_PROGRESSBAR FALSE -// #define GWIN_PROGRESSBAR_AUTO FALSE -// #define GWIN_NEED_KEYBOARD FALSE -// #define GWIN_KEYBOARD_DEFAULT_LAYOUT VirtualKeyboard_English1 -// #define GWIN_NEED_KEYBOARD_ENGLISH1 TRUE -// #define GWIN_NEED_TEXTEDIT FALSE -// #define GWIN_FLAT_STYLING FALSE -// #define GWIN_WIDGET_TAGS FALSE - -//#define GWIN_NEED_CONTAINERS FALSE -// #define GWIN_NEED_CONTAINER FALSE -// #define GWIN_NEED_FRAME FALSE -// #define GWIN_NEED_TABSET FALSE -// #define GWIN_TABSET_TABHEIGHT 18 - - -/////////////////////////////////////////////////////////////////////////// -// GEVENT // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GEVENT TRUE - -//#define GEVENT_ASSERT_NO_RESOURCE FALSE -//#define GEVENT_MAXIMUM_SIZE 32 -//#define GEVENT_MAX_SOURCE_LISTENERS 32 - - -/////////////////////////////////////////////////////////////////////////// -// GTIMER // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GTIMER FALSE - -//#define GTIMER_THREAD_PRIORITY HIGH_PRIORITY -//#define GTIMER_THREAD_WORKAREA_SIZE 2048 - - -/////////////////////////////////////////////////////////////////////////// -// GQUEUE // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GQUEUE FALSE - -//#define GQUEUE_NEED_ASYNC FALSE -//#define GQUEUE_NEED_GSYNC FALSE -//#define GQUEUE_NEED_FSYNC FALSE -//#define GQUEUE_NEED_BUFFERS FALSE - -/////////////////////////////////////////////////////////////////////////// -// GINPUT // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GINPUT FALSE - -//#define GINPUT_NEED_MOUSE FALSE -// #define GINPUT_TOUCH_STARTRAW FALSE -// #define GINPUT_TOUCH_NOTOUCH FALSE -// #define GINPUT_TOUCH_NOCALIBRATE FALSE -// #define GINPUT_TOUCH_NOCALIBRATE_GUI FALSE -// #define GINPUT_MOUSE_POLL_PERIOD 25 -// #define GINPUT_MOUSE_CLICK_TIME 300 -// #define GINPUT_TOUCH_CXTCLICK_TIME 700 -// #define GINPUT_TOUCH_USER_CALIBRATION_LOAD FALSE -// #define GINPUT_TOUCH_USER_CALIBRATION_SAVE FALSE -// #define GMOUSE_DRIVER_LIST GMOUSEVMT_Win32, GMOUSEVMT_Win32 -//#define GINPUT_NEED_KEYBOARD FALSE -// #define GINPUT_KEYBOARD_POLL_PERIOD 200 -// #define GKEYBOARD_DRIVER_LIST GKEYBOARDVMT_Win32, GKEYBOARDVMT_Win32 -// #define GKEYBOARD_LAYOUT_OFF FALSE -// #define GKEYBOARD_LAYOUT_SCANCODE2_US FALSE -//#define GINPUT_NEED_TOGGLE FALSE -//#define GINPUT_NEED_DIAL FALSE - - -/////////////////////////////////////////////////////////////////////////// -// GFILE // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GFILE FALSE - -//#define GFILE_NEED_PRINTG FALSE -//#define GFILE_NEED_SCANG FALSE -//#define GFILE_NEED_STRINGS FALSE -//#define GFILE_NEED_FILELISTS FALSE -//#define GFILE_NEED_STDIO FALSE -//#define GFILE_NEED_NOAUTOMOUNT FALSE -//#define GFILE_NEED_NOAUTOSYNC FALSE - -//#define GFILE_NEED_MEMFS FALSE -//#define GFILE_NEED_ROMFS FALSE -//#define GFILE_NEED_RAMFS FALSE -//#define GFILE_NEED_FATFS FALSE -//#define GFILE_NEED_NATIVEFS FALSE -//#define GFILE_NEED_CHBIOSFS FALSE - -//#define GFILE_ALLOW_FLOATS FALSE -//#define GFILE_ALLOW_DEVICESPECIFIC FALSE -//#define GFILE_MAX_GFILES 3 - -/////////////////////////////////////////////////////////////////////////// -// GADC // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GADC FALSE - -//#define GADC_MAX_LOWSPEED_DEVICES 4 - - -/////////////////////////////////////////////////////////////////////////// -// GAUDIO // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GAUDIO FALSE -// There seems to be a bug in the ugfx code, the wrong define is used -// So define it in order to avoid warnings -#define GFX_USE_GAUDIN GFX_USE_GAUDIO -// #define GAUDIO_NEED_PLAY FALSE -// #define GAUDIO_NEED_RECORD FALSE - - -/////////////////////////////////////////////////////////////////////////// -// GMISC // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GMISC TRUE - -//#define GMISC_NEED_ARRAYOPS FALSE -//#define GMISC_NEED_FASTTRIG FALSE -//#define GMISC_NEED_FIXEDTRIG FALSE -//#define GMISC_NEED_INVSQRT FALSE -// #define GMISC_INVSQRT_MIXED_ENDIAN FALSE -// #define GMISC_INVSQRT_REAL_SLOW FALSE -#define GMISC_NEED_MATRIXFLOAT2D TRUE -#define GMISC_NEED_MATRIXFIXED2D FALSE +#include "common_gfxconf.h" #endif /* _GFXCONF_H */ diff --git a/keyboards/whitefox/gfxconf.h b/keyboards/whitefox/gfxconf.h index 27dfb94fb..eb93f92eb 100644 --- a/keyboards/whitefox/gfxconf.h +++ b/keyboards/whitefox/gfxconf.h @@ -22,308 +22,10 @@ #ifndef _GFXCONF_H #define _GFXCONF_H - -/////////////////////////////////////////////////////////////////////////// -// GOS - One of these must be defined, preferably in your Makefile // -/////////////////////////////////////////////////////////////////////////// -//#define GFX_USE_OS_CHIBIOS TRUE -//#define GFX_USE_OS_FREERTOS FALSE -// #define GFX_FREERTOS_USE_TRACE FALSE -//#define GFX_USE_OS_WIN32 FALSE -//#define GFX_USE_OS_LINUX FALSE -//#define GFX_USE_OS_OSX FALSE -//#define GFX_USE_OS_ECOS FALSE -//#define GFX_USE_OS_RAWRTOS FALSE -//#define GFX_USE_OS_ARDUINO FALSE -//#define GFX_USE_OS_KEIL FALSE -//#define GFX_USE_OS_CMSIS FALSE -//#define GFX_USE_OS_RAW32 FALSE -// #define INTERRUPTS_OFF() optional_code -// #define INTERRUPTS_ON() optional_code -// These are not defined by default for some reason -#define GOS_NEED_X_THREADS FALSE -#define GOS_NEED_X_HEAP FALSE - -// Options that (should where relevant) apply to all operating systems - #define GFX_NO_INLINE FALSE -// #define GFX_COMPILER GFX_COMPILER_UNKNOWN -// #define GFX_CPU GFX_CPU_UNKNOWN -// #define GFX_OS_HEAP_SIZE 0 -// #define GFX_OS_NO_INIT FALSE -// #define GFX_OS_INIT_NO_WARNING FALSE -// #define GFX_OS_PRE_INIT_FUNCTION myHardwareInitRoutine -// #define GFX_OS_EXTRA_INIT_FUNCTION myOSInitRoutine -// #define GFX_OS_EXTRA_DEINIT_FUNCTION myOSDeInitRoutine - - -/////////////////////////////////////////////////////////////////////////// -// GDISP // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GDISP TRUE - -//#define GDISP_NEED_AUTOFLUSH FALSE -//#define GDISP_NEED_TIMERFLUSH FALSE -//#define GDISP_NEED_VALIDATION TRUE -//#define GDISP_NEED_CLIP TRUE -#define GDISP_NEED_CIRCLE TRUE -#define GDISP_NEED_ELLIPSE TRUE -#define GDISP_NEED_ARC TRUE -#define GDISP_NEED_ARCSECTORS TRUE -#define GDISP_NEED_CONVEX_POLYGON TRUE -//#define GDISP_NEED_SCROLL FALSE -#define GDISP_NEED_PIXELREAD TRUE -#define GDISP_NEED_CONTROL TRUE -//#define GDISP_NEED_QUERY FALSE -//#define GDISP_NEED_MULTITHREAD FALSE -//#define GDISP_NEED_STREAMING FALSE -#define GDISP_NEED_TEXT TRUE -// #define GDISP_NEED_TEXT_WORDWRAP FALSE -// #define GDISP_NEED_ANTIALIAS FALSE -// #define GDISP_NEED_UTF8 FALSE - #define GDISP_NEED_TEXT_KERNING TRUE -// #define GDISP_INCLUDE_FONT_UI1 FALSE -// #define GDISP_INCLUDE_FONT_UI2 FALSE // The smallest preferred font. -// #define GDISP_INCLUDE_FONT_LARGENUMBERS FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS10 FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS12 FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS16 FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS20 FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS24 FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS32 FALSE - #define GDISP_INCLUDE_FONT_DEJAVUSANSBOLD12 TRUE -// #define GDISP_INCLUDE_FONT_FIXED_10X20 FALSE -// #define GDISP_INCLUDE_FONT_FIXED_7X14 FALSE - #define GDISP_INCLUDE_FONT_FIXED_5X8 TRUE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS12_AA FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS16_AA FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS20_AA FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS24_AA FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANS32_AA FALSE -// #define GDISP_INCLUDE_FONT_DEJAVUSANSBOLD12_AA FALSE -// #define GDISP_INCLUDE_USER_FONTS FALSE - -//#define GDISP_NEED_IMAGE FALSE -// #define GDISP_NEED_IMAGE_NATIVE FALSE -// #define GDISP_NEED_IMAGE_GIF FALSE -// #define GDISP_NEED_IMAGE_BMP FALSE -// #define GDISP_NEED_IMAGE_BMP_1 FALSE -// #define GDISP_NEED_IMAGE_BMP_4 FALSE -// #define GDISP_NEED_IMAGE_BMP_4_RLE FALSE -// #define GDISP_NEED_IMAGE_BMP_8 FALSE -// #define GDISP_NEED_IMAGE_BMP_8_RLE FALSE -// #define GDISP_NEED_IMAGE_BMP_16 FALSE -// #define GDISP_NEED_IMAGE_BMP_24 FALSE -// #define GDISP_NEED_IMAGE_BMP_32 FALSE -// #define GDISP_NEED_IMAGE_JPG FALSE -// #define GDISP_NEED_IMAGE_PNG FALSE -// #define GDISP_NEED_IMAGE_ACCOUNTING FALSE -#ifdef EMULATOR -#define GDISP_NEED_PIXMAP TRUE -#endif -// #define GDISP_NEED_PIXMAP_IMAGE FALSE - -//#define GDISP_DEFAULT_ORIENTATION GDISP_ROTATE_LANDSCAPE // If not defined the native hardware orientation is used. -//#define GDISP_LINEBUF_SIZE 128 -//#define GDISP_STARTUP_COLOR Black -#define GDISP_NEED_STARTUP_LOGO FALSE - -//#define GDISP_TOTAL_DISPLAYS 2 - #ifndef EMULATOR #define GDISP_DRIVER_LIST GDISPVMT_IS31FL3731C_QMK #endif - #ifdef GDISP_DRIVER_LIST - // For code and speed optimization define as TRUE or FALSE if all controllers have the same capability - #define GDISP_HARDWARE_STREAM_WRITE FALSE - #define GDISP_HARDWARE_STREAM_READ FALSE - #define GDISP_HARDWARE_STREAM_POS FALSE - #define GDISP_HARDWARE_DRAWPIXEL TRUE - #define GDISP_HARDWARE_CLEARS FALSE - #define GDISP_HARDWARE_FILLS FALSE - //#define GDISP_HARDWARE_BITFILLS FALSE - #define GDISP_HARDWARE_SCROLL FALSE - #define GDISP_HARDWARE_PIXELREAD TRUE - #define GDISP_HARDWARE_CONTROL TRUE - #define GDISP_HARDWARE_QUERY FALSE - #define GDISP_HARDWARE_CLIP FALSE - - #define GDISP_PIXELFORMAT GDISP_PIXELFORMAT_RGB888 - #endif - -// The custom format is not defined for some reason, so define it as error -// so we don't get compiler warnings -#define GDISP_PIXELFORMAT_CUSTOM GDISP_PIXELFORMAT_ERROR - -#define GDISP_USE_GFXNET FALSE -// #define GDISP_GFXNET_PORT 13001 -// #define GDISP_GFXNET_CUSTOM_LWIP_STARTUP FALSE -// #define GDISP_DONT_WAIT_FOR_NET_DISPLAY FALSE -// #define GDISP_GFXNET_UNSAFE_SOCKETS FALSE - - -/////////////////////////////////////////////////////////////////////////// -// GWIN // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GWIN FALSE - -//#define GWIN_NEED_WINDOWMANAGER FALSE -// #define GWIN_REDRAW_IMMEDIATE FALSE -// #define GWIN_REDRAW_SINGLEOP FALSE -// #define GWIN_NEED_FLASHING FALSE -// #define GWIN_FLASHING_PERIOD 250 - -//#define GWIN_NEED_CONSOLE FALSE -// #define GWIN_CONSOLE_USE_HISTORY FALSE -// #define GWIN_CONSOLE_HISTORY_AVERAGING FALSE -// #define GWIN_CONSOLE_HISTORY_ATCREATE FALSE -// #define GWIN_CONSOLE_ESCSEQ FALSE -// #define GWIN_CONSOLE_USE_BASESTREAM FALSE -// #define GWIN_CONSOLE_USE_FLOAT FALSE -//#define GWIN_NEED_GRAPH FALSE -//#define GWIN_NEED_GL3D FALSE - -//#define GWIN_NEED_WIDGET FALSE -//#define GWIN_FOCUS_HIGHLIGHT_WIDTH 1 -// #define GWIN_NEED_LABEL FALSE -// #define GWIN_LABEL_ATTRIBUTE FALSE -// #define GWIN_NEED_BUTTON FALSE -// #define GWIN_BUTTON_LAZY_RELEASE FALSE -// #define GWIN_NEED_SLIDER FALSE -// #define GWIN_SLIDER_NOSNAP FALSE -// #define GWIN_SLIDER_DEAD_BAND 5 -// #define GWIN_SLIDER_TOGGLE_INC 20 -// #define GWIN_NEED_CHECKBOX FALSE -// #define GWIN_NEED_IMAGE FALSE -// #define GWIN_NEED_IMAGE_ANIMATION FALSE -// #define GWIN_NEED_RADIO FALSE -// #define GWIN_NEED_LIST FALSE -// #define GWIN_NEED_LIST_IMAGES FALSE -// #define GWIN_NEED_PROGRESSBAR FALSE -// #define GWIN_PROGRESSBAR_AUTO FALSE -// #define GWIN_NEED_KEYBOARD FALSE -// #define GWIN_KEYBOARD_DEFAULT_LAYOUT VirtualKeyboard_English1 -// #define GWIN_NEED_KEYBOARD_ENGLISH1 TRUE -// #define GWIN_NEED_TEXTEDIT FALSE -// #define GWIN_FLAT_STYLING FALSE -// #define GWIN_WIDGET_TAGS FALSE - -//#define GWIN_NEED_CONTAINERS FALSE -// #define GWIN_NEED_CONTAINER FALSE -// #define GWIN_NEED_FRAME FALSE -// #define GWIN_NEED_TABSET FALSE -// #define GWIN_TABSET_TABHEIGHT 18 - - -/////////////////////////////////////////////////////////////////////////// -// GEVENT // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GEVENT TRUE - -//#define GEVENT_ASSERT_NO_RESOURCE FALSE -//#define GEVENT_MAXIMUM_SIZE 32 -//#define GEVENT_MAX_SOURCE_LISTENERS 32 - - -/////////////////////////////////////////////////////////////////////////// -// GTIMER // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GTIMER FALSE - -//#define GTIMER_THREAD_PRIORITY HIGH_PRIORITY -//#define GTIMER_THREAD_WORKAREA_SIZE 2048 - - -/////////////////////////////////////////////////////////////////////////// -// GQUEUE // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GQUEUE FALSE - -//#define GQUEUE_NEED_ASYNC FALSE -//#define GQUEUE_NEED_GSYNC FALSE -//#define GQUEUE_NEED_FSYNC FALSE -//#define GQUEUE_NEED_BUFFERS FALSE - -/////////////////////////////////////////////////////////////////////////// -// GINPUT // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GINPUT FALSE - -//#define GINPUT_NEED_MOUSE FALSE -// #define GINPUT_TOUCH_STARTRAW FALSE -// #define GINPUT_TOUCH_NOTOUCH FALSE -// #define GINPUT_TOUCH_NOCALIBRATE FALSE -// #define GINPUT_TOUCH_NOCALIBRATE_GUI FALSE -// #define GINPUT_MOUSE_POLL_PERIOD 25 -// #define GINPUT_MOUSE_CLICK_TIME 300 -// #define GINPUT_TOUCH_CXTCLICK_TIME 700 -// #define GINPUT_TOUCH_USER_CALIBRATION_LOAD FALSE -// #define GINPUT_TOUCH_USER_CALIBRATION_SAVE FALSE -// #define GMOUSE_DRIVER_LIST GMOUSEVMT_Win32, GMOUSEVMT_Win32 -//#define GINPUT_NEED_KEYBOARD FALSE -// #define GINPUT_KEYBOARD_POLL_PERIOD 200 -// #define GKEYBOARD_DRIVER_LIST GKEYBOARDVMT_Win32, GKEYBOARDVMT_Win32 -// #define GKEYBOARD_LAYOUT_OFF FALSE -// #define GKEYBOARD_LAYOUT_SCANCODE2_US FALSE -//#define GINPUT_NEED_TOGGLE FALSE -//#define GINPUT_NEED_DIAL FALSE - - -/////////////////////////////////////////////////////////////////////////// -// GFILE // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GFILE FALSE - -//#define GFILE_NEED_PRINTG FALSE -//#define GFILE_NEED_SCANG FALSE -//#define GFILE_NEED_STRINGS FALSE -//#define GFILE_NEED_FILELISTS FALSE -//#define GFILE_NEED_STDIO FALSE -//#define GFILE_NEED_NOAUTOMOUNT FALSE -//#define GFILE_NEED_NOAUTOSYNC FALSE - -//#define GFILE_NEED_MEMFS FALSE -//#define GFILE_NEED_ROMFS FALSE -//#define GFILE_NEED_RAMFS FALSE -//#define GFILE_NEED_FATFS FALSE -//#define GFILE_NEED_NATIVEFS FALSE -//#define GFILE_NEED_CHBIOSFS FALSE - -//#define GFILE_ALLOW_FLOATS FALSE -//#define GFILE_ALLOW_DEVICESPECIFIC FALSE -//#define GFILE_MAX_GFILES 3 - -/////////////////////////////////////////////////////////////////////////// -// GADC // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GADC FALSE - -//#define GADC_MAX_LOWSPEED_DEVICES 4 - - -/////////////////////////////////////////////////////////////////////////// -// GAUDIO // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GAUDIO FALSE -// There seems to be a bug in the ugfx code, the wrong define is used -// So define it in order to avoid warnings -#define GFX_USE_GAUDIN GFX_USE_GAUDIO -// #define GAUDIO_NEED_PLAY FALSE -// #define GAUDIO_NEED_RECORD FALSE - - -/////////////////////////////////////////////////////////////////////////// -// GMISC // -/////////////////////////////////////////////////////////////////////////// -#define GFX_USE_GMISC TRUE - -//#define GMISC_NEED_ARRAYOPS FALSE -//#define GMISC_NEED_FASTTRIG FALSE -//#define GMISC_NEED_FIXEDTRIG FALSE -//#define GMISC_NEED_INVSQRT FALSE -// #define GMISC_INVSQRT_MIXED_ENDIAN FALSE -// #define GMISC_INVSQRT_REAL_SLOW FALSE -#define GMISC_NEED_MATRIXFLOAT2D TRUE -#define GMISC_NEED_MATRIXFIXED2D FALSE +#include "common_gfxconf.h" #endif /* _GFXCONF_H */ diff --git a/quantum/visualizer/common_gfxconf.h b/quantum/visualizer/common_gfxconf.h new file mode 100644 index 000000000..eb705b188 --- /dev/null +++ b/quantum/visualizer/common_gfxconf.h @@ -0,0 +1,325 @@ +/** + * This file has a different license to the rest of the uGFX system. + * You can copy, modify and distribute this file as you see fit. + * You do not need to publish your source modifications to this file. + * The only thing you are not permitted to do is to relicense it + * under a different license. + */ + +/** + * Copy this file into your project directory and rename it as gfxconf.h + * Edit your copy to turn on the uGFX features you want to use. + * The values below are the defaults. + * + * Only remove the comments from lines where you want to change the + * default value. This allows definitions to be included from + * driver makefiles when required and provides the best future + * compatibility for your project. + * + * Please use spaces instead of tabs in this file. + */ + +#ifndef COMMON_GFXCONF_H +#define COMMON_GFXCONF_H + + +/////////////////////////////////////////////////////////////////////////// +// GOS - One of these must be defined, preferably in your Makefile // +/////////////////////////////////////////////////////////////////////////// +//#define GFX_USE_OS_CHIBIOS TRUE +//#define GFX_USE_OS_FREERTOS FALSE +// #define GFX_FREERTOS_USE_TRACE FALSE +//#define GFX_USE_OS_WIN32 FALSE +//#define GFX_USE_OS_LINUX FALSE +//#define GFX_USE_OS_OSX FALSE +//#define GFX_USE_OS_ECOS FALSE +//#define GFX_USE_OS_RAWRTOS FALSE +//#define GFX_USE_OS_ARDUINO FALSE +//#define GFX_USE_OS_KEIL FALSE +//#define GFX_USE_OS_CMSIS FALSE +//#define GFX_USE_OS_RAW32 FALSE +// #define INTERRUPTS_OFF() optional_code +// #define INTERRUPTS_ON() optional_code +// These are not defined by default for some reason +#define GOS_NEED_X_THREADS FALSE +#define GOS_NEED_X_HEAP FALSE + +// Options that (should where relevant) apply to all operating systems + #define GFX_NO_INLINE FALSE +// #define GFX_COMPILER GFX_COMPILER_UNKNOWN +// #define GFX_CPU GFX_CPU_UNKNOWN +// #define GFX_OS_HEAP_SIZE 0 +// #define GFX_OS_NO_INIT FALSE +// #define GFX_OS_INIT_NO_WARNING FALSE +// #define GFX_OS_PRE_INIT_FUNCTION myHardwareInitRoutine +// #define GFX_OS_EXTRA_INIT_FUNCTION myOSInitRoutine +// #define GFX_OS_EXTRA_DEINIT_FUNCTION myOSDeInitRoutine + + +/////////////////////////////////////////////////////////////////////////// +// GDISP // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GDISP TRUE + +//#define GDISP_NEED_AUTOFLUSH FALSE +//#define GDISP_NEED_TIMERFLUSH FALSE +//#define GDISP_NEED_VALIDATION TRUE +//#define GDISP_NEED_CLIP TRUE +#define GDISP_NEED_CIRCLE TRUE +#define GDISP_NEED_ELLIPSE TRUE +#define GDISP_NEED_ARC TRUE +#define GDISP_NEED_ARCSECTORS TRUE +#define GDISP_NEED_CONVEX_POLYGON TRUE +//#define GDISP_NEED_SCROLL FALSE +#define GDISP_NEED_PIXELREAD TRUE +#define GDISP_NEED_CONTROL TRUE +//#define GDISP_NEED_QUERY FALSE +//#define GDISP_NEED_MULTITHREAD FALSE +//#define GDISP_NEED_STREAMING FALSE +#define GDISP_NEED_TEXT TRUE +// #define GDISP_NEED_TEXT_WORDWRAP FALSE +// #define GDISP_NEED_ANTIALIAS FALSE +// #define GDISP_NEED_UTF8 FALSE + #define GDISP_NEED_TEXT_KERNING TRUE +// #define GDISP_INCLUDE_FONT_UI1 FALSE +// #define GDISP_INCLUDE_FONT_UI2 FALSE // The smallest preferred font. +// #define GDISP_INCLUDE_FONT_LARGENUMBERS FALSE +// #define GDISP_INCLUDE_FONT_DEJAVUSANS10 FALSE +// #define GDISP_INCLUDE_FONT_DEJAVUSANS12 FALSE +// #define GDISP_INCLUDE_FONT_DEJAVUSANS16 FALSE +// #define GDISP_INCLUDE_FONT_DEJAVUSANS20 FALSE +// #define GDISP_INCLUDE_FONT_DEJAVUSANS24 FALSE +// #define GDISP_INCLUDE_FONT_DEJAVUSANS32 FALSE + #define GDISP_INCLUDE_FONT_DEJAVUSANSBOLD12 TRUE +// #define GDISP_INCLUDE_FONT_FIXED_10X20 FALSE +// #define GDISP_INCLUDE_FONT_FIXED_7X14 FALSE + #define GDISP_INCLUDE_FONT_FIXED_5X8 TRUE +// #define GDISP_INCLUDE_FONT_DEJAVUSANS12_AA FALSE +// #define GDISP_INCLUDE_FONT_DEJAVUSANS16_AA FALSE +// #define GDISP_INCLUDE_FONT_DEJAVUSANS20_AA FALSE +// #define GDISP_INCLUDE_FONT_DEJAVUSANS24_AA FALSE +// #define GDISP_INCLUDE_FONT_DEJAVUSANS32_AA FALSE +// #define GDISP_INCLUDE_FONT_DEJAVUSANSBOLD12_AA FALSE +// #define GDISP_INCLUDE_USER_FONTS FALSE + +//#define GDISP_NEED_IMAGE FALSE +// #define GDISP_NEED_IMAGE_NATIVE FALSE +// #define GDISP_NEED_IMAGE_GIF FALSE +// #define GDISP_NEED_IMAGE_BMP FALSE +// #define GDISP_NEED_IMAGE_BMP_1 FALSE +// #define GDISP_NEED_IMAGE_BMP_4 FALSE +// #define GDISP_NEED_IMAGE_BMP_4_RLE FALSE +// #define GDISP_NEED_IMAGE_BMP_8 FALSE +// #define GDISP_NEED_IMAGE_BMP_8_RLE FALSE +// #define GDISP_NEED_IMAGE_BMP_16 FALSE +// #define GDISP_NEED_IMAGE_BMP_24 FALSE +// #define GDISP_NEED_IMAGE_BMP_32 FALSE +// #define GDISP_NEED_IMAGE_JPG FALSE +// #define GDISP_NEED_IMAGE_PNG FALSE +// #define GDISP_NEED_IMAGE_ACCOUNTING FALSE +#ifdef EMULATOR +#define GDISP_NEED_PIXMAP TRUE +#endif +// #define GDISP_NEED_PIXMAP_IMAGE FALSE + +//#define GDISP_DEFAULT_ORIENTATION GDISP_ROTATE_LANDSCAPE // If not defined the native hardware orientation is used. +//#define GDISP_LINEBUF_SIZE 128 +//#define GDISP_STARTUP_COLOR Black +#define GDISP_NEED_STARTUP_LOGO FALSE + +//#define GDISP_TOTAL_DISPLAYS 2 + + #ifdef GDISP_DRIVER_LIST + // For code and speed optimization define as TRUE or FALSE if all controllers have the same capability + #define GDISP_HARDWARE_STREAM_WRITE FALSE + #define GDISP_HARDWARE_STREAM_READ FALSE + #define GDISP_HARDWARE_STREAM_POS FALSE + #define GDISP_HARDWARE_DRAWPIXEL TRUE + #define GDISP_HARDWARE_CLEARS FALSE + #define GDISP_HARDWARE_FILLS FALSE + //#define GDISP_HARDWARE_BITFILLS FALSE + #define GDISP_HARDWARE_SCROLL FALSE + #define GDISP_HARDWARE_PIXELREAD TRUE + #define GDISP_HARDWARE_CONTROL TRUE + #define GDISP_HARDWARE_QUERY FALSE + #define GDISP_HARDWARE_CLIP FALSE + + #define GDISP_PIXELFORMAT GDISP_PIXELFORMAT_RGB888 + #endif + +// The custom format is not defined for some reason, so define it as error +// so we don't get compiler warnings +#define GDISP_PIXELFORMAT_CUSTOM GDISP_PIXELFORMAT_ERROR + +#define GDISP_USE_GFXNET FALSE +// #define GDISP_GFXNET_PORT 13001 +// #define GDISP_GFXNET_CUSTOM_LWIP_STARTUP FALSE +// #define GDISP_DONT_WAIT_FOR_NET_DISPLAY FALSE +// #define GDISP_GFXNET_UNSAFE_SOCKETS FALSE + + +/////////////////////////////////////////////////////////////////////////// +// GWIN // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GWIN FALSE + +//#define GWIN_NEED_WINDOWMANAGER FALSE +// #define GWIN_REDRAW_IMMEDIATE FALSE +// #define GWIN_REDRAW_SINGLEOP FALSE +// #define GWIN_NEED_FLASHING FALSE +// #define GWIN_FLASHING_PERIOD 250 + +//#define GWIN_NEED_CONSOLE FALSE +// #define GWIN_CONSOLE_USE_HISTORY FALSE +// #define GWIN_CONSOLE_HISTORY_AVERAGING FALSE +// #define GWIN_CONSOLE_HISTORY_ATCREATE FALSE +// #define GWIN_CONSOLE_ESCSEQ FALSE +// #define GWIN_CONSOLE_USE_BASESTREAM FALSE +// #define GWIN_CONSOLE_USE_FLOAT FALSE +//#define GWIN_NEED_GRAPH FALSE +//#define GWIN_NEED_GL3D FALSE + +//#define GWIN_NEED_WIDGET FALSE +//#define GWIN_FOCUS_HIGHLIGHT_WIDTH 1 +// #define GWIN_NEED_LABEL FALSE +// #define GWIN_LABEL_ATTRIBUTE FALSE +// #define GWIN_NEED_BUTTON FALSE +// #define GWIN_BUTTON_LAZY_RELEASE FALSE +// #define GWIN_NEED_SLIDER FALSE +// #define GWIN_SLIDER_NOSNAP FALSE +// #define GWIN_SLIDER_DEAD_BAND 5 +// #define GWIN_SLIDER_TOGGLE_INC 20 +// #define GWIN_NEED_CHECKBOX FALSE +// #define GWIN_NEED_IMAGE FALSE +// #define GWIN_NEED_IMAGE_ANIMATION FALSE +// #define GWIN_NEED_RADIO FALSE +// #define GWIN_NEED_LIST FALSE +// #define GWIN_NEED_LIST_IMAGES FALSE +// #define GWIN_NEED_PROGRESSBAR FALSE +// #define GWIN_PROGRESSBAR_AUTO FALSE +// #define GWIN_NEED_KEYBOARD FALSE +// #define GWIN_KEYBOARD_DEFAULT_LAYOUT VirtualKeyboard_English1 +// #define GWIN_NEED_KEYBOARD_ENGLISH1 TRUE +// #define GWIN_NEED_TEXTEDIT FALSE +// #define GWIN_FLAT_STYLING FALSE +// #define GWIN_WIDGET_TAGS FALSE + +//#define GWIN_NEED_CONTAINERS FALSE +// #define GWIN_NEED_CONTAINER FALSE +// #define GWIN_NEED_FRAME FALSE +// #define GWIN_NEED_TABSET FALSE +// #define GWIN_TABSET_TABHEIGHT 18 + + +/////////////////////////////////////////////////////////////////////////// +// GEVENT // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GEVENT TRUE + +//#define GEVENT_ASSERT_NO_RESOURCE FALSE +//#define GEVENT_MAXIMUM_SIZE 32 +//#define GEVENT_MAX_SOURCE_LISTENERS 32 + + +/////////////////////////////////////////////////////////////////////////// +// GTIMER // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GTIMER FALSE + +//#define GTIMER_THREAD_PRIORITY HIGH_PRIORITY +//#define GTIMER_THREAD_WORKAREA_SIZE 2048 + + +/////////////////////////////////////////////////////////////////////////// +// GQUEUE // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GQUEUE FALSE + +//#define GQUEUE_NEED_ASYNC FALSE +//#define GQUEUE_NEED_GSYNC FALSE +//#define GQUEUE_NEED_FSYNC FALSE +//#define GQUEUE_NEED_BUFFERS FALSE + +/////////////////////////////////////////////////////////////////////////// +// GINPUT // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GINPUT FALSE + +//#define GINPUT_NEED_MOUSE FALSE +// #define GINPUT_TOUCH_STARTRAW FALSE +// #define GINPUT_TOUCH_NOTOUCH FALSE +// #define GINPUT_TOUCH_NOCALIBRATE FALSE +// #define GINPUT_TOUCH_NOCALIBRATE_GUI FALSE +// #define GINPUT_MOUSE_POLL_PERIOD 25 +// #define GINPUT_MOUSE_CLICK_TIME 300 +// #define GINPUT_TOUCH_CXTCLICK_TIME 700 +// #define GINPUT_TOUCH_USER_CALIBRATION_LOAD FALSE +// #define GINPUT_TOUCH_USER_CALIBRATION_SAVE FALSE +// #define GMOUSE_DRIVER_LIST GMOUSEVMT_Win32, GMOUSEVMT_Win32 +//#define GINPUT_NEED_KEYBOARD FALSE +// #define GINPUT_KEYBOARD_POLL_PERIOD 200 +// #define GKEYBOARD_DRIVER_LIST GKEYBOARDVMT_Win32, GKEYBOARDVMT_Win32 +// #define GKEYBOARD_LAYOUT_OFF FALSE +// #define GKEYBOARD_LAYOUT_SCANCODE2_US FALSE +//#define GINPUT_NEED_TOGGLE FALSE +//#define GINPUT_NEED_DIAL FALSE + + +/////////////////////////////////////////////////////////////////////////// +// GFILE // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GFILE FALSE + +//#define GFILE_NEED_PRINTG FALSE +//#define GFILE_NEED_SCANG FALSE +//#define GFILE_NEED_STRINGS FALSE +//#define GFILE_NEED_FILELISTS FALSE +//#define GFILE_NEED_STDIO FALSE +//#define GFILE_NEED_NOAUTOMOUNT FALSE +//#define GFILE_NEED_NOAUTOSYNC FALSE + +//#define GFILE_NEED_MEMFS FALSE +//#define GFILE_NEED_ROMFS FALSE +//#define GFILE_NEED_RAMFS FALSE +//#define GFILE_NEED_FATFS FALSE +//#define GFILE_NEED_NATIVEFS FALSE +//#define GFILE_NEED_CHBIOSFS FALSE + +//#define GFILE_ALLOW_FLOATS FALSE +//#define GFILE_ALLOW_DEVICESPECIFIC FALSE +//#define GFILE_MAX_GFILES 3 + +/////////////////////////////////////////////////////////////////////////// +// GADC // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GADC FALSE + +//#define GADC_MAX_LOWSPEED_DEVICES 4 + + +/////////////////////////////////////////////////////////////////////////// +// GAUDIO // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GAUDIO FALSE +// There seems to be a bug in the ugfx code, the wrong define is used +// So define it in order to avoid warnings +#define GFX_USE_GAUDIN GFX_USE_GAUDIO +// #define GAUDIO_NEED_PLAY FALSE +// #define GAUDIO_NEED_RECORD FALSE + + +/////////////////////////////////////////////////////////////////////////// +// GMISC // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GMISC TRUE + +//#define GMISC_NEED_ARRAYOPS FALSE +//#define GMISC_NEED_FASTTRIG FALSE +//#define GMISC_NEED_FIXEDTRIG FALSE +//#define GMISC_NEED_INVSQRT FALSE +// #define GMISC_INVSQRT_MIXED_ENDIAN FALSE +// #define GMISC_INVSQRT_REAL_SLOW FALSE +#define GMISC_NEED_MATRIXFLOAT2D TRUE +#define GMISC_NEED_MATRIXFIXED2D FALSE + +#endif /* COMMON_GFXCONF_H */ diff --git a/quantum/visualizer/visualizer.mk b/quantum/visualizer/visualizer.mk index 0f7d8636c..1fe7435d9 100644 --- a/quantum/visualizer/visualizer.mk +++ b/quantum/visualizer/visualizer.mk @@ -47,6 +47,9 @@ SRC += $(VISUALIZER_DIR)/led_keyframes.c endif include $(GFXLIB)/gfx.mk +# For the common_gfxconf.h +GFXINC += quantum/visualizer + GFXSRC := $(patsubst $(TOP_DIR)/%,%,$(GFXSRC)) GFXDEFS := $(patsubst %,-D%,$(patsubst -D%,%,$(GFXDEFS))) -- cgit v1.2.3 From 2251560256ff1a139178dc80b18dd8ef1d8e83d6 Mon Sep 17 00:00:00 2001 From: Fred Sundvik <fsundvik@gmail.com> Date: Sun, 9 Jul 2017 17:46:51 +0300 Subject: Clarify naming between LCD_BACKLIGHT and LED_BACKLIGHT --- keyboards/ergodox/infinity/animations.c | 44 ++++---- keyboards/ergodox/infinity/simple_visualizer.h | 2 +- keyboards/ergodox/infinity/visualizer.c | 4 +- keyboards/whitefox/animations.c | 36 +++---- lcd_backlight_keyframes.h | 30 ++++++ quantum/visualizer/lcd_backlight_keyframes.c | 8 +- quantum/visualizer/lcd_backlight_keyframes.h | 30 ------ quantum/visualizer/led_backlight_keyframes.c | 143 +++++++++++++++++++++++++ quantum/visualizer/led_backlight_keyframes.h | 44 ++++++++ quantum/visualizer/led_keyframes.c | 143 ------------------------- quantum/visualizer/led_keyframes.h | 44 -------- quantum/visualizer/visualizer.mk | 2 +- 12 files changed, 265 insertions(+), 265 deletions(-) create mode 100644 lcd_backlight_keyframes.h delete mode 100644 quantum/visualizer/lcd_backlight_keyframes.h create mode 100644 quantum/visualizer/led_backlight_keyframes.c create mode 100644 quantum/visualizer/led_backlight_keyframes.h delete mode 100644 quantum/visualizer/led_keyframes.c delete mode 100644 quantum/visualizer/led_keyframes.h diff --git a/keyboards/ergodox/infinity/animations.c b/keyboards/ergodox/infinity/animations.c index ebc08fde3..faac96215 100644 --- a/keyboards/ergodox/infinity/animations.c +++ b/keyboards/ergodox/infinity/animations.c @@ -26,7 +26,7 @@ #endif #ifdef BACKLIGHT_ENABLE -#include "led_keyframes.h" +#include "led_backlight_keyframes.h" #endif #include "visualizer_keyframes.h" @@ -39,10 +39,10 @@ static bool keyframe_enable(keyframe_animation_t* animation, visualizer_state_t* lcd_keyframe_enable(animation, state); #endif #ifdef LCD_BACKLIGHT_ENABLE - backlight_keyframe_enable(animation, state); + lcd_backlight_keyframe_enable(animation, state); #endif #ifdef BACKLIGHT_ENABLE - led_keyframe_enable(animation, state); + led_backlight_keyframe_enable(animation, state); #endif return false; } @@ -52,10 +52,10 @@ static bool keyframe_disable(keyframe_animation_t* animation, visualizer_state_t lcd_keyframe_disable(animation, state); #endif #ifdef LCD_BACKLIGHT_ENABLE - backlight_keyframe_disable(animation, state); + lcd_backlight_keyframe_disable(animation, state); #endif #ifdef BACKLIGHT_ENABLE - led_keyframe_disable(animation, state); + led_backlight_keyframe_disable(animation, state); #endif return false; } @@ -63,10 +63,10 @@ static bool keyframe_disable(keyframe_animation_t* animation, visualizer_state_t static bool keyframe_fade_in(keyframe_animation_t* animation, visualizer_state_t* state) { bool ret = false; #ifdef LCD_BACKLIGHT_ENABLE - ret |= backlight_keyframe_animate_color(animation, state); + ret |= lcd_backlight_keyframe_animate_color(animation, state); #endif #ifdef BACKLIGHT_ENABLE - ret |= led_keyframe_fade_in_all(animation, state); + ret |= led_backlight_keyframe_fade_in_all(animation, state); #endif return ret; } @@ -74,10 +74,10 @@ static bool keyframe_fade_in(keyframe_animation_t* animation, visualizer_state_t static bool keyframe_fade_out(keyframe_animation_t* animation, visualizer_state_t* state) { bool ret = false; #ifdef LCD_BACKLIGHT_ENABLE - ret |= backlight_keyframe_animate_color(animation, state); + ret |= lcd_backlight_keyframe_animate_color(animation, state); #endif #ifdef BACKLIGHT_ENABLE - ret |= led_keyframe_fade_out_all(animation, state); + ret |= led_backlight_keyframe_fade_out_all(animation, state); #endif return ret; } @@ -133,20 +133,20 @@ keyframe_animation_t led_test_animation = { }, .frame_functions = { - led_keyframe_fade_in_all, + led_backlight_keyframe_fade_in_all, keyframe_no_operation, - led_keyframe_fade_out_all, - led_keyframe_crossfade, - led_keyframe_left_to_right_gradient, - led_keyframe_crossfade, - led_keyframe_top_to_bottom_gradient, - led_keyframe_mirror_orientation, - led_keyframe_crossfade, - led_keyframe_left_to_right_gradient, - led_keyframe_crossfade, - led_keyframe_top_to_bottom_gradient, - led_keyframe_normal_orientation, - led_keyframe_crossfade, + led_backlight_keyframe_fade_out_all, + led_backlight_keyframe_crossfade, + led_backlight_keyframe_left_to_right_gradient, + led_backlight_keyframe_crossfade, + led_backlight_keyframe_top_to_bottom_gradient, + led_backlight_keyframe_mirror_orientation, + led_backlight_keyframe_crossfade, + led_backlight_keyframe_left_to_right_gradient, + led_backlight_keyframe_crossfade, + led_backlight_keyframe_top_to_bottom_gradient, + led_backlight_keyframe_normal_orientation, + led_backlight_keyframe_crossfade, }, }; #endif diff --git a/keyboards/ergodox/infinity/simple_visualizer.h b/keyboards/ergodox/infinity/simple_visualizer.h index ded8a3222..88e96f2af 100644 --- a/keyboards/ergodox/infinity/simple_visualizer.h +++ b/keyboards/ergodox/infinity/simple_visualizer.h @@ -58,7 +58,7 @@ static keyframe_animation_t color_animation = { // this prevents the color from changing when activating the layer // momentarily .frame_lengths = {gfxMillisecondsToTicks(200), gfxMillisecondsToTicks(500)}, - .frame_functions = {keyframe_no_operation, backlight_keyframe_animate_color}, + .frame_functions = {keyframe_no_operation, lcd_backlight_keyframe_animate_color}, }; void initialize_user_visualizer(visualizer_state_t* state) { diff --git a/keyboards/ergodox/infinity/visualizer.c b/keyboards/ergodox/infinity/visualizer.c index 5b6b32007..047a1119c 100644 --- a/keyboards/ergodox/infinity/visualizer.c +++ b/keyboards/ergodox/infinity/visualizer.c @@ -79,7 +79,7 @@ static keyframe_animation_t one_led_color = { .num_frames = 1, .loop = false, .frame_lengths = {gfxMillisecondsToTicks(0)}, - .frame_functions = {backlight_keyframe_set_color}, + .frame_functions = {lcd_backlight_keyframe_set_color}, }; bool swap_led_target_color(keyframe_animation_t* animation, visualizer_state_t* state) { @@ -94,7 +94,7 @@ static keyframe_animation_t two_led_colors = { .num_frames = 2, .loop = true, .frame_lengths = {gfxMillisecondsToTicks(1000), gfxMillisecondsToTicks(0)}, - .frame_functions = {backlight_keyframe_set_color, swap_led_target_color}, + .frame_functions = {lcd_backlight_keyframe_set_color, swap_led_target_color}, }; // The LCD animation alternates between the layer name display and a diff --git a/keyboards/whitefox/animations.c b/keyboards/whitefox/animations.c index ed1d75efb..a15d46ccd 100644 --- a/keyboards/whitefox/animations.c +++ b/keyboards/whitefox/animations.c @@ -20,7 +20,7 @@ #include "visualizer.h" #ifdef BACKLIGHT_ENABLE -#include "led_keyframes.h" +#include "led_backlight_keyframes.h" #endif #include "visualizer_keyframes.h" @@ -30,14 +30,14 @@ static bool keyframe_enable(keyframe_animation_t* animation, visualizer_state_t* state) { #ifdef BACKLIGHT_ENABLE - led_keyframe_enable(animation, state); + led_backlight_keyframe_enable(animation, state); #endif return false; } static bool keyframe_disable(keyframe_animation_t* animation, visualizer_state_t* state) { #ifdef BACKLIGHT_ENABLE - led_keyframe_disable(animation, state); + led_backlight_keyframe_disable(animation, state); #endif return false; } @@ -45,7 +45,7 @@ static bool keyframe_disable(keyframe_animation_t* animation, visualizer_state_t static bool keyframe_fade_in(keyframe_animation_t* animation, visualizer_state_t* state) { bool ret = false; #ifdef BACKLIGHT_ENABLE - ret |= led_keyframe_fade_in_all(animation, state); + ret |= led_backlight_keyframe_fade_in_all(animation, state); #endif return ret; } @@ -53,7 +53,7 @@ static bool keyframe_fade_in(keyframe_animation_t* animation, visualizer_state_t static bool keyframe_fade_out(keyframe_animation_t* animation, visualizer_state_t* state) { bool ret = false; #ifdef BACKLIGHT_ENABLE - ret |= led_keyframe_fade_out_all(animation, state); + ret |= led_backlight_keyframe_fade_out_all(animation, state); #endif return ret; } @@ -107,20 +107,20 @@ keyframe_animation_t led_test_animation = { }, .frame_functions = { - led_keyframe_fade_in_all, + led_backlight_keyframe_fade_in_all, keyframe_no_operation, - led_keyframe_fade_out_all, - led_keyframe_crossfade, - led_keyframe_left_to_right_gradient, - led_keyframe_crossfade, - led_keyframe_top_to_bottom_gradient, - led_keyframe_mirror_orientation, - led_keyframe_crossfade, - led_keyframe_left_to_right_gradient, - led_keyframe_crossfade, - led_keyframe_top_to_bottom_gradient, - led_keyframe_normal_orientation, - led_keyframe_crossfade, + led_backlight_keyframe_fade_out_all, + led_backlight_keyframe_crossfade, + led_backlight_keyframe_left_to_right_gradient, + led_backlight_keyframe_crossfade, + led_backlight_keyframe_top_to_bottom_gradient, + led_backlight_keyframe_mirror_orientation, + led_backlight_keyframe_crossfade, + led_backlight_keyframe_left_to_right_gradient, + led_backlight_keyframe_crossfade, + led_backlight_keyframe_top_to_bottom_gradient, + led_backlight_keyframe_normal_orientation, + led_backlight_keyframe_crossfade, }, }; #endif diff --git a/lcd_backlight_keyframes.h b/lcd_backlight_keyframes.h new file mode 100644 index 000000000..bde118449 --- /dev/null +++ b/lcd_backlight_keyframes.h @@ -0,0 +1,30 @@ +/* Copyright 2017 Fred Sundvik + * + * 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/>. + */ + +#ifndef QUANTUM_VISUALIZER_LCD_BACKLIGHT_KEYFRAMES_H_ +#define QUANTUM_VISUALIZER_LCD_BACKLIGHT_KEYFRAMES_H_ + +#include "visualizer.h" + +// Animates the LCD backlight color between the current color and the target color (of the state) +bool lcd_backlight_keyframe_animate_color(keyframe_animation_t* animation, visualizer_state_t* state); +// Sets the backlight color to the target color +bool lcd_backlight_keyframe_set_color(keyframe_animation_t* animation, visualizer_state_t* state); + +bool lcd_backlight_keyframe_disable(keyframe_animation_t* animation, visualizer_state_t* state); +bool lcd_backlight_keyframe_enable(keyframe_animation_t* animation, visualizer_state_t* state); + +#endif /* QUANTUM_VISUALIZER_LCD_BACKLIGHT_KEYFRAMES_H_ */ diff --git a/quantum/visualizer/lcd_backlight_keyframes.c b/quantum/visualizer/lcd_backlight_keyframes.c index 8436d4e3d..8c402baf6 100644 --- a/quantum/visualizer/lcd_backlight_keyframes.c +++ b/quantum/visualizer/lcd_backlight_keyframes.c @@ -16,7 +16,7 @@ #include "lcd_backlight_keyframes.h" -bool backlight_keyframe_animate_color(keyframe_animation_t* animation, visualizer_state_t* state) { +bool lcd_backlight_keyframe_animate_color(keyframe_animation_t* animation, visualizer_state_t* state) { int frame_length = animation->frame_lengths[animation->current_frame]; int current_pos = frame_length - animation->time_left_in_frame; uint8_t t_h = LCD_HUE(state->target_lcd_color); @@ -49,7 +49,7 @@ bool backlight_keyframe_animate_color(keyframe_animation_t* animation, visualize return true; } -bool backlight_keyframe_set_color(keyframe_animation_t* animation, visualizer_state_t* state) { +bool lcd_backlight_keyframe_set_color(keyframe_animation_t* animation, visualizer_state_t* state) { (void)animation; state->prev_lcd_color = state->target_lcd_color; state->current_lcd_color = state->target_lcd_color; @@ -60,14 +60,14 @@ bool backlight_keyframe_set_color(keyframe_animation_t* animation, visualizer_st return false; } -bool backlight_keyframe_disable(keyframe_animation_t* animation, visualizer_state_t* state) { +bool lcd_backlight_keyframe_disable(keyframe_animation_t* animation, visualizer_state_t* state) { (void)animation; (void)state; lcd_backlight_hal_color(0, 0, 0); return false; } -bool backlight_keyframe_enable(keyframe_animation_t* animation, visualizer_state_t* state) { +bool lcd_backlight_keyframe_enable(keyframe_animation_t* animation, visualizer_state_t* state) { (void)animation; (void)state; lcd_backlight_color(LCD_HUE(state->current_lcd_color), diff --git a/quantum/visualizer/lcd_backlight_keyframes.h b/quantum/visualizer/lcd_backlight_keyframes.h deleted file mode 100644 index e1c125cf9..000000000 --- a/quantum/visualizer/lcd_backlight_keyframes.h +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright 2017 Fred Sundvik - * - * 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/>. - */ - -#ifndef QUANTUM_VISUALIZER_LCD_BACKLIGHT_KEYFRAMES_H_ -#define QUANTUM_VISUALIZER_LCD_BACKLIGHT_KEYFRAMES_H_ - -#include "visualizer.h" - -// Animates the LCD backlight color between the current color and the target color (of the state) -bool backlight_keyframe_animate_color(keyframe_animation_t* animation, visualizer_state_t* state); -// Sets the backlight color to the target color -bool backlight_keyframe_set_color(keyframe_animation_t* animation, visualizer_state_t* state); - -bool backlight_keyframe_disable(keyframe_animation_t* animation, visualizer_state_t* state); -bool backlight_keyframe_enable(keyframe_animation_t* animation, visualizer_state_t* state); - -#endif /* QUANTUM_VISUALIZER_LCD_BACKLIGHT_KEYFRAMES_H_ */ diff --git a/quantum/visualizer/led_backlight_keyframes.c b/quantum/visualizer/led_backlight_keyframes.c new file mode 100644 index 000000000..d2921a391 --- /dev/null +++ b/quantum/visualizer/led_backlight_keyframes.c @@ -0,0 +1,143 @@ +/* +The MIT License (MIT) + +Copyright (c) 2016 Fred Sundvik + +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. +*/ +#include "gfx.h" +#include "math.h" +#include "led_backlight_keyframes.h" + +static uint8_t fade_led_color(keyframe_animation_t* animation, int from, int to) { + int frame_length = animation->frame_lengths[animation->current_frame]; + int current_pos = frame_length - animation->time_left_in_frame; + int delta = to - from; + int luma = (delta * current_pos) / frame_length; + luma += from; + return luma; +} + +static void keyframe_fade_all_leds_from_to(keyframe_animation_t* animation, uint8_t from, uint8_t to) { + uint8_t luma = fade_led_color(animation, from, to); + color_t color = LUMA2COLOR(luma); + gdispGClear(LED_DISPLAY, color); +} + +// TODO: Should be customizable per keyboard +#define NUM_ROWS LED_NUM_ROWS +#define NUM_COLS LED_NUM_COLS + +static uint8_t crossfade_start_frame[NUM_ROWS][NUM_COLS]; +static uint8_t crossfade_end_frame[NUM_ROWS][NUM_COLS]; + +static uint8_t compute_gradient_color(float t, float index, float num) { + const float two_pi = M_PI * 2.0f; + float normalized_index = (1.0f - index / (num - 1.0f)) * two_pi; + float x = t * two_pi + normalized_index; + float v = 0.5 * (cosf(x) + 1.0f); + return (uint8_t)(255.0f * v); +} + +bool led_backlight_keyframe_fade_in_all(keyframe_animation_t* animation, visualizer_state_t* state) { + (void)state; + keyframe_fade_all_leds_from_to(animation, 0, 255); + return true; +} + +bool led_backlight_keyframe_fade_out_all(keyframe_animation_t* animation, visualizer_state_t* state) { + (void)state; + keyframe_fade_all_leds_from_to(animation, 255, 0); + return true; +} + +bool led_backlight_keyframe_left_to_right_gradient(keyframe_animation_t* animation, visualizer_state_t* state) { + (void)state; + float frame_length = animation->frame_lengths[animation->current_frame]; + float current_pos = frame_length - animation->time_left_in_frame; + float t = current_pos / frame_length; + for (int i=0; i< NUM_COLS; i++) { + uint8_t color = compute_gradient_color(t, i, NUM_COLS); + gdispGDrawLine(LED_DISPLAY, i, 0, i, NUM_ROWS - 1, LUMA2COLOR(color)); + } + return true; +} + +bool led_backlight_keyframe_top_to_bottom_gradient(keyframe_animation_t* animation, visualizer_state_t* state) { + (void)state; + float frame_length = animation->frame_lengths[animation->current_frame]; + float current_pos = frame_length - animation->time_left_in_frame; + float t = current_pos / frame_length; + for (int i=0; i< NUM_ROWS; i++) { + uint8_t color = compute_gradient_color(t, i, NUM_ROWS); + gdispGDrawLine(LED_DISPLAY, 0, i, NUM_COLS - 1, i, LUMA2COLOR(color)); + } + return true; +} + +static void copy_current_led_state(uint8_t* dest) { + for (int i=0;i<NUM_ROWS;i++) { + for (int j=0;j<NUM_COLS;j++) { + dest[i*NUM_COLS + j] = gdispGGetPixelColor(LED_DISPLAY, j, i); + } + } +} +bool led_backlight_keyframe_crossfade(keyframe_animation_t* animation, visualizer_state_t* state) { + (void)state; + if (animation->first_update_of_frame) { + copy_current_led_state(&crossfade_start_frame[0][0]); + run_next_keyframe(animation, state); + copy_current_led_state(&crossfade_end_frame[0][0]); + } + for (int i=0;i<NUM_ROWS;i++) { + for (int j=0;j<NUM_COLS;j++) { + color_t color = LUMA2COLOR(fade_led_color(animation, crossfade_start_frame[i][j], crossfade_end_frame[i][j])); + gdispGDrawPixel(LED_DISPLAY, j, i, color); + } + } + return true; +} + +bool led_backlight_keyframe_mirror_orientation(keyframe_animation_t* animation, visualizer_state_t* state) { + (void)state; + (void)animation; + gdispGSetOrientation(LED_DISPLAY, GDISP_ROTATE_180); + return false; +} + +bool led_backlight_keyframe_normal_orientation(keyframe_animation_t* animation, visualizer_state_t* state) { + (void)state; + (void)animation; + gdispGSetOrientation(LED_DISPLAY, GDISP_ROTATE_0); + return false; +} + +bool led_backlight_keyframe_disable(keyframe_animation_t* animation, visualizer_state_t* state) { + (void)state; + (void)animation; + gdispGSetPowerMode(LED_DISPLAY, powerOff); + return false; +} + +bool led_backlight_keyframe_enable(keyframe_animation_t* animation, visualizer_state_t* state) { + (void)state; + (void)animation; + gdispGSetPowerMode(LED_DISPLAY, powerOn); + return false; +} diff --git a/quantum/visualizer/led_backlight_keyframes.h b/quantum/visualizer/led_backlight_keyframes.h new file mode 100644 index 000000000..487151013 --- /dev/null +++ b/quantum/visualizer/led_backlight_keyframes.h @@ -0,0 +1,44 @@ +/* +The MIT License (MIT) + +Copyright (c) 2016 Fred Sundvik + +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_BACKLIGHT_KEYFRAMES_H +#define LED_BACKLIGHT_KEYFRAMES_H + +#include "visualizer.h" + +bool led_backlight_keyframe_fade_in_all(keyframe_animation_t* animation, visualizer_state_t* state); +bool led_backlight_keyframe_fade_out_all(keyframe_animation_t* animation, visualizer_state_t* state); +bool led_backlight_keyframe_left_to_right_gradient(keyframe_animation_t* animation, visualizer_state_t* state); +bool led_backlight_keyframe_top_to_bottom_gradient(keyframe_animation_t* animation, visualizer_state_t* state); +bool led_backlight_keyframe_crossfade(keyframe_animation_t* animation, visualizer_state_t* state); +bool led_backlight_keyframe_mirror_orientation(keyframe_animation_t* animation, visualizer_state_t* state); +bool led_backlight_keyframe_normal_orientation(keyframe_animation_t* animation, visualizer_state_t* state); + +bool led_backlight_keyframe_disable(keyframe_animation_t* animation, visualizer_state_t* state); +bool led_backlight_keyframe_enable(keyframe_animation_t* animation, visualizer_state_t* state); + +extern keyframe_animation_t led_test_animation; + + +#endif /* LED_KEYFRAMES_H */ diff --git a/quantum/visualizer/led_keyframes.c b/quantum/visualizer/led_keyframes.c deleted file mode 100644 index 7e6e5d1ab..000000000 --- a/quantum/visualizer/led_keyframes.c +++ /dev/null @@ -1,143 +0,0 @@ -/* -The MIT License (MIT) - -Copyright (c) 2016 Fred Sundvik - -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. -*/ -#include "gfx.h" -#include "math.h" -#include "led_keyframes.h" - -static uint8_t fade_led_color(keyframe_animation_t* animation, int from, int to) { - int frame_length = animation->frame_lengths[animation->current_frame]; - int current_pos = frame_length - animation->time_left_in_frame; - int delta = to - from; - int luma = (delta * current_pos) / frame_length; - luma += from; - return luma; -} - -static void keyframe_fade_all_leds_from_to(keyframe_animation_t* animation, uint8_t from, uint8_t to) { - uint8_t luma = fade_led_color(animation, from, to); - color_t color = LUMA2COLOR(luma); - gdispGClear(LED_DISPLAY, color); -} - -// TODO: Should be customizable per keyboard -#define NUM_ROWS LED_NUM_ROWS -#define NUM_COLS LED_NUM_COLS - -static uint8_t crossfade_start_frame[NUM_ROWS][NUM_COLS]; -static uint8_t crossfade_end_frame[NUM_ROWS][NUM_COLS]; - -static uint8_t compute_gradient_color(float t, float index, float num) { - const float two_pi = M_PI * 2.0f; - float normalized_index = (1.0f - index / (num - 1.0f)) * two_pi; - float x = t * two_pi + normalized_index; - float v = 0.5 * (cosf(x) + 1.0f); - return (uint8_t)(255.0f * v); -} - -bool led_keyframe_fade_in_all(keyframe_animation_t* animation, visualizer_state_t* state) { - (void)state; - keyframe_fade_all_leds_from_to(animation, 0, 255); - return true; -} - -bool led_keyframe_fade_out_all(keyframe_animation_t* animation, visualizer_state_t* state) { - (void)state; - keyframe_fade_all_leds_from_to(animation, 255, 0); - return true; -} - -bool led_keyframe_left_to_right_gradient(keyframe_animation_t* animation, visualizer_state_t* state) { - (void)state; - float frame_length = animation->frame_lengths[animation->current_frame]; - float current_pos = frame_length - animation->time_left_in_frame; - float t = current_pos / frame_length; - for (int i=0; i< NUM_COLS; i++) { - uint8_t color = compute_gradient_color(t, i, NUM_COLS); - gdispGDrawLine(LED_DISPLAY, i, 0, i, NUM_ROWS - 1, LUMA2COLOR(color)); - } - return true; -} - -bool led_keyframe_top_to_bottom_gradient(keyframe_animation_t* animation, visualizer_state_t* state) { - (void)state; - float frame_length = animation->frame_lengths[animation->current_frame]; - float current_pos = frame_length - animation->time_left_in_frame; - float t = current_pos / frame_length; - for (int i=0; i< NUM_ROWS; i++) { - uint8_t color = compute_gradient_color(t, i, NUM_ROWS); - gdispGDrawLine(LED_DISPLAY, 0, i, NUM_COLS - 1, i, LUMA2COLOR(color)); - } - return true; -} - -static void copy_current_led_state(uint8_t* dest) { - for (int i=0;i<NUM_ROWS;i++) { - for (int j=0;j<NUM_COLS;j++) { - dest[i*NUM_COLS + j] = gdispGGetPixelColor(LED_DISPLAY, j, i); - } - } -} -bool led_keyframe_crossfade(keyframe_animation_t* animation, visualizer_state_t* state) { - (void)state; - if (animation->first_update_of_frame) { - copy_current_led_state(&crossfade_start_frame[0][0]); - run_next_keyframe(animation, state); - copy_current_led_state(&crossfade_end_frame[0][0]); - } - for (int i=0;i<NUM_ROWS;i++) { - for (int j=0;j<NUM_COLS;j++) { - color_t color = LUMA2COLOR(fade_led_color(animation, crossfade_start_frame[i][j], crossfade_end_frame[i][j])); - gdispGDrawPixel(LED_DISPLAY, j, i, color); - } - } - return true; -} - -bool led_keyframe_mirror_orientation(keyframe_animation_t* animation, visualizer_state_t* state) { - (void)state; - (void)animation; - gdispGSetOrientation(LED_DISPLAY, GDISP_ROTATE_180); - return false; -} - -bool led_keyframe_normal_orientation(keyframe_animation_t* animation, visualizer_state_t* state) { - (void)state; - (void)animation; - gdispGSetOrientation(LED_DISPLAY, GDISP_ROTATE_0); - return false; -} - -bool led_keyframe_disable(keyframe_animation_t* animation, visualizer_state_t* state) { - (void)state; - (void)animation; - gdispGSetPowerMode(LED_DISPLAY, powerOff); - return false; -} - -bool led_keyframe_enable(keyframe_animation_t* animation, visualizer_state_t* state) { - (void)state; - (void)animation; - gdispGSetPowerMode(LED_DISPLAY, powerOn); - return false; -} diff --git a/quantum/visualizer/led_keyframes.h b/quantum/visualizer/led_keyframes.h deleted file mode 100644 index a59a4f37d..000000000 --- a/quantum/visualizer/led_keyframes.h +++ /dev/null @@ -1,44 +0,0 @@ -/* -The MIT License (MIT) - -Copyright (c) 2016 Fred Sundvik - -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_KEYFRAMES_H -#define LED_KEYFRAMES_H - -#include "visualizer.h" - -bool led_keyframe_fade_in_all(keyframe_animation_t* animation, visualizer_state_t* state); -bool led_keyframe_fade_out_all(keyframe_animation_t* animation, visualizer_state_t* state); -bool led_keyframe_left_to_right_gradient(keyframe_animation_t* animation, visualizer_state_t* state); -bool led_keyframe_top_to_bottom_gradient(keyframe_animation_t* animation, visualizer_state_t* state); -bool led_keyframe_crossfade(keyframe_animation_t* animation, visualizer_state_t* state); -bool led_keyframe_mirror_orientation(keyframe_animation_t* animation, visualizer_state_t* state); -bool led_keyframe_normal_orientation(keyframe_animation_t* animation, visualizer_state_t* state); - -bool led_keyframe_disable(keyframe_animation_t* animation, visualizer_state_t* state); -bool led_keyframe_enable(keyframe_animation_t* animation, visualizer_state_t* state); - -extern keyframe_animation_t led_test_animation; - - -#endif /* LED_KEYFRAMES_H */ diff --git a/quantum/visualizer/visualizer.mk b/quantum/visualizer/visualizer.mk index 1fe7435d9..a04c9775f 100644 --- a/quantum/visualizer/visualizer.mk +++ b/quantum/visualizer/visualizer.mk @@ -43,7 +43,7 @@ OPT_DEFS += -DLCD_BACKLIGHT_ENABLE endif ifeq ($(strip $(BACKLIGHT_ENABLE)), yes) -SRC += $(VISUALIZER_DIR)/led_keyframes.c +SRC += $(VISUALIZER_DIR)/led_backlight_keyframes.c endif include $(GFXLIB)/gfx.mk -- cgit v1.2.3 From 4da3b19603255115f71812964383ee7b518637be Mon Sep 17 00:00:00 2001 From: Fred Sundvik <fsundvik@gmail.com> Date: Sun, 9 Jul 2017 17:50:01 +0300 Subject: Shared default animations --- keyboards/ergodox/infinity/animations.c | 154 ---------------------- keyboards/ergodox/infinity/animations.h | 30 ----- keyboards/ergodox/infinity/rules.mk | 3 +- keyboards/ergodox/infinity/simple_visualizer.h | 2 +- keyboards/ergodox/infinity/visualizer.c | 2 +- keyboards/whitefox/animations.c | 128 ------------------ keyboards/whitefox/animations.h | 30 ----- keyboards/whitefox/rules.mk | 3 +- keyboards/whitefox/visualizer.c | 2 +- quantum/visualizer/default_animations.c | 176 +++++++++++++++++++++++++ quantum/visualizer/default_animations.h | 30 +++++ quantum/visualizer/visualizer.mk | 2 + 12 files changed, 213 insertions(+), 349 deletions(-) delete mode 100644 keyboards/ergodox/infinity/animations.c delete mode 100644 keyboards/ergodox/infinity/animations.h delete mode 100644 keyboards/whitefox/animations.c delete mode 100644 keyboards/whitefox/animations.h create mode 100644 quantum/visualizer/default_animations.c create mode 100644 quantum/visualizer/default_animations.h diff --git a/keyboards/ergodox/infinity/animations.c b/keyboards/ergodox/infinity/animations.c deleted file mode 100644 index faac96215..000000000 --- a/keyboards/ergodox/infinity/animations.c +++ /dev/null @@ -1,154 +0,0 @@ -/* Copyright 2017 Fred Sundvik - * - * 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/>. - */ - -#if defined(VISUALIZER_ENABLE) - -#include "animations.h" -#include "visualizer.h" -#ifdef LCD_ENABLE -#include "lcd_keyframes.h" -#endif -#ifdef LCD_BACKLIGHT_ENABLE -#include "lcd_backlight_keyframes.h" -#endif - -#ifdef BACKLIGHT_ENABLE -#include "led_backlight_keyframes.h" -#endif - -#include "visualizer_keyframes.h" - - -#if defined(LCD_ENABLE) || defined(LCD_BACKLIGHT_ENABLE) || defined(BACKLIGHT_ENABLE) - -static bool keyframe_enable(keyframe_animation_t* animation, visualizer_state_t* state) { -#ifdef LCD_ENABLE - lcd_keyframe_enable(animation, state); -#endif -#ifdef LCD_BACKLIGHT_ENABLE - lcd_backlight_keyframe_enable(animation, state); -#endif -#ifdef BACKLIGHT_ENABLE - led_backlight_keyframe_enable(animation, state); -#endif - return false; -} - -static bool keyframe_disable(keyframe_animation_t* animation, visualizer_state_t* state) { -#ifdef LCD_ENABLE - lcd_keyframe_disable(animation, state); -#endif -#ifdef LCD_BACKLIGHT_ENABLE - lcd_backlight_keyframe_disable(animation, state); -#endif -#ifdef BACKLIGHT_ENABLE - led_backlight_keyframe_disable(animation, state); -#endif - return false; -} - -static bool keyframe_fade_in(keyframe_animation_t* animation, visualizer_state_t* state) { - bool ret = false; -#ifdef LCD_BACKLIGHT_ENABLE - ret |= lcd_backlight_keyframe_animate_color(animation, state); -#endif -#ifdef BACKLIGHT_ENABLE - ret |= led_backlight_keyframe_fade_in_all(animation, state); -#endif - return ret; -} - -static bool keyframe_fade_out(keyframe_animation_t* animation, visualizer_state_t* state) { - bool ret = false; -#ifdef LCD_BACKLIGHT_ENABLE - ret |= lcd_backlight_keyframe_animate_color(animation, state); -#endif -#ifdef BACKLIGHT_ENABLE - ret |= led_backlight_keyframe_fade_out_all(animation, state); -#endif - return ret; -} - - -// Don't worry, if the startup animation is long, you can use the keyboard like normal -// during that time -keyframe_animation_t default_startup_animation = { - .num_frames = 3, - .loop = false, - .frame_lengths = {0, 0, gfxMillisecondsToTicks(5000)}, - .frame_functions = { - keyframe_enable, - lcd_keyframe_draw_logo, - keyframe_fade_in, - }, -}; - -keyframe_animation_t default_suspend_animation = { - .num_frames = 3, - .loop = false, - .frame_lengths = {0, gfxMillisecondsToTicks(1000), 0}, - .frame_functions = { - lcd_keyframe_display_layer_text, - keyframe_fade_out, - keyframe_disable, - }, -}; -#endif - -#if defined(BACKLIGHT_ENABLE) -#define CROSSFADE_TIME 1000 -#define GRADIENT_TIME 3000 - -keyframe_animation_t led_test_animation = { - .num_frames = 14, - .loop = true, - .frame_lengths = { - gfxMillisecondsToTicks(1000), // fade in - gfxMillisecondsToTicks(1000), // no op (leds on) - gfxMillisecondsToTicks(1000), // fade out - gfxMillisecondsToTicks(CROSSFADE_TIME), // crossfade - gfxMillisecondsToTicks(GRADIENT_TIME), // left to rigt (outside in) - gfxMillisecondsToTicks(CROSSFADE_TIME), // crossfade - gfxMillisecondsToTicks(GRADIENT_TIME), // top_to_bottom - 0, // mirror leds - gfxMillisecondsToTicks(CROSSFADE_TIME), // crossfade - gfxMillisecondsToTicks(GRADIENT_TIME), // left_to_right (mirrored, so inside out) - gfxMillisecondsToTicks(CROSSFADE_TIME), // crossfade - gfxMillisecondsToTicks(GRADIENT_TIME), // top_to_bottom - 0, // normal leds - gfxMillisecondsToTicks(CROSSFADE_TIME), // crossfade - - }, - .frame_functions = { - led_backlight_keyframe_fade_in_all, - keyframe_no_operation, - led_backlight_keyframe_fade_out_all, - led_backlight_keyframe_crossfade, - led_backlight_keyframe_left_to_right_gradient, - led_backlight_keyframe_crossfade, - led_backlight_keyframe_top_to_bottom_gradient, - led_backlight_keyframe_mirror_orientation, - led_backlight_keyframe_crossfade, - led_backlight_keyframe_left_to_right_gradient, - led_backlight_keyframe_crossfade, - led_backlight_keyframe_top_to_bottom_gradient, - led_backlight_keyframe_normal_orientation, - led_backlight_keyframe_crossfade, - }, -}; -#endif - -#endif diff --git a/keyboards/ergodox/infinity/animations.h b/keyboards/ergodox/infinity/animations.h deleted file mode 100644 index 6d8b9830d..000000000 --- a/keyboards/ergodox/infinity/animations.h +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright 2017 Fred Sundvik - * - * 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/>. - */ - -#ifndef KEYBOARDS_ERGODOX_INFINITY_ANIMATIONS_H_ -#define KEYBOARDS_ERGODOX_INFINITY_ANIMATIONS_H_ - -#include "visualizer.h" - -// You can use these default animations, but of course you can also write your own custom ones instead -extern keyframe_animation_t default_startup_animation; -extern keyframe_animation_t default_suspend_animation; - -// An animation for testing and demonstrating the led support, should probably not be used for real world -// cases -extern keyframe_animation_t led_test_animation; - -#endif /* KEYBOARDS_ERGODOX_INFINITY_ANIMATIONS_H_ */ diff --git a/keyboards/ergodox/infinity/rules.mk b/keyboards/ergodox/infinity/rules.mk index 18171560d..2ccf98b8c 100644 --- a/keyboards/ergodox/infinity/rules.mk +++ b/keyboards/ergodox/infinity/rules.mk @@ -1,7 +1,6 @@ # project specific files SRC = matrix.c \ - led.c \ - animations.c + led.c ## chip/board settings # - the next two should match the directories in diff --git a/keyboards/ergodox/infinity/simple_visualizer.h b/keyboards/ergodox/infinity/simple_visualizer.h index 88e96f2af..73d0e0887 100644 --- a/keyboards/ergodox/infinity/simple_visualizer.h +++ b/keyboards/ergodox/infinity/simple_visualizer.h @@ -34,7 +34,7 @@ #include "lcd_backlight_keyframes.h" #include "system/serial_link.h" #include "led.h" -#include "animations.h" +#include "default_animations.h" static const uint32_t logo_background_color = LCD_COLOR(0x00, 0x00, 0xFF); static const uint32_t initial_color = LCD_COLOR(0, 0, 0); diff --git a/keyboards/ergodox/infinity/visualizer.c b/keyboards/ergodox/infinity/visualizer.c index 047a1119c..4b16021ab 100644 --- a/keyboards/ergodox/infinity/visualizer.c +++ b/keyboards/ergodox/infinity/visualizer.c @@ -31,7 +31,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #include "lcd_keyframes.h" #include "lcd_backlight_keyframes.h" #include "system/serial_link.h" -#include "animations.h" +#include "default_animations.h" static const uint32_t logo_background_color = LCD_COLOR(0x00, 0x00, 0xFF); static const uint32_t initial_color = LCD_COLOR(0, 0, 0); diff --git a/keyboards/whitefox/animations.c b/keyboards/whitefox/animations.c deleted file mode 100644 index a15d46ccd..000000000 --- a/keyboards/whitefox/animations.c +++ /dev/null @@ -1,128 +0,0 @@ -/* Copyright 2017 Fred Sundvik - * - * 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/>. - */ - -#if defined(VISUALIZER_ENABLE) - -#include "animations.h" -#include "visualizer.h" - -#ifdef BACKLIGHT_ENABLE -#include "led_backlight_keyframes.h" -#endif - -#include "visualizer_keyframes.h" - - -#if defined(LCD_ENABLE) || defined(LCD_BACKLIGHT_ENABLE) || defined(BACKLIGHT_ENABLE) - -static bool keyframe_enable(keyframe_animation_t* animation, visualizer_state_t* state) { -#ifdef BACKLIGHT_ENABLE - led_backlight_keyframe_enable(animation, state); -#endif - return false; -} - -static bool keyframe_disable(keyframe_animation_t* animation, visualizer_state_t* state) { -#ifdef BACKLIGHT_ENABLE - led_backlight_keyframe_disable(animation, state); -#endif - return false; -} - -static bool keyframe_fade_in(keyframe_animation_t* animation, visualizer_state_t* state) { - bool ret = false; -#ifdef BACKLIGHT_ENABLE - ret |= led_backlight_keyframe_fade_in_all(animation, state); -#endif - return ret; -} - -static bool keyframe_fade_out(keyframe_animation_t* animation, visualizer_state_t* state) { - bool ret = false; -#ifdef BACKLIGHT_ENABLE - ret |= led_backlight_keyframe_fade_out_all(animation, state); -#endif - return ret; -} - - -// Don't worry, if the startup animation is long, you can use the keyboard like normal -// during that time -keyframe_animation_t default_startup_animation = { - .num_frames = 2, - .loop = false, - .frame_lengths = {0, gfxMillisecondsToTicks(5000)}, - .frame_functions = { - keyframe_enable, - keyframe_fade_in, - }, -}; - -keyframe_animation_t default_suspend_animation = { - .num_frames = 2, - .loop = false, - .frame_lengths = {gfxMillisecondsToTicks(1000), 0}, - .frame_functions = { - keyframe_fade_out, - keyframe_disable, - }, -}; -#endif - -#if defined(BACKLIGHT_ENABLE) -#define CROSSFADE_TIME 1000 -#define GRADIENT_TIME 3000 - -keyframe_animation_t led_test_animation = { - .num_frames = 14, - .loop = true, - .frame_lengths = { - gfxMillisecondsToTicks(1000), // fade in - gfxMillisecondsToTicks(1000), // no op (leds on) - gfxMillisecondsToTicks(1000), // fade out - gfxMillisecondsToTicks(CROSSFADE_TIME), // crossfade - gfxMillisecondsToTicks(GRADIENT_TIME), // left to rigt (outside in) - gfxMillisecondsToTicks(CROSSFADE_TIME), // crossfade - gfxMillisecondsToTicks(GRADIENT_TIME), // top_to_bottom - 0, // mirror leds - gfxMillisecondsToTicks(CROSSFADE_TIME), // crossfade - gfxMillisecondsToTicks(GRADIENT_TIME), // left_to_right (mirrored, so inside out) - gfxMillisecondsToTicks(CROSSFADE_TIME), // crossfade - gfxMillisecondsToTicks(GRADIENT_TIME), // top_to_bottom - 0, // normal leds - gfxMillisecondsToTicks(CROSSFADE_TIME), // crossfade - - }, - .frame_functions = { - led_backlight_keyframe_fade_in_all, - keyframe_no_operation, - led_backlight_keyframe_fade_out_all, - led_backlight_keyframe_crossfade, - led_backlight_keyframe_left_to_right_gradient, - led_backlight_keyframe_crossfade, - led_backlight_keyframe_top_to_bottom_gradient, - led_backlight_keyframe_mirror_orientation, - led_backlight_keyframe_crossfade, - led_backlight_keyframe_left_to_right_gradient, - led_backlight_keyframe_crossfade, - led_backlight_keyframe_top_to_bottom_gradient, - led_backlight_keyframe_normal_orientation, - led_backlight_keyframe_crossfade, - }, -}; -#endif - -#endif diff --git a/keyboards/whitefox/animations.h b/keyboards/whitefox/animations.h deleted file mode 100644 index 6d8b9830d..000000000 --- a/keyboards/whitefox/animations.h +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright 2017 Fred Sundvik - * - * 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/>. - */ - -#ifndef KEYBOARDS_ERGODOX_INFINITY_ANIMATIONS_H_ -#define KEYBOARDS_ERGODOX_INFINITY_ANIMATIONS_H_ - -#include "visualizer.h" - -// You can use these default animations, but of course you can also write your own custom ones instead -extern keyframe_animation_t default_startup_animation; -extern keyframe_animation_t default_suspend_animation; - -// An animation for testing and demonstrating the led support, should probably not be used for real world -// cases -extern keyframe_animation_t led_test_animation; - -#endif /* KEYBOARDS_ERGODOX_INFINITY_ANIMATIONS_H_ */ diff --git a/keyboards/whitefox/rules.mk b/keyboards/whitefox/rules.mk index c0effcb7b..391148071 100644 --- a/keyboards/whitefox/rules.mk +++ b/keyboards/whitefox/rules.mk @@ -1,7 +1,6 @@ # project specific files SRC = matrix.c \ - led.c \ - animations.c + led.c ## chip/board settings # - the next two should match the directories in diff --git a/keyboards/whitefox/visualizer.c b/keyboards/whitefox/visualizer.c index 167e0ec4d..e5bafcbe9 100644 --- a/keyboards/whitefox/visualizer.c +++ b/keyboards/whitefox/visualizer.c @@ -20,7 +20,7 @@ #include "visualizer.h" #include "visualizer_keyframes.h" #include "led.h" -#include "animations.h" +#include "default_animations.h" static bool initial_update = true; diff --git a/quantum/visualizer/default_animations.c b/quantum/visualizer/default_animations.c new file mode 100644 index 000000000..2d0327372 --- /dev/null +++ b/quantum/visualizer/default_animations.c @@ -0,0 +1,176 @@ +/* Copyright 2017 Fred Sundvik + * + * 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/>. + */ + +#if defined(VISUALIZER_ENABLE) + +#include "default_animations.h" +#include "visualizer.h" +#ifdef LCD_ENABLE +#include "lcd_keyframes.h" +#endif +#ifdef LCD_BACKLIGHT_ENABLE +#include "lcd_backlight_keyframes.h" +#endif + +#ifdef BACKLIGHT_ENABLE +#include "led_backlight_keyframes.h" +#endif + +#include "visualizer_keyframes.h" + + +#if defined(LCD_ENABLE) || defined(LCD_BACKLIGHT_ENABLE) || defined(BACKLIGHT_ENABLE) + +static bool keyframe_enable(keyframe_animation_t* animation, visualizer_state_t* state) { +#ifdef LCD_ENABLE + lcd_keyframe_enable(animation, state); +#endif +#ifdef LCD_BACKLIGHT_ENABLE + lcd_backlight_keyframe_enable(animation, state); +#endif +#ifdef BACKLIGHT_ENABLE + led_backlight_keyframe_enable(animation, state); +#endif + return false; +} + +static bool keyframe_disable(keyframe_animation_t* animation, visualizer_state_t* state) { +#ifdef LCD_ENABLE + lcd_keyframe_disable(animation, state); +#endif +#ifdef LCD_BACKLIGHT_ENABLE + lcd_backlight_keyframe_disable(animation, state); +#endif +#ifdef BACKLIGHT_ENABLE + led_backlight_keyframe_disable(animation, state); +#endif + return false; +} + +static bool keyframe_fade_in(keyframe_animation_t* animation, visualizer_state_t* state) { + bool ret = false; +#ifdef LCD_BACKLIGHT_ENABLE + ret |= lcd_backlight_keyframe_animate_color(animation, state); +#endif +#ifdef BACKLIGHT_ENABLE + ret |= led_backlight_keyframe_fade_in_all(animation, state); +#endif + return ret; +} + +static bool keyframe_fade_out(keyframe_animation_t* animation, visualizer_state_t* state) { + bool ret = false; +#ifdef LCD_BACKLIGHT_ENABLE + ret |= lcd_backlight_keyframe_animate_color(animation, state); +#endif +#ifdef BACKLIGHT_ENABLE + ret |= led_backlight_keyframe_fade_out_all(animation, state); +#endif + return ret; +} + + +// Don't worry, if the startup animation is long, you can use the keyboard like normal +// during that time +keyframe_animation_t default_startup_animation = { +#if LCD_ENABLE + .num_frames = 3, +#else + .num_frames = 2, +#endif + .loop = false, + .frame_lengths = { + 0, +#if LCD_ENABLE + 0, +#endif + gfxMillisecondsToTicks(5000)}, + .frame_functions = { + keyframe_enable, +#if LCD_ENABLE + lcd_keyframe_draw_logo, +#endif + keyframe_fade_in, + }, +}; + +keyframe_animation_t default_suspend_animation = { +#if LCD_ENABLE + .num_frames = 3, +#else + .num_frames = 2, +#endif + .loop = false, + .frame_lengths = { +#if LCD_ENABLE + 0, +#endif + gfxMillisecondsToTicks(1000), + 0}, + .frame_functions = { +#if LCD_ENABLE + lcd_keyframe_display_layer_text, +#endif + keyframe_fade_out, + keyframe_disable, + }, +}; +#endif + +#if defined(BACKLIGHT_ENABLE) +#define CROSSFADE_TIME 1000 +#define GRADIENT_TIME 3000 + +keyframe_animation_t led_test_animation = { + .num_frames = 14, + .loop = true, + .frame_lengths = { + gfxMillisecondsToTicks(1000), // fade in + gfxMillisecondsToTicks(1000), // no op (leds on) + gfxMillisecondsToTicks(1000), // fade out + gfxMillisecondsToTicks(CROSSFADE_TIME), // crossfade + gfxMillisecondsToTicks(GRADIENT_TIME), // left to rigt (outside in) + gfxMillisecondsToTicks(CROSSFADE_TIME), // crossfade + gfxMillisecondsToTicks(GRADIENT_TIME), // top_to_bottom + 0, // mirror leds + gfxMillisecondsToTicks(CROSSFADE_TIME), // crossfade + gfxMillisecondsToTicks(GRADIENT_TIME), // left_to_right (mirrored, so inside out) + gfxMillisecondsToTicks(CROSSFADE_TIME), // crossfade + gfxMillisecondsToTicks(GRADIENT_TIME), // top_to_bottom + 0, // normal leds + gfxMillisecondsToTicks(CROSSFADE_TIME), // crossfade + + }, + .frame_functions = { + led_backlight_keyframe_fade_in_all, + keyframe_no_operation, + led_backlight_keyframe_fade_out_all, + led_backlight_keyframe_crossfade, + led_backlight_keyframe_left_to_right_gradient, + led_backlight_keyframe_crossfade, + led_backlight_keyframe_top_to_bottom_gradient, + led_backlight_keyframe_mirror_orientation, + led_backlight_keyframe_crossfade, + led_backlight_keyframe_left_to_right_gradient, + led_backlight_keyframe_crossfade, + led_backlight_keyframe_top_to_bottom_gradient, + led_backlight_keyframe_normal_orientation, + led_backlight_keyframe_crossfade, + }, +}; +#endif + +#endif diff --git a/quantum/visualizer/default_animations.h b/quantum/visualizer/default_animations.h new file mode 100644 index 000000000..51320b8b8 --- /dev/null +++ b/quantum/visualizer/default_animations.h @@ -0,0 +1,30 @@ +/* Copyright 2017 Fred Sundvik + * + * 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/>. + */ + +#ifndef DEFAULT_ANIMATIONS_H_ +#define DEFAULT_ANIMATIONS_H_ + +#include "visualizer.h" + +// You can use these default animations, but of course you can also write your own custom ones instead +extern keyframe_animation_t default_startup_animation; +extern keyframe_animation_t default_suspend_animation; + +// An animation for testing and demonstrating the led support, should probably not be used for real world +// cases +extern keyframe_animation_t led_test_animation; + +#endif /* DEFAULT_ANIMATIONS_H_ */ diff --git a/quantum/visualizer/visualizer.mk b/quantum/visualizer/visualizer.mk index a04c9775f..3a0f771bc 100644 --- a/quantum/visualizer/visualizer.mk +++ b/quantum/visualizer/visualizer.mk @@ -46,6 +46,8 @@ ifeq ($(strip $(BACKLIGHT_ENABLE)), yes) SRC += $(VISUALIZER_DIR)/led_backlight_keyframes.c endif +SRC += $(VISUALIZER_DIR)/default_animations.c + include $(GFXLIB)/gfx.mk # For the common_gfxconf.h GFXINC += quantum/visualizer -- cgit v1.2.3 From 9d8279960d8784d5602025f6845b0af92db12848 Mon Sep 17 00:00:00 2001 From: Fred Sundvik <fsundvik@gmail.com> Date: Sun, 9 Jul 2017 20:35:33 +0300 Subject: Make it easier to use drivers --- drivers/ugfx/gdisp/is31fl3731c/driver.mk | 1 + drivers/ugfx/gdisp/is31fl3731c/gdisp_is31fl3731c.c | 12 +++----- drivers/ugfx/gdisp/st7565/driver.mk | 1 + drivers/ugfx/gdisp/st7565/gdisp_lld_ST7565.c | 4 +-- keyboards/ergodox/infinity/board_IS31FL3731C.h | 3 -- keyboards/ergodox/infinity/config.h | 5 ---- keyboards/ergodox/infinity/gfxconf.h | 6 ---- keyboards/ergodox/infinity/rules.mk | 9 ++++-- keyboards/whitefox/board_IS31FL3731C.h | 3 -- keyboards/whitefox/config.h | 8 +---- keyboards/whitefox/gfxconf.h | 4 --- keyboards/whitefox/rules.mk | 4 ++- quantum/visualizer/lcd_keyframes.c | 4 +-- quantum/visualizer/led_backlight_keyframes.c | 4 +-- quantum/visualizer/visualizer.mk | 35 ++++++++++++++++++++++ 15 files changed, 58 insertions(+), 45 deletions(-) diff --git a/drivers/ugfx/gdisp/is31fl3731c/driver.mk b/drivers/ugfx/gdisp/is31fl3731c/driver.mk index c9de62d1e..4364787c9 100644 --- a/drivers/ugfx/gdisp/is31fl3731c/driver.mk +++ b/drivers/ugfx/gdisp/is31fl3731c/driver.mk @@ -1,2 +1,3 @@ GFXINC += drivers/ugfx/gdisp/is31fl3731c GFXSRC += drivers/ugfx/gdisp/is31fl3731c/gdisp_is31fl3731c.c +GDISP_DRIVER_LIST += GDISPVMT_IS31FL3731C_QMK \ No newline at end of file diff --git a/drivers/ugfx/gdisp/is31fl3731c/gdisp_is31fl3731c.c b/drivers/ugfx/gdisp/is31fl3731c/gdisp_is31fl3731c.c index 0691dbfbf..3faddcda8 100644 --- a/drivers/ugfx/gdisp/is31fl3731c/gdisp_is31fl3731c.c +++ b/drivers/ugfx/gdisp/is31fl3731c/gdisp_is31fl3731c.c @@ -19,7 +19,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #if GFX_USE_GDISP -#define GDISP_DRIVER_VMT GDISPVMT_IS31FL3731C_QMK +#define GDISP_DRIVER_VMT GDISPVMT_IS31FL3731C_QMK +#define GDISP_SCREEN_HEIGHT LED_HEIGHT +#define GDISP_SCREEN_WIDTH LED_WIDTH + #include "gdisp_lld_config.h" #include "src/gdisp/gdisp_driver.h" @@ -33,12 +36,6 @@ extern const uint8_t CIE1931_CURVE[]; /* Driver local definitions. */ /*===========================================================================*/ -#ifndef GDISP_SCREEN_HEIGHT - #define GDISP_SCREEN_HEIGHT 9 -#endif -#ifndef GDISP_SCREEN_WIDTH - #define GDISP_SCREEN_WIDTH 16 -#endif #ifndef GDISP_INITIAL_CONTRAST #define GDISP_INITIAL_CONTRAST 0 #endif @@ -100,7 +97,6 @@ extern const uint8_t CIE1931_CURVE[]; #define IS31_PWM_SIZE 0x90 #define IS31_LED_MASK_SIZE 0x12 -#define IS31_SCREEN_WIDTH 16 #define IS31 diff --git a/drivers/ugfx/gdisp/st7565/driver.mk b/drivers/ugfx/gdisp/st7565/driver.mk index 0190b6019..31fc8f1c7 100644 --- a/drivers/ugfx/gdisp/st7565/driver.mk +++ b/drivers/ugfx/gdisp/st7565/driver.mk @@ -1,2 +1,3 @@ GFXINC += drivers/ugfx/gdisp/st7565 GFXSRC += drivers/ugfx/gdisp/st7565/gdisp_lld_ST7565.c +GDISP_DRIVER_LIST += GDISPVMT_ST7565_QMK \ No newline at end of file diff --git a/drivers/ugfx/gdisp/st7565/gdisp_lld_ST7565.c b/drivers/ugfx/gdisp/st7565/gdisp_lld_ST7565.c index 55552cb79..4a4c83e89 100644 --- a/drivers/ugfx/gdisp/st7565/gdisp_lld_ST7565.c +++ b/drivers/ugfx/gdisp/st7565/gdisp_lld_ST7565.c @@ -20,10 +20,10 @@ /*===========================================================================*/ #ifndef GDISP_SCREEN_HEIGHT -#define GDISP_SCREEN_HEIGHT 32 +#define GDISP_SCREEN_HEIGHT LCD_HEIGHT #endif #ifndef GDISP_SCREEN_WIDTH -#define GDISP_SCREEN_WIDTH 128 +#define GDISP_SCREEN_WIDTH LCD_WIDTH #endif #ifndef GDISP_INITIAL_CONTRAST #define GDISP_INITIAL_CONTRAST 35 diff --git a/keyboards/ergodox/infinity/board_IS31FL3731C.h b/keyboards/ergodox/infinity/board_IS31FL3731C.h index 2ea73f1fb..f248cc25b 100644 --- a/keyboards/ergodox/infinity/board_IS31FL3731C.h +++ b/keyboards/ergodox/infinity/board_IS31FL3731C.h @@ -22,9 +22,6 @@ static const I2CConfig i2ccfg = { 400000 // clock speed (Hz); 400kHz max for IS31 }; -#define GDISP_SCREEN_WIDTH 7 -#define GDISP_SCREEN_HEIGHT 7 - static const uint8_t led_mask[] = { 0xFF, 0x00, /* C1-1 -> C1-16 */ 0xFF, 0x00, /* C2-1 -> C2-16 */ diff --git a/keyboards/ergodox/infinity/config.h b/keyboards/ergodox/infinity/config.h index fa157a893..c46edeb7b 100644 --- a/keyboards/ergodox/infinity/config.h +++ b/keyboards/ergodox/infinity/config.h @@ -54,11 +54,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define VISUALIZER_USER_DATA_SIZE 16 -#define LCD_DISPLAY_NUMBER 0 -#define LED_DISPLAY_NUMBER 1 - -#define LED_NUM_ROWS 7 -#define LED_NUM_COLS 7 /* * Feature disable options * These options are also useful to firmware size reduction. diff --git a/keyboards/ergodox/infinity/gfxconf.h b/keyboards/ergodox/infinity/gfxconf.h index 0d017aea9..ca338399d 100644 --- a/keyboards/ergodox/infinity/gfxconf.h +++ b/keyboards/ergodox/infinity/gfxconf.h @@ -22,12 +22,6 @@ #ifndef _GFXCONF_H #define _GFXCONF_H -#ifndef EMULATOR -#define GDISP_DRIVER_LIST GDISPVMT_ST7565_QMK, GDISPVMT_IS31FL3731C_QMK -#else -#define GDISP_DRIVER_LIST GDISPVMT_EMULATOR_LCD_ERGODOX, GDISPVMT_EMULATOR_LED_ERGODOX -#endif - #include "common_gfxconf.h" #endif /* _GFXCONF_H */ diff --git a/keyboards/ergodox/infinity/rules.mk b/keyboards/ergodox/infinity/rules.mk index 2ccf98b8c..a341bbfce 100644 --- a/keyboards/ergodox/infinity/rules.mk +++ b/keyboards/ergodox/infinity/rules.mk @@ -66,5 +66,10 @@ LCD_BACKLIGHT_ENABLE = yes MIDI_ENABLE = no RGBLIGHT_ENABLE = no -include $(TOP_DIR)/drivers/ugfx/gdisp/st7565/driver.mk -include $(TOP_DIR)/drivers/ugfx/gdisp/is31fl3731c/driver.mk \ No newline at end of file +LCD_DRIVER = st7565 +LCD_WIDTH = 128 +LCD_HEIGHT = 32 + +LED_DRIVER = is31fl3731c +LED_WIDTH = 7 +LED_HEIGHT = 7 \ No newline at end of file diff --git a/keyboards/whitefox/board_IS31FL3731C.h b/keyboards/whitefox/board_IS31FL3731C.h index 3dc5327a5..dea643f10 100644 --- a/keyboards/whitefox/board_IS31FL3731C.h +++ b/keyboards/whitefox/board_IS31FL3731C.h @@ -22,9 +22,6 @@ static const I2CConfig i2ccfg = { 400000 // clock speed (Hz); 400kHz max for IS31 }; -#define GDISP_SCREEN_WIDTH 16 -#define GDISP_SCREEN_HEIGHT 5 - static const uint8_t led_mask[] = { 0xFF, 0x00, /* C1-1 -> C1-16 */ 0xFF, 0x00, /* C2-1 -> C2-16 */ diff --git a/keyboards/whitefox/config.h b/keyboards/whitefox/config.h index 76040bd74..dc33a7ce5 100644 --- a/keyboards/whitefox/config.h +++ b/keyboards/whitefox/config.h @@ -81,10 +81,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION -#endif - -// The visualizer needs gfx thread priorities -#define LED_DISPLAY_NUMBER 0 - -#define LED_NUM_ROWS 5 -#define LED_NUM_COLS 16 \ No newline at end of file +#endif \ No newline at end of file diff --git a/keyboards/whitefox/gfxconf.h b/keyboards/whitefox/gfxconf.h index eb93f92eb..ca338399d 100644 --- a/keyboards/whitefox/gfxconf.h +++ b/keyboards/whitefox/gfxconf.h @@ -22,10 +22,6 @@ #ifndef _GFXCONF_H #define _GFXCONF_H -#ifndef EMULATOR -#define GDISP_DRIVER_LIST GDISPVMT_IS31FL3731C_QMK -#endif - #include "common_gfxconf.h" #endif /* _GFXCONF_H */ diff --git a/keyboards/whitefox/rules.mk b/keyboards/whitefox/rules.mk index 391148071..32273e08a 100644 --- a/keyboards/whitefox/rules.mk +++ b/keyboards/whitefox/rules.mk @@ -69,4 +69,6 @@ CUSTOM_MATRIX = yes # Custom matrix file BACKLIGHT_ENABLE = yes VISUALIZER_ENABLE = yes -include $(TOP_DIR)/drivers/ugfx/gdisp/is31fl3731c/driver.mk +LED_DRIVER = is31fl3731c +LED_WIDTH = 16 +LED_HEIGHT = 5 \ No newline at end of file diff --git a/quantum/visualizer/lcd_keyframes.c b/quantum/visualizer/lcd_keyframes.c index 82e4184d2..75eb45700 100644 --- a/quantum/visualizer/lcd_keyframes.c +++ b/quantum/visualizer/lcd_keyframes.c @@ -166,8 +166,8 @@ bool lcd_keyframe_draw_logo(keyframe_animation_t* animation, visualizer_state_t* // or state structs, here we use the image //gdispGBlitArea is a tricky function to use since it supports blitting part of the image - // if you have full screen image, then just use 128 and 32 for both source and target dimensions - gdispGBlitArea(GDISP, 0, 0, 128, 32, 0, 0, 128, (pixel_t*)resource_lcd_logo); + // if you have full screen image, then just use LCD_WIDTH and LCD_HEIGHT for both source and target dimensions + gdispGBlitArea(GDISP, 0, 0, LCD_WIDTH, LCD_HEIGHT, 0, 0, LCD_WIDTH, (pixel_t*)resource_lcd_logo); return false; } diff --git a/quantum/visualizer/led_backlight_keyframes.c b/quantum/visualizer/led_backlight_keyframes.c index d2921a391..eb3f5561d 100644 --- a/quantum/visualizer/led_backlight_keyframes.c +++ b/quantum/visualizer/led_backlight_keyframes.c @@ -41,8 +41,8 @@ static void keyframe_fade_all_leds_from_to(keyframe_animation_t* animation, uint } // TODO: Should be customizable per keyboard -#define NUM_ROWS LED_NUM_ROWS -#define NUM_COLS LED_NUM_COLS +#define NUM_ROWS LED_HEIGHT +#define NUM_COLS LED_WIDTH static uint8_t crossfade_start_frame[NUM_ROWS][NUM_COLS]; static uint8_t crossfade_end_frame[NUM_ROWS][NUM_COLS]; diff --git a/quantum/visualizer/visualizer.mk b/quantum/visualizer/visualizer.mk index 3a0f771bc..102d23b7e 100644 --- a/quantum/visualizer/visualizer.mk +++ b/quantum/visualizer/visualizer.mk @@ -20,6 +20,30 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. +define ADD_DRIVER + $(1)_DRIVER:=$(strip $($(1)_DRIVER)) + $(1)_WIDTH:=$(strip $($(1)_WIDTH)) + $(1)_HEIGHT:=$(strip $($(1)_HEIGHT)) + ifeq ($($(1)_DRIVER),) + $$(error $(1)_DRIVER is not defined) + endif + ifeq ($($(1)_WIDTH),) + $$(error $(1)_WIDTH is not defined) + endif + ifeq ($($(1)_HEIGHT),) + $$(error $(1)_HEIGHT is not defined) + endif + OPT_DEFS+=-D$(1)_WIDTH=$($(1)_WIDTH) + OPT_DEFS+=-D$(1)_HEIGHT=$($(1)_HEIGHT) + GFXDEFS+=-D$(1)_WIDTH=$($(1)_WIDTH) + GFXDEFS+=-D$(1)_HEIGHT=$($(1)_HEIGHT) + $(1)_DISPLAY_NUMBER:=$$(words $$(GDISP_DRIVER_LIST)) + OPT_DEFS+=-D$(1)_DISPLAY_NUMBER=$$($(1)_DISPLAY_NUMBER) + include $(TOP_DIR)/drivers/ugfx/gdisp/$($(1)_DRIVER)/driver.mk +endef + +GDISP_DRIVER_LIST:= + SRC += $(VISUALIZER_DIR)/visualizer.c \ $(VISUALIZER_DIR)/visualizer_keyframes.c EXTRAINCDIRS += $(GFXINC) $(VISUALIZER_DIR) @@ -40,10 +64,12 @@ SRC += $(VISUALIZER_DIR)/lcd_backlight_keyframes.c # Note, that the linker will strip out any resources that are not actually in use SRC += $(VISUALIZER_DIR)/resources/lcd_logo.c OPT_DEFS += -DLCD_BACKLIGHT_ENABLE +$(eval $(call ADD_DRIVER,LCD)) endif ifeq ($(strip $(BACKLIGHT_ENABLE)), yes) SRC += $(VISUALIZER_DIR)/led_backlight_keyframes.c +$(eval $(call ADD_DRIVER,LED)) endif SRC += $(VISUALIZER_DIR)/default_animations.c @@ -55,6 +81,15 @@ GFXINC += quantum/visualizer GFXSRC := $(patsubst $(TOP_DIR)/%,%,$(GFXSRC)) GFXDEFS := $(patsubst %,-D%,$(patsubst -D%,%,$(GFXDEFS))) +GDISP_LIST_COMMA=, +GDISP_LIST_EMPTY= +GDISP_LIST_SPACE=$(GDISP_LIST_EMPTY) $(GDISP_LIST_EMPTY) + +GDISP_DRIVER_LIST := $(strip $(GDISP_DRIVER_LIST)) +GDISP_DRIVER_LIST := $(subst $(GDISP_LIST_SPACE),$(GDISP_LIST_COMMA),$(GDISP_DRIVER_LIST)) + +GFXDEFS +=-DGDISP_DRIVER_LIST="$(GDISP_DRIVER_LIST)" + ifneq ("$(wildcard $(KEYMAP_PATH)/visualizer.c)","") SRC += keyboards/$(KEYBOARD)/keymaps/$(KEYMAP)/visualizer.c else -- cgit v1.2.3 From 190b90892bf1b17f5cb24a1e7bd88c63047c3eb0 Mon Sep 17 00:00:00 2001 From: Fred Sundvik <fsundvik@gmail.com> Date: Mon, 10 Jul 2017 10:48:02 +0300 Subject: Rename board files to lowercase --- drivers/ugfx/gdisp/is31fl3731c/gdisp_is31fl3731c.c | 2 +- drivers/ugfx/gdisp/st7565/gdisp_lld_ST7565.c | 2 +- keyboards/ergodox/infinity/board_IS31FL3731C.h | 110 -------------------- keyboards/ergodox/infinity/board_ST7565.h | 113 --------------------- keyboards/ergodox/infinity/board_is31fl3731c.h | 110 ++++++++++++++++++++ keyboards/ergodox/infinity/board_st7565.h | 113 +++++++++++++++++++++ keyboards/whitefox/board_IS31FL3731C.h | 106 ------------------- keyboards/whitefox/board_is31fl3731c.h | 106 +++++++++++++++++++ 8 files changed, 331 insertions(+), 331 deletions(-) delete mode 100644 keyboards/ergodox/infinity/board_IS31FL3731C.h delete mode 100644 keyboards/ergodox/infinity/board_ST7565.h create mode 100644 keyboards/ergodox/infinity/board_is31fl3731c.h create mode 100644 keyboards/ergodox/infinity/board_st7565.h delete mode 100644 keyboards/whitefox/board_IS31FL3731C.h create mode 100644 keyboards/whitefox/board_is31fl3731c.h diff --git a/drivers/ugfx/gdisp/is31fl3731c/gdisp_is31fl3731c.c b/drivers/ugfx/gdisp/is31fl3731c/gdisp_is31fl3731c.c index 3faddcda8..917adadb8 100644 --- a/drivers/ugfx/gdisp/is31fl3731c/gdisp_is31fl3731c.c +++ b/drivers/ugfx/gdisp/is31fl3731c/gdisp_is31fl3731c.c @@ -26,7 +26,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #include "gdisp_lld_config.h" #include "src/gdisp/gdisp_driver.h" -#include "board_IS31FL3731C.h" +#include "board_is31fl3731c.h" // Can't include led_tables from here diff --git a/drivers/ugfx/gdisp/st7565/gdisp_lld_ST7565.c b/drivers/ugfx/gdisp/st7565/gdisp_lld_ST7565.c index 4a4c83e89..c38194b06 100644 --- a/drivers/ugfx/gdisp/st7565/gdisp_lld_ST7565.c +++ b/drivers/ugfx/gdisp/st7565/gdisp_lld_ST7565.c @@ -13,7 +13,7 @@ #include "gdisp_lld_config.h" #include "src/gdisp/gdisp_driver.h" -#include "board_ST7565.h" +#include "board_st7565.h" /*===========================================================================*/ /* Driver local definitions. */ diff --git a/keyboards/ergodox/infinity/board_IS31FL3731C.h b/keyboards/ergodox/infinity/board_IS31FL3731C.h deleted file mode 100644 index f248cc25b..000000000 --- a/keyboards/ergodox/infinity/board_IS31FL3731C.h +++ /dev/null @@ -1,110 +0,0 @@ -/* -Copyright 2016 Fred Sundvik <fsundvik@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/>. -*/ - -#ifndef _GDISP_LLD_BOARD_H -#define _GDISP_LLD_BOARD_H - -static const I2CConfig i2ccfg = { - 400000 // clock speed (Hz); 400kHz max for IS31 -}; - -static const uint8_t led_mask[] = { - 0xFF, 0x00, /* C1-1 -> C1-16 */ - 0xFF, 0x00, /* C2-1 -> C2-16 */ - 0xFF, 0x00, /* C3-1 -> C3-16 */ - 0xFF, 0x00, /* C4-1 -> C4-16 */ - 0x3F, 0x00, /* C5-1 -> C5-16 */ - 0x00, 0x00, /* C6-1 -> C6-16 */ - 0x00, 0x00, /* C7-1 -> C7-16 */ - 0x00, 0x00, /* C8-1 -> C8-16 */ - 0x00, 0x00, /* C9-1 -> C9-16 */ -}; - -// The address of the LED -#define LA(c, r) (c + r * 16 ) -// Need to be an address that is not mapped, but inside the range of the controller matrix -#define NA LA(8, 8) - -// The numbers in the comments are the led numbers DXX on the PCB -// The mapping is taken from the schematic of left hand side -static const uint8_t led_mapping[GDISP_SCREEN_HEIGHT][GDISP_SCREEN_WIDTH] = { -// 45 44 43 42 41 40 39 - { LA(1, 1), LA(1, 0), LA(0, 4), LA(0, 3), LA(0, 2), LA(0, 1), LA(0, 0)}, -// 52 51 50 49 48 47 46 - { LA(2, 3), LA(2, 2), LA(2, 1), LA(2, 0), LA(1, 4), LA(1, 3), LA(1, 2) }, -// 58 57 56 55 54 53 N/A - { LA(3, 4), LA(3, 3), LA(3, 2), LA(3, 1), LA(3, 0), LA(2, 4), NA }, -// 67 66 65 64 63 62 61 - { LA(5, 3), LA(5, 2), LA(5, 1), LA(5, 0), LA(4, 4), LA(4, 3), LA(4, 2) }, -// 76 75 74 73 72 60 59 - { LA(7, 3), LA(7, 2), LA(7, 1), LA(7, 0), LA(6, 3), LA(4, 1), LA(4, 0) }, -// N/A N/A N/A N/A N/A N/A 68 - { NA, NA, NA, NA, NA, NA, LA(5, 4) }, -// N/A N/A N/A N/A 71 70 69 - { NA, NA, NA, NA, LA(6, 2), LA(6, 1), LA(6, 0) }, -}; - - -#define IS31_ADDR_DEFAULT 0x74 // AD connected to GND -#define IS31_TIMEOUT 5000 - -static GFXINLINE void init_board(GDisplay *g) { - (void) g; - /* I2C pins */ - palSetPadMode(GPIOB, 0, PAL_MODE_ALTERNATIVE_2); // PTB0/I2C0/SCL - palSetPadMode(GPIOB, 1, PAL_MODE_ALTERNATIVE_2); // PTB1/I2C0/SDA - palSetPadMode(GPIOB, 16, PAL_MODE_OUTPUT_PUSHPULL); - palClearPad(GPIOB, 16); - /* start I2C */ - i2cStart(&I2CD1, &i2ccfg); - // try high drive (from kiibohd) - I2CD1.i2c->C2 |= I2Cx_C2_HDRS; - // try glitch fixing (from kiibohd) - I2CD1.i2c->FLT = 4; -} - -static GFXINLINE void post_init_board(GDisplay *g) { - (void) g; -} - -static GFXINLINE const uint8_t* get_led_mask(GDisplay* g) { - (void) g; - return led_mask; -} - -static GFXINLINE uint8_t get_led_address(GDisplay* g, uint16_t x, uint16_t y) -{ - (void) g; - return led_mapping[y][x]; -} - -static GFXINLINE void set_hardware_shutdown(GDisplay* g, bool shutdown) { - (void) g; - if(!shutdown) { - palSetPad(GPIOB, 16); - } - else { - palClearPad(GPIOB, 16); - } -} - -static GFXINLINE void write_data(GDisplay *g, uint8_t* data, uint16_t length) { - (void) g; - i2cMasterTransmitTimeout(&I2CD1, IS31_ADDR_DEFAULT, data, length, 0, 0, US2ST(IS31_TIMEOUT)); -} - -#endif /* _GDISP_LLD_BOARD_H */ diff --git a/keyboards/ergodox/infinity/board_ST7565.h b/keyboards/ergodox/infinity/board_ST7565.h deleted file mode 100644 index 9ab636c95..000000000 --- a/keyboards/ergodox/infinity/board_ST7565.h +++ /dev/null @@ -1,113 +0,0 @@ -/* - * This file is subject to the terms of the GFX License. If a copy of - * the license was not distributed with this file, you can obtain one at: - * - * http://ugfx.org/license.html - */ - -#ifndef _GDISP_LLD_BOARD_H -#define _GDISP_LLD_BOARD_H - -#define ST7565_LCD_BIAS ST7565_LCD_BIAS_9 // actually 6 -#define ST7565_ADC ST7565_ADC_NORMAL -#define ST7565_COM_SCAN ST7565_COM_SCAN_DEC -#define ST7565_PAGE_ORDER 0,1,2,3 -/* - * Custom page order for several LCD boards, e.g. HEM12864-99 - * #define ST7565_PAGE_ORDER 4,5,6,7,0,1,2,3 - */ - -#define ST7565_GPIOPORT GPIOC -#define ST7565_PORT PORTC -#define ST7565_A0_PIN 7 -#define ST7565_RST_PIN 8 -#define ST7565_MOSI_PIN 6 -#define ST7565_SLCK_PIN 5 -#define ST7565_SS_PIN 4 - -#define palSetPadModeRaw(portname, bits) \ - ST7565_PORT->PCR[ST7565_##portname##_PIN] = bits - -#define palSetPadModeNamed(portname, portmode) \ - palSetPadMode(ST7565_GPIOPORT, ST7565_##portname##_PIN, portmode) - -#define ST7565_SPI_MODE PORTx_PCRn_DSE | PORTx_PCRn_MUX(2) -// DSPI Clock and Transfer Attributes -// Frame Size: 8 bits -// MSB First -// CLK Low by default -static const SPIConfig spi1config = { - // Operation complete callback or @p NULL. - .end_cb = NULL, - //The chip select line port - when not using pcs. - .ssport = ST7565_GPIOPORT, - // brief The chip select line pad number - when not using pcs. - .sspad=ST7565_SS_PIN, - // SPI initialization data. - .tar0 = - SPIx_CTARn_FMSZ(7) // Frame size = 8 bytes - | SPIx_CTARn_ASC(1) // After SCK Delay Scaler (min 50 ns) = 55.56ns - | SPIx_CTARn_DT(0) // Delay After Transfer Scaler (no minimum)= 27.78ns - | SPIx_CTARn_CSSCK(0) // PCS to SCK Delay Scaler (min 20 ns) = 27.78ns - | SPIx_CTARn_PBR(0) // Baud Rate Prescaler = 2 - | SPIx_CTARn_BR(0) // Baud rate (min 50ns) = 55.56ns -}; - -static GFXINLINE void acquire_bus(GDisplay *g) { - (void) g; - // Only the LCD is using the SPI bus, so no need to acquire - // spiAcquireBus(&SPID1); - spiSelect(&SPID1); -} - -static GFXINLINE void release_bus(GDisplay *g) { - (void) g; - // Only the LCD is using the SPI bus, so no need to release - //spiReleaseBus(&SPID1); - spiUnselect(&SPID1); -} - -static GFXINLINE void init_board(GDisplay *g) { - (void) g; - palSetPadModeNamed(A0, PAL_MODE_OUTPUT_PUSHPULL); - palSetPad(ST7565_GPIOPORT, ST7565_A0_PIN); - palSetPadModeNamed(RST, PAL_MODE_OUTPUT_PUSHPULL); - palSetPad(ST7565_GPIOPORT, ST7565_RST_PIN); - palSetPadModeRaw(MOSI, ST7565_SPI_MODE); - palSetPadModeRaw(SLCK, ST7565_SPI_MODE); - palSetPadModeNamed(SS, PAL_MODE_OUTPUT_PUSHPULL); - - spiInit(); - spiStart(&SPID1, &spi1config); - release_bus(g); -} - -static GFXINLINE void post_init_board(GDisplay *g) { - (void) g; -} - -static GFXINLINE void setpin_reset(GDisplay *g, bool_t state) { - (void) g; - if (state) { - palClearPad(ST7565_GPIOPORT, ST7565_RST_PIN); - } - else { - palSetPad(ST7565_GPIOPORT, ST7565_RST_PIN); - } -} - -static GFXINLINE void enter_data_mode(GDisplay *g) { - palSetPad(ST7565_GPIOPORT, ST7565_A0_PIN); -} - -static GFXINLINE void enter_cmd_mode(GDisplay *g) { - palClearPad(ST7565_GPIOPORT, ST7565_A0_PIN); -} - - -static GFXINLINE void write_data(GDisplay *g, uint8_t* data, uint16_t length) { - (void) g; - spiSend(&SPID1, length, data); -} - -#endif /* _GDISP_LLD_BOARD_H */ diff --git a/keyboards/ergodox/infinity/board_is31fl3731c.h b/keyboards/ergodox/infinity/board_is31fl3731c.h new file mode 100644 index 000000000..f248cc25b --- /dev/null +++ b/keyboards/ergodox/infinity/board_is31fl3731c.h @@ -0,0 +1,110 @@ +/* +Copyright 2016 Fred Sundvik <fsundvik@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/>. +*/ + +#ifndef _GDISP_LLD_BOARD_H +#define _GDISP_LLD_BOARD_H + +static const I2CConfig i2ccfg = { + 400000 // clock speed (Hz); 400kHz max for IS31 +}; + +static const uint8_t led_mask[] = { + 0xFF, 0x00, /* C1-1 -> C1-16 */ + 0xFF, 0x00, /* C2-1 -> C2-16 */ + 0xFF, 0x00, /* C3-1 -> C3-16 */ + 0xFF, 0x00, /* C4-1 -> C4-16 */ + 0x3F, 0x00, /* C5-1 -> C5-16 */ + 0x00, 0x00, /* C6-1 -> C6-16 */ + 0x00, 0x00, /* C7-1 -> C7-16 */ + 0x00, 0x00, /* C8-1 -> C8-16 */ + 0x00, 0x00, /* C9-1 -> C9-16 */ +}; + +// The address of the LED +#define LA(c, r) (c + r * 16 ) +// Need to be an address that is not mapped, but inside the range of the controller matrix +#define NA LA(8, 8) + +// The numbers in the comments are the led numbers DXX on the PCB +// The mapping is taken from the schematic of left hand side +static const uint8_t led_mapping[GDISP_SCREEN_HEIGHT][GDISP_SCREEN_WIDTH] = { +// 45 44 43 42 41 40 39 + { LA(1, 1), LA(1, 0), LA(0, 4), LA(0, 3), LA(0, 2), LA(0, 1), LA(0, 0)}, +// 52 51 50 49 48 47 46 + { LA(2, 3), LA(2, 2), LA(2, 1), LA(2, 0), LA(1, 4), LA(1, 3), LA(1, 2) }, +// 58 57 56 55 54 53 N/A + { LA(3, 4), LA(3, 3), LA(3, 2), LA(3, 1), LA(3, 0), LA(2, 4), NA }, +// 67 66 65 64 63 62 61 + { LA(5, 3), LA(5, 2), LA(5, 1), LA(5, 0), LA(4, 4), LA(4, 3), LA(4, 2) }, +// 76 75 74 73 72 60 59 + { LA(7, 3), LA(7, 2), LA(7, 1), LA(7, 0), LA(6, 3), LA(4, 1), LA(4, 0) }, +// N/A N/A N/A N/A N/A N/A 68 + { NA, NA, NA, NA, NA, NA, LA(5, 4) }, +// N/A N/A N/A N/A 71 70 69 + { NA, NA, NA, NA, LA(6, 2), LA(6, 1), LA(6, 0) }, +}; + + +#define IS31_ADDR_DEFAULT 0x74 // AD connected to GND +#define IS31_TIMEOUT 5000 + +static GFXINLINE void init_board(GDisplay *g) { + (void) g; + /* I2C pins */ + palSetPadMode(GPIOB, 0, PAL_MODE_ALTERNATIVE_2); // PTB0/I2C0/SCL + palSetPadMode(GPIOB, 1, PAL_MODE_ALTERNATIVE_2); // PTB1/I2C0/SDA + palSetPadMode(GPIOB, 16, PAL_MODE_OUTPUT_PUSHPULL); + palClearPad(GPIOB, 16); + /* start I2C */ + i2cStart(&I2CD1, &i2ccfg); + // try high drive (from kiibohd) + I2CD1.i2c->C2 |= I2Cx_C2_HDRS; + // try glitch fixing (from kiibohd) + I2CD1.i2c->FLT = 4; +} + +static GFXINLINE void post_init_board(GDisplay *g) { + (void) g; +} + +static GFXINLINE const uint8_t* get_led_mask(GDisplay* g) { + (void) g; + return led_mask; +} + +static GFXINLINE uint8_t get_led_address(GDisplay* g, uint16_t x, uint16_t y) +{ + (void) g; + return led_mapping[y][x]; +} + +static GFXINLINE void set_hardware_shutdown(GDisplay* g, bool shutdown) { + (void) g; + if(!shutdown) { + palSetPad(GPIOB, 16); + } + else { + palClearPad(GPIOB, 16); + } +} + +static GFXINLINE void write_data(GDisplay *g, uint8_t* data, uint16_t length) { + (void) g; + i2cMasterTransmitTimeout(&I2CD1, IS31_ADDR_DEFAULT, data, length, 0, 0, US2ST(IS31_TIMEOUT)); +} + +#endif /* _GDISP_LLD_BOARD_H */ diff --git a/keyboards/ergodox/infinity/board_st7565.h b/keyboards/ergodox/infinity/board_st7565.h new file mode 100644 index 000000000..9ab636c95 --- /dev/null +++ b/keyboards/ergodox/infinity/board_st7565.h @@ -0,0 +1,113 @@ +/* + * This file is subject to the terms of the GFX License. If a copy of + * the license was not distributed with this file, you can obtain one at: + * + * http://ugfx.org/license.html + */ + +#ifndef _GDISP_LLD_BOARD_H +#define _GDISP_LLD_BOARD_H + +#define ST7565_LCD_BIAS ST7565_LCD_BIAS_9 // actually 6 +#define ST7565_ADC ST7565_ADC_NORMAL +#define ST7565_COM_SCAN ST7565_COM_SCAN_DEC +#define ST7565_PAGE_ORDER 0,1,2,3 +/* + * Custom page order for several LCD boards, e.g. HEM12864-99 + * #define ST7565_PAGE_ORDER 4,5,6,7,0,1,2,3 + */ + +#define ST7565_GPIOPORT GPIOC +#define ST7565_PORT PORTC +#define ST7565_A0_PIN 7 +#define ST7565_RST_PIN 8 +#define ST7565_MOSI_PIN 6 +#define ST7565_SLCK_PIN 5 +#define ST7565_SS_PIN 4 + +#define palSetPadModeRaw(portname, bits) \ + ST7565_PORT->PCR[ST7565_##portname##_PIN] = bits + +#define palSetPadModeNamed(portname, portmode) \ + palSetPadMode(ST7565_GPIOPORT, ST7565_##portname##_PIN, portmode) + +#define ST7565_SPI_MODE PORTx_PCRn_DSE | PORTx_PCRn_MUX(2) +// DSPI Clock and Transfer Attributes +// Frame Size: 8 bits +// MSB First +// CLK Low by default +static const SPIConfig spi1config = { + // Operation complete callback or @p NULL. + .end_cb = NULL, + //The chip select line port - when not using pcs. + .ssport = ST7565_GPIOPORT, + // brief The chip select line pad number - when not using pcs. + .sspad=ST7565_SS_PIN, + // SPI initialization data. + .tar0 = + SPIx_CTARn_FMSZ(7) // Frame size = 8 bytes + | SPIx_CTARn_ASC(1) // After SCK Delay Scaler (min 50 ns) = 55.56ns + | SPIx_CTARn_DT(0) // Delay After Transfer Scaler (no minimum)= 27.78ns + | SPIx_CTARn_CSSCK(0) // PCS to SCK Delay Scaler (min 20 ns) = 27.78ns + | SPIx_CTARn_PBR(0) // Baud Rate Prescaler = 2 + | SPIx_CTARn_BR(0) // Baud rate (min 50ns) = 55.56ns +}; + +static GFXINLINE void acquire_bus(GDisplay *g) { + (void) g; + // Only the LCD is using the SPI bus, so no need to acquire + // spiAcquireBus(&SPID1); + spiSelect(&SPID1); +} + +static GFXINLINE void release_bus(GDisplay *g) { + (void) g; + // Only the LCD is using the SPI bus, so no need to release + //spiReleaseBus(&SPID1); + spiUnselect(&SPID1); +} + +static GFXINLINE void init_board(GDisplay *g) { + (void) g; + palSetPadModeNamed(A0, PAL_MODE_OUTPUT_PUSHPULL); + palSetPad(ST7565_GPIOPORT, ST7565_A0_PIN); + palSetPadModeNamed(RST, PAL_MODE_OUTPUT_PUSHPULL); + palSetPad(ST7565_GPIOPORT, ST7565_RST_PIN); + palSetPadModeRaw(MOSI, ST7565_SPI_MODE); + palSetPadModeRaw(SLCK, ST7565_SPI_MODE); + palSetPadModeNamed(SS, PAL_MODE_OUTPUT_PUSHPULL); + + spiInit(); + spiStart(&SPID1, &spi1config); + release_bus(g); +} + +static GFXINLINE void post_init_board(GDisplay *g) { + (void) g; +} + +static GFXINLINE void setpin_reset(GDisplay *g, bool_t state) { + (void) g; + if (state) { + palClearPad(ST7565_GPIOPORT, ST7565_RST_PIN); + } + else { + palSetPad(ST7565_GPIOPORT, ST7565_RST_PIN); + } +} + +static GFXINLINE void enter_data_mode(GDisplay *g) { + palSetPad(ST7565_GPIOPORT, ST7565_A0_PIN); +} + +static GFXINLINE void enter_cmd_mode(GDisplay *g) { + palClearPad(ST7565_GPIOPORT, ST7565_A0_PIN); +} + + +static GFXINLINE void write_data(GDisplay *g, uint8_t* data, uint16_t length) { + (void) g; + spiSend(&SPID1, length, data); +} + +#endif /* _GDISP_LLD_BOARD_H */ diff --git a/keyboards/whitefox/board_IS31FL3731C.h b/keyboards/whitefox/board_IS31FL3731C.h deleted file mode 100644 index dea643f10..000000000 --- a/keyboards/whitefox/board_IS31FL3731C.h +++ /dev/null @@ -1,106 +0,0 @@ -/* -Copyright 2016 Fred Sundvik <fsundvik@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/>. -*/ - -#ifndef _GDISP_LLD_BOARD_H -#define _GDISP_LLD_BOARD_H - -static const I2CConfig i2ccfg = { - 400000 // clock speed (Hz); 400kHz max for IS31 -}; - -static const uint8_t led_mask[] = { - 0xFF, 0x00, /* C1-1 -> C1-16 */ - 0xFF, 0x00, /* C2-1 -> C2-16 */ - 0xFF, 0x00, /* C3-1 -> C3-16 */ - 0xFF, 0x00, /* C4-1 -> C4-16 */ - 0xFF, 0x00, /* C5-1 -> C5-16 */ - 0xFF, 0x00, /* C6-1 -> C6-16 */ - 0xFF, 0x00, /* C7-1 -> C7-16 */ - 0xFF, 0x00, /* C8-1 -> C8-16 */ - 0xFE, 0x00, /* C9-1 -> C9-16 */ -}; - -// The address of the LED -#define LA(c, r) (c + r * 16 ) -// Need to be an address that is not mapped, but inside the range of the controller matrix -#define NA LA(8, 8) - -// The numbers in the comments are the led numbers DXX on the PCB -// The mapping is taken from the schematic of left hand side -static const uint8_t led_mapping[GDISP_SCREEN_HEIGHT][GDISP_SCREEN_WIDTH] = { -// 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 - { LA(0, 0), LA(1, 0), LA(2, 0), LA(3, 0), LA(4, 0), LA(5, 0), LA(6, 0), LA(7, 0), LA(0, 1), LA(1, 1), LA(2, 1), LA(3, 1), LA(4, 1), LA(5, 1), LA(6, 1), LA(7, 1)}, -// 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 - { LA(0, 2), LA(1, 2), LA(2, 2), LA(3, 2), LA(4, 2), LA(5, 2), LA(6, 2), LA(7, 2), LA(0, 3), LA(1, 3), NA, LA(2, 3), LA(3, 3), LA(4, 3), LA(5, 3), LA(6, 3)}, -// 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 - { LA(7, 3), LA(0, 4), LA(1, 4), LA(2, 4), LA(3, 4), LA(4, 4), LA(5, 4), LA(6, 4), LA(7, 4), LA(0, 5), NA, LA(1, 5), LA(2, 5), LA(3, 5), LA(4, 5), LA(5, 5)}, -// 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 - { LA(6, 5), LA(7, 5), LA(0, 6), LA(1, 6), LA(2, 6), LA(3, 6), LA(4, 6), LA(5, 6), LA(6, 6), LA(7, 6), NA, LA(0, 7), LA(1, 7), LA(2, 7), LA(3, 7), LA(4, 7)}, -// 62 63 64 65 66 67 68 69 70 71 - { LA(5, 7), LA(6, 7), LA(7, 7), NA, NA, NA, LA(0, 8), NA, NA, NA, LA(1, 8), LA(2, 8), LA(3, 8), LA(4, 8), LA(5, 8), LA(6, 8)}, -}; - - -#define IS31_ADDR_DEFAULT 0x74 // AD connected to GND -#define IS31_TIMEOUT 5000 - -static GFXINLINE void init_board(GDisplay *g) { - (void) g; - /* I2C pins */ - palSetPadMode(GPIOB, 0, PAL_MODE_ALTERNATIVE_2); // PTB0/I2C0/SCL - palSetPadMode(GPIOB, 1, PAL_MODE_ALTERNATIVE_2); // PTB1/I2C0/SDA - palSetPadMode(GPIOB, 16, PAL_MODE_OUTPUT_PUSHPULL); - palClearPad(GPIOB, 16); - /* start I2C */ - i2cStart(&I2CD1, &i2ccfg); - // try high drive (from kiibohd) - I2CD1.i2c->C2 |= I2Cx_C2_HDRS; - // try glitch fixing (from kiibohd) - I2CD1.i2c->FLT = 4; -} - -static GFXINLINE void post_init_board(GDisplay *g) { - (void) g; -} - -static GFXINLINE const uint8_t* get_led_mask(GDisplay* g) { - (void) g; - return led_mask; -} - -static GFXINLINE uint8_t get_led_address(GDisplay* g, uint16_t x, uint16_t y) -{ - (void) g; - return led_mapping[y][x]; -} - -static GFXINLINE void set_hardware_shutdown(GDisplay* g, bool shutdown) { - (void) g; - if(!shutdown) { - palSetPad(GPIOB, 16); - } - else { - palClearPad(GPIOB, 16); - } -} - -static GFXINLINE void write_data(GDisplay *g, uint8_t* data, uint16_t length) { - (void) g; - i2cMasterTransmitTimeout(&I2CD1, IS31_ADDR_DEFAULT, data, length, 0, 0, US2ST(IS31_TIMEOUT)); -} - -#endif /* _GDISP_LLD_BOARD_H */ diff --git a/keyboards/whitefox/board_is31fl3731c.h b/keyboards/whitefox/board_is31fl3731c.h new file mode 100644 index 000000000..dea643f10 --- /dev/null +++ b/keyboards/whitefox/board_is31fl3731c.h @@ -0,0 +1,106 @@ +/* +Copyright 2016 Fred Sundvik <fsundvik@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/>. +*/ + +#ifndef _GDISP_LLD_BOARD_H +#define _GDISP_LLD_BOARD_H + +static const I2CConfig i2ccfg = { + 400000 // clock speed (Hz); 400kHz max for IS31 +}; + +static const uint8_t led_mask[] = { + 0xFF, 0x00, /* C1-1 -> C1-16 */ + 0xFF, 0x00, /* C2-1 -> C2-16 */ + 0xFF, 0x00, /* C3-1 -> C3-16 */ + 0xFF, 0x00, /* C4-1 -> C4-16 */ + 0xFF, 0x00, /* C5-1 -> C5-16 */ + 0xFF, 0x00, /* C6-1 -> C6-16 */ + 0xFF, 0x00, /* C7-1 -> C7-16 */ + 0xFF, 0x00, /* C8-1 -> C8-16 */ + 0xFE, 0x00, /* C9-1 -> C9-16 */ +}; + +// The address of the LED +#define LA(c, r) (c + r * 16 ) +// Need to be an address that is not mapped, but inside the range of the controller matrix +#define NA LA(8, 8) + +// The numbers in the comments are the led numbers DXX on the PCB +// The mapping is taken from the schematic of left hand side +static const uint8_t led_mapping[GDISP_SCREEN_HEIGHT][GDISP_SCREEN_WIDTH] = { +// 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 + { LA(0, 0), LA(1, 0), LA(2, 0), LA(3, 0), LA(4, 0), LA(5, 0), LA(6, 0), LA(7, 0), LA(0, 1), LA(1, 1), LA(2, 1), LA(3, 1), LA(4, 1), LA(5, 1), LA(6, 1), LA(7, 1)}, +// 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 + { LA(0, 2), LA(1, 2), LA(2, 2), LA(3, 2), LA(4, 2), LA(5, 2), LA(6, 2), LA(7, 2), LA(0, 3), LA(1, 3), NA, LA(2, 3), LA(3, 3), LA(4, 3), LA(5, 3), LA(6, 3)}, +// 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 + { LA(7, 3), LA(0, 4), LA(1, 4), LA(2, 4), LA(3, 4), LA(4, 4), LA(5, 4), LA(6, 4), LA(7, 4), LA(0, 5), NA, LA(1, 5), LA(2, 5), LA(3, 5), LA(4, 5), LA(5, 5)}, +// 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 + { LA(6, 5), LA(7, 5), LA(0, 6), LA(1, 6), LA(2, 6), LA(3, 6), LA(4, 6), LA(5, 6), LA(6, 6), LA(7, 6), NA, LA(0, 7), LA(1, 7), LA(2, 7), LA(3, 7), LA(4, 7)}, +// 62 63 64 65 66 67 68 69 70 71 + { LA(5, 7), LA(6, 7), LA(7, 7), NA, NA, NA, LA(0, 8), NA, NA, NA, LA(1, 8), LA(2, 8), LA(3, 8), LA(4, 8), LA(5, 8), LA(6, 8)}, +}; + + +#define IS31_ADDR_DEFAULT 0x74 // AD connected to GND +#define IS31_TIMEOUT 5000 + +static GFXINLINE void init_board(GDisplay *g) { + (void) g; + /* I2C pins */ + palSetPadMode(GPIOB, 0, PAL_MODE_ALTERNATIVE_2); // PTB0/I2C0/SCL + palSetPadMode(GPIOB, 1, PAL_MODE_ALTERNATIVE_2); // PTB1/I2C0/SDA + palSetPadMode(GPIOB, 16, PAL_MODE_OUTPUT_PUSHPULL); + palClearPad(GPIOB, 16); + /* start I2C */ + i2cStart(&I2CD1, &i2ccfg); + // try high drive (from kiibohd) + I2CD1.i2c->C2 |= I2Cx_C2_HDRS; + // try glitch fixing (from kiibohd) + I2CD1.i2c->FLT = 4; +} + +static GFXINLINE void post_init_board(GDisplay *g) { + (void) g; +} + +static GFXINLINE const uint8_t* get_led_mask(GDisplay* g) { + (void) g; + return led_mask; +} + +static GFXINLINE uint8_t get_led_address(GDisplay* g, uint16_t x, uint16_t y) +{ + (void) g; + return led_mapping[y][x]; +} + +static GFXINLINE void set_hardware_shutdown(GDisplay* g, bool shutdown) { + (void) g; + if(!shutdown) { + palSetPad(GPIOB, 16); + } + else { + palClearPad(GPIOB, 16); + } +} + +static GFXINLINE void write_data(GDisplay *g, uint8_t* data, uint16_t length) { + (void) g; + i2cMasterTransmitTimeout(&I2CD1, IS31_ADDR_DEFAULT, data, length, 0, 0, US2ST(IS31_TIMEOUT)); +} + +#endif /* _GDISP_LLD_BOARD_H */ -- cgit v1.2.3 From 551924f8a02b374201f7d0066755fa183a45accf Mon Sep 17 00:00:00 2001 From: Fred Sundvik <fsundvik@gmail.com> Date: Mon, 10 Jul 2017 10:49:50 +0300 Subject: Add template board files --- .../gdisp/is31fl3731c/board_is31fl3731c_template.h | 110 ++++++++++++++++++++ drivers/ugfx/gdisp/st7565/board_st7565_template.h | 113 +++++++++++++++++++++ 2 files changed, 223 insertions(+) create mode 100644 drivers/ugfx/gdisp/is31fl3731c/board_is31fl3731c_template.h create mode 100644 drivers/ugfx/gdisp/st7565/board_st7565_template.h diff --git a/drivers/ugfx/gdisp/is31fl3731c/board_is31fl3731c_template.h b/drivers/ugfx/gdisp/is31fl3731c/board_is31fl3731c_template.h new file mode 100644 index 000000000..f248cc25b --- /dev/null +++ b/drivers/ugfx/gdisp/is31fl3731c/board_is31fl3731c_template.h @@ -0,0 +1,110 @@ +/* +Copyright 2016 Fred Sundvik <fsundvik@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/>. +*/ + +#ifndef _GDISP_LLD_BOARD_H +#define _GDISP_LLD_BOARD_H + +static const I2CConfig i2ccfg = { + 400000 // clock speed (Hz); 400kHz max for IS31 +}; + +static const uint8_t led_mask[] = { + 0xFF, 0x00, /* C1-1 -> C1-16 */ + 0xFF, 0x00, /* C2-1 -> C2-16 */ + 0xFF, 0x00, /* C3-1 -> C3-16 */ + 0xFF, 0x00, /* C4-1 -> C4-16 */ + 0x3F, 0x00, /* C5-1 -> C5-16 */ + 0x00, 0x00, /* C6-1 -> C6-16 */ + 0x00, 0x00, /* C7-1 -> C7-16 */ + 0x00, 0x00, /* C8-1 -> C8-16 */ + 0x00, 0x00, /* C9-1 -> C9-16 */ +}; + +// The address of the LED +#define LA(c, r) (c + r * 16 ) +// Need to be an address that is not mapped, but inside the range of the controller matrix +#define NA LA(8, 8) + +// The numbers in the comments are the led numbers DXX on the PCB +// The mapping is taken from the schematic of left hand side +static const uint8_t led_mapping[GDISP_SCREEN_HEIGHT][GDISP_SCREEN_WIDTH] = { +// 45 44 43 42 41 40 39 + { LA(1, 1), LA(1, 0), LA(0, 4), LA(0, 3), LA(0, 2), LA(0, 1), LA(0, 0)}, +// 52 51 50 49 48 47 46 + { LA(2, 3), LA(2, 2), LA(2, 1), LA(2, 0), LA(1, 4), LA(1, 3), LA(1, 2) }, +// 58 57 56 55 54 53 N/A + { LA(3, 4), LA(3, 3), LA(3, 2), LA(3, 1), LA(3, 0), LA(2, 4), NA }, +// 67 66 65 64 63 62 61 + { LA(5, 3), LA(5, 2), LA(5, 1), LA(5, 0), LA(4, 4), LA(4, 3), LA(4, 2) }, +// 76 75 74 73 72 60 59 + { LA(7, 3), LA(7, 2), LA(7, 1), LA(7, 0), LA(6, 3), LA(4, 1), LA(4, 0) }, +// N/A N/A N/A N/A N/A N/A 68 + { NA, NA, NA, NA, NA, NA, LA(5, 4) }, +// N/A N/A N/A N/A 71 70 69 + { NA, NA, NA, NA, LA(6, 2), LA(6, 1), LA(6, 0) }, +}; + + +#define IS31_ADDR_DEFAULT 0x74 // AD connected to GND +#define IS31_TIMEOUT 5000 + +static GFXINLINE void init_board(GDisplay *g) { + (void) g; + /* I2C pins */ + palSetPadMode(GPIOB, 0, PAL_MODE_ALTERNATIVE_2); // PTB0/I2C0/SCL + palSetPadMode(GPIOB, 1, PAL_MODE_ALTERNATIVE_2); // PTB1/I2C0/SDA + palSetPadMode(GPIOB, 16, PAL_MODE_OUTPUT_PUSHPULL); + palClearPad(GPIOB, 16); + /* start I2C */ + i2cStart(&I2CD1, &i2ccfg); + // try high drive (from kiibohd) + I2CD1.i2c->C2 |= I2Cx_C2_HDRS; + // try glitch fixing (from kiibohd) + I2CD1.i2c->FLT = 4; +} + +static GFXINLINE void post_init_board(GDisplay *g) { + (void) g; +} + +static GFXINLINE const uint8_t* get_led_mask(GDisplay* g) { + (void) g; + return led_mask; +} + +static GFXINLINE uint8_t get_led_address(GDisplay* g, uint16_t x, uint16_t y) +{ + (void) g; + return led_mapping[y][x]; +} + +static GFXINLINE void set_hardware_shutdown(GDisplay* g, bool shutdown) { + (void) g; + if(!shutdown) { + palSetPad(GPIOB, 16); + } + else { + palClearPad(GPIOB, 16); + } +} + +static GFXINLINE void write_data(GDisplay *g, uint8_t* data, uint16_t length) { + (void) g; + i2cMasterTransmitTimeout(&I2CD1, IS31_ADDR_DEFAULT, data, length, 0, 0, US2ST(IS31_TIMEOUT)); +} + +#endif /* _GDISP_LLD_BOARD_H */ diff --git a/drivers/ugfx/gdisp/st7565/board_st7565_template.h b/drivers/ugfx/gdisp/st7565/board_st7565_template.h new file mode 100644 index 000000000..9ab636c95 --- /dev/null +++ b/drivers/ugfx/gdisp/st7565/board_st7565_template.h @@ -0,0 +1,113 @@ +/* + * This file is subject to the terms of the GFX License. If a copy of + * the license was not distributed with this file, you can obtain one at: + * + * http://ugfx.org/license.html + */ + +#ifndef _GDISP_LLD_BOARD_H +#define _GDISP_LLD_BOARD_H + +#define ST7565_LCD_BIAS ST7565_LCD_BIAS_9 // actually 6 +#define ST7565_ADC ST7565_ADC_NORMAL +#define ST7565_COM_SCAN ST7565_COM_SCAN_DEC +#define ST7565_PAGE_ORDER 0,1,2,3 +/* + * Custom page order for several LCD boards, e.g. HEM12864-99 + * #define ST7565_PAGE_ORDER 4,5,6,7,0,1,2,3 + */ + +#define ST7565_GPIOPORT GPIOC +#define ST7565_PORT PORTC +#define ST7565_A0_PIN 7 +#define ST7565_RST_PIN 8 +#define ST7565_MOSI_PIN 6 +#define ST7565_SLCK_PIN 5 +#define ST7565_SS_PIN 4 + +#define palSetPadModeRaw(portname, bits) \ + ST7565_PORT->PCR[ST7565_##portname##_PIN] = bits + +#define palSetPadModeNamed(portname, portmode) \ + palSetPadMode(ST7565_GPIOPORT, ST7565_##portname##_PIN, portmode) + +#define ST7565_SPI_MODE PORTx_PCRn_DSE | PORTx_PCRn_MUX(2) +// DSPI Clock and Transfer Attributes +// Frame Size: 8 bits +// MSB First +// CLK Low by default +static const SPIConfig spi1config = { + // Operation complete callback or @p NULL. + .end_cb = NULL, + //The chip select line port - when not using pcs. + .ssport = ST7565_GPIOPORT, + // brief The chip select line pad number - when not using pcs. + .sspad=ST7565_SS_PIN, + // SPI initialization data. + .tar0 = + SPIx_CTARn_FMSZ(7) // Frame size = 8 bytes + | SPIx_CTARn_ASC(1) // After SCK Delay Scaler (min 50 ns) = 55.56ns + | SPIx_CTARn_DT(0) // Delay After Transfer Scaler (no minimum)= 27.78ns + | SPIx_CTARn_CSSCK(0) // PCS to SCK Delay Scaler (min 20 ns) = 27.78ns + | SPIx_CTARn_PBR(0) // Baud Rate Prescaler = 2 + | SPIx_CTARn_BR(0) // Baud rate (min 50ns) = 55.56ns +}; + +static GFXINLINE void acquire_bus(GDisplay *g) { + (void) g; + // Only the LCD is using the SPI bus, so no need to acquire + // spiAcquireBus(&SPID1); + spiSelect(&SPID1); +} + +static GFXINLINE void release_bus(GDisplay *g) { + (void) g; + // Only the LCD is using the SPI bus, so no need to release + //spiReleaseBus(&SPID1); + spiUnselect(&SPID1); +} + +static GFXINLINE void init_board(GDisplay *g) { + (void) g; + palSetPadModeNamed(A0, PAL_MODE_OUTPUT_PUSHPULL); + palSetPad(ST7565_GPIOPORT, ST7565_A0_PIN); + palSetPadModeNamed(RST, PAL_MODE_OUTPUT_PUSHPULL); + palSetPad(ST7565_GPIOPORT, ST7565_RST_PIN); + palSetPadModeRaw(MOSI, ST7565_SPI_MODE); + palSetPadModeRaw(SLCK, ST7565_SPI_MODE); + palSetPadModeNamed(SS, PAL_MODE_OUTPUT_PUSHPULL); + + spiInit(); + spiStart(&SPID1, &spi1config); + release_bus(g); +} + +static GFXINLINE void post_init_board(GDisplay *g) { + (void) g; +} + +static GFXINLINE void setpin_reset(GDisplay *g, bool_t state) { + (void) g; + if (state) { + palClearPad(ST7565_GPIOPORT, ST7565_RST_PIN); + } + else { + palSetPad(ST7565_GPIOPORT, ST7565_RST_PIN); + } +} + +static GFXINLINE void enter_data_mode(GDisplay *g) { + palSetPad(ST7565_GPIOPORT, ST7565_A0_PIN); +} + +static GFXINLINE void enter_cmd_mode(GDisplay *g) { + palClearPad(ST7565_GPIOPORT, ST7565_A0_PIN); +} + + +static GFXINLINE void write_data(GDisplay *g, uint8_t* data, uint16_t length) { + (void) g; + spiSend(&SPID1, length, data); +} + +#endif /* _GDISP_LLD_BOARD_H */ -- cgit v1.2.3 From 10546665f4cdc25e3405bfa108b066004d436aea Mon Sep 17 00:00:00 2001 From: Fred Sundvik <fsundvik@gmail.com> Date: Sat, 8 Jul 2017 18:42:13 +0300 Subject: Fix uninitialized backlight_level in the Visualizer --- quantum/visualizer/visualizer.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/quantum/visualizer/visualizer.c b/quantum/visualizer/visualizer.c index 68b86f590..5b4d8d603 100644 --- a/quantum/visualizer/visualizer.c +++ b/quantum/visualizer/visualizer.c @@ -256,6 +256,9 @@ static DECLARE_THREAD_FUNCTION(visualizerThread, arg) { .mods = 0xFF, .leds = 0xFFFFFFFF, .suspended = false, + #ifdef BACKLIGHT_ENABLE + .backlight_level = 0, + #endif #ifdef VISUALIZER_USER_DATA_SIZE .user_data = {0}, #endif @@ -300,6 +303,7 @@ static DECLARE_THREAD_FUNCTION(visualizerThread, arg) { else { gdispGSetPowerMode(LED_DISPLAY, powerOff); } + state.status.backlight_level = current_status.backlight_level; } #endif if (visualizer_enabled) { -- cgit v1.2.3 From 42d5a324eb673b2214a87c8911d850105c3bdaab Mon Sep 17 00:00:00 2001 From: Jack Humbert <jack.humb@gmail.com> Date: Mon, 10 Jul 2017 11:18:47 -0400 Subject: Start mvoing hardware drivers to /drivers/ (#1433) * start driver isolation * update nyquist and orthodox boards * update atreus62 * move drivers to avr * update avr conditional --- common.mk | 6 +- common_features.mk | 2 +- drivers/avr/analog.c | 69 +++++ drivers/avr/analog.h | 52 ++++ drivers/avr/glcdfont.c | 276 +++++++++++++++++++ drivers/avr/pro_micro.h | 362 ++++++++++++++++++++++++ drivers/avr/ssd1306.c | 470 ++++++++++++++++++++++++++++++++ drivers/avr/ssd1306.h | 17 ++ drivers/avr/ws2812.c | 342 +++++++++++++++++++++++ drivers/avr/ws2812.h | 91 +++++++ keyboards/atreus62/pro_micro.h | 362 ------------------------ keyboards/handwired/promethium/rgbsps.c | 2 +- keyboards/handwired/promethium/rules.mk | 4 +- keyboards/lets_split/common/glcdfont.c | 276 ------------------- keyboards/lets_split/pro_micro.h | 362 ------------------------ keyboards/lets_split/ssd1306.c | 470 -------------------------------- keyboards/lets_split/ssd1306.h | 17 -- keyboards/nyquist/pro_micro.h | 362 ------------------------ keyboards/orthodox/pro_micro.h | 362 ------------------------ keyboards/orthodox/ssd1306.c | 470 -------------------------------- keyboards/orthodox/ssd1306.h | 17 -- quantum/analog.c | 69 ----- quantum/analog.h | 52 ---- quantum/light_ws2812.c | 342 ----------------------- quantum/light_ws2812.h | 91 ------- quantum/rgblight.h | 2 +- tmk_core/avr.mk | 2 +- 27 files changed, 1690 insertions(+), 3259 deletions(-) create mode 100644 drivers/avr/analog.c create mode 100644 drivers/avr/analog.h create mode 100644 drivers/avr/glcdfont.c create mode 100644 drivers/avr/pro_micro.h create mode 100644 drivers/avr/ssd1306.c create mode 100644 drivers/avr/ssd1306.h create mode 100644 drivers/avr/ws2812.c create mode 100644 drivers/avr/ws2812.h delete mode 100644 keyboards/atreus62/pro_micro.h delete mode 100644 keyboards/lets_split/common/glcdfont.c delete mode 100644 keyboards/lets_split/pro_micro.h delete mode 100644 keyboards/lets_split/ssd1306.c delete mode 100644 keyboards/lets_split/ssd1306.h delete mode 100644 keyboards/nyquist/pro_micro.h delete mode 100644 keyboards/orthodox/pro_micro.h delete mode 100644 keyboards/orthodox/ssd1306.c delete mode 100644 keyboards/orthodox/ssd1306.h delete mode 100644 quantum/analog.c delete mode 100644 quantum/analog.h delete mode 100755 quantum/light_ws2812.c delete mode 100755 quantum/light_ws2812.h diff --git a/common.mk b/common.mk index f87c20934..5b49680ea 100644 --- a/common.mk +++ b/common.mk @@ -9,6 +9,9 @@ LIB_PATH = $(TOP_DIR)/lib QUANTUM_DIR = quantum QUANTUM_PATH = $(TOP_DIR)/$(QUANTUM_DIR) +DRIVER_DIR = drivers +DRIVER_PATH = $(TOP_DIR)/$(DRIVER_DIR) + BUILD_DIR := $(TOP_DIR)/.build COMMON_VPATH := $(TOP_DIR) @@ -17,4 +20,5 @@ COMMON_VPATH += $(QUANTUM_PATH) COMMON_VPATH += $(QUANTUM_PATH)/keymap_extras COMMON_VPATH += $(QUANTUM_PATH)/audio COMMON_VPATH += $(QUANTUM_PATH)/process_keycode -COMMON_VPATH += $(QUANTUM_PATH)/api \ No newline at end of file +COMMON_VPATH += $(QUANTUM_PATH)/api +COMMON_VPATH += $(DRIVER_PATH) \ No newline at end of file diff --git a/common_features.mk b/common_features.mk index f5e7af01f..5eb56ccbf 100644 --- a/common_features.mk +++ b/common_features.mk @@ -87,7 +87,7 @@ endif ifeq ($(strip $(RGBLIGHT_ENABLE)), yes) OPT_DEFS += -DRGBLIGHT_ENABLE - SRC += $(QUANTUM_DIR)/light_ws2812.c + SRC += ws2812.c SRC += $(QUANTUM_DIR)/rgblight.c CIE1931_CURVE = yes LED_BREATHING_TABLE = yes diff --git a/drivers/avr/analog.c b/drivers/avr/analog.c new file mode 100644 index 000000000..1ec38df75 --- /dev/null +++ b/drivers/avr/analog.c @@ -0,0 +1,69 @@ +/* Copyright 2015 Jack Humbert + * + * 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/>. + */ + +// Simple analog to digitial conversion + +#include <avr/io.h> +#include <avr/pgmspace.h> +#include <stdint.h> +#include "analog.h" + + +static uint8_t aref = (1<<REFS0); // default to AREF = Vcc + + +void analogReference(uint8_t mode) +{ + aref = mode & 0xC0; +} + + +// Arduino compatible pin input +int16_t analogRead(uint8_t pin) +{ +#if defined(__AVR_ATmega32U4__) + static const uint8_t PROGMEM pin_to_mux[] = { + 0x00, 0x01, 0x04, 0x05, 0x06, 0x07, + 0x25, 0x24, 0x23, 0x22, 0x21, 0x20}; + if (pin >= 12) return 0; + return adc_read(pgm_read_byte(pin_to_mux + pin)); +#elif defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__) + if (pin >= 8) return 0; + return adc_read(pin); +#else + return 0; +#endif +} + +// Mux input +int16_t adc_read(uint8_t mux) +{ +#if defined(__AVR_AT90USB162__) + return 0; +#else + uint8_t low; + + ADCSRA = (1<<ADEN) | ADC_PRESCALER; // enable ADC + ADCSRB = (1<<ADHSM) | (mux & 0x20); // high speed mode + ADMUX = aref | (mux & 0x1F); // configure mux input + ADCSRA = (1<<ADEN) | ADC_PRESCALER | (1<<ADSC); // start the conversion + while (ADCSRA & (1<<ADSC)) ; // wait for result + low = ADCL; // must read LSB first + return (ADCH << 8) | low; // must read MSB only once! +#endif +} + + diff --git a/drivers/avr/analog.h b/drivers/avr/analog.h new file mode 100644 index 000000000..8d93de7dc --- /dev/null +++ b/drivers/avr/analog.h @@ -0,0 +1,52 @@ +/* Copyright 2015 Jack Humbert + * + * 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/>. + */ + +#ifndef _analog_h_included__ +#define _analog_h_included__ + +#include <stdint.h> + +void analogReference(uint8_t mode); +int16_t analogRead(uint8_t pin); +int16_t adc_read(uint8_t mux); + +#define ADC_REF_POWER (1<<REFS0) +#define ADC_REF_INTERNAL ((1<<REFS1) | (1<<REFS0)) +#define ADC_REF_EXTERNAL (0) + +// These prescaler values are for high speed mode, ADHSM = 1 +#if F_CPU == 16000000L +#define ADC_PRESCALER ((1<<ADPS2) | (1<<ADPS1)) +#elif F_CPU == 8000000L +#define ADC_PRESCALER ((1<<ADPS2) | (1<<ADPS0)) +#elif F_CPU == 4000000L +#define ADC_PRESCALER ((1<<ADPS2)) +#elif F_CPU == 2000000L +#define ADC_PRESCALER ((1<<ADPS1) | (1<<ADPS0)) +#elif F_CPU == 1000000L +#define ADC_PRESCALER ((1<<ADPS1)) +#else +#define ADC_PRESCALER ((1<<ADPS0)) +#endif + +// some avr-libc versions do not properly define ADHSM +#if defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__) +#if !defined(ADHSM) +#define ADHSM (7) +#endif +#endif + +#endif diff --git a/drivers/avr/glcdfont.c b/drivers/avr/glcdfont.c new file mode 100644 index 000000000..6f88bd23a --- /dev/null +++ b/drivers/avr/glcdfont.c @@ -0,0 +1,276 @@ +// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0. +// See gfxfont.h for newer custom bitmap font info. + +#ifndef FONT5X7_H +#define FONT5X7_H + +#ifdef __AVR__ + #include <avr/io.h> + #include <avr/pgmspace.h> +#elif defined(ESP8266) + #include <pgmspace.h> +#else + #define PROGMEM +#endif + +// Standard ASCII 5x7 font + +static const unsigned char font[] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, + 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, + 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, + 0x18, 0x3C, 0x7E, 0x3C, 0x18, + 0x1C, 0x57, 0x7D, 0x57, 0x1C, + 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, + 0x00, 0x18, 0x3C, 0x18, 0x00, + 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, + 0x00, 0x18, 0x24, 0x18, 0x00, + 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, + 0x30, 0x48, 0x3A, 0x06, 0x0E, + 0x26, 0x29, 0x79, 0x29, 0x26, + 0x40, 0x7F, 0x05, 0x05, 0x07, + 0x40, 0x7F, 0x05, 0x25, 0x3F, + 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, + 0x7F, 0x3E, 0x1C, 0x1C, 0x08, + 0x08, 0x1C, 0x1C, 0x3E, 0x7F, + 0x14, 0x22, 0x7F, 0x22, 0x14, + 0x5F, 0x5F, 0x00, 0x5F, 0x5F, + 0x06, 0x09, 0x7F, 0x01, 0x7F, + 0x00, 0x66, 0x89, 0x95, 0x6A, + 0x60, 0x60, 0x60, 0x60, 0x60, + 0x94, 0xA2, 0xFF, 0xA2, 0x94, + 0x08, 0x04, 0x7E, 0x04, 0x08, + 0x10, 0x20, 0x7E, 0x20, 0x10, + 0x08, 0x08, 0x2A, 0x1C, 0x08, + 0x08, 0x1C, 0x2A, 0x08, 0x08, + 0x1E, 0x10, 0x10, 0x10, 0x10, + 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, + 0x30, 0x38, 0x3E, 0x38, 0x30, + 0x06, 0x0E, 0x3E, 0x0E, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x5F, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x07, 0x00, + 0x14, 0x7F, 0x14, 0x7F, 0x14, + 0x24, 0x2A, 0x7F, 0x2A, 0x12, + 0x23, 0x13, 0x08, 0x64, 0x62, + 0x36, 0x49, 0x56, 0x20, 0x50, + 0x00, 0x08, 0x07, 0x03, 0x00, + 0x00, 0x1C, 0x22, 0x41, 0x00, + 0x00, 0x41, 0x22, 0x1C, 0x00, + 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, + 0x08, 0x08, 0x3E, 0x08, 0x08, + 0x00, 0x80, 0x70, 0x30, 0x00, + 0x08, 0x08, 0x08, 0x08, 0x08, + 0x00, 0x00, 0x60, 0x60, 0x00, + 0x20, 0x10, 0x08, 0x04, 0x02, + 0x3E, 0x51, 0x49, 0x45, 0x3E, + 0x00, 0x42, 0x7F, 0x40, 0x00, + 0x72, 0x49, 0x49, 0x49, 0x46, + 0x21, 0x41, 0x49, 0x4D, 0x33, + 0x18, 0x14, 0x12, 0x7F, 0x10, + 0x27, 0x45, 0x45, 0x45, 0x39, + 0x3C, 0x4A, 0x49, 0x49, 0x31, + 0x41, 0x21, 0x11, 0x09, 0x07, + 0x36, 0x49, 0x49, 0x49, 0x36, + 0x46, 0x49, 0x49, 0x29, 0x1E, + 0x00, 0x00, 0x14, 0x00, 0x00, + 0x00, 0x40, 0x34, 0x00, 0x00, + 0x00, 0x08, 0x14, 0x22, 0x41, + 0x14, 0x14, 0x14, 0x14, 0x14, + 0x00, 0x41, 0x22, 0x14, 0x08, + 0x02, 0x01, 0x59, 0x09, 0x06, + 0x3E, 0x41, 0x5D, 0x59, 0x4E, + 0x7C, 0x12, 0x11, 0x12, 0x7C, + 0x7F, 0x49, 0x49, 0x49, 0x36, + 0x3E, 0x41, 0x41, 0x41, 0x22, + 0x7F, 0x41, 0x41, 0x41, 0x3E, + 0x7F, 0x49, 0x49, 0x49, 0x41, + 0x7F, 0x09, 0x09, 0x09, 0x01, + 0x3E, 0x41, 0x41, 0x51, 0x73, + 0x7F, 0x08, 0x08, 0x08, 0x7F, + 0x00, 0x41, 0x7F, 0x41, 0x00, + 0x20, 0x40, 0x41, 0x3F, 0x01, + 0x7F, 0x08, 0x14, 0x22, 0x41, + 0x7F, 0x40, 0x40, 0x40, 0x40, + 0x7F, 0x02, 0x1C, 0x02, 0x7F, + 0x7F, 0x04, 0x08, 0x10, 0x7F, + 0x3E, 0x41, 0x41, 0x41, 0x3E, + 0x7F, 0x09, 0x09, 0x09, 0x06, + 0x3E, 0x41, 0x51, 0x21, 0x5E, + 0x7F, 0x09, 0x19, 0x29, 0x46, + 0x26, 0x49, 0x49, 0x49, 0x32, + 0x03, 0x01, 0x7F, 0x01, 0x03, + 0x3F, 0x40, 0x40, 0x40, 0x3F, + 0x1F, 0x20, 0x40, 0x20, 0x1F, + 0x3F, 0x40, 0x38, 0x40, 0x3F, + 0x63, 0x14, 0x08, 0x14, 0x63, + 0x03, 0x04, 0x78, 0x04, 0x03, + 0x61, 0x59, 0x49, 0x4D, 0x43, + 0x00, 0x7F, 0x41, 0x41, 0x41, + 0x02, 0x04, 0x08, 0x10, 0x20, + 0x00, 0x41, 0x41, 0x41, 0x7F, + 0x04, 0x02, 0x01, 0x02, 0x04, + 0x40, 0x40, 0x40, 0x40, 0x40, + 0x00, 0x03, 0x07, 0x08, 0x00, + 0x20, 0x54, 0x54, 0x78, 0x40, + 0x7F, 0x28, 0x44, 0x44, 0x38, + 0x38, 0x44, 0x44, 0x44, 0x28, + 0x38, 0x44, 0x44, 0x28, 0x7F, + 0x38, 0x54, 0x54, 0x54, 0x18, + 0x00, 0x08, 0x7E, 0x09, 0x02, + 0x18, 0xA4, 0xA4, 0x9C, 0x78, + 0x7F, 0x08, 0x04, 0x04, 0x78, + 0x00, 0x44, 0x7D, 0x40, 0x00, + 0x20, 0x40, 0x40, 0x3D, 0x00, + 0x7F, 0x10, 0x28, 0x44, 0x00, + 0x00, 0x41, 0x7F, 0x40, 0x00, + 0x7C, 0x04, 0x78, 0x04, 0x78, + 0x7C, 0x08, 0x04, 0x04, 0x78, + 0x38, 0x44, 0x44, 0x44, 0x38, + 0xFC, 0x18, 0x24, 0x24, 0x18, + 0x18, 0x24, 0x24, 0x18, 0xFC, + 0x7C, 0x08, 0x04, 0x04, 0x08, + 0x48, 0x54, 0x54, 0x54, 0x24, + 0x04, 0x04, 0x3F, 0x44, 0x24, + 0x3C, 0x40, 0x40, 0x20, 0x7C, + 0x1C, 0x20, 0x40, 0x20, 0x1C, + 0x3C, 0x40, 0x30, 0x40, 0x3C, + 0x44, 0x28, 0x10, 0x28, 0x44, + 0x4C, 0x90, 0x90, 0x90, 0x7C, + 0x44, 0x64, 0x54, 0x4C, 0x44, + 0x00, 0x08, 0x36, 0x41, 0x00, + 0x00, 0x00, 0x77, 0x00, 0x00, + 0x00, 0x41, 0x36, 0x08, 0x00, + 0x02, 0x01, 0x02, 0x04, 0x02, + 0x3C, 0x26, 0x23, 0x26, 0x3C, + 0x1E, 0xA1, 0xA1, 0x61, 0x12, + 0x3A, 0x40, 0x40, 0x20, 0x7A, + 0x38, 0x54, 0x54, 0x55, 0x59, + 0x21, 0x55, 0x55, 0x79, 0x41, + 0x22, 0x54, 0x54, 0x78, 0x42, // a-umlaut + 0x21, 0x55, 0x54, 0x78, 0x40, + 0x20, 0x54, 0x55, 0x79, 0x40, + 0x0C, 0x1E, 0x52, 0x72, 0x12, + 0x39, 0x55, 0x55, 0x55, 0x59, + 0x39, 0x54, 0x54, 0x54, 0x59, + 0x39, 0x55, 0x54, 0x54, 0x58, + 0x00, 0x00, 0x45, 0x7C, 0x41, + 0x00, 0x02, 0x45, 0x7D, 0x42, + 0x00, 0x01, 0x45, 0x7C, 0x40, + 0x7D, 0x12, 0x11, 0x12, 0x7D, // A-umlaut + 0xF0, 0x28, 0x25, 0x28, 0xF0, + 0x7C, 0x54, 0x55, 0x45, 0x00, + 0x20, 0x54, 0x54, 0x7C, 0x54, + 0x7C, 0x0A, 0x09, 0x7F, 0x49, + 0x32, 0x49, 0x49, 0x49, 0x32, + 0x3A, 0x44, 0x44, 0x44, 0x3A, // o-umlaut + 0x32, 0x4A, 0x48, 0x48, 0x30, + 0x3A, 0x41, 0x41, 0x21, 0x7A, + 0x3A, 0x42, 0x40, 0x20, 0x78, + 0x00, 0x9D, 0xA0, 0xA0, 0x7D, + 0x3D, 0x42, 0x42, 0x42, 0x3D, // O-umlaut + 0x3D, 0x40, 0x40, 0x40, 0x3D, + 0x3C, 0x24, 0xFF, 0x24, 0x24, + 0x48, 0x7E, 0x49, 0x43, 0x66, + 0x2B, 0x2F, 0xFC, 0x2F, 0x2B, + 0xFF, 0x09, 0x29, 0xF6, 0x20, + 0xC0, 0x88, 0x7E, 0x09, 0x03, + 0x20, 0x54, 0x54, 0x79, 0x41, + 0x00, 0x00, 0x44, 0x7D, 0x41, + 0x30, 0x48, 0x48, 0x4A, 0x32, + 0x38, 0x40, 0x40, 0x22, 0x7A, + 0x00, 0x7A, 0x0A, 0x0A, 0x72, + 0x7D, 0x0D, 0x19, 0x31, 0x7D, + 0x26, 0x29, 0x29, 0x2F, 0x28, + 0x26, 0x29, 0x29, 0x29, 0x26, + 0x30, 0x48, 0x4D, 0x40, 0x20, + 0x38, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x38, + 0x2F, 0x10, 0xC8, 0xAC, 0xBA, + 0x2F, 0x10, 0x28, 0x34, 0xFA, + 0x00, 0x00, 0x7B, 0x00, 0x00, + 0x08, 0x14, 0x2A, 0x14, 0x22, + 0x22, 0x14, 0x2A, 0x14, 0x08, + 0x55, 0x00, 0x55, 0x00, 0x55, // #176 (25% block) missing in old code + 0xAA, 0x55, 0xAA, 0x55, 0xAA, // 50% block + 0xFF, 0x55, 0xFF, 0x55, 0xFF, // 75% block + 0x00, 0x00, 0x00, 0xFF, 0x00, + 0x10, 0x10, 0x10, 0xFF, 0x00, + 0x14, 0x14, 0x14, 0xFF, 0x00, + 0x10, 0x10, 0xFF, 0x00, 0xFF, + 0x10, 0x10, 0xF0, 0x10, 0xF0, + 0x14, 0x14, 0x14, 0xFC, 0x00, + 0x14, 0x14, 0xF7, 0x00, 0xFF, + 0x00, 0x00, 0xFF, 0x00, 0xFF, + 0x14, 0x14, 0xF4, 0x04, 0xFC, + 0x14, 0x14, 0x17, 0x10, 0x1F, + 0x10, 0x10, 0x1F, 0x10, 0x1F, + 0x14, 0x14, 0x14, 0x1F, 0x00, + 0x10, 0x10, 0x10, 0xF0, 0x00, + 0x00, 0x00, 0x00, 0x1F, 0x10, + 0x10, 0x10, 0x10, 0x1F, 0x10, + 0x10, 0x10, 0x10, 0xF0, 0x10, + 0x00, 0x00, 0x00, 0xFF, 0x10, + 0x10, 0x10, 0x10, 0x10, 0x10, + 0x10, 0x10, 0x10, 0xFF, 0x10, + 0x00, 0x00, 0x00, 0xFF, 0x14, + 0x00, 0x00, 0xFF, 0x00, 0xFF, + 0x00, 0x00, 0x1F, 0x10, 0x17, + 0x00, 0x00, 0xFC, 0x04, 0xF4, + 0x14, 0x14, 0x17, 0x10, 0x17, + 0x14, 0x14, 0xF4, 0x04, 0xF4, + 0x00, 0x00, 0xFF, 0x00, 0xF7, + 0x14, 0x14, 0x14, 0x14, 0x14, + 0x14, 0x14, 0xF7, 0x00, 0xF7, + 0x14, 0x14, 0x14, 0x17, 0x14, + 0x10, 0x10, 0x1F, 0x10, 0x1F, + 0x14, 0x14, 0x14, 0xF4, 0x14, + 0x10, 0x10, 0xF0, 0x10, 0xF0, + 0x00, 0x00, 0x1F, 0x10, 0x1F, + 0x00, 0x00, 0x00, 0x1F, 0x14, + 0x00, 0x00, 0x00, 0xFC, 0x14, + 0x00, 0x00, 0xF0, 0x10, 0xF0, + 0x10, 0x10, 0xFF, 0x10, 0xFF, + 0x14, 0x14, 0x14, 0xFF, 0x14, + 0x10, 0x10, 0x10, 0x1F, 0x00, + 0x00, 0x00, 0x00, 0xF0, 0x10, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, + 0xFF, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xFF, 0xFF, + 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, + 0x38, 0x44, 0x44, 0x38, 0x44, + 0xFC, 0x4A, 0x4A, 0x4A, 0x34, // sharp-s or beta + 0x7E, 0x02, 0x02, 0x06, 0x06, + 0x02, 0x7E, 0x02, 0x7E, 0x02, + 0x63, 0x55, 0x49, 0x41, 0x63, + 0x38, 0x44, 0x44, 0x3C, 0x04, + 0x40, 0x7E, 0x20, 0x1E, 0x20, + 0x06, 0x02, 0x7E, 0x02, 0x02, + 0x99, 0xA5, 0xE7, 0xA5, 0x99, + 0x1C, 0x2A, 0x49, 0x2A, 0x1C, + 0x4C, 0x72, 0x01, 0x72, 0x4C, + 0x30, 0x4A, 0x4D, 0x4D, 0x30, + 0x30, 0x48, 0x78, 0x48, 0x30, + 0xBC, 0x62, 0x5A, 0x46, 0x3D, + 0x3E, 0x49, 0x49, 0x49, 0x00, + 0x7E, 0x01, 0x01, 0x01, 0x7E, + 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, + 0x44, 0x44, 0x5F, 0x44, 0x44, + 0x40, 0x51, 0x4A, 0x44, 0x40, + 0x40, 0x44, 0x4A, 0x51, 0x40, + 0x00, 0x00, 0xFF, 0x01, 0x03, + 0xE0, 0x80, 0xFF, 0x00, 0x00, + 0x08, 0x08, 0x6B, 0x6B, 0x08, + 0x36, 0x12, 0x36, 0x24, 0x36, + 0x06, 0x0F, 0x09, 0x0F, 0x06, + 0x00, 0x00, 0x18, 0x18, 0x00, + 0x00, 0x00, 0x10, 0x10, 0x00, + 0x30, 0x40, 0xFF, 0x01, 0x01, + 0x00, 0x1F, 0x01, 0x01, 0x1E, + 0x00, 0x19, 0x1D, 0x17, 0x12, + 0x00, 0x3C, 0x3C, 0x3C, 0x3C, + 0x00, 0x00, 0x00, 0x00, 0x00 // #255 NBSP +}; +#endif // FONT5X7_H diff --git a/drivers/avr/pro_micro.h b/drivers/avr/pro_micro.h new file mode 100644 index 000000000..f9e7ed75d --- /dev/null +++ b/drivers/avr/pro_micro.h @@ -0,0 +1,362 @@ +/* + pins_arduino.h - Pin definition functions for Arduino + Part of Arduino - http://www.arduino.cc/ + + Copyright (c) 2007 David A. Mellis + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General + Public License along with this library; if not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, + Boston, MA 02111-1307 USA + + $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $ +*/ + +#ifndef Pins_Arduino_h +#define Pins_Arduino_h + +#include <avr/pgmspace.h> + +// Workaround for wrong definitions in "iom32u4.h". +// This should be fixed in the AVR toolchain. +#undef UHCON +#undef UHINT +#undef UHIEN +#undef UHADDR +#undef UHFNUM +#undef UHFNUML +#undef UHFNUMH +#undef UHFLEN +#undef UPINRQX +#undef UPINTX +#undef UPNUM +#undef UPRST +#undef UPCONX +#undef UPCFG0X +#undef UPCFG1X +#undef UPSTAX +#undef UPCFG2X +#undef UPIENX +#undef UPDATX +#undef TCCR2A +#undef WGM20 +#undef WGM21 +#undef COM2B0 +#undef COM2B1 +#undef COM2A0 +#undef COM2A1 +#undef TCCR2B +#undef CS20 +#undef CS21 +#undef CS22 +#undef WGM22 +#undef FOC2B +#undef FOC2A +#undef TCNT2 +#undef TCNT2_0 +#undef TCNT2_1 +#undef TCNT2_2 +#undef TCNT2_3 +#undef TCNT2_4 +#undef TCNT2_5 +#undef TCNT2_6 +#undef TCNT2_7 +#undef OCR2A +#undef OCR2_0 +#undef OCR2_1 +#undef OCR2_2 +#undef OCR2_3 +#undef OCR2_4 +#undef OCR2_5 +#undef OCR2_6 +#undef OCR2_7 +#undef OCR2B +#undef OCR2_0 +#undef OCR2_1 +#undef OCR2_2 +#undef OCR2_3 +#undef OCR2_4 +#undef OCR2_5 +#undef OCR2_6 +#undef OCR2_7 + +#define NUM_DIGITAL_PINS 30 +#define NUM_ANALOG_INPUTS 12 + +#define TX_RX_LED_INIT DDRD |= (1<<5), DDRB |= (1<<0) +#define TXLED0 PORTD |= (1<<5) +#define TXLED1 PORTD &= ~(1<<5) +#define RXLED0 PORTB |= (1<<0) +#define RXLED1 PORTB &= ~(1<<0) + +static const uint8_t SDA = 2; +static const uint8_t SCL = 3; +#define LED_BUILTIN 13 + +// Map SPI port to 'new' pins D14..D17 +static const uint8_t SS = 17; +static const uint8_t MOSI = 16; +static const uint8_t MISO = 14; +static const uint8_t SCK = 15; + +// Mapping of analog pins as digital I/O +// A6-A11 share with digital pins +static const uint8_t ADC0 = 18; +static const uint8_t ADC1 = 19; +static const uint8_t ADC2 = 20; +static const uint8_t ADC3 = 21; +static const uint8_t ADC4 = 22; +static const uint8_t ADC5 = 23; +static const uint8_t ADC6 = 24; // D4 +static const uint8_t ADC7 = 25; // D6 +static const uint8_t ADC8 = 26; // D8 +static const uint8_t ADC9 = 27; // D9 +static const uint8_t ADC10 = 28; // D10 +static const uint8_t ADC11 = 29; // D12 + +#define digitalPinToPCICR(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCICR) : ((uint8_t *)0)) +#define digitalPinToPCICRbit(p) 0 +#define digitalPinToPCMSK(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCMSK0) : ((uint8_t *)0)) +#define digitalPinToPCMSKbit(p) ( ((p) >= 8 && (p) <= 11) ? (p) - 4 : ((p) == 14 ? 3 : ((p) == 15 ? 1 : ((p) == 16 ? 2 : ((p) == 17 ? 0 : (p - A8 + 4)))))) + +// __AVR_ATmega32U4__ has an unusual mapping of pins to channels +extern const uint8_t PROGMEM analog_pin_to_channel_PGM[]; +#define analogPinToChannel(P) ( pgm_read_byte( analog_pin_to_channel_PGM + (P) ) ) + +#define digitalPinToInterrupt(p) ((p) == 0 ? 2 : ((p) == 1 ? 3 : ((p) == 2 ? 1 : ((p) == 3 ? 0 : ((p) == 7 ? 4 : NOT_AN_INTERRUPT))))) + +#ifdef ARDUINO_MAIN + +// On the Arduino board, digital pins are also used +// for the analog output (software PWM). Analog input +// pins are a separate set. + +// ATMEL ATMEGA32U4 / ARDUINO LEONARDO +// +// D0 PD2 RXD1/INT2 +// D1 PD3 TXD1/INT3 +// D2 PD1 SDA SDA/INT1 +// D3# PD0 PWM8/SCL OC0B/SCL/INT0 +// D4 A6 PD4 ADC8 +// D5# PC6 ??? OC3A/#OC4A +// D6# A7 PD7 FastPWM #OC4D/ADC10 +// D7 PE6 INT6/AIN0 +// +// D8 A8 PB4 ADC11/PCINT4 +// D9# A9 PB5 PWM16 OC1A/#OC4B/ADC12/PCINT5 +// D10# A10 PB6 PWM16 OC1B/0c4B/ADC13/PCINT6 +// D11# PB7 PWM8/16 0C0A/OC1C/#RTS/PCINT7 +// D12 A11 PD6 T1/#OC4D/ADC9 +// D13# PC7 PWM10 CLK0/OC4A +// +// A0 D18 PF7 ADC7 +// A1 D19 PF6 ADC6 +// A2 D20 PF5 ADC5 +// A3 D21 PF4 ADC4 +// A4 D22 PF1 ADC1 +// A5 D23 PF0 ADC0 +// +// New pins D14..D17 to map SPI port to digital pins +// +// MISO D14 PB3 MISO,PCINT3 +// SCK D15 PB1 SCK,PCINT1 +// MOSI D16 PB2 MOSI,PCINT2 +// SS D17 PB0 RXLED,SS/PCINT0 +// +// Connected LEDs on board for TX and RX +// TXLED D24 PD5 XCK1 +// RXLED D17 PB0 +// HWB PE2 HWB + +// these arrays map port names (e.g. port B) to the +// appropriate addresses for various functions (e.g. reading +// and writing) +const uint16_t PROGMEM port_to_mode_PGM[] = { + NOT_A_PORT, + NOT_A_PORT, + (uint16_t) &DDRB, + (uint16_t) &DDRC, + (uint16_t) &DDRD, + (uint16_t) &DDRE, + (uint16_t) &DDRF, +}; + +const uint16_t PROGMEM port_to_output_PGM[] = { + NOT_A_PORT, + NOT_A_PORT, + (uint16_t) &PORTB, + (uint16_t) &PORTC, + (uint16_t) &PORTD, + (uint16_t) &PORTE, + (uint16_t) &PORTF, +}; + +const uint16_t PROGMEM port_to_input_PGM[] = { + NOT_A_PORT, + NOT_A_PORT, + (uint16_t) &PINB, + (uint16_t) &PINC, + (uint16_t) &PIND, + (uint16_t) &PINE, + (uint16_t) &PINF, +}; + +const uint8_t PROGMEM digital_pin_to_port_PGM[] = { + PD, // D0 - PD2 + PD, // D1 - PD3 + PD, // D2 - PD1 + PD, // D3 - PD0 + PD, // D4 - PD4 + PC, // D5 - PC6 + PD, // D6 - PD7 + PE, // D7 - PE6 + + PB, // D8 - PB4 + PB, // D9 - PB5 + PB, // D10 - PB6 + PB, // D11 - PB7 + PD, // D12 - PD6 + PC, // D13 - PC7 + + PB, // D14 - MISO - PB3 + PB, // D15 - SCK - PB1 + PB, // D16 - MOSI - PB2 + PB, // D17 - SS - PB0 + + PF, // D18 - A0 - PF7 + PF, // D19 - A1 - PF6 + PF, // D20 - A2 - PF5 + PF, // D21 - A3 - PF4 + PF, // D22 - A4 - PF1 + PF, // D23 - A5 - PF0 + + PD, // D24 - PD5 + PD, // D25 / D6 - A7 - PD7 + PB, // D26 / D8 - A8 - PB4 + PB, // D27 / D9 - A9 - PB5 + PB, // D28 / D10 - A10 - PB6 + PD, // D29 / D12 - A11 - PD6 +}; + +const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = { + _BV(2), // D0 - PD2 + _BV(3), // D1 - PD3 + _BV(1), // D2 - PD1 + _BV(0), // D3 - PD0 + _BV(4), // D4 - PD4 + _BV(6), // D5 - PC6 + _BV(7), // D6 - PD7 + _BV(6), // D7 - PE6 + + _BV(4), // D8 - PB4 + _BV(5), // D9 - PB5 + _BV(6), // D10 - PB6 + _BV(7), // D11 - PB7 + _BV(6), // D12 - PD6 + _BV(7), // D13 - PC7 + + _BV(3), // D14 - MISO - PB3 + _BV(1), // D15 - SCK - PB1 + _BV(2), // D16 - MOSI - PB2 + _BV(0), // D17 - SS - PB0 + + _BV(7), // D18 - A0 - PF7 + _BV(6), // D19 - A1 - PF6 + _BV(5), // D20 - A2 - PF5 + _BV(4), // D21 - A3 - PF4 + _BV(1), // D22 - A4 - PF1 + _BV(0), // D23 - A5 - PF0 + + _BV(5), // D24 - PD5 + _BV(7), // D25 / D6 - A7 - PD7 + _BV(4), // D26 / D8 - A8 - PB4 + _BV(5), // D27 / D9 - A9 - PB5 + _BV(6), // D28 / D10 - A10 - PB6 + _BV(6), // D29 / D12 - A11 - PD6 +}; + +const uint8_t PROGMEM digital_pin_to_timer_PGM[] = { + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + TIMER0B, /* 3 */ + NOT_ON_TIMER, + TIMER3A, /* 5 */ + TIMER4D, /* 6 */ + NOT_ON_TIMER, + + NOT_ON_TIMER, + TIMER1A, /* 9 */ + TIMER1B, /* 10 */ + TIMER0A, /* 11 */ + + NOT_ON_TIMER, + TIMER4A, /* 13 */ + + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, + NOT_ON_TIMER, +}; + +const uint8_t PROGMEM analog_pin_to_channel_PGM[] = { + 7, // A0 PF7 ADC7 + 6, // A1 PF6 ADC6 + 5, // A2 PF5 ADC5 + 4, // A3 PF4 ADC4 + 1, // A4 PF1 ADC1 + 0, // A5 PF0 ADC0 + 8, // A6 D4 PD4 ADC8 + 10, // A7 D6 PD7 ADC10 + 11, // A8 D8 PB4 ADC11 + 12, // A9 D9 PB5 ADC12 + 13, // A10 D10 PB6 ADC13 + 9 // A11 D12 PD6 ADC9 +}; + +#endif /* ARDUINO_MAIN */ + +// These serial port names are intended to allow libraries and architecture-neutral +// sketches to automatically default to the correct port name for a particular type +// of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN, +// the first hardware serial port whose RX/TX pins are not dedicated to another use. +// +// SERIAL_PORT_MONITOR Port which normally prints to the Arduino Serial Monitor +// +// SERIAL_PORT_USBVIRTUAL Port which is USB virtual serial +// +// SERIAL_PORT_LINUXBRIDGE Port which connects to a Linux system via Bridge library +// +// SERIAL_PORT_HARDWARE Hardware serial port, physical RX & TX pins. +// +// SERIAL_PORT_HARDWARE_OPEN Hardware serial ports which are open for use. Their RX & TX +// pins are NOT connected to anything by default. +#define SERIAL_PORT_MONITOR Serial +#define SERIAL_PORT_USBVIRTUAL Serial +#define SERIAL_PORT_HARDWARE Serial1 +#define SERIAL_PORT_HARDWARE_OPEN Serial1 + +#endif /* Pins_Arduino_h */ diff --git a/drivers/avr/ssd1306.c b/drivers/avr/ssd1306.c new file mode 100644 index 000000000..f9312d2dc --- /dev/null +++ b/drivers/avr/ssd1306.c @@ -0,0 +1,470 @@ +#ifdef SSD1306OLED + +#include "ssd1306.h" +#include "config.h" +#include "i2c.h" +#include <string.h> +#include "print.h" +#include "lets_split.h" +#include "glcdfont.c" +#ifdef ADAFRUIT_BLE_ENABLE +#include "adafruit_ble.h" +#endif +#ifdef PROTOCOL_LUFA +#include "lufa.h" +#endif +#include "sendchar.h" +#include "pincontrol.h" + +//assign the right code to your layers +#define _BASE 0 +#define _LOWER 8 +#define _RAISE 16 +#define _FNLAYER 64 +#define _NUMLAY 128 +#define _NLOWER 136 +#define _NFNLAYER 192 +#define _MOUSECURSOR 256 +#define _ADJUST 65560 + +// Set this to 1 to help diagnose early startup problems +// when testing power-on with ble. Turn it off otherwise, +// as the latency of printing most of the debug info messes +// with the matrix scan, causing keys to drop. +#define DEBUG_TO_SCREEN 0 + +// Controls the SSD1306 128x32 OLED display via i2c + +#define i2cAddress 0x3C + +#define DisplayHeight 32 +#define DisplayWidth 128 + +#define FontHeight 8 +#define FontWidth 6 + +#define MatrixRows (DisplayHeight / FontHeight) +#define MatrixCols (DisplayWidth / FontWidth) + +struct CharacterMatrix { + uint8_t display[MatrixRows][MatrixCols]; + uint8_t *cursor; + bool dirty; +}; + +static struct CharacterMatrix display; +//static uint16_t last_battery_update; +//static uint32_t vbat; +//#define BatteryUpdateInterval 10000 /* milliseconds */ +#define ScreenOffInterval 300000 /* milliseconds */ +#if DEBUG_TO_SCREEN +static uint8_t displaying; +#endif +static uint16_t last_flush; + +enum ssd1306_cmds { + DisplayOff = 0xAE, + DisplayOn = 0xAF, + + SetContrast = 0x81, + DisplayAllOnResume = 0xA4, + + DisplayAllOn = 0xA5, + NormalDisplay = 0xA6, + InvertDisplay = 0xA7, + SetDisplayOffset = 0xD3, + SetComPins = 0xda, + SetVComDetect = 0xdb, + SetDisplayClockDiv = 0xD5, + SetPreCharge = 0xd9, + SetMultiPlex = 0xa8, + SetLowColumn = 0x00, + SetHighColumn = 0x10, + SetStartLine = 0x40, + + SetMemoryMode = 0x20, + ColumnAddr = 0x21, + PageAddr = 0x22, + + ComScanInc = 0xc0, + ComScanDec = 0xc8, + SegRemap = 0xa0, + SetChargePump = 0x8d, + ExternalVcc = 0x01, + SwitchCapVcc = 0x02, + + ActivateScroll = 0x2f, + DeActivateScroll = 0x2e, + SetVerticalScrollArea = 0xa3, + RightHorizontalScroll = 0x26, + LeftHorizontalScroll = 0x27, + VerticalAndRightHorizontalScroll = 0x29, + VerticalAndLeftHorizontalScroll = 0x2a, +}; + + +// Write command sequence. +// Returns true on success. +static inline bool _send_cmd1(uint8_t cmd) { + bool res = false; + + if (i2c_start_write(i2cAddress)) { + xprintf("failed to start write to %d\n", i2cAddress); + goto done; + } + + if (i2c_master_write(0x0 /* command byte follows */)) { + print("failed to write control byte\n"); + + goto done; + } + + if (i2c_master_write(cmd)) { + xprintf("failed to write command %d\n", cmd); + goto done; + } + res = true; +done: + i2c_master_stop(); + return res; +} + +// Write 2-byte command sequence. +// Returns true on success +static inline bool _send_cmd2(uint8_t cmd, uint8_t opr) { + if (!_send_cmd1(cmd)) { + return false; + } + return _send_cmd1(opr); +} + +// Write 3-byte command sequence. +// Returns true on success +static inline bool _send_cmd3(uint8_t cmd, uint8_t opr1, uint8_t opr2) { + if (!_send_cmd1(cmd)) { + return false; + } + if (!_send_cmd1(opr1)) { + return false; + } + return _send_cmd1(opr2); +} + +#define send_cmd1(c) if (!_send_cmd1(c)) {goto done;} +#define send_cmd2(c,o) if (!_send_cmd2(c,o)) {goto done;} +#define send_cmd3(c,o1,o2) if (!_send_cmd3(c,o1,o2)) {goto done;} + +static void matrix_clear(struct CharacterMatrix *matrix); + +static void clear_display(void) { + matrix_clear(&display); + + // Clear all of the display bits (there can be random noise + // in the RAM on startup) + send_cmd3(PageAddr, 0, (DisplayHeight / 8) - 1); + send_cmd3(ColumnAddr, 0, DisplayWidth - 1); + + if (i2c_start_write(i2cAddress)) { + goto done; + } + if (i2c_master_write(0x40)) { + // Data mode + goto done; + } + for (uint8_t row = 0; row < MatrixRows; ++row) { + for (uint8_t col = 0; col < DisplayWidth; ++col) { + i2c_master_write(0); + } + } + + display.dirty = false; + +done: + i2c_master_stop(); +} + +#if DEBUG_TO_SCREEN +#undef sendchar +static int8_t capture_sendchar(uint8_t c) { + sendchar(c); + iota_gfx_write_char(c); + + if (!displaying) { + iota_gfx_flush(); + } + return 0; +} +#endif + +bool iota_gfx_init(void) { + bool success = false; + + send_cmd1(DisplayOff); + send_cmd2(SetDisplayClockDiv, 0x80); + send_cmd2(SetMultiPlex, DisplayHeight - 1); + + send_cmd2(SetDisplayOffset, 0); + + + send_cmd1(SetStartLine | 0x0); + send_cmd2(SetChargePump, 0x14 /* Enable */); + send_cmd2(SetMemoryMode, 0 /* horizontal addressing */); + +/// Flips the display orientation 0 degrees + send_cmd1(SegRemap | 0x1); + send_cmd1(ComScanDec); +/* +// the following Flip the display orientation 180 degrees + send_cmd1(SegRemap); + send_cmd1(ComScanInc); +// end flip */ + send_cmd2(SetComPins, 0x2); + send_cmd2(SetContrast, 0x8f); + send_cmd2(SetPreCharge, 0xf1); + send_cmd2(SetVComDetect, 0x40); + send_cmd1(DisplayAllOnResume); + send_cmd1(NormalDisplay); + send_cmd1(DeActivateScroll); + send_cmd1(DisplayOn); + + send_cmd2(SetContrast, 0); // Dim + + clear_display(); + + success = true; + + iota_gfx_flush(); + +#if DEBUG_TO_SCREEN + print_set_sendchar(capture_sendchar); +#endif + +done: + return success; +} + +bool iota_gfx_off(void) { + bool success = false; + + send_cmd1(DisplayOff); + success = true; + +done: + return success; +} + +bool iota_gfx_on(void) { + bool success = false; + + send_cmd1(DisplayOn); + success = true; + +done: + return success; +} + +static void matrix_write_char_inner(struct CharacterMatrix *matrix, uint8_t c) { + *matrix->cursor = c; + ++matrix->cursor; + + if (matrix->cursor - &matrix->display[0][0] == sizeof(matrix->display)) { + // We went off the end; scroll the display upwards by one line + memmove(&matrix->display[0], &matrix->display[1], + MatrixCols * (MatrixRows - 1)); + matrix->cursor = &matrix->display[MatrixRows - 1][0]; + memset(matrix->cursor, ' ', MatrixCols); + } +} + +static void matrix_write_char(struct CharacterMatrix *matrix, uint8_t c) { + matrix->dirty = true; + + if (c == '\n') { + // Clear to end of line from the cursor and then move to the + // start of the next line + uint8_t cursor_col = (matrix->cursor - &matrix->display[0][0]) % MatrixCols; + + while (cursor_col++ < MatrixCols) { + matrix_write_char_inner(matrix, ' '); + } + return; + } + + matrix_write_char_inner(matrix, c); +} + +void iota_gfx_write_char(uint8_t c) { + matrix_write_char(&display, c); +} + +static void matrix_write(struct CharacterMatrix *matrix, const char *data) { + const char *end = data + strlen(data); + while (data < end) { + matrix_write_char(matrix, *data); + ++data; + } +} + +void iota_gfx_write(const char *data) { + matrix_write(&display, data); +} + +static void matrix_write_P(struct CharacterMatrix *matrix, const char *data) { + while (true) { + uint8_t c = pgm_read_byte(data); + if (c == 0) { + return; + } + matrix_write_char(matrix, c); + ++data; + } +} + +void iota_gfx_write_P(const char *data) { + matrix_write_P(&display, data); +} + +static void matrix_clear(struct CharacterMatrix *matrix) { + memset(matrix->display, ' ', sizeof(matrix->display)); + matrix->cursor = &matrix->display[0][0]; + matrix->dirty = true; +} + +void iota_gfx_clear_screen(void) { + matrix_clear(&display); +} + +static void matrix_render(struct CharacterMatrix *matrix) { + last_flush = timer_read(); + iota_gfx_on(); +#if DEBUG_TO_SCREEN + ++displaying; +#endif + + // Move to the home position + send_cmd3(PageAddr, 0, MatrixRows - 1); + send_cmd3(ColumnAddr, 0, (MatrixCols * FontWidth) - 1); + + if (i2c_start_write(i2cAddress)) { + goto done; + } + if (i2c_master_write(0x40)) { + // Data mode + goto done; + } + + for (uint8_t row = 0; row < MatrixRows; ++row) { + for (uint8_t col = 0; col < MatrixCols; ++col) { + const uint8_t *glyph = font + (matrix->display[row][col] * (FontWidth - 1)); + + for (uint8_t glyphCol = 0; glyphCol < FontWidth - 1; ++glyphCol) { + uint8_t colBits = pgm_read_byte(glyph + glyphCol); + i2c_master_write(colBits); + } + + // 1 column of space between chars (it's not included in the glyph) + i2c_master_write(0); + } + } + + matrix->dirty = false; + +done: + i2c_master_stop(); +#if DEBUG_TO_SCREEN + --displaying; +#endif +} + +void iota_gfx_flush(void) { + matrix_render(&display); +} + +static void matrix_update(struct CharacterMatrix *dest, + const struct CharacterMatrix *source) { + if (memcmp(dest->display, source->display, sizeof(dest->display))) { + memcpy(dest->display, source->display, sizeof(dest->display)); + dest->dirty = true; + } +} + +static void render_status_info(void) { +#if DEBUG_TO_SCREEN + if (debug_enable) { + return; + } +#endif + + struct CharacterMatrix matrix; + + matrix_clear(&matrix); + matrix_write_P(&matrix, PSTR("USB: ")); +#ifdef PROTOCOL_LUFA + switch (USB_DeviceState) { + case DEVICE_STATE_Unattached: + matrix_write_P(&matrix, PSTR("Unattached")); + break; + case DEVICE_STATE_Suspended: + matrix_write_P(&matrix, PSTR("Suspended")); + break; + case DEVICE_STATE_Configured: + matrix_write_P(&matrix, PSTR("Connected")); + break; + case DEVICE_STATE_Powered: + matrix_write_P(&matrix, PSTR("Powered")); + break; + case DEVICE_STATE_Default: + matrix_write_P(&matrix, PSTR("Default")); + break; + case DEVICE_STATE_Addressed: + matrix_write_P(&matrix, PSTR("Addressed")); + break; + default: + matrix_write_P(&matrix, PSTR("Invalid")); + } +#endif + +// Define layers here, Have not worked out how to have text displayed for each layer. Copy down the number you see and add a case for it below + + char buf[40]; + snprintf(buf,sizeof(buf), "Undef-%ld", layer_state); + matrix_write_P(&matrix, PSTR("\n\nLayer: ")); + switch (layer_state) { + case _BASE: + matrix_write_P(&matrix, PSTR("Default")); + break; + case _RAISE: + matrix_write_P(&matrix, PSTR("Raise")); + break; + case _LOWER: + matrix_write_P(&matrix, PSTR("Lower")); + break; + case _ADJUST: + matrix_write_P(&matrix, PSTR("ADJUST")); + break; + default: + matrix_write(&matrix, buf); + } + + // Host Keyboard LED Status + char led[40]; + snprintf(led, sizeof(led), "\n%s %s %s", + (host_keyboard_leds() & (1<<USB_LED_NUM_LOCK)) ? "NUMLOCK" : " ", + (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) ? "CAPS" : " ", + (host_keyboard_leds() & (1<<USB_LED_SCROLL_LOCK)) ? "SCLK" : " "); + matrix_write(&matrix, led); + matrix_update(&display, &matrix); +} + +void iota_gfx_task(void) { + render_status_info(); + + if (display.dirty) { + iota_gfx_flush(); + } + + if (timer_elapsed(last_flush) > ScreenOffInterval) { + iota_gfx_off(); + } +} +#endif diff --git a/drivers/avr/ssd1306.h b/drivers/avr/ssd1306.h new file mode 100644 index 000000000..b0c74f987 --- /dev/null +++ b/drivers/avr/ssd1306.h @@ -0,0 +1,17 @@ +#ifndef SSD1306_H +#define SSD1306_H + +#include <stdbool.h> +#include <stdio.h> + +bool iota_gfx_init(void); +void iota_gfx_task(void); +bool iota_gfx_off(void); +bool iota_gfx_on(void); +void iota_gfx_flush(void); +void iota_gfx_write_char(uint8_t c); +void iota_gfx_write(const char *data); +void iota_gfx_write_P(const char *data); +void iota_gfx_clear_screen(void); + +#endif diff --git a/drivers/avr/ws2812.c b/drivers/avr/ws2812.c new file mode 100644 index 000000000..59e032bf7 --- /dev/null +++ b/drivers/avr/ws2812.c @@ -0,0 +1,342 @@ +/* +* light weight WS2812 lib V2.0b +* +* Controls WS2811/WS2812/WS2812B RGB-LEDs +* Author: Tim (cpldcpu@gmail.com) +* +* Jan 18th, 2014 v2.0b Initial Version +* Nov 29th, 2015 v2.3 Added SK6812RGBW support +* +* 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/>. +*/ + +#include "ws2812.h" +#include <avr/interrupt.h> +#include <avr/io.h> +#include <util/delay.h> +#include "debug.h" + +#ifdef RGBW_BB_TWI + +// Port for the I2C +#define I2C_DDR DDRD +#define I2C_PIN PIND +#define I2C_PORT PORTD + +// Pins to be used in the bit banging +#define I2C_CLK 0 +#define I2C_DAT 1 + +#define I2C_DATA_HI()\ +I2C_DDR &= ~ (1 << I2C_DAT);\ +I2C_PORT |= (1 << I2C_DAT); +#define I2C_DATA_LO()\ +I2C_DDR |= (1 << I2C_DAT);\ +I2C_PORT &= ~ (1 << I2C_DAT); + +#define I2C_CLOCK_HI()\ +I2C_DDR &= ~ (1 << I2C_CLK);\ +I2C_PORT |= (1 << I2C_CLK); +#define I2C_CLOCK_LO()\ +I2C_DDR |= (1 << I2C_CLK);\ +I2C_PORT &= ~ (1 << I2C_CLK); + +#define I2C_DELAY 1 + +void I2C_WriteBit(unsigned char c) +{ + if (c > 0) + { + I2C_DATA_HI(); + } + else + { + I2C_DATA_LO(); + } + + I2C_CLOCK_HI(); + _delay_us(I2C_DELAY); + + I2C_CLOCK_LO(); + _delay_us(I2C_DELAY); + + if (c > 0) + { + I2C_DATA_LO(); + } + + _delay_us(I2C_DELAY); +} + +// Inits bitbanging port, must be called before using the functions below +// +void I2C_Init(void) +{ + I2C_PORT &= ~ ((1 << I2C_DAT) | (1 << I2C_CLK)); + + I2C_CLOCK_HI(); + I2C_DATA_HI(); + + _delay_us(I2C_DELAY); +} + +// Send a START Condition +// +void I2C_Start(void) +{ + // set both to high at the same time + I2C_DDR &= ~ ((1 << I2C_DAT) | (1 << I2C_CLK)); + _delay_us(I2C_DELAY); + + I2C_DATA_LO(); + _delay_us(I2C_DELAY); + + I2C_CLOCK_LO(); + _delay_us(I2C_DELAY); +} + +// Send a STOP Condition +// +void I2C_Stop(void) +{ + I2C_CLOCK_HI(); + _delay_us(I2C_DELAY); + + I2C_DATA_HI(); + _delay_us(I2C_DELAY); +} + +// write a byte to the I2C slave device +// +unsigned char I2C_Write(unsigned char c) +{ + for (char i = 0; i < 8; i++) + { + I2C_WriteBit(c & 128); + + c <<= 1; + } + + + I2C_WriteBit(0); + _delay_us(I2C_DELAY); + _delay_us(I2C_DELAY); + + // _delay_us(I2C_DELAY); + //return I2C_ReadBit(); + return 0; +} + + +#endif + +// Setleds for standard RGB +void inline ws2812_setleds(LED_TYPE *ledarray, uint16_t leds) +{ + // ws2812_setleds_pin(ledarray,leds, _BV(ws2812_pin)); + ws2812_setleds_pin(ledarray,leds, _BV(RGB_DI_PIN & 0xF)); +} + +void inline ws2812_setleds_pin(LED_TYPE *ledarray, uint16_t leds, uint8_t pinmask) +{ + // ws2812_DDRREG |= pinmask; // Enable DDR + // new universal format (DDR) + _SFR_IO8((RGB_DI_PIN >> 4) + 1) |= pinmask; + + ws2812_sendarray_mask((uint8_t*)ledarray,leds+leds+leds,pinmask); + _delay_us(50); +} + +// Setleds for SK6812RGBW +void inline ws2812_setleds_rgbw(LED_TYPE *ledarray, uint16_t leds) +{ + + #ifdef RGBW_BB_TWI + uint8_t sreg_prev, twcr_prev; + sreg_prev=SREG; + twcr_prev=TWCR; + cli(); + TWCR &= ~(1<<TWEN); + I2C_Init(); + I2C_Start(); + I2C_Write(0x84); + uint16_t datlen = leds<<2; + uint8_t curbyte; + uint8_t * data = (uint8_t*)ledarray; + while (datlen--) { + curbyte=*data++; + I2C_Write(curbyte); + } + I2C_Stop(); + SREG=sreg_prev; + TWCR=twcr_prev; + #endif + + + // ws2812_DDRREG |= _BV(ws2812_pin); // Enable DDR + // new universal format (DDR) + _SFR_IO8((RGB_DI_PIN >> 4) + 1) |= _BV(RGB_DI_PIN & 0xF); + + ws2812_sendarray_mask((uint8_t*)ledarray,leds<<2,_BV(RGB_DI_PIN & 0xF)); + + + #ifndef RGBW_BB_TWI + _delay_us(80); + #endif +} + +void ws2812_sendarray(uint8_t *data,uint16_t datlen) +{ + ws2812_sendarray_mask(data,datlen,_BV(RGB_DI_PIN & 0xF)); +} + +/* + This routine writes an array of bytes with RGB values to the Dataout pin + using the fast 800kHz clockless WS2811/2812 protocol. +*/ + +// Timing in ns +#define w_zeropulse 350 +#define w_onepulse 900 +#define w_totalperiod 1250 + +// Fixed cycles used by the inner loop +#define w_fixedlow 2 +#define w_fixedhigh 4 +#define w_fixedtotal 8 + +// Insert NOPs to match the timing, if possible +#define w_zerocycles (((F_CPU/1000)*w_zeropulse )/1000000) +#define w_onecycles (((F_CPU/1000)*w_onepulse +500000)/1000000) +#define w_totalcycles (((F_CPU/1000)*w_totalperiod +500000)/1000000) + +// w1 - nops between rising edge and falling edge - low +#define w1 (w_zerocycles-w_fixedlow) +// w2 nops between fe low and fe high +#define w2 (w_onecycles-w_fixedhigh-w1) +// w3 nops to complete loop +#define w3 (w_totalcycles-w_fixedtotal-w1-w2) + +#if w1>0 + #define w1_nops w1 +#else + #define w1_nops 0 +#endif + +// The only critical timing parameter is the minimum pulse length of the "0" +// Warn or throw error if this timing can not be met with current F_CPU settings. +#define w_lowtime ((w1_nops+w_fixedlow)*1000000)/(F_CPU/1000) +#if w_lowtime>550 + #error "Light_ws2812: Sorry, the clock speed is too low. Did you set F_CPU correctly?" +#elif w_lowtime>450 + #warning "Light_ws2812: The timing is critical and may only work on WS2812B, not on WS2812(S)." + #warning "Please consider a higher clockspeed, if possible" +#endif + +#if w2>0 +#define w2_nops w2 +#else +#define w2_nops 0 +#endif + +#if w3>0 +#define w3_nops w3 +#else +#define w3_nops 0 +#endif + +#define w_nop1 "nop \n\t" +#define w_nop2 "rjmp .+0 \n\t" +#define w_nop4 w_nop2 w_nop2 +#define w_nop8 w_nop4 w_nop4 +#define w_nop16 w_nop8 w_nop8 + +void inline ws2812_sendarray_mask(uint8_t *data,uint16_t datlen,uint8_t maskhi) +{ + uint8_t curbyte,ctr,masklo; + uint8_t sreg_prev; + + // masklo =~maskhi&ws2812_PORTREG; + // maskhi |= ws2812_PORTREG; + masklo =~maskhi&_SFR_IO8((RGB_DI_PIN >> 4) + 2); + maskhi |= _SFR_IO8((RGB_DI_PIN >> 4) + 2); + sreg_prev=SREG; + cli(); + + while (datlen--) { + curbyte=(*data++); + + asm volatile( + " ldi %0,8 \n\t" + "loop%=: \n\t" + " out %2,%3 \n\t" // '1' [01] '0' [01] - re +#if (w1_nops&1) +w_nop1 +#endif +#if (w1_nops&2) +w_nop2 +#endif +#if (w1_nops&4) +w_nop4 +#endif +#if (w1_nops&8) +w_nop8 +#endif +#if (w1_nops&16) +w_nop16 +#endif + " sbrs %1,7 \n\t" // '1' [03] '0' [02] + " out %2,%4 \n\t" // '1' [--] '0' [03] - fe-low + " lsl %1 \n\t" // '1' [04] '0' [04] +#if (w2_nops&1) + w_nop1 +#endif +#if (w2_nops&2) + w_nop2 +#endif +#if (w2_nops&4) + w_nop4 +#endif +#if (w2_nops&8) + w_nop8 +#endif +#if (w2_nops&16) + w_nop16 +#endif + " out %2,%4 \n\t" // '1' [+1] '0' [+1] - fe-high +#if (w3_nops&1) +w_nop1 +#endif +#if (w3_nops&2) +w_nop2 +#endif +#if (w3_nops&4) +w_nop4 +#endif +#if (w3_nops&8) +w_nop8 +#endif +#if (w3_nops&16) +w_nop16 +#endif + + " dec %0 \n\t" // '1' [+2] '0' [+2] + " brne loop%=\n\t" // '1' [+3] '0' [+4] + : "=&d" (ctr) + : "r" (curbyte), "I" (_SFR_IO_ADDR(_SFR_IO8((RGB_DI_PIN >> 4) + 2))), "r" (maskhi), "r" (masklo) + ); + } + + SREG=sreg_prev; +} diff --git a/drivers/avr/ws2812.h b/drivers/avr/ws2812.h new file mode 100644 index 000000000..60924a0fb --- /dev/null +++ b/drivers/avr/ws2812.h @@ -0,0 +1,91 @@ +/* + * light weight WS2812 lib include + * + * Version 2.3 - Nev 29th 2015 + * Author: Tim (cpldcpu@gmail.com) + * + * Please do not change this file! All configuration is handled in "ws2812_config.h" + * + * 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/>. + */ + +#ifndef LIGHT_WS2812_H_ +#define LIGHT_WS2812_H_ + +#include <avr/io.h> +#include <avr/interrupt.h> +//#include "ws2812_config.h" +//#include "i2cmaster.h" + +#ifdef RGBW + #define LED_TYPE struct cRGBW +#else + #define LED_TYPE struct cRGB +#endif + + +/* + * Structure of the LED array + * + * cRGB: RGB for WS2812S/B/C/D, SK6812, SK6812Mini, SK6812WWA, APA104, APA106 + * cRGBW: RGBW for SK6812RGBW + */ + +struct cRGB { uint8_t g; uint8_t r; uint8_t b; }; +struct cRGBW { uint8_t g; uint8_t r; uint8_t b; uint8_t w;}; + + + +/* User Interface + * + * Input: + * ledarray: An array of GRB data describing the LED colors + * number_of_leds: The number of LEDs to write + * pinmask (optional): Bitmask describing the output bin. e.g. _BV(PB0) + * + * The functions will perform the following actions: + * - Set the data-out pin as output + * - Send out the LED data + * - Wait 50�s to reset the LEDs + */ + +void ws2812_setleds (LED_TYPE *ledarray, uint16_t number_of_leds); +void ws2812_setleds_pin (LED_TYPE *ledarray, uint16_t number_of_leds,uint8_t pinmask); +void ws2812_setleds_rgbw(LED_TYPE *ledarray, uint16_t number_of_leds); + +/* + * Old interface / Internal functions + * + * The functions take a byte-array and send to the data output as WS2812 bitstream. + * The length is the number of bytes to send - three per LED. + */ + +void ws2812_sendarray (uint8_t *array,uint16_t length); +void ws2812_sendarray_mask(uint8_t *array,uint16_t length, uint8_t pinmask); + + +/* + * Internal defines + */ +#ifndef CONCAT +#define CONCAT(a, b) a ## b +#endif +#ifndef CONCAT_EXP +#define CONCAT_EXP(a, b) CONCAT(a, b) +#endif + +// #define ws2812_PORTREG CONCAT_EXP(PORT,ws2812_port) +// #define ws2812_DDRREG CONCAT_EXP(DDR,ws2812_port) + +#endif /* LIGHT_WS2812_H_ */ diff --git a/keyboards/atreus62/pro_micro.h b/keyboards/atreus62/pro_micro.h deleted file mode 100644 index f9e7ed75d..000000000 --- a/keyboards/atreus62/pro_micro.h +++ /dev/null @@ -1,362 +0,0 @@ -/* - pins_arduino.h - Pin definition functions for Arduino - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2007 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $ -*/ - -#ifndef Pins_Arduino_h -#define Pins_Arduino_h - -#include <avr/pgmspace.h> - -// Workaround for wrong definitions in "iom32u4.h". -// This should be fixed in the AVR toolchain. -#undef UHCON -#undef UHINT -#undef UHIEN -#undef UHADDR -#undef UHFNUM -#undef UHFNUML -#undef UHFNUMH -#undef UHFLEN -#undef UPINRQX -#undef UPINTX -#undef UPNUM -#undef UPRST -#undef UPCONX -#undef UPCFG0X -#undef UPCFG1X -#undef UPSTAX -#undef UPCFG2X -#undef UPIENX -#undef UPDATX -#undef TCCR2A -#undef WGM20 -#undef WGM21 -#undef COM2B0 -#undef COM2B1 -#undef COM2A0 -#undef COM2A1 -#undef TCCR2B -#undef CS20 -#undef CS21 -#undef CS22 -#undef WGM22 -#undef FOC2B -#undef FOC2A -#undef TCNT2 -#undef TCNT2_0 -#undef TCNT2_1 -#undef TCNT2_2 -#undef TCNT2_3 -#undef TCNT2_4 -#undef TCNT2_5 -#undef TCNT2_6 -#undef TCNT2_7 -#undef OCR2A -#undef OCR2_0 -#undef OCR2_1 -#undef OCR2_2 -#undef OCR2_3 -#undef OCR2_4 -#undef OCR2_5 -#undef OCR2_6 -#undef OCR2_7 -#undef OCR2B -#undef OCR2_0 -#undef OCR2_1 -#undef OCR2_2 -#undef OCR2_3 -#undef OCR2_4 -#undef OCR2_5 -#undef OCR2_6 -#undef OCR2_7 - -#define NUM_DIGITAL_PINS 30 -#define NUM_ANALOG_INPUTS 12 - -#define TX_RX_LED_INIT DDRD |= (1<<5), DDRB |= (1<<0) -#define TXLED0 PORTD |= (1<<5) -#define TXLED1 PORTD &= ~(1<<5) -#define RXLED0 PORTB |= (1<<0) -#define RXLED1 PORTB &= ~(1<<0) - -static const uint8_t SDA = 2; -static const uint8_t SCL = 3; -#define LED_BUILTIN 13 - -// Map SPI port to 'new' pins D14..D17 -static const uint8_t SS = 17; -static const uint8_t MOSI = 16; -static const uint8_t MISO = 14; -static const uint8_t SCK = 15; - -// Mapping of analog pins as digital I/O -// A6-A11 share with digital pins -static const uint8_t ADC0 = 18; -static const uint8_t ADC1 = 19; -static const uint8_t ADC2 = 20; -static const uint8_t ADC3 = 21; -static const uint8_t ADC4 = 22; -static const uint8_t ADC5 = 23; -static const uint8_t ADC6 = 24; // D4 -static const uint8_t ADC7 = 25; // D6 -static const uint8_t ADC8 = 26; // D8 -static const uint8_t ADC9 = 27; // D9 -static const uint8_t ADC10 = 28; // D10 -static const uint8_t ADC11 = 29; // D12 - -#define digitalPinToPCICR(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCICR) : ((uint8_t *)0)) -#define digitalPinToPCICRbit(p) 0 -#define digitalPinToPCMSK(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCMSK0) : ((uint8_t *)0)) -#define digitalPinToPCMSKbit(p) ( ((p) >= 8 && (p) <= 11) ? (p) - 4 : ((p) == 14 ? 3 : ((p) == 15 ? 1 : ((p) == 16 ? 2 : ((p) == 17 ? 0 : (p - A8 + 4)))))) - -// __AVR_ATmega32U4__ has an unusual mapping of pins to channels -extern const uint8_t PROGMEM analog_pin_to_channel_PGM[]; -#define analogPinToChannel(P) ( pgm_read_byte( analog_pin_to_channel_PGM + (P) ) ) - -#define digitalPinToInterrupt(p) ((p) == 0 ? 2 : ((p) == 1 ? 3 : ((p) == 2 ? 1 : ((p) == 3 ? 0 : ((p) == 7 ? 4 : NOT_AN_INTERRUPT))))) - -#ifdef ARDUINO_MAIN - -// On the Arduino board, digital pins are also used -// for the analog output (software PWM). Analog input -// pins are a separate set. - -// ATMEL ATMEGA32U4 / ARDUINO LEONARDO -// -// D0 PD2 RXD1/INT2 -// D1 PD3 TXD1/INT3 -// D2 PD1 SDA SDA/INT1 -// D3# PD0 PWM8/SCL OC0B/SCL/INT0 -// D4 A6 PD4 ADC8 -// D5# PC6 ??? OC3A/#OC4A -// D6# A7 PD7 FastPWM #OC4D/ADC10 -// D7 PE6 INT6/AIN0 -// -// D8 A8 PB4 ADC11/PCINT4 -// D9# A9 PB5 PWM16 OC1A/#OC4B/ADC12/PCINT5 -// D10# A10 PB6 PWM16 OC1B/0c4B/ADC13/PCINT6 -// D11# PB7 PWM8/16 0C0A/OC1C/#RTS/PCINT7 -// D12 A11 PD6 T1/#OC4D/ADC9 -// D13# PC7 PWM10 CLK0/OC4A -// -// A0 D18 PF7 ADC7 -// A1 D19 PF6 ADC6 -// A2 D20 PF5 ADC5 -// A3 D21 PF4 ADC4 -// A4 D22 PF1 ADC1 -// A5 D23 PF0 ADC0 -// -// New pins D14..D17 to map SPI port to digital pins -// -// MISO D14 PB3 MISO,PCINT3 -// SCK D15 PB1 SCK,PCINT1 -// MOSI D16 PB2 MOSI,PCINT2 -// SS D17 PB0 RXLED,SS/PCINT0 -// -// Connected LEDs on board for TX and RX -// TXLED D24 PD5 XCK1 -// RXLED D17 PB0 -// HWB PE2 HWB - -// these arrays map port names (e.g. port B) to the -// appropriate addresses for various functions (e.g. reading -// and writing) -const uint16_t PROGMEM port_to_mode_PGM[] = { - NOT_A_PORT, - NOT_A_PORT, - (uint16_t) &DDRB, - (uint16_t) &DDRC, - (uint16_t) &DDRD, - (uint16_t) &DDRE, - (uint16_t) &DDRF, -}; - -const uint16_t PROGMEM port_to_output_PGM[] = { - NOT_A_PORT, - NOT_A_PORT, - (uint16_t) &PORTB, - (uint16_t) &PORTC, - (uint16_t) &PORTD, - (uint16_t) &PORTE, - (uint16_t) &PORTF, -}; - -const uint16_t PROGMEM port_to_input_PGM[] = { - NOT_A_PORT, - NOT_A_PORT, - (uint16_t) &PINB, - (uint16_t) &PINC, - (uint16_t) &PIND, - (uint16_t) &PINE, - (uint16_t) &PINF, -}; - -const uint8_t PROGMEM digital_pin_to_port_PGM[] = { - PD, // D0 - PD2 - PD, // D1 - PD3 - PD, // D2 - PD1 - PD, // D3 - PD0 - PD, // D4 - PD4 - PC, // D5 - PC6 - PD, // D6 - PD7 - PE, // D7 - PE6 - - PB, // D8 - PB4 - PB, // D9 - PB5 - PB, // D10 - PB6 - PB, // D11 - PB7 - PD, // D12 - PD6 - PC, // D13 - PC7 - - PB, // D14 - MISO - PB3 - PB, // D15 - SCK - PB1 - PB, // D16 - MOSI - PB2 - PB, // D17 - SS - PB0 - - PF, // D18 - A0 - PF7 - PF, // D19 - A1 - PF6 - PF, // D20 - A2 - PF5 - PF, // D21 - A3 - PF4 - PF, // D22 - A4 - PF1 - PF, // D23 - A5 - PF0 - - PD, // D24 - PD5 - PD, // D25 / D6 - A7 - PD7 - PB, // D26 / D8 - A8 - PB4 - PB, // D27 / D9 - A9 - PB5 - PB, // D28 / D10 - A10 - PB6 - PD, // D29 / D12 - A11 - PD6 -}; - -const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = { - _BV(2), // D0 - PD2 - _BV(3), // D1 - PD3 - _BV(1), // D2 - PD1 - _BV(0), // D3 - PD0 - _BV(4), // D4 - PD4 - _BV(6), // D5 - PC6 - _BV(7), // D6 - PD7 - _BV(6), // D7 - PE6 - - _BV(4), // D8 - PB4 - _BV(5), // D9 - PB5 - _BV(6), // D10 - PB6 - _BV(7), // D11 - PB7 - _BV(6), // D12 - PD6 - _BV(7), // D13 - PC7 - - _BV(3), // D14 - MISO - PB3 - _BV(1), // D15 - SCK - PB1 - _BV(2), // D16 - MOSI - PB2 - _BV(0), // D17 - SS - PB0 - - _BV(7), // D18 - A0 - PF7 - _BV(6), // D19 - A1 - PF6 - _BV(5), // D20 - A2 - PF5 - _BV(4), // D21 - A3 - PF4 - _BV(1), // D22 - A4 - PF1 - _BV(0), // D23 - A5 - PF0 - - _BV(5), // D24 - PD5 - _BV(7), // D25 / D6 - A7 - PD7 - _BV(4), // D26 / D8 - A8 - PB4 - _BV(5), // D27 / D9 - A9 - PB5 - _BV(6), // D28 / D10 - A10 - PB6 - _BV(6), // D29 / D12 - A11 - PD6 -}; - -const uint8_t PROGMEM digital_pin_to_timer_PGM[] = { - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - TIMER0B, /* 3 */ - NOT_ON_TIMER, - TIMER3A, /* 5 */ - TIMER4D, /* 6 */ - NOT_ON_TIMER, - - NOT_ON_TIMER, - TIMER1A, /* 9 */ - TIMER1B, /* 10 */ - TIMER0A, /* 11 */ - - NOT_ON_TIMER, - TIMER4A, /* 13 */ - - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, -}; - -const uint8_t PROGMEM analog_pin_to_channel_PGM[] = { - 7, // A0 PF7 ADC7 - 6, // A1 PF6 ADC6 - 5, // A2 PF5 ADC5 - 4, // A3 PF4 ADC4 - 1, // A4 PF1 ADC1 - 0, // A5 PF0 ADC0 - 8, // A6 D4 PD4 ADC8 - 10, // A7 D6 PD7 ADC10 - 11, // A8 D8 PB4 ADC11 - 12, // A9 D9 PB5 ADC12 - 13, // A10 D10 PB6 ADC13 - 9 // A11 D12 PD6 ADC9 -}; - -#endif /* ARDUINO_MAIN */ - -// These serial port names are intended to allow libraries and architecture-neutral -// sketches to automatically default to the correct port name for a particular type -// of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN, -// the first hardware serial port whose RX/TX pins are not dedicated to another use. -// -// SERIAL_PORT_MONITOR Port which normally prints to the Arduino Serial Monitor -// -// SERIAL_PORT_USBVIRTUAL Port which is USB virtual serial -// -// SERIAL_PORT_LINUXBRIDGE Port which connects to a Linux system via Bridge library -// -// SERIAL_PORT_HARDWARE Hardware serial port, physical RX & TX pins. -// -// SERIAL_PORT_HARDWARE_OPEN Hardware serial ports which are open for use. Their RX & TX -// pins are NOT connected to anything by default. -#define SERIAL_PORT_MONITOR Serial -#define SERIAL_PORT_USBVIRTUAL Serial -#define SERIAL_PORT_HARDWARE Serial1 -#define SERIAL_PORT_HARDWARE_OPEN Serial1 - -#endif /* Pins_Arduino_h */ diff --git a/keyboards/handwired/promethium/rgbsps.c b/keyboards/handwired/promethium/rgbsps.c index f30badd35..84fac1ae1 100644 --- a/keyboards/handwired/promethium/rgbsps.c +++ b/keyboards/handwired/promethium/rgbsps.c @@ -1,4 +1,4 @@ -#include "light_ws2812.h" +#include "ws2812.h" #include "rgbsps.h" struct cRGB led[RGBSPS_NUM]; diff --git a/keyboards/handwired/promethium/rules.mk b/keyboards/handwired/promethium/rules.mk index 6fa45b42b..69903dceb 100644 --- a/keyboards/handwired/promethium/rules.mk +++ b/keyboards/handwired/promethium/rules.mk @@ -72,7 +72,7 @@ BLUETOOTH = AdafruitBLE # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -SRC += $(QUANTUM_DIR)/light_ws2812.c +SRC += ws2812.c SRC += rgbsps.c -SRC += $(QUANTUM_DIR)/analog.c +SRC += analog.c SRC += matrix.c diff --git a/keyboards/lets_split/common/glcdfont.c b/keyboards/lets_split/common/glcdfont.c deleted file mode 100644 index 6f88bd23a..000000000 --- a/keyboards/lets_split/common/glcdfont.c +++ /dev/null @@ -1,276 +0,0 @@ -// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0. -// See gfxfont.h for newer custom bitmap font info. - -#ifndef FONT5X7_H -#define FONT5X7_H - -#ifdef __AVR__ - #include <avr/io.h> - #include <avr/pgmspace.h> -#elif defined(ESP8266) - #include <pgmspace.h> -#else - #define PROGMEM -#endif - -// Standard ASCII 5x7 font - -static const unsigned char font[] PROGMEM = { - 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, - 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, - 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, - 0x18, 0x3C, 0x7E, 0x3C, 0x18, - 0x1C, 0x57, 0x7D, 0x57, 0x1C, - 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, - 0x00, 0x18, 0x3C, 0x18, 0x00, - 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, - 0x00, 0x18, 0x24, 0x18, 0x00, - 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, - 0x30, 0x48, 0x3A, 0x06, 0x0E, - 0x26, 0x29, 0x79, 0x29, 0x26, - 0x40, 0x7F, 0x05, 0x05, 0x07, - 0x40, 0x7F, 0x05, 0x25, 0x3F, - 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, - 0x7F, 0x3E, 0x1C, 0x1C, 0x08, - 0x08, 0x1C, 0x1C, 0x3E, 0x7F, - 0x14, 0x22, 0x7F, 0x22, 0x14, - 0x5F, 0x5F, 0x00, 0x5F, 0x5F, - 0x06, 0x09, 0x7F, 0x01, 0x7F, - 0x00, 0x66, 0x89, 0x95, 0x6A, - 0x60, 0x60, 0x60, 0x60, 0x60, - 0x94, 0xA2, 0xFF, 0xA2, 0x94, - 0x08, 0x04, 0x7E, 0x04, 0x08, - 0x10, 0x20, 0x7E, 0x20, 0x10, - 0x08, 0x08, 0x2A, 0x1C, 0x08, - 0x08, 0x1C, 0x2A, 0x08, 0x08, - 0x1E, 0x10, 0x10, 0x10, 0x10, - 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, - 0x30, 0x38, 0x3E, 0x38, 0x30, - 0x06, 0x0E, 0x3E, 0x0E, 0x06, - 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x5F, 0x00, 0x00, - 0x00, 0x07, 0x00, 0x07, 0x00, - 0x14, 0x7F, 0x14, 0x7F, 0x14, - 0x24, 0x2A, 0x7F, 0x2A, 0x12, - 0x23, 0x13, 0x08, 0x64, 0x62, - 0x36, 0x49, 0x56, 0x20, 0x50, - 0x00, 0x08, 0x07, 0x03, 0x00, - 0x00, 0x1C, 0x22, 0x41, 0x00, - 0x00, 0x41, 0x22, 0x1C, 0x00, - 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, - 0x08, 0x08, 0x3E, 0x08, 0x08, - 0x00, 0x80, 0x70, 0x30, 0x00, - 0x08, 0x08, 0x08, 0x08, 0x08, - 0x00, 0x00, 0x60, 0x60, 0x00, - 0x20, 0x10, 0x08, 0x04, 0x02, - 0x3E, 0x51, 0x49, 0x45, 0x3E, - 0x00, 0x42, 0x7F, 0x40, 0x00, - 0x72, 0x49, 0x49, 0x49, 0x46, - 0x21, 0x41, 0x49, 0x4D, 0x33, - 0x18, 0x14, 0x12, 0x7F, 0x10, - 0x27, 0x45, 0x45, 0x45, 0x39, - 0x3C, 0x4A, 0x49, 0x49, 0x31, - 0x41, 0x21, 0x11, 0x09, 0x07, - 0x36, 0x49, 0x49, 0x49, 0x36, - 0x46, 0x49, 0x49, 0x29, 0x1E, - 0x00, 0x00, 0x14, 0x00, 0x00, - 0x00, 0x40, 0x34, 0x00, 0x00, - 0x00, 0x08, 0x14, 0x22, 0x41, - 0x14, 0x14, 0x14, 0x14, 0x14, - 0x00, 0x41, 0x22, 0x14, 0x08, - 0x02, 0x01, 0x59, 0x09, 0x06, - 0x3E, 0x41, 0x5D, 0x59, 0x4E, - 0x7C, 0x12, 0x11, 0x12, 0x7C, - 0x7F, 0x49, 0x49, 0x49, 0x36, - 0x3E, 0x41, 0x41, 0x41, 0x22, - 0x7F, 0x41, 0x41, 0x41, 0x3E, - 0x7F, 0x49, 0x49, 0x49, 0x41, - 0x7F, 0x09, 0x09, 0x09, 0x01, - 0x3E, 0x41, 0x41, 0x51, 0x73, - 0x7F, 0x08, 0x08, 0x08, 0x7F, - 0x00, 0x41, 0x7F, 0x41, 0x00, - 0x20, 0x40, 0x41, 0x3F, 0x01, - 0x7F, 0x08, 0x14, 0x22, 0x41, - 0x7F, 0x40, 0x40, 0x40, 0x40, - 0x7F, 0x02, 0x1C, 0x02, 0x7F, - 0x7F, 0x04, 0x08, 0x10, 0x7F, - 0x3E, 0x41, 0x41, 0x41, 0x3E, - 0x7F, 0x09, 0x09, 0x09, 0x06, - 0x3E, 0x41, 0x51, 0x21, 0x5E, - 0x7F, 0x09, 0x19, 0x29, 0x46, - 0x26, 0x49, 0x49, 0x49, 0x32, - 0x03, 0x01, 0x7F, 0x01, 0x03, - 0x3F, 0x40, 0x40, 0x40, 0x3F, - 0x1F, 0x20, 0x40, 0x20, 0x1F, - 0x3F, 0x40, 0x38, 0x40, 0x3F, - 0x63, 0x14, 0x08, 0x14, 0x63, - 0x03, 0x04, 0x78, 0x04, 0x03, - 0x61, 0x59, 0x49, 0x4D, 0x43, - 0x00, 0x7F, 0x41, 0x41, 0x41, - 0x02, 0x04, 0x08, 0x10, 0x20, - 0x00, 0x41, 0x41, 0x41, 0x7F, - 0x04, 0x02, 0x01, 0x02, 0x04, - 0x40, 0x40, 0x40, 0x40, 0x40, - 0x00, 0x03, 0x07, 0x08, 0x00, - 0x20, 0x54, 0x54, 0x78, 0x40, - 0x7F, 0x28, 0x44, 0x44, 0x38, - 0x38, 0x44, 0x44, 0x44, 0x28, - 0x38, 0x44, 0x44, 0x28, 0x7F, - 0x38, 0x54, 0x54, 0x54, 0x18, - 0x00, 0x08, 0x7E, 0x09, 0x02, - 0x18, 0xA4, 0xA4, 0x9C, 0x78, - 0x7F, 0x08, 0x04, 0x04, 0x78, - 0x00, 0x44, 0x7D, 0x40, 0x00, - 0x20, 0x40, 0x40, 0x3D, 0x00, - 0x7F, 0x10, 0x28, 0x44, 0x00, - 0x00, 0x41, 0x7F, 0x40, 0x00, - 0x7C, 0x04, 0x78, 0x04, 0x78, - 0x7C, 0x08, 0x04, 0x04, 0x78, - 0x38, 0x44, 0x44, 0x44, 0x38, - 0xFC, 0x18, 0x24, 0x24, 0x18, - 0x18, 0x24, 0x24, 0x18, 0xFC, - 0x7C, 0x08, 0x04, 0x04, 0x08, - 0x48, 0x54, 0x54, 0x54, 0x24, - 0x04, 0x04, 0x3F, 0x44, 0x24, - 0x3C, 0x40, 0x40, 0x20, 0x7C, - 0x1C, 0x20, 0x40, 0x20, 0x1C, - 0x3C, 0x40, 0x30, 0x40, 0x3C, - 0x44, 0x28, 0x10, 0x28, 0x44, - 0x4C, 0x90, 0x90, 0x90, 0x7C, - 0x44, 0x64, 0x54, 0x4C, 0x44, - 0x00, 0x08, 0x36, 0x41, 0x00, - 0x00, 0x00, 0x77, 0x00, 0x00, - 0x00, 0x41, 0x36, 0x08, 0x00, - 0x02, 0x01, 0x02, 0x04, 0x02, - 0x3C, 0x26, 0x23, 0x26, 0x3C, - 0x1E, 0xA1, 0xA1, 0x61, 0x12, - 0x3A, 0x40, 0x40, 0x20, 0x7A, - 0x38, 0x54, 0x54, 0x55, 0x59, - 0x21, 0x55, 0x55, 0x79, 0x41, - 0x22, 0x54, 0x54, 0x78, 0x42, // a-umlaut - 0x21, 0x55, 0x54, 0x78, 0x40, - 0x20, 0x54, 0x55, 0x79, 0x40, - 0x0C, 0x1E, 0x52, 0x72, 0x12, - 0x39, 0x55, 0x55, 0x55, 0x59, - 0x39, 0x54, 0x54, 0x54, 0x59, - 0x39, 0x55, 0x54, 0x54, 0x58, - 0x00, 0x00, 0x45, 0x7C, 0x41, - 0x00, 0x02, 0x45, 0x7D, 0x42, - 0x00, 0x01, 0x45, 0x7C, 0x40, - 0x7D, 0x12, 0x11, 0x12, 0x7D, // A-umlaut - 0xF0, 0x28, 0x25, 0x28, 0xF0, - 0x7C, 0x54, 0x55, 0x45, 0x00, - 0x20, 0x54, 0x54, 0x7C, 0x54, - 0x7C, 0x0A, 0x09, 0x7F, 0x49, - 0x32, 0x49, 0x49, 0x49, 0x32, - 0x3A, 0x44, 0x44, 0x44, 0x3A, // o-umlaut - 0x32, 0x4A, 0x48, 0x48, 0x30, - 0x3A, 0x41, 0x41, 0x21, 0x7A, - 0x3A, 0x42, 0x40, 0x20, 0x78, - 0x00, 0x9D, 0xA0, 0xA0, 0x7D, - 0x3D, 0x42, 0x42, 0x42, 0x3D, // O-umlaut - 0x3D, 0x40, 0x40, 0x40, 0x3D, - 0x3C, 0x24, 0xFF, 0x24, 0x24, - 0x48, 0x7E, 0x49, 0x43, 0x66, - 0x2B, 0x2F, 0xFC, 0x2F, 0x2B, - 0xFF, 0x09, 0x29, 0xF6, 0x20, - 0xC0, 0x88, 0x7E, 0x09, 0x03, - 0x20, 0x54, 0x54, 0x79, 0x41, - 0x00, 0x00, 0x44, 0x7D, 0x41, - 0x30, 0x48, 0x48, 0x4A, 0x32, - 0x38, 0x40, 0x40, 0x22, 0x7A, - 0x00, 0x7A, 0x0A, 0x0A, 0x72, - 0x7D, 0x0D, 0x19, 0x31, 0x7D, - 0x26, 0x29, 0x29, 0x2F, 0x28, - 0x26, 0x29, 0x29, 0x29, 0x26, - 0x30, 0x48, 0x4D, 0x40, 0x20, - 0x38, 0x08, 0x08, 0x08, 0x08, - 0x08, 0x08, 0x08, 0x08, 0x38, - 0x2F, 0x10, 0xC8, 0xAC, 0xBA, - 0x2F, 0x10, 0x28, 0x34, 0xFA, - 0x00, 0x00, 0x7B, 0x00, 0x00, - 0x08, 0x14, 0x2A, 0x14, 0x22, - 0x22, 0x14, 0x2A, 0x14, 0x08, - 0x55, 0x00, 0x55, 0x00, 0x55, // #176 (25% block) missing in old code - 0xAA, 0x55, 0xAA, 0x55, 0xAA, // 50% block - 0xFF, 0x55, 0xFF, 0x55, 0xFF, // 75% block - 0x00, 0x00, 0x00, 0xFF, 0x00, - 0x10, 0x10, 0x10, 0xFF, 0x00, - 0x14, 0x14, 0x14, 0xFF, 0x00, - 0x10, 0x10, 0xFF, 0x00, 0xFF, - 0x10, 0x10, 0xF0, 0x10, 0xF0, - 0x14, 0x14, 0x14, 0xFC, 0x00, - 0x14, 0x14, 0xF7, 0x00, 0xFF, - 0x00, 0x00, 0xFF, 0x00, 0xFF, - 0x14, 0x14, 0xF4, 0x04, 0xFC, - 0x14, 0x14, 0x17, 0x10, 0x1F, - 0x10, 0x10, 0x1F, 0x10, 0x1F, - 0x14, 0x14, 0x14, 0x1F, 0x00, - 0x10, 0x10, 0x10, 0xF0, 0x00, - 0x00, 0x00, 0x00, 0x1F, 0x10, - 0x10, 0x10, 0x10, 0x1F, 0x10, - 0x10, 0x10, 0x10, 0xF0, 0x10, - 0x00, 0x00, 0x00, 0xFF, 0x10, - 0x10, 0x10, 0x10, 0x10, 0x10, - 0x10, 0x10, 0x10, 0xFF, 0x10, - 0x00, 0x00, 0x00, 0xFF, 0x14, - 0x00, 0x00, 0xFF, 0x00, 0xFF, - 0x00, 0x00, 0x1F, 0x10, 0x17, - 0x00, 0x00, 0xFC, 0x04, 0xF4, - 0x14, 0x14, 0x17, 0x10, 0x17, - 0x14, 0x14, 0xF4, 0x04, 0xF4, - 0x00, 0x00, 0xFF, 0x00, 0xF7, - 0x14, 0x14, 0x14, 0x14, 0x14, - 0x14, 0x14, 0xF7, 0x00, 0xF7, - 0x14, 0x14, 0x14, 0x17, 0x14, - 0x10, 0x10, 0x1F, 0x10, 0x1F, - 0x14, 0x14, 0x14, 0xF4, 0x14, - 0x10, 0x10, 0xF0, 0x10, 0xF0, - 0x00, 0x00, 0x1F, 0x10, 0x1F, - 0x00, 0x00, 0x00, 0x1F, 0x14, - 0x00, 0x00, 0x00, 0xFC, 0x14, - 0x00, 0x00, 0xF0, 0x10, 0xF0, - 0x10, 0x10, 0xFF, 0x10, 0xFF, - 0x14, 0x14, 0x14, 0xFF, 0x14, - 0x10, 0x10, 0x10, 0x1F, 0x00, - 0x00, 0x00, 0x00, 0xF0, 0x10, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, - 0xFF, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0xFF, - 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, - 0x38, 0x44, 0x44, 0x38, 0x44, - 0xFC, 0x4A, 0x4A, 0x4A, 0x34, // sharp-s or beta - 0x7E, 0x02, 0x02, 0x06, 0x06, - 0x02, 0x7E, 0x02, 0x7E, 0x02, - 0x63, 0x55, 0x49, 0x41, 0x63, - 0x38, 0x44, 0x44, 0x3C, 0x04, - 0x40, 0x7E, 0x20, 0x1E, 0x20, - 0x06, 0x02, 0x7E, 0x02, 0x02, - 0x99, 0xA5, 0xE7, 0xA5, 0x99, - 0x1C, 0x2A, 0x49, 0x2A, 0x1C, - 0x4C, 0x72, 0x01, 0x72, 0x4C, - 0x30, 0x4A, 0x4D, 0x4D, 0x30, - 0x30, 0x48, 0x78, 0x48, 0x30, - 0xBC, 0x62, 0x5A, 0x46, 0x3D, - 0x3E, 0x49, 0x49, 0x49, 0x00, - 0x7E, 0x01, 0x01, 0x01, 0x7E, - 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, - 0x44, 0x44, 0x5F, 0x44, 0x44, - 0x40, 0x51, 0x4A, 0x44, 0x40, - 0x40, 0x44, 0x4A, 0x51, 0x40, - 0x00, 0x00, 0xFF, 0x01, 0x03, - 0xE0, 0x80, 0xFF, 0x00, 0x00, - 0x08, 0x08, 0x6B, 0x6B, 0x08, - 0x36, 0x12, 0x36, 0x24, 0x36, - 0x06, 0x0F, 0x09, 0x0F, 0x06, - 0x00, 0x00, 0x18, 0x18, 0x00, - 0x00, 0x00, 0x10, 0x10, 0x00, - 0x30, 0x40, 0xFF, 0x01, 0x01, - 0x00, 0x1F, 0x01, 0x01, 0x1E, - 0x00, 0x19, 0x1D, 0x17, 0x12, - 0x00, 0x3C, 0x3C, 0x3C, 0x3C, - 0x00, 0x00, 0x00, 0x00, 0x00 // #255 NBSP -}; -#endif // FONT5X7_H diff --git a/keyboards/lets_split/pro_micro.h b/keyboards/lets_split/pro_micro.h deleted file mode 100644 index f9e7ed75d..000000000 --- a/keyboards/lets_split/pro_micro.h +++ /dev/null @@ -1,362 +0,0 @@ -/* - pins_arduino.h - Pin definition functions for Arduino - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2007 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $ -*/ - -#ifndef Pins_Arduino_h -#define Pins_Arduino_h - -#include <avr/pgmspace.h> - -// Workaround for wrong definitions in "iom32u4.h". -// This should be fixed in the AVR toolchain. -#undef UHCON -#undef UHINT -#undef UHIEN -#undef UHADDR -#undef UHFNUM -#undef UHFNUML -#undef UHFNUMH -#undef UHFLEN -#undef UPINRQX -#undef UPINTX -#undef UPNUM -#undef UPRST -#undef UPCONX -#undef UPCFG0X -#undef UPCFG1X -#undef UPSTAX -#undef UPCFG2X -#undef UPIENX -#undef UPDATX -#undef TCCR2A -#undef WGM20 -#undef WGM21 -#undef COM2B0 -#undef COM2B1 -#undef COM2A0 -#undef COM2A1 -#undef TCCR2B -#undef CS20 -#undef CS21 -#undef CS22 -#undef WGM22 -#undef FOC2B -#undef FOC2A -#undef TCNT2 -#undef TCNT2_0 -#undef TCNT2_1 -#undef TCNT2_2 -#undef TCNT2_3 -#undef TCNT2_4 -#undef TCNT2_5 -#undef TCNT2_6 -#undef TCNT2_7 -#undef OCR2A -#undef OCR2_0 -#undef OCR2_1 -#undef OCR2_2 -#undef OCR2_3 -#undef OCR2_4 -#undef OCR2_5 -#undef OCR2_6 -#undef OCR2_7 -#undef OCR2B -#undef OCR2_0 -#undef OCR2_1 -#undef OCR2_2 -#undef OCR2_3 -#undef OCR2_4 -#undef OCR2_5 -#undef OCR2_6 -#undef OCR2_7 - -#define NUM_DIGITAL_PINS 30 -#define NUM_ANALOG_INPUTS 12 - -#define TX_RX_LED_INIT DDRD |= (1<<5), DDRB |= (1<<0) -#define TXLED0 PORTD |= (1<<5) -#define TXLED1 PORTD &= ~(1<<5) -#define RXLED0 PORTB |= (1<<0) -#define RXLED1 PORTB &= ~(1<<0) - -static const uint8_t SDA = 2; -static const uint8_t SCL = 3; -#define LED_BUILTIN 13 - -// Map SPI port to 'new' pins D14..D17 -static const uint8_t SS = 17; -static const uint8_t MOSI = 16; -static const uint8_t MISO = 14; -static const uint8_t SCK = 15; - -// Mapping of analog pins as digital I/O -// A6-A11 share with digital pins -static const uint8_t ADC0 = 18; -static const uint8_t ADC1 = 19; -static const uint8_t ADC2 = 20; -static const uint8_t ADC3 = 21; -static const uint8_t ADC4 = 22; -static const uint8_t ADC5 = 23; -static const uint8_t ADC6 = 24; // D4 -static const uint8_t ADC7 = 25; // D6 -static const uint8_t ADC8 = 26; // D8 -static const uint8_t ADC9 = 27; // D9 -static const uint8_t ADC10 = 28; // D10 -static const uint8_t ADC11 = 29; // D12 - -#define digitalPinToPCICR(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCICR) : ((uint8_t *)0)) -#define digitalPinToPCICRbit(p) 0 -#define digitalPinToPCMSK(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCMSK0) : ((uint8_t *)0)) -#define digitalPinToPCMSKbit(p) ( ((p) >= 8 && (p) <= 11) ? (p) - 4 : ((p) == 14 ? 3 : ((p) == 15 ? 1 : ((p) == 16 ? 2 : ((p) == 17 ? 0 : (p - A8 + 4)))))) - -// __AVR_ATmega32U4__ has an unusual mapping of pins to channels -extern const uint8_t PROGMEM analog_pin_to_channel_PGM[]; -#define analogPinToChannel(P) ( pgm_read_byte( analog_pin_to_channel_PGM + (P) ) ) - -#define digitalPinToInterrupt(p) ((p) == 0 ? 2 : ((p) == 1 ? 3 : ((p) == 2 ? 1 : ((p) == 3 ? 0 : ((p) == 7 ? 4 : NOT_AN_INTERRUPT))))) - -#ifdef ARDUINO_MAIN - -// On the Arduino board, digital pins are also used -// for the analog output (software PWM). Analog input -// pins are a separate set. - -// ATMEL ATMEGA32U4 / ARDUINO LEONARDO -// -// D0 PD2 RXD1/INT2 -// D1 PD3 TXD1/INT3 -// D2 PD1 SDA SDA/INT1 -// D3# PD0 PWM8/SCL OC0B/SCL/INT0 -// D4 A6 PD4 ADC8 -// D5# PC6 ??? OC3A/#OC4A -// D6# A7 PD7 FastPWM #OC4D/ADC10 -// D7 PE6 INT6/AIN0 -// -// D8 A8 PB4 ADC11/PCINT4 -// D9# A9 PB5 PWM16 OC1A/#OC4B/ADC12/PCINT5 -// D10# A10 PB6 PWM16 OC1B/0c4B/ADC13/PCINT6 -// D11# PB7 PWM8/16 0C0A/OC1C/#RTS/PCINT7 -// D12 A11 PD6 T1/#OC4D/ADC9 -// D13# PC7 PWM10 CLK0/OC4A -// -// A0 D18 PF7 ADC7 -// A1 D19 PF6 ADC6 -// A2 D20 PF5 ADC5 -// A3 D21 PF4 ADC4 -// A4 D22 PF1 ADC1 -// A5 D23 PF0 ADC0 -// -// New pins D14..D17 to map SPI port to digital pins -// -// MISO D14 PB3 MISO,PCINT3 -// SCK D15 PB1 SCK,PCINT1 -// MOSI D16 PB2 MOSI,PCINT2 -// SS D17 PB0 RXLED,SS/PCINT0 -// -// Connected LEDs on board for TX and RX -// TXLED D24 PD5 XCK1 -// RXLED D17 PB0 -// HWB PE2 HWB - -// these arrays map port names (e.g. port B) to the -// appropriate addresses for various functions (e.g. reading -// and writing) -const uint16_t PROGMEM port_to_mode_PGM[] = { - NOT_A_PORT, - NOT_A_PORT, - (uint16_t) &DDRB, - (uint16_t) &DDRC, - (uint16_t) &DDRD, - (uint16_t) &DDRE, - (uint16_t) &DDRF, -}; - -const uint16_t PROGMEM port_to_output_PGM[] = { - NOT_A_PORT, - NOT_A_PORT, - (uint16_t) &PORTB, - (uint16_t) &PORTC, - (uint16_t) &PORTD, - (uint16_t) &PORTE, - (uint16_t) &PORTF, -}; - -const uint16_t PROGMEM port_to_input_PGM[] = { - NOT_A_PORT, - NOT_A_PORT, - (uint16_t) &PINB, - (uint16_t) &PINC, - (uint16_t) &PIND, - (uint16_t) &PINE, - (uint16_t) &PINF, -}; - -const uint8_t PROGMEM digital_pin_to_port_PGM[] = { - PD, // D0 - PD2 - PD, // D1 - PD3 - PD, // D2 - PD1 - PD, // D3 - PD0 - PD, // D4 - PD4 - PC, // D5 - PC6 - PD, // D6 - PD7 - PE, // D7 - PE6 - - PB, // D8 - PB4 - PB, // D9 - PB5 - PB, // D10 - PB6 - PB, // D11 - PB7 - PD, // D12 - PD6 - PC, // D13 - PC7 - - PB, // D14 - MISO - PB3 - PB, // D15 - SCK - PB1 - PB, // D16 - MOSI - PB2 - PB, // D17 - SS - PB0 - - PF, // D18 - A0 - PF7 - PF, // D19 - A1 - PF6 - PF, // D20 - A2 - PF5 - PF, // D21 - A3 - PF4 - PF, // D22 - A4 - PF1 - PF, // D23 - A5 - PF0 - - PD, // D24 - PD5 - PD, // D25 / D6 - A7 - PD7 - PB, // D26 / D8 - A8 - PB4 - PB, // D27 / D9 - A9 - PB5 - PB, // D28 / D10 - A10 - PB6 - PD, // D29 / D12 - A11 - PD6 -}; - -const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = { - _BV(2), // D0 - PD2 - _BV(3), // D1 - PD3 - _BV(1), // D2 - PD1 - _BV(0), // D3 - PD0 - _BV(4), // D4 - PD4 - _BV(6), // D5 - PC6 - _BV(7), // D6 - PD7 - _BV(6), // D7 - PE6 - - _BV(4), // D8 - PB4 - _BV(5), // D9 - PB5 - _BV(6), // D10 - PB6 - _BV(7), // D11 - PB7 - _BV(6), // D12 - PD6 - _BV(7), // D13 - PC7 - - _BV(3), // D14 - MISO - PB3 - _BV(1), // D15 - SCK - PB1 - _BV(2), // D16 - MOSI - PB2 - _BV(0), // D17 - SS - PB0 - - _BV(7), // D18 - A0 - PF7 - _BV(6), // D19 - A1 - PF6 - _BV(5), // D20 - A2 - PF5 - _BV(4), // D21 - A3 - PF4 - _BV(1), // D22 - A4 - PF1 - _BV(0), // D23 - A5 - PF0 - - _BV(5), // D24 - PD5 - _BV(7), // D25 / D6 - A7 - PD7 - _BV(4), // D26 / D8 - A8 - PB4 - _BV(5), // D27 / D9 - A9 - PB5 - _BV(6), // D28 / D10 - A10 - PB6 - _BV(6), // D29 / D12 - A11 - PD6 -}; - -const uint8_t PROGMEM digital_pin_to_timer_PGM[] = { - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - TIMER0B, /* 3 */ - NOT_ON_TIMER, - TIMER3A, /* 5 */ - TIMER4D, /* 6 */ - NOT_ON_TIMER, - - NOT_ON_TIMER, - TIMER1A, /* 9 */ - TIMER1B, /* 10 */ - TIMER0A, /* 11 */ - - NOT_ON_TIMER, - TIMER4A, /* 13 */ - - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, -}; - -const uint8_t PROGMEM analog_pin_to_channel_PGM[] = { - 7, // A0 PF7 ADC7 - 6, // A1 PF6 ADC6 - 5, // A2 PF5 ADC5 - 4, // A3 PF4 ADC4 - 1, // A4 PF1 ADC1 - 0, // A5 PF0 ADC0 - 8, // A6 D4 PD4 ADC8 - 10, // A7 D6 PD7 ADC10 - 11, // A8 D8 PB4 ADC11 - 12, // A9 D9 PB5 ADC12 - 13, // A10 D10 PB6 ADC13 - 9 // A11 D12 PD6 ADC9 -}; - -#endif /* ARDUINO_MAIN */ - -// These serial port names are intended to allow libraries and architecture-neutral -// sketches to automatically default to the correct port name for a particular type -// of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN, -// the first hardware serial port whose RX/TX pins are not dedicated to another use. -// -// SERIAL_PORT_MONITOR Port which normally prints to the Arduino Serial Monitor -// -// SERIAL_PORT_USBVIRTUAL Port which is USB virtual serial -// -// SERIAL_PORT_LINUXBRIDGE Port which connects to a Linux system via Bridge library -// -// SERIAL_PORT_HARDWARE Hardware serial port, physical RX & TX pins. -// -// SERIAL_PORT_HARDWARE_OPEN Hardware serial ports which are open for use. Their RX & TX -// pins are NOT connected to anything by default. -#define SERIAL_PORT_MONITOR Serial -#define SERIAL_PORT_USBVIRTUAL Serial -#define SERIAL_PORT_HARDWARE Serial1 -#define SERIAL_PORT_HARDWARE_OPEN Serial1 - -#endif /* Pins_Arduino_h */ diff --git a/keyboards/lets_split/ssd1306.c b/keyboards/lets_split/ssd1306.c deleted file mode 100644 index 5c6dff27f..000000000 --- a/keyboards/lets_split/ssd1306.c +++ /dev/null @@ -1,470 +0,0 @@ -#ifdef SSD1306OLED - -#include "ssd1306.h" -#include "config.h" -#include "i2c.h" -#include <string.h> -#include "print.h" -#include "lets_split.h" -#include "common/glcdfont.c" -#ifdef ADAFRUIT_BLE_ENABLE -#include "adafruit_ble.h" -#endif -#ifdef PROTOCOL_LUFA -#include "lufa.h" -#endif -#include "sendchar.h" -#include "pincontrol.h" - -//assign the right code to your layers -#define _BASE 0 -#define _LOWER 8 -#define _RAISE 16 -#define _FNLAYER 64 -#define _NUMLAY 128 -#define _NLOWER 136 -#define _NFNLAYER 192 -#define _MOUSECURSOR 256 -#define _ADJUST 65560 - -// Set this to 1 to help diagnose early startup problems -// when testing power-on with ble. Turn it off otherwise, -// as the latency of printing most of the debug info messes -// with the matrix scan, causing keys to drop. -#define DEBUG_TO_SCREEN 0 - -// Controls the SSD1306 128x32 OLED display via i2c - -#define i2cAddress 0x3C - -#define DisplayHeight 32 -#define DisplayWidth 128 - -#define FontHeight 8 -#define FontWidth 6 - -#define MatrixRows (DisplayHeight / FontHeight) -#define MatrixCols (DisplayWidth / FontWidth) - -struct CharacterMatrix { - uint8_t display[MatrixRows][MatrixCols]; - uint8_t *cursor; - bool dirty; -}; - -static struct CharacterMatrix display; -//static uint16_t last_battery_update; -//static uint32_t vbat; -//#define BatteryUpdateInterval 10000 /* milliseconds */ -#define ScreenOffInterval 300000 /* milliseconds */ -#if DEBUG_TO_SCREEN -static uint8_t displaying; -#endif -static uint16_t last_flush; - -enum ssd1306_cmds { - DisplayOff = 0xAE, - DisplayOn = 0xAF, - - SetContrast = 0x81, - DisplayAllOnResume = 0xA4, - - DisplayAllOn = 0xA5, - NormalDisplay = 0xA6, - InvertDisplay = 0xA7, - SetDisplayOffset = 0xD3, - SetComPins = 0xda, - SetVComDetect = 0xdb, - SetDisplayClockDiv = 0xD5, - SetPreCharge = 0xd9, - SetMultiPlex = 0xa8, - SetLowColumn = 0x00, - SetHighColumn = 0x10, - SetStartLine = 0x40, - - SetMemoryMode = 0x20, - ColumnAddr = 0x21, - PageAddr = 0x22, - - ComScanInc = 0xc0, - ComScanDec = 0xc8, - SegRemap = 0xa0, - SetChargePump = 0x8d, - ExternalVcc = 0x01, - SwitchCapVcc = 0x02, - - ActivateScroll = 0x2f, - DeActivateScroll = 0x2e, - SetVerticalScrollArea = 0xa3, - RightHorizontalScroll = 0x26, - LeftHorizontalScroll = 0x27, - VerticalAndRightHorizontalScroll = 0x29, - VerticalAndLeftHorizontalScroll = 0x2a, -}; - - -// Write command sequence. -// Returns true on success. -static inline bool _send_cmd1(uint8_t cmd) { - bool res = false; - - if (i2c_start_write(i2cAddress)) { - xprintf("failed to start write to %d\n", i2cAddress); - goto done; - } - - if (i2c_master_write(0x0 /* command byte follows */)) { - print("failed to write control byte\n"); - - goto done; - } - - if (i2c_master_write(cmd)) { - xprintf("failed to write command %d\n", cmd); - goto done; - } - res = true; -done: - i2c_master_stop(); - return res; -} - -// Write 2-byte command sequence. -// Returns true on success -static inline bool _send_cmd2(uint8_t cmd, uint8_t opr) { - if (!_send_cmd1(cmd)) { - return false; - } - return _send_cmd1(opr); -} - -// Write 3-byte command sequence. -// Returns true on success -static inline bool _send_cmd3(uint8_t cmd, uint8_t opr1, uint8_t opr2) { - if (!_send_cmd1(cmd)) { - return false; - } - if (!_send_cmd1(opr1)) { - return false; - } - return _send_cmd1(opr2); -} - -#define send_cmd1(c) if (!_send_cmd1(c)) {goto done;} -#define send_cmd2(c,o) if (!_send_cmd2(c,o)) {goto done;} -#define send_cmd3(c,o1,o2) if (!_send_cmd3(c,o1,o2)) {goto done;} - -static void matrix_clear(struct CharacterMatrix *matrix); - -static void clear_display(void) { - matrix_clear(&display); - - // Clear all of the display bits (there can be random noise - // in the RAM on startup) - send_cmd3(PageAddr, 0, (DisplayHeight / 8) - 1); - send_cmd3(ColumnAddr, 0, DisplayWidth - 1); - - if (i2c_start_write(i2cAddress)) { - goto done; - } - if (i2c_master_write(0x40)) { - // Data mode - goto done; - } - for (uint8_t row = 0; row < MatrixRows; ++row) { - for (uint8_t col = 0; col < DisplayWidth; ++col) { - i2c_master_write(0); - } - } - - display.dirty = false; - -done: - i2c_master_stop(); -} - -#if DEBUG_TO_SCREEN -#undef sendchar -static int8_t capture_sendchar(uint8_t c) { - sendchar(c); - iota_gfx_write_char(c); - - if (!displaying) { - iota_gfx_flush(); - } - return 0; -} -#endif - -bool iota_gfx_init(void) { - bool success = false; - - send_cmd1(DisplayOff); - send_cmd2(SetDisplayClockDiv, 0x80); - send_cmd2(SetMultiPlex, DisplayHeight - 1); - - send_cmd2(SetDisplayOffset, 0); - - - send_cmd1(SetStartLine | 0x0); - send_cmd2(SetChargePump, 0x14 /* Enable */); - send_cmd2(SetMemoryMode, 0 /* horizontal addressing */); - -/// Flips the display orientation 0 degrees - send_cmd1(SegRemap | 0x1); - send_cmd1(ComScanDec); -/* -// the following Flip the display orientation 180 degrees - send_cmd1(SegRemap); - send_cmd1(ComScanInc); -// end flip */ - send_cmd2(SetComPins, 0x2); - send_cmd2(SetContrast, 0x8f); - send_cmd2(SetPreCharge, 0xf1); - send_cmd2(SetVComDetect, 0x40); - send_cmd1(DisplayAllOnResume); - send_cmd1(NormalDisplay); - send_cmd1(DeActivateScroll); - send_cmd1(DisplayOn); - - send_cmd2(SetContrast, 0); // Dim - - clear_display(); - - success = true; - - iota_gfx_flush(); - -#if DEBUG_TO_SCREEN - print_set_sendchar(capture_sendchar); -#endif - -done: - return success; -} - -bool iota_gfx_off(void) { - bool success = false; - - send_cmd1(DisplayOff); - success = true; - -done: - return success; -} - -bool iota_gfx_on(void) { - bool success = false; - - send_cmd1(DisplayOn); - success = true; - -done: - return success; -} - -static void matrix_write_char_inner(struct CharacterMatrix *matrix, uint8_t c) { - *matrix->cursor = c; - ++matrix->cursor; - - if (matrix->cursor - &matrix->display[0][0] == sizeof(matrix->display)) { - // We went off the end; scroll the display upwards by one line - memmove(&matrix->display[0], &matrix->display[1], - MatrixCols * (MatrixRows - 1)); - matrix->cursor = &matrix->display[MatrixRows - 1][0]; - memset(matrix->cursor, ' ', MatrixCols); - } -} - -static void matrix_write_char(struct CharacterMatrix *matrix, uint8_t c) { - matrix->dirty = true; - - if (c == '\n') { - // Clear to end of line from the cursor and then move to the - // start of the next line - uint8_t cursor_col = (matrix->cursor - &matrix->display[0][0]) % MatrixCols; - - while (cursor_col++ < MatrixCols) { - matrix_write_char_inner(matrix, ' '); - } - return; - } - - matrix_write_char_inner(matrix, c); -} - -void iota_gfx_write_char(uint8_t c) { - matrix_write_char(&display, c); -} - -static void matrix_write(struct CharacterMatrix *matrix, const char *data) { - const char *end = data + strlen(data); - while (data < end) { - matrix_write_char(matrix, *data); - ++data; - } -} - -void iota_gfx_write(const char *data) { - matrix_write(&display, data); -} - -static void matrix_write_P(struct CharacterMatrix *matrix, const char *data) { - while (true) { - uint8_t c = pgm_read_byte(data); - if (c == 0) { - return; - } - matrix_write_char(matrix, c); - ++data; - } -} - -void iota_gfx_write_P(const char *data) { - matrix_write_P(&display, data); -} - -static void matrix_clear(struct CharacterMatrix *matrix) { - memset(matrix->display, ' ', sizeof(matrix->display)); - matrix->cursor = &matrix->display[0][0]; - matrix->dirty = true; -} - -void iota_gfx_clear_screen(void) { - matrix_clear(&display); -} - -static void matrix_render(struct CharacterMatrix *matrix) { - last_flush = timer_read(); - iota_gfx_on(); -#if DEBUG_TO_SCREEN - ++displaying; -#endif - - // Move to the home position - send_cmd3(PageAddr, 0, MatrixRows - 1); - send_cmd3(ColumnAddr, 0, (MatrixCols * FontWidth) - 1); - - if (i2c_start_write(i2cAddress)) { - goto done; - } - if (i2c_master_write(0x40)) { - // Data mode - goto done; - } - - for (uint8_t row = 0; row < MatrixRows; ++row) { - for (uint8_t col = 0; col < MatrixCols; ++col) { - const uint8_t *glyph = font + (matrix->display[row][col] * (FontWidth - 1)); - - for (uint8_t glyphCol = 0; glyphCol < FontWidth - 1; ++glyphCol) { - uint8_t colBits = pgm_read_byte(glyph + glyphCol); - i2c_master_write(colBits); - } - - // 1 column of space between chars (it's not included in the glyph) - i2c_master_write(0); - } - } - - matrix->dirty = false; - -done: - i2c_master_stop(); -#if DEBUG_TO_SCREEN - --displaying; -#endif -} - -void iota_gfx_flush(void) { - matrix_render(&display); -} - -static void matrix_update(struct CharacterMatrix *dest, - const struct CharacterMatrix *source) { - if (memcmp(dest->display, source->display, sizeof(dest->display))) { - memcpy(dest->display, source->display, sizeof(dest->display)); - dest->dirty = true; - } -} - -static void render_status_info(void) { -#if DEBUG_TO_SCREEN - if (debug_enable) { - return; - } -#endif - - struct CharacterMatrix matrix; - - matrix_clear(&matrix); - matrix_write_P(&matrix, PSTR("USB: ")); -#ifdef PROTOCOL_LUFA - switch (USB_DeviceState) { - case DEVICE_STATE_Unattached: - matrix_write_P(&matrix, PSTR("Unattached")); - break; - case DEVICE_STATE_Suspended: - matrix_write_P(&matrix, PSTR("Suspended")); - break; - case DEVICE_STATE_Configured: - matrix_write_P(&matrix, PSTR("Connected")); - break; - case DEVICE_STATE_Powered: - matrix_write_P(&matrix, PSTR("Powered")); - break; - case DEVICE_STATE_Default: - matrix_write_P(&matrix, PSTR("Default")); - break; - case DEVICE_STATE_Addressed: - matrix_write_P(&matrix, PSTR("Addressed")); - break; - default: - matrix_write_P(&matrix, PSTR("Invalid")); - } -#endif - -// Define layers here, Have not worked out how to have text displayed for each layer. Copy down the number you see and add a case for it below - - char buf[40]; - snprintf(buf,sizeof(buf), "Undef-%ld", layer_state); - matrix_write_P(&matrix, PSTR("\n\nLayer: ")); - switch (layer_state) { - case _BASE: - matrix_write_P(&matrix, PSTR("Default")); - break; - case _RAISE: - matrix_write_P(&matrix, PSTR("Raise")); - break; - case _LOWER: - matrix_write_P(&matrix, PSTR("Lower")); - break; - case _ADJUST: - matrix_write_P(&matrix, PSTR("ADJUST")); - break; - default: - matrix_write(&matrix, buf); - } - - // Host Keyboard LED Status - char led[40]; - snprintf(led, sizeof(led), "\n%s %s %s", - (host_keyboard_leds() & (1<<USB_LED_NUM_LOCK)) ? "NUMLOCK" : " ", - (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) ? "CAPS" : " ", - (host_keyboard_leds() & (1<<USB_LED_SCROLL_LOCK)) ? "SCLK" : " "); - matrix_write(&matrix, led); - matrix_update(&display, &matrix); -} - -void iota_gfx_task(void) { - render_status_info(); - - if (display.dirty) { - iota_gfx_flush(); - } - - if (timer_elapsed(last_flush) > ScreenOffInterval) { - iota_gfx_off(); - } -} -#endif diff --git a/keyboards/lets_split/ssd1306.h b/keyboards/lets_split/ssd1306.h deleted file mode 100644 index b0c74f987..000000000 --- a/keyboards/lets_split/ssd1306.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef SSD1306_H -#define SSD1306_H - -#include <stdbool.h> -#include <stdio.h> - -bool iota_gfx_init(void); -void iota_gfx_task(void); -bool iota_gfx_off(void); -bool iota_gfx_on(void); -void iota_gfx_flush(void); -void iota_gfx_write_char(uint8_t c); -void iota_gfx_write(const char *data); -void iota_gfx_write_P(const char *data); -void iota_gfx_clear_screen(void); - -#endif diff --git a/keyboards/nyquist/pro_micro.h b/keyboards/nyquist/pro_micro.h deleted file mode 100644 index f9e7ed75d..000000000 --- a/keyboards/nyquist/pro_micro.h +++ /dev/null @@ -1,362 +0,0 @@ -/* - pins_arduino.h - Pin definition functions for Arduino - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2007 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $ -*/ - -#ifndef Pins_Arduino_h -#define Pins_Arduino_h - -#include <avr/pgmspace.h> - -// Workaround for wrong definitions in "iom32u4.h". -// This should be fixed in the AVR toolchain. -#undef UHCON -#undef UHINT -#undef UHIEN -#undef UHADDR -#undef UHFNUM -#undef UHFNUML -#undef UHFNUMH -#undef UHFLEN -#undef UPINRQX -#undef UPINTX -#undef UPNUM -#undef UPRST -#undef UPCONX -#undef UPCFG0X -#undef UPCFG1X -#undef UPSTAX -#undef UPCFG2X -#undef UPIENX -#undef UPDATX -#undef TCCR2A -#undef WGM20 -#undef WGM21 -#undef COM2B0 -#undef COM2B1 -#undef COM2A0 -#undef COM2A1 -#undef TCCR2B -#undef CS20 -#undef CS21 -#undef CS22 -#undef WGM22 -#undef FOC2B -#undef FOC2A -#undef TCNT2 -#undef TCNT2_0 -#undef TCNT2_1 -#undef TCNT2_2 -#undef TCNT2_3 -#undef TCNT2_4 -#undef TCNT2_5 -#undef TCNT2_6 -#undef TCNT2_7 -#undef OCR2A -#undef OCR2_0 -#undef OCR2_1 -#undef OCR2_2 -#undef OCR2_3 -#undef OCR2_4 -#undef OCR2_5 -#undef OCR2_6 -#undef OCR2_7 -#undef OCR2B -#undef OCR2_0 -#undef OCR2_1 -#undef OCR2_2 -#undef OCR2_3 -#undef OCR2_4 -#undef OCR2_5 -#undef OCR2_6 -#undef OCR2_7 - -#define NUM_DIGITAL_PINS 30 -#define NUM_ANALOG_INPUTS 12 - -#define TX_RX_LED_INIT DDRD |= (1<<5), DDRB |= (1<<0) -#define TXLED0 PORTD |= (1<<5) -#define TXLED1 PORTD &= ~(1<<5) -#define RXLED0 PORTB |= (1<<0) -#define RXLED1 PORTB &= ~(1<<0) - -static const uint8_t SDA = 2; -static const uint8_t SCL = 3; -#define LED_BUILTIN 13 - -// Map SPI port to 'new' pins D14..D17 -static const uint8_t SS = 17; -static const uint8_t MOSI = 16; -static const uint8_t MISO = 14; -static const uint8_t SCK = 15; - -// Mapping of analog pins as digital I/O -// A6-A11 share with digital pins -static const uint8_t ADC0 = 18; -static const uint8_t ADC1 = 19; -static const uint8_t ADC2 = 20; -static const uint8_t ADC3 = 21; -static const uint8_t ADC4 = 22; -static const uint8_t ADC5 = 23; -static const uint8_t ADC6 = 24; // D4 -static const uint8_t ADC7 = 25; // D6 -static const uint8_t ADC8 = 26; // D8 -static const uint8_t ADC9 = 27; // D9 -static const uint8_t ADC10 = 28; // D10 -static const uint8_t ADC11 = 29; // D12 - -#define digitalPinToPCICR(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCICR) : ((uint8_t *)0)) -#define digitalPinToPCICRbit(p) 0 -#define digitalPinToPCMSK(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCMSK0) : ((uint8_t *)0)) -#define digitalPinToPCMSKbit(p) ( ((p) >= 8 && (p) <= 11) ? (p) - 4 : ((p) == 14 ? 3 : ((p) == 15 ? 1 : ((p) == 16 ? 2 : ((p) == 17 ? 0 : (p - A8 + 4)))))) - -// __AVR_ATmega32U4__ has an unusual mapping of pins to channels -extern const uint8_t PROGMEM analog_pin_to_channel_PGM[]; -#define analogPinToChannel(P) ( pgm_read_byte( analog_pin_to_channel_PGM + (P) ) ) - -#define digitalPinToInterrupt(p) ((p) == 0 ? 2 : ((p) == 1 ? 3 : ((p) == 2 ? 1 : ((p) == 3 ? 0 : ((p) == 7 ? 4 : NOT_AN_INTERRUPT))))) - -#ifdef ARDUINO_MAIN - -// On the Arduino board, digital pins are also used -// for the analog output (software PWM). Analog input -// pins are a separate set. - -// ATMEL ATMEGA32U4 / ARDUINO LEONARDO -// -// D0 PD2 RXD1/INT2 -// D1 PD3 TXD1/INT3 -// D2 PD1 SDA SDA/INT1 -// D3# PD0 PWM8/SCL OC0B/SCL/INT0 -// D4 A6 PD4 ADC8 -// D5# PC6 ??? OC3A/#OC4A -// D6# A7 PD7 FastPWM #OC4D/ADC10 -// D7 PE6 INT6/AIN0 -// -// D8 A8 PB4 ADC11/PCINT4 -// D9# A9 PB5 PWM16 OC1A/#OC4B/ADC12/PCINT5 -// D10# A10 PB6 PWM16 OC1B/0c4B/ADC13/PCINT6 -// D11# PB7 PWM8/16 0C0A/OC1C/#RTS/PCINT7 -// D12 A11 PD6 T1/#OC4D/ADC9 -// D13# PC7 PWM10 CLK0/OC4A -// -// A0 D18 PF7 ADC7 -// A1 D19 PF6 ADC6 -// A2 D20 PF5 ADC5 -// A3 D21 PF4 ADC4 -// A4 D22 PF1 ADC1 -// A5 D23 PF0 ADC0 -// -// New pins D14..D17 to map SPI port to digital pins -// -// MISO D14 PB3 MISO,PCINT3 -// SCK D15 PB1 SCK,PCINT1 -// MOSI D16 PB2 MOSI,PCINT2 -// SS D17 PB0 RXLED,SS/PCINT0 -// -// Connected LEDs on board for TX and RX -// TXLED D24 PD5 XCK1 -// RXLED D17 PB0 -// HWB PE2 HWB - -// these arrays map port names (e.g. port B) to the -// appropriate addresses for various functions (e.g. reading -// and writing) -const uint16_t PROGMEM port_to_mode_PGM[] = { - NOT_A_PORT, - NOT_A_PORT, - (uint16_t) &DDRB, - (uint16_t) &DDRC, - (uint16_t) &DDRD, - (uint16_t) &DDRE, - (uint16_t) &DDRF, -}; - -const uint16_t PROGMEM port_to_output_PGM[] = { - NOT_A_PORT, - NOT_A_PORT, - (uint16_t) &PORTB, - (uint16_t) &PORTC, - (uint16_t) &PORTD, - (uint16_t) &PORTE, - (uint16_t) &PORTF, -}; - -const uint16_t PROGMEM port_to_input_PGM[] = { - NOT_A_PORT, - NOT_A_PORT, - (uint16_t) &PINB, - (uint16_t) &PINC, - (uint16_t) &PIND, - (uint16_t) &PINE, - (uint16_t) &PINF, -}; - -const uint8_t PROGMEM digital_pin_to_port_PGM[] = { - PD, // D0 - PD2 - PD, // D1 - PD3 - PD, // D2 - PD1 - PD, // D3 - PD0 - PD, // D4 - PD4 - PC, // D5 - PC6 - PD, // D6 - PD7 - PE, // D7 - PE6 - - PB, // D8 - PB4 - PB, // D9 - PB5 - PB, // D10 - PB6 - PB, // D11 - PB7 - PD, // D12 - PD6 - PC, // D13 - PC7 - - PB, // D14 - MISO - PB3 - PB, // D15 - SCK - PB1 - PB, // D16 - MOSI - PB2 - PB, // D17 - SS - PB0 - - PF, // D18 - A0 - PF7 - PF, // D19 - A1 - PF6 - PF, // D20 - A2 - PF5 - PF, // D21 - A3 - PF4 - PF, // D22 - A4 - PF1 - PF, // D23 - A5 - PF0 - - PD, // D24 - PD5 - PD, // D25 / D6 - A7 - PD7 - PB, // D26 / D8 - A8 - PB4 - PB, // D27 / D9 - A9 - PB5 - PB, // D28 / D10 - A10 - PB6 - PD, // D29 / D12 - A11 - PD6 -}; - -const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = { - _BV(2), // D0 - PD2 - _BV(3), // D1 - PD3 - _BV(1), // D2 - PD1 - _BV(0), // D3 - PD0 - _BV(4), // D4 - PD4 - _BV(6), // D5 - PC6 - _BV(7), // D6 - PD7 - _BV(6), // D7 - PE6 - - _BV(4), // D8 - PB4 - _BV(5), // D9 - PB5 - _BV(6), // D10 - PB6 - _BV(7), // D11 - PB7 - _BV(6), // D12 - PD6 - _BV(7), // D13 - PC7 - - _BV(3), // D14 - MISO - PB3 - _BV(1), // D15 - SCK - PB1 - _BV(2), // D16 - MOSI - PB2 - _BV(0), // D17 - SS - PB0 - - _BV(7), // D18 - A0 - PF7 - _BV(6), // D19 - A1 - PF6 - _BV(5), // D20 - A2 - PF5 - _BV(4), // D21 - A3 - PF4 - _BV(1), // D22 - A4 - PF1 - _BV(0), // D23 - A5 - PF0 - - _BV(5), // D24 - PD5 - _BV(7), // D25 / D6 - A7 - PD7 - _BV(4), // D26 / D8 - A8 - PB4 - _BV(5), // D27 / D9 - A9 - PB5 - _BV(6), // D28 / D10 - A10 - PB6 - _BV(6), // D29 / D12 - A11 - PD6 -}; - -const uint8_t PROGMEM digital_pin_to_timer_PGM[] = { - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - TIMER0B, /* 3 */ - NOT_ON_TIMER, - TIMER3A, /* 5 */ - TIMER4D, /* 6 */ - NOT_ON_TIMER, - - NOT_ON_TIMER, - TIMER1A, /* 9 */ - TIMER1B, /* 10 */ - TIMER0A, /* 11 */ - - NOT_ON_TIMER, - TIMER4A, /* 13 */ - - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, -}; - -const uint8_t PROGMEM analog_pin_to_channel_PGM[] = { - 7, // A0 PF7 ADC7 - 6, // A1 PF6 ADC6 - 5, // A2 PF5 ADC5 - 4, // A3 PF4 ADC4 - 1, // A4 PF1 ADC1 - 0, // A5 PF0 ADC0 - 8, // A6 D4 PD4 ADC8 - 10, // A7 D6 PD7 ADC10 - 11, // A8 D8 PB4 ADC11 - 12, // A9 D9 PB5 ADC12 - 13, // A10 D10 PB6 ADC13 - 9 // A11 D12 PD6 ADC9 -}; - -#endif /* ARDUINO_MAIN */ - -// These serial port names are intended to allow libraries and architecture-neutral -// sketches to automatically default to the correct port name for a particular type -// of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN, -// the first hardware serial port whose RX/TX pins are not dedicated to another use. -// -// SERIAL_PORT_MONITOR Port which normally prints to the Arduino Serial Monitor -// -// SERIAL_PORT_USBVIRTUAL Port which is USB virtual serial -// -// SERIAL_PORT_LINUXBRIDGE Port which connects to a Linux system via Bridge library -// -// SERIAL_PORT_HARDWARE Hardware serial port, physical RX & TX pins. -// -// SERIAL_PORT_HARDWARE_OPEN Hardware serial ports which are open for use. Their RX & TX -// pins are NOT connected to anything by default. -#define SERIAL_PORT_MONITOR Serial -#define SERIAL_PORT_USBVIRTUAL Serial -#define SERIAL_PORT_HARDWARE Serial1 -#define SERIAL_PORT_HARDWARE_OPEN Serial1 - -#endif /* Pins_Arduino_h */ diff --git a/keyboards/orthodox/pro_micro.h b/keyboards/orthodox/pro_micro.h deleted file mode 100644 index f9e7ed75d..000000000 --- a/keyboards/orthodox/pro_micro.h +++ /dev/null @@ -1,362 +0,0 @@ -/* - pins_arduino.h - Pin definition functions for Arduino - Part of Arduino - http://www.arduino.cc/ - - Copyright (c) 2007 David A. Mellis - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library 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 - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General - Public License along with this library; if not, write to the - Free Software Foundation, Inc., 59 Temple Place, Suite 330, - Boston, MA 02111-1307 USA - - $Id: wiring.h 249 2007-02-03 16:52:51Z mellis $ -*/ - -#ifndef Pins_Arduino_h -#define Pins_Arduino_h - -#include <avr/pgmspace.h> - -// Workaround for wrong definitions in "iom32u4.h". -// This should be fixed in the AVR toolchain. -#undef UHCON -#undef UHINT -#undef UHIEN -#undef UHADDR -#undef UHFNUM -#undef UHFNUML -#undef UHFNUMH -#undef UHFLEN -#undef UPINRQX -#undef UPINTX -#undef UPNUM -#undef UPRST -#undef UPCONX -#undef UPCFG0X -#undef UPCFG1X -#undef UPSTAX -#undef UPCFG2X -#undef UPIENX -#undef UPDATX -#undef TCCR2A -#undef WGM20 -#undef WGM21 -#undef COM2B0 -#undef COM2B1 -#undef COM2A0 -#undef COM2A1 -#undef TCCR2B -#undef CS20 -#undef CS21 -#undef CS22 -#undef WGM22 -#undef FOC2B -#undef FOC2A -#undef TCNT2 -#undef TCNT2_0 -#undef TCNT2_1 -#undef TCNT2_2 -#undef TCNT2_3 -#undef TCNT2_4 -#undef TCNT2_5 -#undef TCNT2_6 -#undef TCNT2_7 -#undef OCR2A -#undef OCR2_0 -#undef OCR2_1 -#undef OCR2_2 -#undef OCR2_3 -#undef OCR2_4 -#undef OCR2_5 -#undef OCR2_6 -#undef OCR2_7 -#undef OCR2B -#undef OCR2_0 -#undef OCR2_1 -#undef OCR2_2 -#undef OCR2_3 -#undef OCR2_4 -#undef OCR2_5 -#undef OCR2_6 -#undef OCR2_7 - -#define NUM_DIGITAL_PINS 30 -#define NUM_ANALOG_INPUTS 12 - -#define TX_RX_LED_INIT DDRD |= (1<<5), DDRB |= (1<<0) -#define TXLED0 PORTD |= (1<<5) -#define TXLED1 PORTD &= ~(1<<5) -#define RXLED0 PORTB |= (1<<0) -#define RXLED1 PORTB &= ~(1<<0) - -static const uint8_t SDA = 2; -static const uint8_t SCL = 3; -#define LED_BUILTIN 13 - -// Map SPI port to 'new' pins D14..D17 -static const uint8_t SS = 17; -static const uint8_t MOSI = 16; -static const uint8_t MISO = 14; -static const uint8_t SCK = 15; - -// Mapping of analog pins as digital I/O -// A6-A11 share with digital pins -static const uint8_t ADC0 = 18; -static const uint8_t ADC1 = 19; -static const uint8_t ADC2 = 20; -static const uint8_t ADC3 = 21; -static const uint8_t ADC4 = 22; -static const uint8_t ADC5 = 23; -static const uint8_t ADC6 = 24; // D4 -static const uint8_t ADC7 = 25; // D6 -static const uint8_t ADC8 = 26; // D8 -static const uint8_t ADC9 = 27; // D9 -static const uint8_t ADC10 = 28; // D10 -static const uint8_t ADC11 = 29; // D12 - -#define digitalPinToPCICR(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCICR) : ((uint8_t *)0)) -#define digitalPinToPCICRbit(p) 0 -#define digitalPinToPCMSK(p) ((((p) >= 8 && (p) <= 11) || ((p) >= 14 && (p) <= 17) || ((p) >= A8 && (p) <= A10)) ? (&PCMSK0) : ((uint8_t *)0)) -#define digitalPinToPCMSKbit(p) ( ((p) >= 8 && (p) <= 11) ? (p) - 4 : ((p) == 14 ? 3 : ((p) == 15 ? 1 : ((p) == 16 ? 2 : ((p) == 17 ? 0 : (p - A8 + 4)))))) - -// __AVR_ATmega32U4__ has an unusual mapping of pins to channels -extern const uint8_t PROGMEM analog_pin_to_channel_PGM[]; -#define analogPinToChannel(P) ( pgm_read_byte( analog_pin_to_channel_PGM + (P) ) ) - -#define digitalPinToInterrupt(p) ((p) == 0 ? 2 : ((p) == 1 ? 3 : ((p) == 2 ? 1 : ((p) == 3 ? 0 : ((p) == 7 ? 4 : NOT_AN_INTERRUPT))))) - -#ifdef ARDUINO_MAIN - -// On the Arduino board, digital pins are also used -// for the analog output (software PWM). Analog input -// pins are a separate set. - -// ATMEL ATMEGA32U4 / ARDUINO LEONARDO -// -// D0 PD2 RXD1/INT2 -// D1 PD3 TXD1/INT3 -// D2 PD1 SDA SDA/INT1 -// D3# PD0 PWM8/SCL OC0B/SCL/INT0 -// D4 A6 PD4 ADC8 -// D5# PC6 ??? OC3A/#OC4A -// D6# A7 PD7 FastPWM #OC4D/ADC10 -// D7 PE6 INT6/AIN0 -// -// D8 A8 PB4 ADC11/PCINT4 -// D9# A9 PB5 PWM16 OC1A/#OC4B/ADC12/PCINT5 -// D10# A10 PB6 PWM16 OC1B/0c4B/ADC13/PCINT6 -// D11# PB7 PWM8/16 0C0A/OC1C/#RTS/PCINT7 -// D12 A11 PD6 T1/#OC4D/ADC9 -// D13# PC7 PWM10 CLK0/OC4A -// -// A0 D18 PF7 ADC7 -// A1 D19 PF6 ADC6 -// A2 D20 PF5 ADC5 -// A3 D21 PF4 ADC4 -// A4 D22 PF1 ADC1 -// A5 D23 PF0 ADC0 -// -// New pins D14..D17 to map SPI port to digital pins -// -// MISO D14 PB3 MISO,PCINT3 -// SCK D15 PB1 SCK,PCINT1 -// MOSI D16 PB2 MOSI,PCINT2 -// SS D17 PB0 RXLED,SS/PCINT0 -// -// Connected LEDs on board for TX and RX -// TXLED D24 PD5 XCK1 -// RXLED D17 PB0 -// HWB PE2 HWB - -// these arrays map port names (e.g. port B) to the -// appropriate addresses for various functions (e.g. reading -// and writing) -const uint16_t PROGMEM port_to_mode_PGM[] = { - NOT_A_PORT, - NOT_A_PORT, - (uint16_t) &DDRB, - (uint16_t) &DDRC, - (uint16_t) &DDRD, - (uint16_t) &DDRE, - (uint16_t) &DDRF, -}; - -const uint16_t PROGMEM port_to_output_PGM[] = { - NOT_A_PORT, - NOT_A_PORT, - (uint16_t) &PORTB, - (uint16_t) &PORTC, - (uint16_t) &PORTD, - (uint16_t) &PORTE, - (uint16_t) &PORTF, -}; - -const uint16_t PROGMEM port_to_input_PGM[] = { - NOT_A_PORT, - NOT_A_PORT, - (uint16_t) &PINB, - (uint16_t) &PINC, - (uint16_t) &PIND, - (uint16_t) &PINE, - (uint16_t) &PINF, -}; - -const uint8_t PROGMEM digital_pin_to_port_PGM[] = { - PD, // D0 - PD2 - PD, // D1 - PD3 - PD, // D2 - PD1 - PD, // D3 - PD0 - PD, // D4 - PD4 - PC, // D5 - PC6 - PD, // D6 - PD7 - PE, // D7 - PE6 - - PB, // D8 - PB4 - PB, // D9 - PB5 - PB, // D10 - PB6 - PB, // D11 - PB7 - PD, // D12 - PD6 - PC, // D13 - PC7 - - PB, // D14 - MISO - PB3 - PB, // D15 - SCK - PB1 - PB, // D16 - MOSI - PB2 - PB, // D17 - SS - PB0 - - PF, // D18 - A0 - PF7 - PF, // D19 - A1 - PF6 - PF, // D20 - A2 - PF5 - PF, // D21 - A3 - PF4 - PF, // D22 - A4 - PF1 - PF, // D23 - A5 - PF0 - - PD, // D24 - PD5 - PD, // D25 / D6 - A7 - PD7 - PB, // D26 / D8 - A8 - PB4 - PB, // D27 / D9 - A9 - PB5 - PB, // D28 / D10 - A10 - PB6 - PD, // D29 / D12 - A11 - PD6 -}; - -const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = { - _BV(2), // D0 - PD2 - _BV(3), // D1 - PD3 - _BV(1), // D2 - PD1 - _BV(0), // D3 - PD0 - _BV(4), // D4 - PD4 - _BV(6), // D5 - PC6 - _BV(7), // D6 - PD7 - _BV(6), // D7 - PE6 - - _BV(4), // D8 - PB4 - _BV(5), // D9 - PB5 - _BV(6), // D10 - PB6 - _BV(7), // D11 - PB7 - _BV(6), // D12 - PD6 - _BV(7), // D13 - PC7 - - _BV(3), // D14 - MISO - PB3 - _BV(1), // D15 - SCK - PB1 - _BV(2), // D16 - MOSI - PB2 - _BV(0), // D17 - SS - PB0 - - _BV(7), // D18 - A0 - PF7 - _BV(6), // D19 - A1 - PF6 - _BV(5), // D20 - A2 - PF5 - _BV(4), // D21 - A3 - PF4 - _BV(1), // D22 - A4 - PF1 - _BV(0), // D23 - A5 - PF0 - - _BV(5), // D24 - PD5 - _BV(7), // D25 / D6 - A7 - PD7 - _BV(4), // D26 / D8 - A8 - PB4 - _BV(5), // D27 / D9 - A9 - PB5 - _BV(6), // D28 / D10 - A10 - PB6 - _BV(6), // D29 / D12 - A11 - PD6 -}; - -const uint8_t PROGMEM digital_pin_to_timer_PGM[] = { - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - TIMER0B, /* 3 */ - NOT_ON_TIMER, - TIMER3A, /* 5 */ - TIMER4D, /* 6 */ - NOT_ON_TIMER, - - NOT_ON_TIMER, - TIMER1A, /* 9 */ - TIMER1B, /* 10 */ - TIMER0A, /* 11 */ - - NOT_ON_TIMER, - TIMER4A, /* 13 */ - - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, - NOT_ON_TIMER, -}; - -const uint8_t PROGMEM analog_pin_to_channel_PGM[] = { - 7, // A0 PF7 ADC7 - 6, // A1 PF6 ADC6 - 5, // A2 PF5 ADC5 - 4, // A3 PF4 ADC4 - 1, // A4 PF1 ADC1 - 0, // A5 PF0 ADC0 - 8, // A6 D4 PD4 ADC8 - 10, // A7 D6 PD7 ADC10 - 11, // A8 D8 PB4 ADC11 - 12, // A9 D9 PB5 ADC12 - 13, // A10 D10 PB6 ADC13 - 9 // A11 D12 PD6 ADC9 -}; - -#endif /* ARDUINO_MAIN */ - -// These serial port names are intended to allow libraries and architecture-neutral -// sketches to automatically default to the correct port name for a particular type -// of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN, -// the first hardware serial port whose RX/TX pins are not dedicated to another use. -// -// SERIAL_PORT_MONITOR Port which normally prints to the Arduino Serial Monitor -// -// SERIAL_PORT_USBVIRTUAL Port which is USB virtual serial -// -// SERIAL_PORT_LINUXBRIDGE Port which connects to a Linux system via Bridge library -// -// SERIAL_PORT_HARDWARE Hardware serial port, physical RX & TX pins. -// -// SERIAL_PORT_HARDWARE_OPEN Hardware serial ports which are open for use. Their RX & TX -// pins are NOT connected to anything by default. -#define SERIAL_PORT_MONITOR Serial -#define SERIAL_PORT_USBVIRTUAL Serial -#define SERIAL_PORT_HARDWARE Serial1 -#define SERIAL_PORT_HARDWARE_OPEN Serial1 - -#endif /* Pins_Arduino_h */ diff --git a/keyboards/orthodox/ssd1306.c b/keyboards/orthodox/ssd1306.c deleted file mode 100644 index 5c6dff27f..000000000 --- a/keyboards/orthodox/ssd1306.c +++ /dev/null @@ -1,470 +0,0 @@ -#ifdef SSD1306OLED - -#include "ssd1306.h" -#include "config.h" -#include "i2c.h" -#include <string.h> -#include "print.h" -#include "lets_split.h" -#include "common/glcdfont.c" -#ifdef ADAFRUIT_BLE_ENABLE -#include "adafruit_ble.h" -#endif -#ifdef PROTOCOL_LUFA -#include "lufa.h" -#endif -#include "sendchar.h" -#include "pincontrol.h" - -//assign the right code to your layers -#define _BASE 0 -#define _LOWER 8 -#define _RAISE 16 -#define _FNLAYER 64 -#define _NUMLAY 128 -#define _NLOWER 136 -#define _NFNLAYER 192 -#define _MOUSECURSOR 256 -#define _ADJUST 65560 - -// Set this to 1 to help diagnose early startup problems -// when testing power-on with ble. Turn it off otherwise, -// as the latency of printing most of the debug info messes -// with the matrix scan, causing keys to drop. -#define DEBUG_TO_SCREEN 0 - -// Controls the SSD1306 128x32 OLED display via i2c - -#define i2cAddress 0x3C - -#define DisplayHeight 32 -#define DisplayWidth 128 - -#define FontHeight 8 -#define FontWidth 6 - -#define MatrixRows (DisplayHeight / FontHeight) -#define MatrixCols (DisplayWidth / FontWidth) - -struct CharacterMatrix { - uint8_t display[MatrixRows][MatrixCols]; - uint8_t *cursor; - bool dirty; -}; - -static struct CharacterMatrix display; -//static uint16_t last_battery_update; -//static uint32_t vbat; -//#define BatteryUpdateInterval 10000 /* milliseconds */ -#define ScreenOffInterval 300000 /* milliseconds */ -#if DEBUG_TO_SCREEN -static uint8_t displaying; -#endif -static uint16_t last_flush; - -enum ssd1306_cmds { - DisplayOff = 0xAE, - DisplayOn = 0xAF, - - SetContrast = 0x81, - DisplayAllOnResume = 0xA4, - - DisplayAllOn = 0xA5, - NormalDisplay = 0xA6, - InvertDisplay = 0xA7, - SetDisplayOffset = 0xD3, - SetComPins = 0xda, - SetVComDetect = 0xdb, - SetDisplayClockDiv = 0xD5, - SetPreCharge = 0xd9, - SetMultiPlex = 0xa8, - SetLowColumn = 0x00, - SetHighColumn = 0x10, - SetStartLine = 0x40, - - SetMemoryMode = 0x20, - ColumnAddr = 0x21, - PageAddr = 0x22, - - ComScanInc = 0xc0, - ComScanDec = 0xc8, - SegRemap = 0xa0, - SetChargePump = 0x8d, - ExternalVcc = 0x01, - SwitchCapVcc = 0x02, - - ActivateScroll = 0x2f, - DeActivateScroll = 0x2e, - SetVerticalScrollArea = 0xa3, - RightHorizontalScroll = 0x26, - LeftHorizontalScroll = 0x27, - VerticalAndRightHorizontalScroll = 0x29, - VerticalAndLeftHorizontalScroll = 0x2a, -}; - - -// Write command sequence. -// Returns true on success. -static inline bool _send_cmd1(uint8_t cmd) { - bool res = false; - - if (i2c_start_write(i2cAddress)) { - xprintf("failed to start write to %d\n", i2cAddress); - goto done; - } - - if (i2c_master_write(0x0 /* command byte follows */)) { - print("failed to write control byte\n"); - - goto done; - } - - if (i2c_master_write(cmd)) { - xprintf("failed to write command %d\n", cmd); - goto done; - } - res = true; -done: - i2c_master_stop(); - return res; -} - -// Write 2-byte command sequence. -// Returns true on success -static inline bool _send_cmd2(uint8_t cmd, uint8_t opr) { - if (!_send_cmd1(cmd)) { - return false; - } - return _send_cmd1(opr); -} - -// Write 3-byte command sequence. -// Returns true on success -static inline bool _send_cmd3(uint8_t cmd, uint8_t opr1, uint8_t opr2) { - if (!_send_cmd1(cmd)) { - return false; - } - if (!_send_cmd1(opr1)) { - return false; - } - return _send_cmd1(opr2); -} - -#define send_cmd1(c) if (!_send_cmd1(c)) {goto done;} -#define send_cmd2(c,o) if (!_send_cmd2(c,o)) {goto done;} -#define send_cmd3(c,o1,o2) if (!_send_cmd3(c,o1,o2)) {goto done;} - -static void matrix_clear(struct CharacterMatrix *matrix); - -static void clear_display(void) { - matrix_clear(&display); - - // Clear all of the display bits (there can be random noise - // in the RAM on startup) - send_cmd3(PageAddr, 0, (DisplayHeight / 8) - 1); - send_cmd3(ColumnAddr, 0, DisplayWidth - 1); - - if (i2c_start_write(i2cAddress)) { - goto done; - } - if (i2c_master_write(0x40)) { - // Data mode - goto done; - } - for (uint8_t row = 0; row < MatrixRows; ++row) { - for (uint8_t col = 0; col < DisplayWidth; ++col) { - i2c_master_write(0); - } - } - - display.dirty = false; - -done: - i2c_master_stop(); -} - -#if DEBUG_TO_SCREEN -#undef sendchar -static int8_t capture_sendchar(uint8_t c) { - sendchar(c); - iota_gfx_write_char(c); - - if (!displaying) { - iota_gfx_flush(); - } - return 0; -} -#endif - -bool iota_gfx_init(void) { - bool success = false; - - send_cmd1(DisplayOff); - send_cmd2(SetDisplayClockDiv, 0x80); - send_cmd2(SetMultiPlex, DisplayHeight - 1); - - send_cmd2(SetDisplayOffset, 0); - - - send_cmd1(SetStartLine | 0x0); - send_cmd2(SetChargePump, 0x14 /* Enable */); - send_cmd2(SetMemoryMode, 0 /* horizontal addressing */); - -/// Flips the display orientation 0 degrees - send_cmd1(SegRemap | 0x1); - send_cmd1(ComScanDec); -/* -// the following Flip the display orientation 180 degrees - send_cmd1(SegRemap); - send_cmd1(ComScanInc); -// end flip */ - send_cmd2(SetComPins, 0x2); - send_cmd2(SetContrast, 0x8f); - send_cmd2(SetPreCharge, 0xf1); - send_cmd2(SetVComDetect, 0x40); - send_cmd1(DisplayAllOnResume); - send_cmd1(NormalDisplay); - send_cmd1(DeActivateScroll); - send_cmd1(DisplayOn); - - send_cmd2(SetContrast, 0); // Dim - - clear_display(); - - success = true; - - iota_gfx_flush(); - -#if DEBUG_TO_SCREEN - print_set_sendchar(capture_sendchar); -#endif - -done: - return success; -} - -bool iota_gfx_off(void) { - bool success = false; - - send_cmd1(DisplayOff); - success = true; - -done: - return success; -} - -bool iota_gfx_on(void) { - bool success = false; - - send_cmd1(DisplayOn); - success = true; - -done: - return success; -} - -static void matrix_write_char_inner(struct CharacterMatrix *matrix, uint8_t c) { - *matrix->cursor = c; - ++matrix->cursor; - - if (matrix->cursor - &matrix->display[0][0] == sizeof(matrix->display)) { - // We went off the end; scroll the display upwards by one line - memmove(&matrix->display[0], &matrix->display[1], - MatrixCols * (MatrixRows - 1)); - matrix->cursor = &matrix->display[MatrixRows - 1][0]; - memset(matrix->cursor, ' ', MatrixCols); - } -} - -static void matrix_write_char(struct CharacterMatrix *matrix, uint8_t c) { - matrix->dirty = true; - - if (c == '\n') { - // Clear to end of line from the cursor and then move to the - // start of the next line - uint8_t cursor_col = (matrix->cursor - &matrix->display[0][0]) % MatrixCols; - - while (cursor_col++ < MatrixCols) { - matrix_write_char_inner(matrix, ' '); - } - return; - } - - matrix_write_char_inner(matrix, c); -} - -void iota_gfx_write_char(uint8_t c) { - matrix_write_char(&display, c); -} - -static void matrix_write(struct CharacterMatrix *matrix, const char *data) { - const char *end = data + strlen(data); - while (data < end) { - matrix_write_char(matrix, *data); - ++data; - } -} - -void iota_gfx_write(const char *data) { - matrix_write(&display, data); -} - -static void matrix_write_P(struct CharacterMatrix *matrix, const char *data) { - while (true) { - uint8_t c = pgm_read_byte(data); - if (c == 0) { - return; - } - matrix_write_char(matrix, c); - ++data; - } -} - -void iota_gfx_write_P(const char *data) { - matrix_write_P(&display, data); -} - -static void matrix_clear(struct CharacterMatrix *matrix) { - memset(matrix->display, ' ', sizeof(matrix->display)); - matrix->cursor = &matrix->display[0][0]; - matrix->dirty = true; -} - -void iota_gfx_clear_screen(void) { - matrix_clear(&display); -} - -static void matrix_render(struct CharacterMatrix *matrix) { - last_flush = timer_read(); - iota_gfx_on(); -#if DEBUG_TO_SCREEN - ++displaying; -#endif - - // Move to the home position - send_cmd3(PageAddr, 0, MatrixRows - 1); - send_cmd3(ColumnAddr, 0, (MatrixCols * FontWidth) - 1); - - if (i2c_start_write(i2cAddress)) { - goto done; - } - if (i2c_master_write(0x40)) { - // Data mode - goto done; - } - - for (uint8_t row = 0; row < MatrixRows; ++row) { - for (uint8_t col = 0; col < MatrixCols; ++col) { - const uint8_t *glyph = font + (matrix->display[row][col] * (FontWidth - 1)); - - for (uint8_t glyphCol = 0; glyphCol < FontWidth - 1; ++glyphCol) { - uint8_t colBits = pgm_read_byte(glyph + glyphCol); - i2c_master_write(colBits); - } - - // 1 column of space between chars (it's not included in the glyph) - i2c_master_write(0); - } - } - - matrix->dirty = false; - -done: - i2c_master_stop(); -#if DEBUG_TO_SCREEN - --displaying; -#endif -} - -void iota_gfx_flush(void) { - matrix_render(&display); -} - -static void matrix_update(struct CharacterMatrix *dest, - const struct CharacterMatrix *source) { - if (memcmp(dest->display, source->display, sizeof(dest->display))) { - memcpy(dest->display, source->display, sizeof(dest->display)); - dest->dirty = true; - } -} - -static void render_status_info(void) { -#if DEBUG_TO_SCREEN - if (debug_enable) { - return; - } -#endif - - struct CharacterMatrix matrix; - - matrix_clear(&matrix); - matrix_write_P(&matrix, PSTR("USB: ")); -#ifdef PROTOCOL_LUFA - switch (USB_DeviceState) { - case DEVICE_STATE_Unattached: - matrix_write_P(&matrix, PSTR("Unattached")); - break; - case DEVICE_STATE_Suspended: - matrix_write_P(&matrix, PSTR("Suspended")); - break; - case DEVICE_STATE_Configured: - matrix_write_P(&matrix, PSTR("Connected")); - break; - case DEVICE_STATE_Powered: - matrix_write_P(&matrix, PSTR("Powered")); - break; - case DEVICE_STATE_Default: - matrix_write_P(&matrix, PSTR("Default")); - break; - case DEVICE_STATE_Addressed: - matrix_write_P(&matrix, PSTR("Addressed")); - break; - default: - matrix_write_P(&matrix, PSTR("Invalid")); - } -#endif - -// Define layers here, Have not worked out how to have text displayed for each layer. Copy down the number you see and add a case for it below - - char buf[40]; - snprintf(buf,sizeof(buf), "Undef-%ld", layer_state); - matrix_write_P(&matrix, PSTR("\n\nLayer: ")); - switch (layer_state) { - case _BASE: - matrix_write_P(&matrix, PSTR("Default")); - break; - case _RAISE: - matrix_write_P(&matrix, PSTR("Raise")); - break; - case _LOWER: - matrix_write_P(&matrix, PSTR("Lower")); - break; - case _ADJUST: - matrix_write_P(&matrix, PSTR("ADJUST")); - break; - default: - matrix_write(&matrix, buf); - } - - // Host Keyboard LED Status - char led[40]; - snprintf(led, sizeof(led), "\n%s %s %s", - (host_keyboard_leds() & (1<<USB_LED_NUM_LOCK)) ? "NUMLOCK" : " ", - (host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK)) ? "CAPS" : " ", - (host_keyboard_leds() & (1<<USB_LED_SCROLL_LOCK)) ? "SCLK" : " "); - matrix_write(&matrix, led); - matrix_update(&display, &matrix); -} - -void iota_gfx_task(void) { - render_status_info(); - - if (display.dirty) { - iota_gfx_flush(); - } - - if (timer_elapsed(last_flush) > ScreenOffInterval) { - iota_gfx_off(); - } -} -#endif diff --git a/keyboards/orthodox/ssd1306.h b/keyboards/orthodox/ssd1306.h deleted file mode 100644 index b0c74f987..000000000 --- a/keyboards/orthodox/ssd1306.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef SSD1306_H -#define SSD1306_H - -#include <stdbool.h> -#include <stdio.h> - -bool iota_gfx_init(void); -void iota_gfx_task(void); -bool iota_gfx_off(void); -bool iota_gfx_on(void); -void iota_gfx_flush(void); -void iota_gfx_write_char(uint8_t c); -void iota_gfx_write(const char *data); -void iota_gfx_write_P(const char *data); -void iota_gfx_clear_screen(void); - -#endif diff --git a/quantum/analog.c b/quantum/analog.c deleted file mode 100644 index 1ec38df75..000000000 --- a/quantum/analog.c +++ /dev/null @@ -1,69 +0,0 @@ -/* Copyright 2015 Jack Humbert - * - * 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/>. - */ - -// Simple analog to digitial conversion - -#include <avr/io.h> -#include <avr/pgmspace.h> -#include <stdint.h> -#include "analog.h" - - -static uint8_t aref = (1<<REFS0); // default to AREF = Vcc - - -void analogReference(uint8_t mode) -{ - aref = mode & 0xC0; -} - - -// Arduino compatible pin input -int16_t analogRead(uint8_t pin) -{ -#if defined(__AVR_ATmega32U4__) - static const uint8_t PROGMEM pin_to_mux[] = { - 0x00, 0x01, 0x04, 0x05, 0x06, 0x07, - 0x25, 0x24, 0x23, 0x22, 0x21, 0x20}; - if (pin >= 12) return 0; - return adc_read(pgm_read_byte(pin_to_mux + pin)); -#elif defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__) - if (pin >= 8) return 0; - return adc_read(pin); -#else - return 0; -#endif -} - -// Mux input -int16_t adc_read(uint8_t mux) -{ -#if defined(__AVR_AT90USB162__) - return 0; -#else - uint8_t low; - - ADCSRA = (1<<ADEN) | ADC_PRESCALER; // enable ADC - ADCSRB = (1<<ADHSM) | (mux & 0x20); // high speed mode - ADMUX = aref | (mux & 0x1F); // configure mux input - ADCSRA = (1<<ADEN) | ADC_PRESCALER | (1<<ADSC); // start the conversion - while (ADCSRA & (1<<ADSC)) ; // wait for result - low = ADCL; // must read LSB first - return (ADCH << 8) | low; // must read MSB only once! -#endif -} - - diff --git a/quantum/analog.h b/quantum/analog.h deleted file mode 100644 index 8d93de7dc..000000000 --- a/quantum/analog.h +++ /dev/null @@ -1,52 +0,0 @@ -/* Copyright 2015 Jack Humbert - * - * 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/>. - */ - -#ifndef _analog_h_included__ -#define _analog_h_included__ - -#include <stdint.h> - -void analogReference(uint8_t mode); -int16_t analogRead(uint8_t pin); -int16_t adc_read(uint8_t mux); - -#define ADC_REF_POWER (1<<REFS0) -#define ADC_REF_INTERNAL ((1<<REFS1) | (1<<REFS0)) -#define ADC_REF_EXTERNAL (0) - -// These prescaler values are for high speed mode, ADHSM = 1 -#if F_CPU == 16000000L -#define ADC_PRESCALER ((1<<ADPS2) | (1<<ADPS1)) -#elif F_CPU == 8000000L -#define ADC_PRESCALER ((1<<ADPS2) | (1<<ADPS0)) -#elif F_CPU == 4000000L -#define ADC_PRESCALER ((1<<ADPS2)) -#elif F_CPU == 2000000L -#define ADC_PRESCALER ((1<<ADPS1) | (1<<ADPS0)) -#elif F_CPU == 1000000L -#define ADC_PRESCALER ((1<<ADPS1)) -#else -#define ADC_PRESCALER ((1<<ADPS0)) -#endif - -// some avr-libc versions do not properly define ADHSM -#if defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__) -#if !defined(ADHSM) -#define ADHSM (7) -#endif -#endif - -#endif diff --git a/quantum/light_ws2812.c b/quantum/light_ws2812.c deleted file mode 100755 index 2506e3d8e..000000000 --- a/quantum/light_ws2812.c +++ /dev/null @@ -1,342 +0,0 @@ -/* -* light weight WS2812 lib V2.0b -* -* Controls WS2811/WS2812/WS2812B RGB-LEDs -* Author: Tim (cpldcpu@gmail.com) -* -* Jan 18th, 2014 v2.0b Initial Version -* Nov 29th, 2015 v2.3 Added SK6812RGBW support -* -* 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/>. -*/ - -#include "light_ws2812.h" -#include <avr/interrupt.h> -#include <avr/io.h> -#include <util/delay.h> -#include "debug.h" - -#ifdef RGBW_BB_TWI - -// Port for the I2C -#define I2C_DDR DDRD -#define I2C_PIN PIND -#define I2C_PORT PORTD - -// Pins to be used in the bit banging -#define I2C_CLK 0 -#define I2C_DAT 1 - -#define I2C_DATA_HI()\ -I2C_DDR &= ~ (1 << I2C_DAT);\ -I2C_PORT |= (1 << I2C_DAT); -#define I2C_DATA_LO()\ -I2C_DDR |= (1 << I2C_DAT);\ -I2C_PORT &= ~ (1 << I2C_DAT); - -#define I2C_CLOCK_HI()\ -I2C_DDR &= ~ (1 << I2C_CLK);\ -I2C_PORT |= (1 << I2C_CLK); -#define I2C_CLOCK_LO()\ -I2C_DDR |= (1 << I2C_CLK);\ -I2C_PORT &= ~ (1 << I2C_CLK); - -#define I2C_DELAY 1 - -void I2C_WriteBit(unsigned char c) -{ - if (c > 0) - { - I2C_DATA_HI(); - } - else - { - I2C_DATA_LO(); - } - - I2C_CLOCK_HI(); - _delay_us(I2C_DELAY); - - I2C_CLOCK_LO(); - _delay_us(I2C_DELAY); - - if (c > 0) - { - I2C_DATA_LO(); - } - - _delay_us(I2C_DELAY); -} - -// Inits bitbanging port, must be called before using the functions below -// -void I2C_Init(void) -{ - I2C_PORT &= ~ ((1 << I2C_DAT) | (1 << I2C_CLK)); - - I2C_CLOCK_HI(); - I2C_DATA_HI(); - - _delay_us(I2C_DELAY); -} - -// Send a START Condition -// -void I2C_Start(void) -{ - // set both to high at the same time - I2C_DDR &= ~ ((1 << I2C_DAT) | (1 << I2C_CLK)); - _delay_us(I2C_DELAY); - - I2C_DATA_LO(); - _delay_us(I2C_DELAY); - - I2C_CLOCK_LO(); - _delay_us(I2C_DELAY); -} - -// Send a STOP Condition -// -void I2C_Stop(void) -{ - I2C_CLOCK_HI(); - _delay_us(I2C_DELAY); - - I2C_DATA_HI(); - _delay_us(I2C_DELAY); -} - -// write a byte to the I2C slave device -// -unsigned char I2C_Write(unsigned char c) -{ - for (char i = 0; i < 8; i++) - { - I2C_WriteBit(c & 128); - - c <<= 1; - } - - - I2C_WriteBit(0); - _delay_us(I2C_DELAY); - _delay_us(I2C_DELAY); - - // _delay_us(I2C_DELAY); - //return I2C_ReadBit(); - return 0; -} - - -#endif - -// Setleds for standard RGB -void inline ws2812_setleds(LED_TYPE *ledarray, uint16_t leds) -{ - // ws2812_setleds_pin(ledarray,leds, _BV(ws2812_pin)); - ws2812_setleds_pin(ledarray,leds, _BV(RGB_DI_PIN & 0xF)); -} - -void inline ws2812_setleds_pin(LED_TYPE *ledarray, uint16_t leds, uint8_t pinmask) -{ - // ws2812_DDRREG |= pinmask; // Enable DDR - // new universal format (DDR) - _SFR_IO8((RGB_DI_PIN >> 4) + 1) |= pinmask; - - ws2812_sendarray_mask((uint8_t*)ledarray,leds+leds+leds,pinmask); - _delay_us(50); -} - -// Setleds for SK6812RGBW -void inline ws2812_setleds_rgbw(LED_TYPE *ledarray, uint16_t leds) -{ - - #ifdef RGBW_BB_TWI - uint8_t sreg_prev, twcr_prev; - sreg_prev=SREG; - twcr_prev=TWCR; - cli(); - TWCR &= ~(1<<TWEN); - I2C_Init(); - I2C_Start(); - I2C_Write(0x84); - uint16_t datlen = leds<<2; - uint8_t curbyte; - uint8_t * data = (uint8_t*)ledarray; - while (datlen--) { - curbyte=*data++; - I2C_Write(curbyte); - } - I2C_Stop(); - SREG=sreg_prev; - TWCR=twcr_prev; - #endif - - - // ws2812_DDRREG |= _BV(ws2812_pin); // Enable DDR - // new universal format (DDR) - _SFR_IO8((RGB_DI_PIN >> 4) + 1) |= _BV(RGB_DI_PIN & 0xF); - - ws2812_sendarray_mask((uint8_t*)ledarray,leds<<2,_BV(RGB_DI_PIN & 0xF)); - - - #ifndef RGBW_BB_TWI - _delay_us(80); - #endif -} - -void ws2812_sendarray(uint8_t *data,uint16_t datlen) -{ - ws2812_sendarray_mask(data,datlen,_BV(RGB_DI_PIN & 0xF)); -} - -/* - This routine writes an array of bytes with RGB values to the Dataout pin - using the fast 800kHz clockless WS2811/2812 protocol. -*/ - -// Timing in ns -#define w_zeropulse 350 -#define w_onepulse 900 -#define w_totalperiod 1250 - -// Fixed cycles used by the inner loop -#define w_fixedlow 2 -#define w_fixedhigh 4 -#define w_fixedtotal 8 - -// Insert NOPs to match the timing, if possible -#define w_zerocycles (((F_CPU/1000)*w_zeropulse )/1000000) -#define w_onecycles (((F_CPU/1000)*w_onepulse +500000)/1000000) -#define w_totalcycles (((F_CPU/1000)*w_totalperiod +500000)/1000000) - -// w1 - nops between rising edge and falling edge - low -#define w1 (w_zerocycles-w_fixedlow) -// w2 nops between fe low and fe high -#define w2 (w_onecycles-w_fixedhigh-w1) -// w3 nops to complete loop -#define w3 (w_totalcycles-w_fixedtotal-w1-w2) - -#if w1>0 - #define w1_nops w1 -#else - #define w1_nops 0 -#endif - -// The only critical timing parameter is the minimum pulse length of the "0" -// Warn or throw error if this timing can not be met with current F_CPU settings. -#define w_lowtime ((w1_nops+w_fixedlow)*1000000)/(F_CPU/1000) -#if w_lowtime>550 - #error "Light_ws2812: Sorry, the clock speed is too low. Did you set F_CPU correctly?" -#elif w_lowtime>450 - #warning "Light_ws2812: The timing is critical and may only work on WS2812B, not on WS2812(S)." - #warning "Please consider a higher clockspeed, if possible" -#endif - -#if w2>0 -#define w2_nops w2 -#else -#define w2_nops 0 -#endif - -#if w3>0 -#define w3_nops w3 -#else -#define w3_nops 0 -#endif - -#define w_nop1 "nop \n\t" -#define w_nop2 "rjmp .+0 \n\t" -#define w_nop4 w_nop2 w_nop2 -#define w_nop8 w_nop4 w_nop4 -#define w_nop16 w_nop8 w_nop8 - -void inline ws2812_sendarray_mask(uint8_t *data,uint16_t datlen,uint8_t maskhi) -{ - uint8_t curbyte,ctr,masklo; - uint8_t sreg_prev; - - // masklo =~maskhi&ws2812_PORTREG; - // maskhi |= ws2812_PORTREG; - masklo =~maskhi&_SFR_IO8((RGB_DI_PIN >> 4) + 2); - maskhi |= _SFR_IO8((RGB_DI_PIN >> 4) + 2); - sreg_prev=SREG; - cli(); - - while (datlen--) { - curbyte=(*data++); - - asm volatile( - " ldi %0,8 \n\t" - "loop%=: \n\t" - " out %2,%3 \n\t" // '1' [01] '0' [01] - re -#if (w1_nops&1) -w_nop1 -#endif -#if (w1_nops&2) -w_nop2 -#endif -#if (w1_nops&4) -w_nop4 -#endif -#if (w1_nops&8) -w_nop8 -#endif -#if (w1_nops&16) -w_nop16 -#endif - " sbrs %1,7 \n\t" // '1' [03] '0' [02] - " out %2,%4 \n\t" // '1' [--] '0' [03] - fe-low - " lsl %1 \n\t" // '1' [04] '0' [04] -#if (w2_nops&1) - w_nop1 -#endif -#if (w2_nops&2) - w_nop2 -#endif -#if (w2_nops&4) - w_nop4 -#endif -#if (w2_nops&8) - w_nop8 -#endif -#if (w2_nops&16) - w_nop16 -#endif - " out %2,%4 \n\t" // '1' [+1] '0' [+1] - fe-high -#if (w3_nops&1) -w_nop1 -#endif -#if (w3_nops&2) -w_nop2 -#endif -#if (w3_nops&4) -w_nop4 -#endif -#if (w3_nops&8) -w_nop8 -#endif -#if (w3_nops&16) -w_nop16 -#endif - - " dec %0 \n\t" // '1' [+2] '0' [+2] - " brne loop%=\n\t" // '1' [+3] '0' [+4] - : "=&d" (ctr) - : "r" (curbyte), "I" (_SFR_IO_ADDR(_SFR_IO8((RGB_DI_PIN >> 4) + 2))), "r" (maskhi), "r" (masklo) - ); - } - - SREG=sreg_prev; -} diff --git a/quantum/light_ws2812.h b/quantum/light_ws2812.h deleted file mode 100755 index 60924a0fb..000000000 --- a/quantum/light_ws2812.h +++ /dev/null @@ -1,91 +0,0 @@ -/* - * light weight WS2812 lib include - * - * Version 2.3 - Nev 29th 2015 - * Author: Tim (cpldcpu@gmail.com) - * - * Please do not change this file! All configuration is handled in "ws2812_config.h" - * - * 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/>. - */ - -#ifndef LIGHT_WS2812_H_ -#define LIGHT_WS2812_H_ - -#include <avr/io.h> -#include <avr/interrupt.h> -//#include "ws2812_config.h" -//#include "i2cmaster.h" - -#ifdef RGBW - #define LED_TYPE struct cRGBW -#else - #define LED_TYPE struct cRGB -#endif - - -/* - * Structure of the LED array - * - * cRGB: RGB for WS2812S/B/C/D, SK6812, SK6812Mini, SK6812WWA, APA104, APA106 - * cRGBW: RGBW for SK6812RGBW - */ - -struct cRGB { uint8_t g; uint8_t r; uint8_t b; }; -struct cRGBW { uint8_t g; uint8_t r; uint8_t b; uint8_t w;}; - - - -/* User Interface - * - * Input: - * ledarray: An array of GRB data describing the LED colors - * number_of_leds: The number of LEDs to write - * pinmask (optional): Bitmask describing the output bin. e.g. _BV(PB0) - * - * The functions will perform the following actions: - * - Set the data-out pin as output - * - Send out the LED data - * - Wait 50�s to reset the LEDs - */ - -void ws2812_setleds (LED_TYPE *ledarray, uint16_t number_of_leds); -void ws2812_setleds_pin (LED_TYPE *ledarray, uint16_t number_of_leds,uint8_t pinmask); -void ws2812_setleds_rgbw(LED_TYPE *ledarray, uint16_t number_of_leds); - -/* - * Old interface / Internal functions - * - * The functions take a byte-array and send to the data output as WS2812 bitstream. - * The length is the number of bytes to send - three per LED. - */ - -void ws2812_sendarray (uint8_t *array,uint16_t length); -void ws2812_sendarray_mask(uint8_t *array,uint16_t length, uint8_t pinmask); - - -/* - * Internal defines - */ -#ifndef CONCAT -#define CONCAT(a, b) a ## b -#endif -#ifndef CONCAT_EXP -#define CONCAT_EXP(a, b) CONCAT(a, b) -#endif - -// #define ws2812_PORTREG CONCAT_EXP(PORT,ws2812_port) -// #define ws2812_DDRREG CONCAT_EXP(DDR,ws2812_port) - -#endif /* LIGHT_WS2812_H_ */ diff --git a/quantum/rgblight.h b/quantum/rgblight.h index 92130192c..8fea96a9e 100644 --- a/quantum/rgblight.h +++ b/quantum/rgblight.h @@ -61,7 +61,7 @@ #include <stdint.h> #include <stdbool.h> #include "eeconfig.h" -#include "light_ws2812.h" +#include "ws2812.h" extern LED_TYPE led[RGBLED_NUM]; diff --git a/tmk_core/avr.mk b/tmk_core/avr.mk index 6773726ee..4af34ba57 100644 --- a/tmk_core/avr.mk +++ b/tmk_core/avr.mk @@ -12,7 +12,7 @@ HEX = $(OBJCOPY) -O $(FORMAT) -R .eeprom -R .fuse -R .lock -R .signature EEP = $(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0 --no-change-warnings -O $(FORMAT) BIN = - +COMMON_VPATH += $(DRIVER_PATH)/avr COMPILEFLAGS += -funsigned-char COMPILEFLAGS += -funsigned-bitfields -- cgit v1.2.3 From 65c10790d4f7b89bef849ed3896db4ea30b13a40 Mon Sep 17 00:00:00 2001 From: Jack Humbert <jack.humb@gmail.com> Date: Mon, 10 Jul 2017 11:53:18 -0400 Subject: Update README.md --- keyboards/handwired/magicforce68/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/handwired/magicforce68/README.md b/keyboards/handwired/magicforce68/README.md index 2877169ef..a0de66069 100644 --- a/keyboards/handwired/magicforce68/README.md +++ b/keyboards/handwired/magicforce68/README.md @@ -5,7 +5,7 @@ This firmware is for a Magicforce 68 that's had its PCB removed and is handwired ## Wiring Layout - + ## Pinout -- cgit v1.2.3