int IRQpin = GPIOIN;
int OUTpin = GPIO;
- if (RaspberryPiModel==PI_MODEL_4B) {
- pinMode(IRQpin, INPUT);
- pinMode(OUTpin, OUTPUT);
- digitalWrite (OUTpin, LOW) ;
-
- printf("\nTesting IRQ @ WPI-GPIO%d with trigger @ WPI-GPIO%d rising\n", IRQpin, OUTpin);
- CheckSame("wiringPiISR", wiringPiISR(IRQpin, INT_EDGE_RISING, &wfiup), 0);
- sleep(1);
- StartSequence(INT_EDGE_RISING, OUTpin, 3 , 3);
- sleep(1);
- CheckSame("wiringPiISRStop", wiringPiISRStop(IRQpin), 0);
- printf("\n.IRQ off\n");
- sleep(1);
- StartSequence(INT_EDGE_RISING, OUTpin, 2, 0);
-
- printf("\nTesting IRQ @ WPI-GPIO%d with trigger @ WPI-GPIO%d falling\n", IRQpin, OUTpin);
- CheckSame("wiringPiISR", wiringPiISR(IRQpin, INT_EDGE_RISING, &wfidown), 0);
- sleep(1);
- StartSequence(INT_EDGE_FALLING, OUTpin, 4, -4);
- sleep(1);
- CheckSame("wiringPiISRStop", wiringPiISRStop(IRQpin), 0);
- printf("\n.IRQ off\n");
- sleep(1);
- StartSequence(INT_EDGE_RISING, OUTpin, 2, 0);
-
- printf("Error check - next call must be wrong!\n");
- CheckSame("wiringPiISRStop with wrong pin, result code:", wiringPiISRStop(5555), EINVAL);
-
- pinMode(OUTpin, INPUT);
+ switch(RaspberryPiModel) {
+ case PI_MODEL_4B:
+ case PI_MODEL_5:
+ pinMode(IRQpin, INPUT);
+ pinMode(OUTpin, OUTPUT);
+ digitalWrite (OUTpin, LOW) ;
+
+ printf("\nTesting IRQ @ WPI-GPIO%d with trigger @ WPI-GPIO%d rising\n", IRQpin, OUTpin);
+ CheckSame("wiringPiISR", wiringPiISR(IRQpin, INT_EDGE_RISING, &wfiup), 0);
+ sleep(1);
+ StartSequence(INT_EDGE_RISING, OUTpin, 3 , 3);
+ sleep(1);
+ CheckSame("wiringPiISRStop", wiringPiISRStop(IRQpin), 0);
+ printf("\n.IRQ off\n");
+ sleep(1);
+ StartSequence(INT_EDGE_RISING, OUTpin, 2, 0);
+
+ printf("\nTesting IRQ @ WPI-GPIO%d with trigger @ WPI-GPIO%d falling\n", IRQpin, OUTpin);
+ CheckSame("wiringPiISR", wiringPiISR(IRQpin, INT_EDGE_RISING, &wfidown), 0);
+ sleep(1);
+ StartSequence(INT_EDGE_FALLING, OUTpin, 4, -4);
+ sleep(1);
+ CheckSame("wiringPiISRStop", wiringPiISRStop(IRQpin), 0);
+ printf("\n.IRQ off\n");
+ sleep(1);
+ StartSequence(INT_EDGE_RISING, OUTpin, 2, 0);
+
+ 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;
}
return UnitTestState();