File tree Expand file tree Collapse file tree 2 files changed +16
-16
lines changed
hardware/arduino/avr/cores Expand file tree Collapse file tree 2 files changed +16
-16
lines changed Original file line number Diff line number Diff line change @@ -41,22 +41,22 @@ int analogRead(uint8_t pin)
4141{
4242 uint8_t low , high ;
4343
44- #if defined(__AVR_ATmega1280__ ) || defined(__AVR_ATmega2560__ )
44+ #if defined(analogPinToChannel )
45+ #if defined(__AVR_ATmega32U4__ )
46+ if (pin >= 18 ) pin -= 18 ; // allow for channel or pin numbers
47+ #endif
48+ pin = analogPinToChannel (pin );
49+ #elif defined(__AVR_ATmega1280__ ) || defined(__AVR_ATmega2560__ )
4550 if (pin >= 54 ) pin -= 54 ; // allow for channel or pin numbers
4651#elif defined(__AVR_ATmega32U4__ )
4752 if (pin >= 18 ) pin -= 18 ; // allow for channel or pin numbers
4853#elif defined(__AVR_ATmega1284__ ) || defined(__AVR_ATmega1284P__ ) || defined(__AVR_ATmega644__ ) || defined(__AVR_ATmega644A__ ) || defined(__AVR_ATmega644P__ ) || defined(__AVR_ATmega644PA__ )
4954 if (pin >= 24 ) pin -= 24 ; // allow for channel or pin numbers
50- #elif defined(analogPinToChannel ) && (defined(__AVR_ATtiny25__ ) || defined(__AVR_ATtiny45__ ) || defined(__AVR_ATtiny85__ ))
51- pin = analogPinToChannel (pin );
5255#else
5356 if (pin >= 14 ) pin -= 14 ; // allow for channel or pin numbers
5457#endif
55-
56- #if defined(__AVR_ATmega32U4__ )
57- pin = analogPinToChannel (pin );
58- ADCSRB = (ADCSRB & ~(1 << MUX5 )) | (((pin >> 3 ) & 0x01 ) << MUX5 );
59- #elif defined(ADCSRB ) && defined(MUX5 )
58+
59+ #if defined(ADCSRB ) && defined(MUX5 )
6060 // the MUX5 bit of ADCSRB selects whether we're reading from channels
6161 // 0 to 7 (MUX5 low) or 8 to 15 (MUX5 high).
6262 ADCSRB = (ADCSRB & ~(1 << MUX5 )) | (((pin >> 3 ) & 0x01 ) << MUX5 );
Original file line number Diff line number Diff line change @@ -41,22 +41,22 @@ int analogRead(uint8_t pin)
4141{
4242 uint8_t low , high ;
4343
44- #if defined(__AVR_ATmega1280__ ) || defined(__AVR_ATmega2560__ )
44+ #if defined(analogPinToChannel )
45+ #if defined(__AVR_ATmega32U4__ )
46+ if (pin >= 18 ) pin -= 18 ; // allow for channel or pin numbers
47+ #endif
48+ pin = analogPinToChannel (pin );
49+ #elif defined(__AVR_ATmega1280__ ) || defined(__AVR_ATmega2560__ )
4550 if (pin >= 54 ) pin -= 54 ; // allow for channel or pin numbers
4651#elif defined(__AVR_ATmega32U4__ )
4752 if (pin >= 18 ) pin -= 18 ; // allow for channel or pin numbers
4853#elif defined(__AVR_ATmega1284__ ) || defined(__AVR_ATmega1284P__ ) || defined(__AVR_ATmega644__ ) || defined(__AVR_ATmega644A__ ) || defined(__AVR_ATmega644P__ ) || defined(__AVR_ATmega644PA__ )
4954 if (pin >= 24 ) pin -= 24 ; // allow for channel or pin numbers
50- #elif defined(analogPinToChannel ) && (defined(__AVR_ATtiny25__ ) || defined(__AVR_ATtiny45__ ) || defined(__AVR_ATtiny85__ ))
51- pin = analogPinToChannel (pin );
5255#else
5356 if (pin >= 14 ) pin -= 14 ; // allow for channel or pin numbers
5457#endif
55-
56- #if defined(__AVR_ATmega32U4__ )
57- pin = analogPinToChannel (pin );
58- ADCSRB = (ADCSRB & ~(1 << MUX5 )) | (((pin >> 3 ) & 0x01 ) << MUX5 );
59- #elif defined(ADCSRB ) && defined(MUX5 )
58+
59+ #if defined(ADCSRB ) && defined(MUX5 )
6060 // the MUX5 bit of ADCSRB selects whether we're reading from channels
6161 // 0 to 7 (MUX5 low) or 8 to 15 (MUX5 high).
6262 ADCSRB = (ADCSRB & ~(1 << MUX5 )) | (((pin >> 3 ) & 0x01 ) << MUX5 );
You can’t perform that action at this time.
0 commit comments