From d0b0f3e45d5c4cf3a7fbcf5832c5e6cc764016e0 Mon Sep 17 00:00:00 2001 From: Zach Eveland Date: Tue, 13 Sep 2011 23:52:26 -0400 Subject: fixed analog pin mapping for 32u4 --- cores/arduino/wiring_analog.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'cores') diff --git a/cores/arduino/wiring_analog.c b/cores/arduino/wiring_analog.c index d248f4c..62b91cf 100644 --- a/cores/arduino/wiring_analog.c +++ b/cores/arduino/wiring_analog.c @@ -46,8 +46,11 @@ int analogRead(uint8_t pin) #else if (pin >= 14) pin -= 14; // allow for channel or pin numbers #endif - -#if defined(ADCSRB) && defined(MUX5) + +#if defined(__AVR_ATmega32U4__) + pin = analogPinToChannel(pin); + ADCSRB = (ADCSRB & ~(1 << MUX5)) | (((pin >> 3) & 0x01) << MUX5); +#elif defined(ADCSRB) && defined(MUX5) // the MUX5 bit of ADCSRB selects whether we're reading from channels // 0 to 7 (MUX5 low) or 8 to 15 (MUX5 high). ADCSRB = (ADCSRB & ~(1 << MUX5)) | (((pin >> 3) & 0x01) << MUX5); -- cgit v1.2.3-18-g5258