X-Git-Url: http://git.linex4red.de/pub/lufa.git/blobdiff_plain/a34cccf09931a54a607a56d4ded88f3b7a4752b4..7d7573e4e554f4b17686a915eba0da12fbebc2ed:/LUFA/Drivers/Peripheral/AT90USBXXX67/ADC.h diff --git a/LUFA/Drivers/Peripheral/AT90USBXXX67/ADC.h b/LUFA/Drivers/Peripheral/AT90USBXXX67/ADC.h index 358629c70..4cc7c32c3 100644 --- a/LUFA/Drivers/Peripheral/AT90USBXXX67/ADC.h +++ b/LUFA/Drivers/Peripheral/AT90USBXXX67/ADC.h @@ -163,8 +163,33 @@ */ 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); 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.