Corrected the ADC driver for the ATMEGA16U4 and ATMEGA32U4 (thanks to Opendous Inc.).

pull/1469/head
Dean Camera 16 years ago
parent a34cccf099
commit 7d7573e4e5

@ -44,7 +44,7 @@ int main(void)
SetupHardware(); SetupHardware();
puts_P(PSTR(ESC_RESET ESC_BG_WHITE ESC_INVERSE_ON ESC_ERASE_DISPLAY puts_P(PSTR(ESC_RESET ESC_BG_WHITE ESC_INVERSE_ON ESC_ERASE_DISPLAY
"LUFA Demo running.\r\n" ESC_INVERSE_OFF)); "LUFA Demo running.\r\n" ESC_INVERSE_OFF));
for (;;) for (;;)
{ {

@ -163,8 +163,33 @@
*/ */
static inline void ADC_SetupChannel(const uint8_t Channel) static inline void ADC_SetupChannel(const uint8_t Channel)
{ {
#if (defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB646__) || \
defined(__AVR_AT90USB1287__) || defined(__AVR_AT90USB647__) || \
defined(__AVR_ATmega32U6__))
DDRF &= ~(1 << Channel); DDRF &= ~(1 << Channel);
DIDR0 |= (1 << Channel); DIDR0 |= (1 << Channel);
#elif (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__))
if (Channel < 8)
{
DDRF &= ~(1 << Channel);
DIDR0 |= (1 << Channel);
}
else if (Channel == 8)
{
DDRD &= ~(1 << 4);
DIDR2 |= (1 << 0);
}
else if (Channel < 11)
{
DDRD &= ~(1 << (Channel - 3));
DIDR2 |= (1 << (Channel - 8));
}
else
{
DDRB &= ~(1 << (Channel - 7));
DIDR2 |= (1 << (Channel - 8));
}
#endif
} }
/** Starts the reading of the given channel, but does not wait until the conversion has completed. /** Starts the reading of the given channel, but does not wait until the conversion has completed.

@ -36,8 +36,6 @@
#include <avr/pgmspace.h> #include <avr/pgmspace.h>
#include <avr/eeprom.h> #include <avr/eeprom.h>
#include <avr/boot.h> #include <avr/boot.h>
#include <stdlib.h>
#include <ctype.h>
#include "../HighLevel/StdDescriptors.h" #include "../HighLevel/StdDescriptors.h"
#include "../HighLevel/Events.h" #include "../HighLevel/Events.h"

@ -30,6 +30,8 @@
* - Extend USB_GetDeviceConfigDescriptor() routine to require the configuration number within the device to fetch * - Extend USB_GetDeviceConfigDescriptor() routine to require the configuration number within the device to fetch
* - Added new USE_INTERNAL_SERIAL define for using the unique serial numbers in some AVR models as the USB device's serial number, * - Added new USE_INTERNAL_SERIAL define for using the unique serial numbers in some AVR models as the USB device's serial number,
* added NO_INTERNAL_SERIAL compile time option to turn off new serial number reading code * added NO_INTERNAL_SERIAL compile time option to turn off new serial number reading code
* - Fixed ADC driver for the ATMEGA32U4 and ATMEGA16U4 (thanks to Opendous Inc.)
*
* *
* \section Sec_ChangeLog090605 Version 090605 * \section Sec_ChangeLog090605 Version 090605
* *

@ -19,24 +19,25 @@
* are open design, and all are available for purchase as completed development boards suitable for project development. * are open design, and all are available for purchase as completed development boards suitable for project development.
* *
* - AVROpendous, an open design/source set of AVR USB development boards: http://avropendous.org/ * - AVROpendous, an open design/source set of AVR USB development boards: http://avropendous.org/
* - Teensy and Teensy++, two other AVR USB development boards: http://www.pjrc.com/teensy/index.html * - Benito #7, a no-frills USB board: http://www.dorkbotpdx.org/blog/feurig/benito_7_the_next_big_thing
* - USBFoo, an AT90USB162 based development board: http://shop.kernelconcepts.de/product_info.php?products_id=102 * - USBFoo, an AT90USB162 based development board: http://shop.kernelconcepts.de/product_info.php?products_id=102
* - USB10 AKA "The Ferret", a AT90USB162 development board: http://www.soc-machines.com * - USB10 AKA "The Ferret", a AT90USB162 development board: http://www.soc-machines.com
* - Benito #7, a no-frills USB board: http://www.dorkbotpdx.org/blog/feurig/benito_7_the_next_big_thing * - Teensy and Teensy++, two other AVR USB development boards: http://www.pjrc.com/teensy/index.html
* *
* \section Sec_LUFAProjects Projects Using LUFA (Hobbyist) * \section Sec_LUFAProjects Projects Using LUFA (Hobbyist)
* *
* The following are hobbyist projects using LUFA. Most are open source, and show off interesting ways that the LUFA library * The following are hobbyist projects using LUFA. Most are open source, and show off interesting ways that the LUFA library
* can be incorporated into many different applications. * can be incorporated into many different applications.
* *
* - Stripe Snoop, a Magnetic Card reader: http://www.ossguy.com/ss_usb/
* - Bicycle POV: http://www.code.google.com/p/bicycleledpov/ * - Bicycle POV: http://www.code.google.com/p/bicycleledpov/
* - USB Interface for Playstation Portable Devices: http://forums.ps2dev.org/viewtopic.php?t=11001
* - USB to Serial Bridge, via SPI and I2C: http://www.tty1.net/userial/
* - SEGA Megadrive/Genesis Development Cartridge: http://www.spritesmind.net/_GenDev/forum/viewtopic.php?t=464
* - CAMTRIG, a remote Camera Trigger device: http://code.astraw.com/projects/motmot/camtrig * - CAMTRIG, a remote Camera Trigger device: http://code.astraw.com/projects/motmot/camtrig
* - Opendous-JTAG, an open source JTAG device: http://code.google.com/p/opendous-jtag/ * - Opendous-JTAG, an open source JTAG device: http://code.google.com/p/opendous-jtag/
* - Openkubus, an open source hardware-based authentication dongle: http://code.google.com/p/openkubus/ * - Openkubus, an open source hardware-based authentication dongle: http://code.google.com/p/openkubus/
* - Reprap with LUFA, a LUFA powered 3D printer: http://code.google.com/p/at90usb1287-code-for-arduino-and-eclipse/
* - SEGA Megadrive/Genesis Development Cartridge: http://www.spritesmind.net/_GenDev/forum/viewtopic.php?t=464
* - Stripe Snoop, a Magnetic Card reader: http://www.ossguy.com/ss_usb/
* - USB Interface for Playstation Portable Devices: http://forums.ps2dev.org/viewtopic.php?t=11001
* - USB to Serial Bridge, via SPI and I2C: http://www.tty1.net/userial/
* *
* \section Sec_LUFACommercialProjects Projects Using LUFA (Commercial) * \section Sec_LUFACommercialProjects Projects Using LUFA (Commercial)
* *

Loading…
Cancel
Save