diff --git a/Code/devterm_wiringpi_cpi/wiringPi/wiringPi.c b/Code/devterm_wiringpi_cpi/wiringPi/wiringPi.c index b6f273f..6c42106 100644 --- a/Code/devterm_wiringpi_cpi/wiringPi/wiringPi.c +++ b/Code/devterm_wiringpi_cpi/wiringPi/wiringPi.c @@ -1446,7 +1446,14 @@ void pinMode (int pin, int mode) setupCheck ("pinMode") ; #ifdef CONFIG_CLOCKWORKPI - CPiPinMode(pin, mode); + + if ((pin & PI_GPIO_MASK) == 0) // On-board pin + { + CPiPinMode(pin, mode); + } else if ((node = wiringPiFindNode (pin)) != NULL) + { + node->pinMode (node, pin, mode) ; + } return; #endif @@ -1565,7 +1572,14 @@ int digitalRead (int pin) struct wiringPiNodeStruct *node = wiringPiNodes ; #ifdef CONFIG_CLOCKWORKPI - return CPiDigitalRead(pin); + if ((pin & PI_GPIO_MASK) == 0) // On-Board Pin + { + return CPiDigitalRead(pin); + } else { + if ((node = wiringPiFindNode (pin)) == NULL) + return LOW ; + return node->digitalRead (node, pin) ; + } #endif if ((pin & PI_GPIO_MASK) == 0) // On-Board Pin @@ -1632,7 +1646,13 @@ void digitalWrite (int pin, int value) struct wiringPiNodeStruct *node = wiringPiNodes ; #ifdef CONFIG_CLOCKWORKPI - CPiDigitalWrite(pin, value); + if ((pin & PI_GPIO_MASK) == 0) // On-Board Pin + { + CPiDigitalWrite(pin, value); + } else { + if ((node = wiringPiFindNode (pin)) != NULL) + node->digitalWrite (node, pin, value) ; + } return; #endif