diff --git a/wiringPi/test/wiringpi_test61_isr2.c b/wiringPi/test/wiringpi_test61_isr2.c index e0d21f5..a6b9a2f 100644 --- a/wiringPi/test/wiringpi_test61_isr2.c +++ b/wiringPi/test/wiringpi_test61_isr2.c @@ -1,5 +1,5 @@ -// WiringPi test program: 3.16 new ISR2 function with Kernel char device interface / sysfs successor -// Compile: gcc -Wall wiringpi_test1_device.c -o wiringpi_test1_device -lwiringPi +// WiringPi test program: 6.1 new ISR2 function with Kernel char device interface / sysfs successor +// Compile: gcc -Wall wiringpi_test61_isr2.c -o wiringpi_test61_isr2 -lwiringPi #include "wpi_test.h" #include @@ -189,7 +189,17 @@ int main (void) { wiringPiVersion(&major, &minor); - printf("WiringPi GPIO test program 6b (using GPIO%d (output) and GPIO%d (input))\n", GPIO, GPIOIN); + int result = piBoard40Pin(); + CheckNotSame("40-Pin board: ", result, -1); + if (result==0) { + printf("Old 28pin system\n"); + //GPIO = 23; + //GPIOIN = 24; + GPIO = 17; + GPIOIN = 18; + } + + printf("WiringPi GPIO test program 6.2 (using GPIO%d (output) and GPIO%d (input))\n", GPIO, GPIOIN); printf("ISR and ISR2 test (WiringPi %d.%d)\n", major, minor); wiringPiSetupGpio(); @@ -206,15 +216,16 @@ int main (void) { accuracy = 0.02; bounce_acc = 2.7; break; + case PI_MODEL_ZERO: + case PI_MODEL_ZERO_W: //ARM=1000MHz + accuracy = 0.02; + bounce_acc = 2.5; + break; default: accuracy = 0.012; bounce_acc = 1.0; break; } - if (!piBoard40Pin()) { - GPIO = 23; - GPIOIN = 24; - } int IRQpin = GPIOIN; int OUTpin = GPIO; diff --git a/wiringPi/test/wiringpi_test62_isr_wpin.c b/wiringPi/test/wiringpi_test62_isr_wpin.c index 00a599a..500e7c6 100644 --- a/wiringPi/test/wiringpi_test62_isr_wpin.c +++ b/wiringPi/test/wiringpi_test62_isr_wpin.c @@ -76,15 +76,24 @@ int main (void) { CheckNotSame("piBoardId", RaspberryPiModel, 0); - int IRQpin = GPIOIN; - int OUTpin = GPIO; - - switch(RaspberryPiModel) { - case PI_MODEL_4B: - case PI_MODEL_5: - pinMode(IRQpin, INPUT); - pinMode(OUTpin, OUTPUT); - digitalWrite (OUTpin, LOW) ; + int _is40pin = is40pin(); + CheckNotSame("is40pin", _is40pin, -1); + + if (_is40pin) { + + int IRQpin = GPIOIN; + int OUTpin = GPIO; + + pinMode(IRQpin, INPUT); + pinMode(OUTpin, OUTPUT); + digitalWrite(OUTpin, LOW); + delayMicroseconds(100); + CheckNotSame("Input", digitalRead(IRQpin), LOW); + digitalWrite(OUTpin, HIGH); + delayMicroseconds(100); + if (digitalRead(IRQpin)==HIGH) { + digitalWrite(OUTpin, LOW); + delayMicroseconds(100); printf("\nTesting IRQ @ WPI-GPIO%d with trigger @ WPI-GPIO%d rising\n", IRQpin, OUTpin); CheckSame("wiringPiISR", wiringPiISR(IRQpin, INT_EDGE_RISING, &wfiup), 0); @@ -108,12 +117,12 @@ int main (void) { printf("Error check - next call must be wrong!\n"); CheckSame("wiringPiISRStop with wrong pin, result code:", wiringPiISRStop(5555), EINVAL); - - pinMode(OUTpin, INPUT); - break; - default: - printf("unit test not possible with this hardware, need connection between Wiringpi pin 28 and 29!\n"); - break; + } else { + printf("Hardware connection for unit test missing!\n"); + printf("unit test, need connection between Wiringpi pin 28 and 29!\n"); + } + } else { + printf("unit test is for 40-pin hardware only!\n"); } return UnitTestState(); diff --git a/wiringPi/test/wiringpi_test7_bench.c b/wiringPi/test/wiringpi_test7_bench.c index 316c07e..9c0f221 100644 --- a/wiringPi/test/wiringpi_test7_bench.c +++ b/wiringPi/test/wiringpi_test7_bench.c @@ -66,7 +66,7 @@ int main (void) { case PI_MODEL_ZERO_W: //ARM=1000MHz fExpectTimedigitalWrite = 0.104; //us; fExpectTimedigitalRead = 0.135; //us - fExpectTimepinMode = 0.280; //us + fExpectTimepinMode = 0.360; //us break; case PI_MODEL_2: ToggleValue /= 4;