@@ -696,6 +696,7 @@ void jshPinSetState(Pin pin, JshPinState state) {
696
696
#endif
697
697
switch (state ) {
698
698
case JSHPINSTATE_UNDEFINED :
699
+ case JSHPINSTATE_ADC_IN :
699
700
reg -> PIN_CNF [ipin ] = (GPIO_PIN_CNF_SENSE_Disabled << GPIO_PIN_CNF_SENSE_Pos )
700
701
| (GPIO_PIN_CNF_DRIVE_S0S1 << GPIO_PIN_CNF_DRIVE_Pos )
701
702
| (GPIO_PIN_CNF_PULL_Disabled << GPIO_PIN_CNF_PULL_Pos )
@@ -728,7 +729,6 @@ void jshPinSetState(Pin pin, JshPinState state) {
728
729
| (GPIO_PIN_CNF_DIR_Output << GPIO_PIN_CNF_DIR_Pos );
729
730
break ;
730
731
case JSHPINSTATE_GPIO_IN :
731
- case JSHPINSTATE_ADC_IN :
732
732
case JSHPINSTATE_USART_IN :
733
733
nrf_gpio_cfg_input (ipin , NRF_GPIO_PIN_NOPULL );
734
734
break ;
@@ -784,13 +784,14 @@ JshPinState jshPinGetState(Pin pin) {
784
784
return JSHPINSTATE_GPIO_OUT |hi ;
785
785
}
786
786
} else {
787
+ bool pinConnected = ((p & GPIO_PIN_CNF_INPUT_Msk )>>GPIO_PIN_CNF_INPUT_Pos ) == GPIO_PIN_CNF_INPUT_Connect ;
787
788
// Input
788
789
if ((p & GPIO_PIN_CNF_PULL_Msk )== (GPIO_PIN_CNF_PULL_Pullup <<GPIO_PIN_CNF_PULL_Pos )) {
789
790
return negated ? JSHPINSTATE_GPIO_IN_PULLDOWN : JSHPINSTATE_GPIO_IN_PULLUP ;
790
791
} else if ((p & GPIO_PIN_CNF_PULL_Msk )== (GPIO_PIN_CNF_PULL_Pulldown <<GPIO_PIN_CNF_PULL_Pos )) {
791
792
return negated ? JSHPINSTATE_GPIO_IN_PULLUP : JSHPINSTATE_GPIO_IN_PULLDOWN ;
792
793
} else {
793
- return JSHPINSTATE_GPIO_IN ;
794
+ return pinConnected ? JSHPINSTATE_GPIO_IN : JSHPINSTATE_ADC_IN ;
794
795
}
795
796
}
796
797
}
0 commit comments