15
15
#include "jsinteractive.h"
16
16
#include "jshardware.h"
17
17
#include "jstimer.h"
18
+ #include "jspin.h"
18
19
#include "jswrapper.h"
19
20
#include "jswrap_json.h"
20
21
#include "jswrap_io.h"
@@ -640,11 +641,11 @@ void jsiDumpHardwareInitialisation(vcbprintf_callback user_callback, void *user_
640
641
if (IS_PIN_USED_INTERNALLY (pin )) continue ;
641
642
JshPinState state = jshPinGetState (pin );
642
643
JshPinState statem = state & JSHPINSTATE_MASK ;
643
- if (statem == JSHPINSTATE_GPIO_OUT || statem == JSHPINSTATE_GPIO_OUT_OPENDRAIN ) {
644
+ if (statem == JSHPINSTATE_GPIO_OUT && ! jshGetPinStateIsManual ( pin ) ) {
644
645
bool isOn = (state & JSHPINSTATE_PIN_IS_ON )!= 0 ;
645
646
if (!isOn && IS_PIN_A_LED (pin )) continue ;
646
- cbprintf (user_callback , user_data , "digitalWrite(%p,%d);\n" ,pin ,isOn ?1 :0 );
647
- } else if ( /*statem == JSHPINSTATE_GPIO_IN ||*/ statem == JSHPINSTATE_GPIO_IN_PULLUP || statem == JSHPINSTATE_GPIO_IN_PULLDOWN ) {
647
+ cbprintf (user_callback , user_data , "digitalWrite(%p, %d);\n" ,pin ,isOn ?1 :0 );
648
+ } else {
648
649
#ifdef DEFAULT_CONSOLE_RX_PIN
649
650
// the console input pin is always a pullup now - which is expected
650
651
if (pin == DEFAULT_CONSOLE_RX_PIN &&
@@ -655,14 +656,15 @@ void jsiDumpHardwareInitialisation(vcbprintf_callback user_callback, void *user_
655
656
statem == BTN1_PINSTATE ) continue ;
656
657
#endif
657
658
// don't bother with normal inputs, as they come up in this state (ish) anyway
658
- const char * s = "" ;
659
- if (statem == JSHPINSTATE_GPIO_IN_PULLUP ) s = "_pullup" ;
660
- if (statem == JSHPINSTATE_GPIO_IN_PULLDOWN ) s = "_pulldown" ;
661
- cbprintf (user_callback , user_data , "pinMode(%p,\"input%s\");\n" ,pin ,s );
659
+ const char * s = 0 ;
660
+ // JSHPINSTATE_GPIO_IN is the default - don't do anything for it
661
+ if (statem == JSHPINSTATE_GPIO_IN_PULLUP ) s = "input_pullup" ;
662
+ else if (statem == JSHPINSTATE_GPIO_IN_PULLDOWN ) s = "input_pulldown" ;
663
+ else if (statem == JSHPINSTATE_GPIO_OUT ) s = "output" ;
664
+ else if (statem == JSHPINSTATE_GPIO_OUT_OPENDRAIN ) s = "opendrain" ;
665
+ if (s ) cbprintf (user_callback , user_data , "pinMode(%p, \"%s\");\n" ,pin ,s );
662
666
}
663
667
664
- if (statem == JSHPINSTATE_GPIO_OUT_OPENDRAIN )
665
- cbprintf (user_callback , user_data , "pinMode(%p,\"opendrain\");\n" ,pin );
666
668
}
667
669
}
668
670
0 commit comments