diff options
| author | Scott Shawcroft <scott.shawcroft@gmail.com> | 2017-06-16 15:40:15 -0700 |
|---|---|---|
| committer | Scott Shawcroft <scott.shawcroft@gmail.com> | 2017-06-16 15:40:15 -0700 |
| commit | a715bf6bac8b5a3316cf96181960a82d33aca31b (patch) | |
| tree | 54763c6c00d745cadf6bc745b0cb481eda556fa3 /atmel-samd/boards | |
| parent | 3e23464b1ed11710714a4d6eaa98c2c84ec6f4dd (diff) | |
atmel-samd: Introduce board reset mechanic used on CircuitPlayground1.0.0-rc.1
Express to ensure the Neopixels are off after reloads.
Diffstat (limited to 'atmel-samd/boards')
| -rw-r--r-- | atmel-samd/boards/arduino_zero/board.c | 3 | ||||
| -rw-r--r-- | atmel-samd/boards/board.h | 3 | ||||
| -rw-r--r-- | atmel-samd/boards/circuitplayground_express/board.c | 16 | ||||
| -rw-r--r-- | atmel-samd/boards/feather_m0_adalogger/board.c | 3 | ||||
| -rw-r--r-- | atmel-samd/boards/feather_m0_basic/board.c | 3 | ||||
| -rw-r--r-- | atmel-samd/boards/feather_m0_express/board.c | 3 | ||||
| -rw-r--r-- | atmel-samd/boards/gemma_m0/board.c | 3 | ||||
| -rw-r--r-- | atmel-samd/boards/metro_m0_express/board.c | 3 | ||||
| -rw-r--r-- | atmel-samd/boards/trinket_m0/board.c | 6 |
9 files changed, 41 insertions, 2 deletions
diff --git a/atmel-samd/boards/arduino_zero/board.c b/atmel-samd/boards/arduino_zero/board.c index 519e5db1a..419280274 100644 --- a/atmel-samd/boards/arduino_zero/board.c +++ b/atmel-samd/boards/arduino_zero/board.c @@ -44,3 +44,6 @@ void board_init(void) bool board_requests_safe_mode(void) { return false; } + +void reset_board(void) { +} diff --git a/atmel-samd/boards/board.h b/atmel-samd/boards/board.h index a5d96c550..72f3563a9 100644 --- a/atmel-samd/boards/board.h +++ b/atmel-samd/boards/board.h @@ -39,4 +39,7 @@ void board_init(void); // way. bool board_requests_safe_mode(void); +// Reset the state of off MCU components such as neopixels. +void reset_board(void); + #endif // __MICROPY_INCLUDED_ATMEL_SAMD_BOARDS_BOARD_H__ diff --git a/atmel-samd/boards/circuitplayground_express/board.c b/atmel-samd/boards/circuitplayground_express/board.c index 9ed56d952..3b7ccff46 100644 --- a/atmel-samd/boards/circuitplayground_express/board.c +++ b/atmel-samd/boards/circuitplayground_express/board.c @@ -24,9 +24,14 @@ * THE SOFTWARE. */ +#include <string.h> + #include "boards/board.h" #include "asf/sam0/drivers/port/port.h" #include "common-hal/microcontroller/Pin.h" +#include "shared-bindings/digitalio/DigitalInOut.h" +#include "shared-bindings/neopixel_write/__init__.h" +#include "samd21_pins.h" void board_init(void) { @@ -47,3 +52,14 @@ bool board_requests_safe_mode(void) { reset_pin(PIN_PA28); return safe_mode; } + +void reset_board(void) { + uint8_t empty[30]; + memset(empty, 0, 30); + digitalio_digitalinout_obj_t neopixel_pin; + common_hal_digitalio_digitalinout_construct(&neopixel_pin, &pin_PB23); + common_hal_digitalio_digitalinout_switch_to_output(&neopixel_pin, false, + DRIVE_MODE_PUSH_PULL); + common_hal_neopixel_write(&neopixel_pin, empty, 30); + common_hal_digitalio_digitalinout_deinit(&neopixel_pin); +} diff --git a/atmel-samd/boards/feather_m0_adalogger/board.c b/atmel-samd/boards/feather_m0_adalogger/board.c index 06e67e11c..1ecbe167c 100644 --- a/atmel-samd/boards/feather_m0_adalogger/board.c +++ b/atmel-samd/boards/feather_m0_adalogger/board.c @@ -33,3 +33,6 @@ void board_init(void) bool board_requests_safe_mode(void) { return false; } + +void reset_board(void) { +} diff --git a/atmel-samd/boards/feather_m0_basic/board.c b/atmel-samd/boards/feather_m0_basic/board.c index 06e67e11c..1ecbe167c 100644 --- a/atmel-samd/boards/feather_m0_basic/board.c +++ b/atmel-samd/boards/feather_m0_basic/board.c @@ -33,3 +33,6 @@ void board_init(void) bool board_requests_safe_mode(void) { return false; } + +void reset_board(void) { +} diff --git a/atmel-samd/boards/feather_m0_express/board.c b/atmel-samd/boards/feather_m0_express/board.c index 06e67e11c..1ecbe167c 100644 --- a/atmel-samd/boards/feather_m0_express/board.c +++ b/atmel-samd/boards/feather_m0_express/board.c @@ -33,3 +33,6 @@ void board_init(void) bool board_requests_safe_mode(void) { return false; } + +void reset_board(void) { +} diff --git a/atmel-samd/boards/gemma_m0/board.c b/atmel-samd/boards/gemma_m0/board.c index 06e67e11c..1ecbe167c 100644 --- a/atmel-samd/boards/gemma_m0/board.c +++ b/atmel-samd/boards/gemma_m0/board.c @@ -33,3 +33,6 @@ void board_init(void) bool board_requests_safe_mode(void) { return false; } + +void reset_board(void) { +} diff --git a/atmel-samd/boards/metro_m0_express/board.c b/atmel-samd/boards/metro_m0_express/board.c index 519e5db1a..419280274 100644 --- a/atmel-samd/boards/metro_m0_express/board.c +++ b/atmel-samd/boards/metro_m0_express/board.c @@ -44,3 +44,6 @@ void board_init(void) bool board_requests_safe_mode(void) { return false; } + +void reset_board(void) { +} diff --git a/atmel-samd/boards/trinket_m0/board.c b/atmel-samd/boards/trinket_m0/board.c index 06e67e11c..221463146 100644 --- a/atmel-samd/boards/trinket_m0/board.c +++ b/atmel-samd/boards/trinket_m0/board.c @@ -26,10 +26,12 @@ #include "boards/board.h" -void board_init(void) -{ +void board_init(void) { } bool board_requests_safe_mode(void) { return false; } + +void reset_board(void) { +} |
