Here is the code, below. I will put a snapshot of the results for T4.
The resolution of my capture device is only 41.66666ns. So when you see pin to pin times doubling from 42ns to 83ns it is down at the resolution of the Logic Analyser.


Code:
#include "Arduino.h"
#include <Snooze.h>
SnoozeDigital snoozeDigital;
SnoozeTimer snoozeTimer;
#if defined(__IMXRT1062__)
SnoozeUSBSerial SerialUsb;
#else
#define SerialUsb Serial
#endif
#if defined(__IMXRT1062__)
SnoozeBlock config_teensy40(SerialUsb, snoozeDigital, snoozeTimer ); //alarm);
#elif defined(__MK66FX1M0__)
SnoozeBlock config_teensy36(snoozeDigital, snoozeTimer);
#elif defined(__MK64FX512__)
SnoozeBlock config_teensy35(snoozeDigital, snoozeTimer);
#elif defined(__MK20DX256__)
SnoozeBlock config_teensy32(snoozeDigital, snoozeTimer);
#elif defined(__MK20DX128__)
SnoozeBlock config_teensy30(snoozeDigital, snoozeTimer);
#elif defined(__MKL26Z64__)
SnoozeBlock config_teensyLC(snoozeDigital, snoozeTimer);
#endif
int ipPin = 6;
int opPin =13;
int opPin2 =14;
int who = 0;
int restartSlavePin = 16;
int restartPin = 8;
void SetupSnooze(){
#if defined(__IMXRT1062__)
snoozeTimer.setTimer(60);// seconds
#else
snoozeTimer.setTimer(60000);// milliseconds
#endif
snoozeDigital.pinMode(ipPin, INPUT_PULLUP, FALLING);//pin, mode, type
}; // SetupSnooze
void setup() {
pinMode(ipPin,INPUT_PULLUP);
pinMode(opPin,OUTPUT);
pinMode(opPin2,OUTPUT);
pinMode(restartSlavePin,OUTPUT);
pinMode(restartPin,INPUT_PULLUP);
Serial.begin(9600);
SetupSnooze();
}
void BlinkLed( int numBlinks ){
int n;
for (n=0; n<numBlinks; n++){
digitalWrite(opPin,HIGH);
delay(200);
digitalWrite(opPin,LOW);
delay(200);
}
delay(1000);
}
void loop() {
int n = 0;
// BlinkLed(10);
digitalWrite(opPin,HIGH);
digitalWrite(opPin2,LOW);
digitalWrite(restartSlavePin,HIGH);
SerialUsb.flush();
delay(2000);
digitalWrite(opPin,LOW);
// put your main code here, to run repeatedly:
#if defined(__IMXRT1062__)
who = Snooze.sleep( config_teensy40 );// return module that woke processor
#elif defined(__MK66FX1M0__)
who = Snooze.sleep( config_teensy36 );// return module that woke processor
#elif defined(__MK64FX512__)
who = Snooze.sleep( config_teensy35 );// return module that woke processor
#elif defined(__MK20DX256__)
who = Snooze.sleep( config_teensy32 );// return module that woke processor
#elif defined(__MK20DX128__)
who = Snooze.sleep( config_teensy30 );// return module that woke processor
#elif defined(__MKL26Z64__)
who = Snooze.sleep( config_teensyLC );// return module that woke processor
#endif
digitalWrite(opPin,HIGH); //pin 13
digitalWrite(opPin2,HIGH); //pin 14
Serial.begin(9600);
delay(2000);
while(n<=2){
if (who==-1) {
BlinkLed(10);
}
else if (who==36) { //timer
BlinkLed(1);
}
else if (who==4) { // pin4
BlinkLed(2);
}
else {
BlinkLed(who );
}
++n;
}
digitalWrite(restartSlavePin,LOW);
SerialUsb.println("Waiting for key press");
SerialUsb.flush();
delay(100);
while (digitalRead(restartPin)==HIGH);
SerialUsb.flush();
// digitalWrite(restartSlavePin,HIGH);
}