File tree 10 files changed +44
-2
lines changed
circuitplayground_express
10 files changed +44
-2
lines changed Original file line number Diff line number Diff line change @@ -44,3 +44,6 @@ void board_init(void)
44
44
bool board_requests_safe_mode (void ) {
45
45
return false;
46
46
}
47
+
48
+ void reset_board (void ) {
49
+ }
Original file line number Diff line number Diff line change @@ -39,4 +39,7 @@ void board_init(void);
39
39
// way.
40
40
bool board_requests_safe_mode (void );
41
41
42
+ // Reset the state of off MCU components such as neopixels.
43
+ void reset_board (void );
44
+
42
45
#endif // __MICROPY_INCLUDED_ATMEL_SAMD_BOARDS_BOARD_H__
Original file line number Diff line number Diff line change 24
24
* THE SOFTWARE.
25
25
*/
26
26
27
+ #include <string.h>
28
+
27
29
#include "boards/board.h"
28
30
#include "asf/sam0/drivers/port/port.h"
29
31
#include "common-hal/microcontroller/Pin.h"
32
+ #include "shared-bindings/digitalio/DigitalInOut.h"
33
+ #include "shared-bindings/neopixel_write/__init__.h"
34
+ #include "samd21_pins.h"
30
35
31
36
void board_init (void )
32
37
{
@@ -47,3 +52,14 @@ bool board_requests_safe_mode(void) {
47
52
reset_pin (PIN_PA28 );
48
53
return safe_mode ;
49
54
}
55
+
56
+ void reset_board (void ) {
57
+ uint8_t empty [30 ];
58
+ memset (empty , 0 , 30 );
59
+ digitalio_digitalinout_obj_t neopixel_pin ;
60
+ common_hal_digitalio_digitalinout_construct (& neopixel_pin , & pin_PB23 );
61
+ common_hal_digitalio_digitalinout_switch_to_output (& neopixel_pin , false,
62
+ DRIVE_MODE_PUSH_PULL );
63
+ common_hal_neopixel_write (& neopixel_pin , empty , 30 );
64
+ common_hal_digitalio_digitalinout_deinit (& neopixel_pin );
65
+ }
Original file line number Diff line number Diff line change @@ -33,3 +33,6 @@ void board_init(void)
33
33
bool board_requests_safe_mode (void ) {
34
34
return false;
35
35
}
36
+
37
+ void reset_board (void ) {
38
+ }
Original file line number Diff line number Diff line change @@ -33,3 +33,6 @@ void board_init(void)
33
33
bool board_requests_safe_mode (void ) {
34
34
return false;
35
35
}
36
+
37
+ void reset_board (void ) {
38
+ }
Original file line number Diff line number Diff line change @@ -33,3 +33,6 @@ void board_init(void)
33
33
bool board_requests_safe_mode (void ) {
34
34
return false;
35
35
}
36
+
37
+ void reset_board (void ) {
38
+ }
Original file line number Diff line number Diff line change @@ -33,3 +33,6 @@ void board_init(void)
33
33
bool board_requests_safe_mode (void ) {
34
34
return false;
35
35
}
36
+
37
+ void reset_board (void ) {
38
+ }
Original file line number Diff line number Diff line change @@ -44,3 +44,6 @@ void board_init(void)
44
44
bool board_requests_safe_mode (void ) {
45
45
return false;
46
46
}
47
+
48
+ void reset_board (void ) {
49
+ }
Original file line number Diff line number Diff line change 26
26
27
27
#include "boards/board.h"
28
28
29
- void board_init (void )
30
- {
29
+ void board_init (void ) {
31
30
}
32
31
33
32
bool board_requests_safe_mode (void ) {
34
33
return false;
35
34
}
35
+
36
+ void reset_board (void ) {
37
+ }
Original file line number Diff line number Diff line change @@ -594,6 +594,7 @@ int main(void) {
594
594
595
595
// Reset everything and prep MicroPython to run boot.py.
596
596
reset_samd21 ();
597
+ reset_board ();
597
598
reset_mp ();
598
599
599
600
// Turn on autoreload by default but before boot.py in case it wants to change it.
@@ -656,6 +657,7 @@ int main(void) {
656
657
autoreload_enable ();
657
658
}
658
659
reset_samd21 ();
660
+ reset_board ();
659
661
reset_mp ();
660
662
}
661
663
if (exit_code == PYEXEC_FORCED_EXIT ) {
@@ -665,6 +667,7 @@ int main(void) {
665
667
first_run = false;
666
668
skip_repl = start_mp (safe_mode );
667
669
reset_samd21 ();
670
+ reset_board ();
668
671
reset_mp ();
669
672
} else if (exit_code != 0 ) {
670
673
break ;
You can’t perform that action at this time.
0 commit comments