diff options
author | Daniel Garcia <dgarcia@dgarcia.net> | 2019-08-12 06:50:38 +0300 |
---|---|---|
committer | Daniel Garcia <dgarcia@dgarcia.net> | 2019-08-12 06:50:38 +0300 |
commit | 0b337fb865a26dfa350b5220b0c54a3819edd82a (patch) | |
tree | 25940ef988459a8ee3991066b2c5a3a2fc0dfdc7 | |
parent | 031d022d4ce8285f83c4e836defb105a8bf2f131 (diff) |
Updating the pintest program w/Teensy 4 defs
-rw-r--r-- | examples/Pintest/Pintest.ino | 49 |
1 files changed, 37 insertions, 12 deletions
diff --git a/examples/Pintest/Pintest.ino b/examples/Pintest/Pintest.ino index a63f0d46..f0a0dadc 100644 --- a/examples/Pintest/Pintest.ino +++ b/examples/Pintest/Pintest.ino @@ -1,7 +1,10 @@ -#include <FastSPI_LED.h> +#include <FastLED.h> + +char fullstrBuffer[64]; const char *getPort(void *portPtr) { +// AVR port checks #ifdef PORTA if(portPtr == (void*)&PORTA) { return "PORTA"; } #endif @@ -38,6 +41,8 @@ const char *getPort(void *portPtr) { #ifdef PORTL if(portPtr == (void*)&PORTL) { return "PORTL"; } #endif + +// Teensy 3.x port checks #ifdef GPIO_A_PDOR if(portPtr == (void*)&GPIO_A_PDOR) { return "GPIO_A_PDOR"; } #endif @@ -65,7 +70,24 @@ const char *getPort(void *portPtr) { #ifdef REG_PIO_D_ODSR if(portPtr == (void*)®_PIO_D_ODSR) { return "REG_PIO_D_ODSR"; } #endif - return "unknown"; + +// Teensy 4 port checks +#ifdef GPIO1_DR + if(portPtr == (void*)&GPIO1_DR) { return "GPIO1_DR"; } +#endif +#ifdef GPIO2_DR +if(portPtr == (void*)&GPIO2_DR) { return "GPIO21_DR"; } +#endif +#ifdef GPIO3_DR +if(portPtr == (void*)&GPIO3_DR) { return "GPIO3_DR"; } +#endif +#ifdef GPIO4_DR +if(portPtr == (void*)&GPIO4_DR) { return "GPIO4_DR"; } +#endif + String unknown_str = "Unknown: " + String((size_t)portPtr, HEX); + strncpy(fullstrBuffer, unknown_str.c_str(), unknown_str.length()); + fullstrBuffer[sizeof(fullstrBuffer)-1] = '\0'; + return fullstrBuffer; } template<uint8_t PIN> void CheckPin() @@ -74,32 +96,35 @@ template<uint8_t PIN> void CheckPin() RwReg *systemThinksPortIs = portOutputRegister(digitalPinToPort(PIN)); RwReg systemThinksMaskIs = digitalPinToBitMask(PIN); - + Serial.print("Pin "); Serial.print(PIN); Serial.print(": Port "); - - if(systemThinksPortIs == FastPin<PIN>::port()) { + + if(systemThinksPortIs == FastPin<PIN>::port()) { Serial.print("valid & mask "); - } else { - Serial.print("invalid, is "); Serial.print(getPort((void*)FastPin<PIN>::port())); Serial.print(" should be "); + } else { + Serial.print("invalid, is "); Serial.print(getPort((void*)FastPin<PIN>::port())); Serial.print(" should be "); Serial.print(getPort((void*)systemThinksPortIs)); Serial.print(" & mask "); } if(systemThinksMaskIs == FastPin<PIN>::mask()) { Serial.println("valid."); - } else { + } else { Serial.print("invalid, is "); Serial.print(FastPin<PIN>::mask()); Serial.print(" should be "); Serial.println(systemThinksMaskIs); } -} +} template<> void CheckPin<-1> () {} -void setup() { +void setup() { + delay(5000); Serial.begin(38400); Serial.println("resetting!"); } -void loop() { +void loop() { CheckPin<MAX_PIN>(); - delay(10000); + delay(100000); + + Serial.print("GPIO_1_DR is: "); Serial.print(getPort((void*)&(GPIO1_DR))); } |