@@ -584,10 +584,23 @@ writePort(port, value, bitmask): Write an 8 bit port.
584
584
#define PIN_TO_PWM (p ) PIN_TO_DIGITAL(p)
585
585
#define PIN_TO_SERVO (p ) (p)
586
586
587
- // Teensy 4.0
587
+ // Teensy 4.0 and Teensy 4.1
588
588
#elif defined(__IMXRT1062__ )
589
- #define TOTAL_ANALOG_PINS 14
590
- #define TOTAL_PINS 40
589
+ #if !defined(TEENSY40 ) && !defined(TEENSY41 )
590
+ #warning Assuming TEENSY40. Please #define TEENSY40 or TEENSY41.
591
+ #define TEENSY40
592
+ #endif
593
+ #if defined(TEENSY40 )
594
+ #define TOTAL_PINS 40
595
+ #define TOTAL_ANALOG_PINS 14
596
+ #define IS_PIN_ANALOG (p ) ((p) >= 14 && (p) <= 27)
597
+ #define PIN_TO_ANALOG (p ) ((p) - 14)
598
+ #elif defined(TEENSY41 )
599
+ #define TOTAL_PINS 55
600
+ #define TOTAL_ANALOG_PINS 18
601
+ #define IS_PIN_ANALOG (p ) (((p) >= 14 && (p) <= 27) || ((p) >= 38 && (p) <= 41))
602
+ #define PIN_TO_ANALOG (p ) (((p) <= 27) ? ((p) - 14 ) : ((p) - 24))
603
+ #endif
591
604
#define VERSION_BLINK_PIN 13
592
605
#define PIN_SERIAL1_RX 0
593
606
#define PIN_SERIAL1_TX 1
@@ -603,14 +616,64 @@ writePort(port, value, bitmask): Write an 8 bit port.
603
616
#define PIN_SERIAL6_TX 24
604
617
#define PIN_SERIAL7_RX 28
605
618
#define PIN_SERIAL7_TX 29
619
+ #if defined(TEENSY40 )
620
+ #define IS_PIN_SERIAL (p ) (((p) == PIN_SERIAL1_RX) || \
621
+ ((p) == PIN_SERIAL1_TX) || \
622
+ ((p) == PIN_SERIAL2_RX) || \
623
+ ((p) == PIN_SERIAL2_TX) || \
624
+ ((p) == PIN_SERIAL3_RX) || \
625
+ ((p) == PIN_SERIAL3_TX) || \
626
+ ((p) == PIN_SERIAL4_RX) || \
627
+ ((p) == PIN_SERIAL4_TX) || \
628
+ ((p) == PIN_SERIAL5_RX) || \
629
+ ((p) == PIN_SERIAL5_TX) || \
630
+ ((p) == PIN_SERIAL6_RX) || \
631
+ ((p) == PIN_SERIAL6_TX) || \
632
+ ((p) == PIN_SERIAL7_RX) || \
633
+ ((p) == PIN_SERIAL7_TX))
634
+ #define IS_PIN_PWM (p ) (((p) >= 0 && (p) <= 16) || \
635
+ ((p) == 18) || \
636
+ ((p) == 19) || \
637
+ ((p) >= 22 && (p) <= 25) || \
638
+ ((p) == 28) || \
639
+ ((p) == 29) || \
640
+ ((p) >= 33 && (p) <= 39))
641
+ #elif defined(TEENSY41 )
642
+ #define PIN_SERIAL8_RX 34
643
+ #define PIN_SERIAL8_TX 35
644
+ #define IS_PIN_SERIAL (p ) (((p) == PIN_SERIAL1_RX) || \
645
+ ((p) == PIN_SERIAL1_TX) || \
646
+ ((p) == PIN_SERIAL2_RX) || \
647
+ ((p) == PIN_SERIAL2_TX) || \
648
+ ((p) == PIN_SERIAL3_RX) || \
649
+ ((p) == PIN_SERIAL3_TX) || \
650
+ ((p) == PIN_SERIAL4_RX) || \
651
+ ((p) == PIN_SERIAL4_TX) || \
652
+ ((p) == PIN_SERIAL5_RX) || \
653
+ ((p) == PIN_SERIAL5_TX) || \
654
+ ((p) == PIN_SERIAL6_RX) || \
655
+ ((p) == PIN_SERIAL6_TX) || \
656
+ ((p) == PIN_SERIAL7_RX) || \
657
+ ((p) == PIN_SERIAL7_TX) ||\
658
+ ((p) == PIN_SERIAL8_RX) || \
659
+ ((p) == PIN_SERIAL8_TX))
660
+ #define IS_PIN_PWM (p ) (((p) >= 0 && (p) <= 15) || \
661
+ ((p) == 18) || \
662
+ ((p) == 19) || \
663
+ ((p) >= 22 && (p) <= 25) || \
664
+ ((p) == 28) || \
665
+ ((p) == 29) || \
666
+ ((p) == 33) || \
667
+ ((p) == 36) || \
668
+ ((p) == 37) || \
669
+ ((p) >= 42 && (p) <= 47) || \
670
+ ((p) == 51) || \
671
+ ((p) == 54))
672
+ #endif
606
673
#define IS_PIN_DIGITAL (p ) ((p) >= 0 && (p) < TOTAL_PINS)
607
- #define IS_PIN_ANALOG (p ) ((p) >= 14 && (p) <= 27)
608
- #define IS_PIN_PWM (p ) (((p) >= 0 && (p) <= 16) || ((p) >= 18 && (p) <= 19) || ((p) >= 22 && (p) <= 25) || ((p) >= 28 && (p) <= 29)|| ((p) >= 33 && (p) <= 39))
609
674
#define IS_PIN_SERVO (p ) ((p) >= 0 && (p) < MAX_SERVOS)
610
675
#define IS_PIN_I2C (p ) ((p) == 18 || (p) == 19)
611
- #define IS_PIN_SERIAL (p ) (((p) >= 0 && (p) <= 1) || ((p) >= 7 && (p) <= 8) || ((p) >= 14 && (p) <= 17) || ((p) >= 20 && (p) <= 21) || ((p) >= 24 && (p) <= 25) || ((p) >= 28 && (p) <= 29))
612
676
#define PIN_TO_DIGITAL (p ) (p)
613
- #define PIN_TO_ANALOG (p ) ((p) - 14)
614
677
#define PIN_TO_PWM (p ) (p)
615
678
#define PIN_TO_SERVO (p ) (p)
616
679
0 commit comments