Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: BLE_API mbed-dev-bin nRF51822
Fork of microbit-dal by
Diff: source/core/MicroBitDevice.cpp
- Revision:
- 47:69f452b1a5c9
- Parent:
- 1:8aa5cdb4ab67
- Child:
- 57:290a35cb9981
--- a/source/core/MicroBitDevice.cpp Wed Jul 13 12:18:25 2016 +0100
+++ b/source/core/MicroBitDevice.cpp Wed Jul 13 12:18:26 2016 +0100
@@ -159,7 +159,7 @@
/**
* Disables all interrupts and user processing.
* Displays "=(" and an accompanying status code on the default display.
- * @param statusCode the appropriate status code - 0 means no code will be displayed. Status codes must be in the range 0-255.
+ * @param statusCode the appropriate status code, must be in the range 0-999.
*
* @code
* microbit_panic(20);
@@ -186,19 +186,18 @@
PortOut LEDMatrix(Port0, row_mask | col_mask);
- if(statusCode < 0 || statusCode > 255)
+ if(statusCode < 0 || statusCode > 999)
statusCode = 0;
__disable_irq(); //stop ALL interrupts
//point to the font stored in Flash
- const unsigned char * fontLocation = MicroBitFont::defaultFont;
+ const unsigned char* fontLocation = MicroBitFont::defaultFont;
//get individual digits of status code, and place it into a single array/
const uint8_t* chars[MICROBIT_PANIC_ERROR_CHARS] = { panicFace, fontLocation+((((statusCode/100 % 10)+48)-MICROBIT_FONT_ASCII_START) * 5), fontLocation+((((statusCode/10 % 10)+48)-MICROBIT_FONT_ASCII_START) * 5), fontLocation+((((statusCode % 10)+48)-MICROBIT_FONT_ASCII_START) * 5)};
- //enter infinite loop.
while(count)
{
//iterate through our chars :)
@@ -234,10 +233,13 @@
col_data = ~col_data << microbitMatrixMap.columnStart & col_mask;
- LEDMatrix = col_data | row_data;
+ if(chars[characterCount] == chars[(characterCount - 1) % MICROBIT_PANIC_ERROR_CHARS] && outerCount < 50)
+ LEDMatrix = 0;
+ else
+ LEDMatrix = col_data | row_data;
//burn cycles
- i = 1000;
+ i = 2000;
while(i>0)
{
// Check if the reset button has been pressed. Interrupts are disabled, so the normal method can't be relied upon...
@@ -372,4 +374,4 @@
void microbit_seed_random(uint32_t seed)
{
random_value = seed;
-}
+}
\ No newline at end of file
