Hello
...\hardware\teensy\avr\cores\teensy4\pins_arduino.h
defines:
#if defined(ARDUINO_TEENSY40)
#define NUM_ANALOG_INPUTS 14
#elif defined(ARDUINO_TEENSY41)
#define NUM_ANALOG_INPUTS 18
I would expect that a for() loop from 0 to 13 calling analogInputToDigitalPin() should return the following result for Teensy 4.0:
An0 = Digi 14
An1 = Digi 15
An2 = Digi 16
An3 = Digi 17
An4 = Digi 18
An5 = Digi 19
An6 = Digi 20
An7 = Digi 21
An8 = Digi 22
An9 = Digi 23
An10 = Digi 24
An11 = Digi 25
An12 = Digi 26
An13 = Digi 27
But this does not work because the following define buggy:
#define analogInputToDigitalPin(p) (((p) <= 9) ? (p) + 14 : (( ((p) >= 14 && (p) <= 27)) ? (p) : -1))
The correct define is this:
#define analogInputToDigitalPin(p) (((p) <= 13) ? (p) + 14 : -1)
And the define for Teensy 4.1 is also wrong.
It should be:
#define analogInputToDigitalPin(p) (((p) <= 13) ? (p) + 14 : (( (p) >= 14 && (p) <= 17) ? (p + 24) : -1))
...\hardware\teensy\avr\cores\teensy4\pins_arduino.h
defines:
#if defined(ARDUINO_TEENSY40)
#define NUM_ANALOG_INPUTS 14
#elif defined(ARDUINO_TEENSY41)
#define NUM_ANALOG_INPUTS 18
I would expect that a for() loop from 0 to 13 calling analogInputToDigitalPin() should return the following result for Teensy 4.0:
An0 = Digi 14
An1 = Digi 15
An2 = Digi 16
An3 = Digi 17
An4 = Digi 18
An5 = Digi 19
An6 = Digi 20
An7 = Digi 21
An8 = Digi 22
An9 = Digi 23
An10 = Digi 24
An11 = Digi 25
An12 = Digi 26
An13 = Digi 27
But this does not work because the following define buggy:
#define analogInputToDigitalPin(p) (((p) <= 9) ? (p) + 14 : (( ((p) >= 14 && (p) <= 27)) ? (p) : -1))
The correct define is this:
#define analogInputToDigitalPin(p) (((p) <= 13) ? (p) + 14 : -1)
And the define for Teensy 4.1 is also wrong.
It should be:
#define analogInputToDigitalPin(p) (((p) <= 13) ? (p) + 14 : (( (p) >= 14 && (p) <= 17) ? (p + 24) : -1))
Last edited: