microbit-samples: Restructured repo for easier use
- each sample now has a separate folder, named main.cpp - added .yotta_ignore to prevent them all being linked together - updated docs accordingly
This commit is contained in:
parent
a9a4e43ffa
commit
24d01aa6f3
|
@ -0,0 +1 @@
|
||||||
|
source/examples
|
32
README.md
32
README.md
|
@ -2,9 +2,33 @@
|
||||||
|
|
||||||
A collection of example programs using the micro:bit runtime.
|
A collection of example programs using the micro:bit runtime.
|
||||||
|
|
||||||
The source folder contains a selection of samples demonstrating the capabilities and usage of the runtime APIs.
|
The source/examples folder contains a selection of samples demonstrating the capabilities and usage of the runtime APIs.
|
||||||
To select a sample, edit the `MicroBitSamples.h` file in the source folder and uncomment the line matching the
|
To select a sample, simply copy the .cpp files from the relevant folder into the source/ folder.
|
||||||
sample you wish to use. Please be sure to note that only one sample is selected at a time.
|
|
||||||
|
e.g. to select the "invaders" example:
|
||||||
|
|
||||||
|
```
|
||||||
|
cp source/examples/invaders/* source
|
||||||
|
```
|
||||||
|
|
||||||
|
and then to compile your sample:
|
||||||
|
|
||||||
|
```
|
||||||
|
yt clean
|
||||||
|
yt build
|
||||||
|
```
|
||||||
|
|
||||||
|
The HEX file for you micro:bit with then be generated and stored in build\bbc-microbit-classic-gcc\source\microbit-samples-combined.hex
|
||||||
|
|
||||||
|
n.b. Any samples using the low level RADIO APIs (such as simple-radio-rx and simple-radio-tx) require the bluetooth capabilities of the
|
||||||
|
micro:bit to be disabled. To do this, simply copy the config.json file from the sample to the top level of your project. Don't forget to
|
||||||
|
remove this file again later if you then want to use Bluetooth! For example:
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
cp source/examples/simple-radio-rx/config.json .
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
|
@ -25,7 +49,7 @@ In addition to supporting development in C/C++, the runtime is also designed spe
|
||||||
|
|
||||||
## microbit-dal Configuration
|
## microbit-dal Configuration
|
||||||
|
|
||||||
To configure the DAL a number options can be modified in `MicroBitConfig.h`, a full list and explanation
|
The DAL also contains a number of compile time options can be modified. A full list and explanation
|
||||||
can be found in our [documentation](http://lancaster-university.github.io/microbit-docs/advanced/#compile-time-options-with-microbitconfigh).
|
can be found in our [documentation](http://lancaster-university.github.io/microbit-docs/advanced/#compile-time-options-with-microbitconfigh).
|
||||||
|
|
||||||
Alternately, `yotta` can be used to configure the dal regardless of module/folder structure, through providing a
|
Alternately, `yotta` can be used to configure the dal regardless of module/folder structure, through providing a
|
||||||
|
|
|
@ -1,67 +0,0 @@
|
||||||
/*
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016 British Broadcasting Corporation.
|
|
||||||
This software is provided by Lancaster University by arrangement with the BBC.
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a
|
|
||||||
copy of this software and associated documentation files (the "Software"),
|
|
||||||
to deal in the Software without restriction, including without limitation
|
|
||||||
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
||||||
and/or sell copies of the Software, and to permit persons to whom the
|
|
||||||
Software is furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
||||||
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
||||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
DEALINGS IN THE SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef MICROBIT_SAMPLES_H
|
|
||||||
#define MICROBIT_SAMPLES_H
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// Uncomment ONE of the following #defines to select which sample to build.
|
|
||||||
// Afterwards, save this file and build the project. The resulting HEX
|
|
||||||
// file will contain your chosen sample.
|
|
||||||
//
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// Introductory examples using the uBit object.
|
|
||||||
//
|
|
||||||
|
|
||||||
#define MICROBIT_SAMPLE_HELLO_WORLD
|
|
||||||
//#define MICROBIT_SAMPLE_ACCELEROMETER_DEMO
|
|
||||||
//#define MICROBIT_SAMPLE_BUTTON_EVENTS
|
|
||||||
//#define MICROBIT_SAMPLE_SIMPLE_ANIMATION
|
|
||||||
//#define MICROBIT_SAMPLE_GREYSCALE
|
|
||||||
//#define MICROBIT_SAMPLE_LOGIC_GATES
|
|
||||||
//#define MICROBIT_SAMPLE_SNAKE
|
|
||||||
//#define MICROBIT_SAMPLE_INVADERS
|
|
||||||
|
|
||||||
//
|
|
||||||
// Examples using MicroBitRadio.
|
|
||||||
//
|
|
||||||
// n.b. you MUST disable the BLE stack to run these samples.
|
|
||||||
// Do this by setting "#define MICROBIT_BLE_ENABLED 0" in your MicroBitConfig.h file.
|
|
||||||
//
|
|
||||||
// For yotta based environments this file is located at:
|
|
||||||
// "yotta_modules/microbit-dal/inc/core/MicroBitConfig.h"
|
|
||||||
//
|
|
||||||
// For project compiling on mbed.org, it is located at:
|
|
||||||
// "microbit/microbit-dal/inc/core/MicroBitConfig.h"
|
|
||||||
//
|
|
||||||
|
|
||||||
//#define MICROBIT_SAMPLE_SIMPLE_RADIO_TX
|
|
||||||
//#define MICROBIT_SAMPLE_SIMPLE_RADIO_RX
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -24,9 +24,6 @@ DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "MicroBit.h"
|
#include "MicroBit.h"
|
||||||
#include "MicroBitSamples.h"
|
|
||||||
|
|
||||||
#ifdef MICROBIT_SAMPLE_ACCELEROMETER_DEMO
|
|
||||||
|
|
||||||
MicroBit uBit;
|
MicroBit uBit;
|
||||||
|
|
||||||
|
@ -71,4 +68,3 @@ int main()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
|
@ -24,9 +24,6 @@ DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "MicroBit.h"
|
#include "MicroBit.h"
|
||||||
#include "MicroBitSamples.h"
|
|
||||||
|
|
||||||
#ifdef MICROBIT_SAMPLE_BUTTON_EVENTS
|
|
||||||
|
|
||||||
MicroBit uBit;
|
MicroBit uBit;
|
||||||
|
|
||||||
|
@ -101,4 +98,3 @@ int main()
|
||||||
uBit.sleep(10000);
|
uBit.sleep(10000);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
|
@ -24,9 +24,6 @@ DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "MicroBit.h"
|
#include "MicroBit.h"
|
||||||
#include "MicroBitSamples.h"
|
|
||||||
|
|
||||||
#ifdef MICROBIT_SAMPLE_GREYSCALE
|
|
||||||
|
|
||||||
MicroBit uBit;
|
MicroBit uBit;
|
||||||
|
|
||||||
|
@ -55,4 +52,3 @@ int main()
|
||||||
uBit.sleep(10000);
|
uBit.sleep(10000);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
|
@ -24,9 +24,6 @@ DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "MicroBit.h"
|
#include "MicroBit.h"
|
||||||
#include "MicroBitSamples.h"
|
|
||||||
|
|
||||||
#ifdef MICROBIT_SAMPLE_HELLO_WORLD
|
|
||||||
|
|
||||||
MicroBit uBit;
|
MicroBit uBit;
|
||||||
|
|
||||||
|
@ -44,4 +41,3 @@ int main()
|
||||||
release_fiber();
|
release_fiber();
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
|
@ -37,13 +37,10 @@ DEALINGS IN THE SOFTWARE.
|
||||||
//
|
//
|
||||||
|
|
||||||
#include "MicroBit.h"
|
#include "MicroBit.h"
|
||||||
#include "MicroBitSamples.h"
|
|
||||||
|
|
||||||
#define GAME_ON 0
|
#define GAME_ON 0
|
||||||
#define GAME_OVER 1
|
#define GAME_OVER 1
|
||||||
|
|
||||||
#ifdef MICROBIT_SAMPLE_INVADERS
|
|
||||||
|
|
||||||
struct Point
|
struct Point
|
||||||
{
|
{
|
||||||
int x;
|
int x;
|
||||||
|
@ -293,4 +290,3 @@ int main()
|
||||||
spaceInvaders();
|
spaceInvaders();
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
|
@ -24,9 +24,6 @@ DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "MicroBit.h"
|
#include "MicroBit.h"
|
||||||
#include "MicroBitSamples.h"
|
|
||||||
|
|
||||||
#ifdef MICROBIT_SAMPLE_LOGIC_GATES
|
|
||||||
|
|
||||||
#define LOGIC_MODE_NOT 1
|
#define LOGIC_MODE_NOT 1
|
||||||
#define LOGIC_MODE_AND 2
|
#define LOGIC_MODE_AND 2
|
||||||
|
@ -165,4 +162,3 @@ int main()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
|
@ -24,9 +24,6 @@ DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "MicroBit.h"
|
#include "MicroBit.h"
|
||||||
#include "MicroBitSamples.h"
|
|
||||||
|
|
||||||
#ifdef MICROBIT_SAMPLE_SIMPLE_ANIMATION
|
|
||||||
|
|
||||||
MicroBit uBit;
|
MicroBit uBit;
|
||||||
|
|
||||||
|
@ -42,4 +39,3 @@ int main()
|
||||||
uBit.display.scroll(img, 80, -1);
|
uBit.display.scroll(img, 80, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"microbit-dal":{
|
||||||
|
"bluetooth":{
|
||||||
|
"enabled": 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -24,9 +24,6 @@ DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "MicroBit.h"
|
#include "MicroBit.h"
|
||||||
#include "MicroBitSamples.h"
|
|
||||||
|
|
||||||
#ifdef MICROBIT_SAMPLE_SIMPLE_RADIO_RX
|
|
||||||
|
|
||||||
MicroBit uBit;
|
MicroBit uBit;
|
||||||
|
|
||||||
|
@ -53,4 +50,3 @@ int main()
|
||||||
uBit.sleep(1000);
|
uBit.sleep(1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
"microbit-dal":{
|
||||||
|
"bluetooth":{
|
||||||
|
"enabled": 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -24,9 +24,6 @@ DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "MicroBit.h"
|
#include "MicroBit.h"
|
||||||
#include "MicroBitSamples.h"
|
|
||||||
|
|
||||||
#ifdef MICROBIT_SAMPLE_SIMPLE_RADIO_TX
|
|
||||||
|
|
||||||
MicroBit uBit;
|
MicroBit uBit;
|
||||||
|
|
||||||
|
@ -49,4 +46,3 @@ int main()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
|
@ -24,9 +24,6 @@ DEALINGS IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "MicroBit.h"
|
#include "MicroBit.h"
|
||||||
#include "MicroBitSamples.h"
|
|
||||||
|
|
||||||
#ifdef MICROBIT_SAMPLE_SNAKE
|
|
||||||
|
|
||||||
#define SNAKE_EMPTY 0
|
#define SNAKE_EMPTY 0
|
||||||
#define SNAKE_UP 1
|
#define SNAKE_UP 1
|
||||||
|
@ -203,4 +200,3 @@ int main()
|
||||||
snake();
|
snake();
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
/*
|
||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2016 British Broadcasting Corporation.
|
||||||
|
This software is provided by Lancaster University by arrangement with the BBC.
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
copy of this software and associated documentation files (the "Software"),
|
||||||
|
to deal in the Software without restriction, including without limitation
|
||||||
|
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||||
|
and/or sell copies of the Software, and to permit persons to whom the
|
||||||
|
Software is furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||||
|
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
|
DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "MicroBit.h"
|
||||||
|
|
||||||
|
MicroBit uBit;
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
// Initialise the micro:bit runtime.
|
||||||
|
uBit.init();
|
||||||
|
|
||||||
|
// Insert your code here!
|
||||||
|
uBit.display.scroll("HELLO WORLD! :)");
|
||||||
|
|
||||||
|
// If main exits, there may still be other fibers running or registered event handlers etc.
|
||||||
|
// Simply release this fiber, which will mean we enter the scheduler. Worse case, we then
|
||||||
|
// sit in the idle task forever, in a power efficient sleep.
|
||||||
|
release_fiber();
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue