31 lines
650 B
C++
31 lines
650 B
C++
|
#include "BitVM.h"
|
||
|
|
||
|
namespace control {
|
||
|
void fiberDone(void *a)
|
||
|
{
|
||
|
decr((Action)a);
|
||
|
release_fiber();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Schedules code that run in the background.
|
||
|
*/
|
||
|
//% help=control/in-background
|
||
|
//% blockId="control_in_background" block="run in background" blockGap=8
|
||
|
void inBackground(Action a) {
|
||
|
if (a != 0) {
|
||
|
incr(a);
|
||
|
create_fiber((void(*)(void*))action::run, (void*)a, fiberDone);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Resets the BBC micro:bit.
|
||
|
*/
|
||
|
//% weight=30 async help=control/reset
|
||
|
//% blockId="control_reset" block="reset"
|
||
|
void reset() {
|
||
|
uBit.reset();
|
||
|
}
|
||
|
}
|