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
16 changed files with 86 additions and 111 deletions
1
.yotta_ignore
Normal file
1
.yotta_ignore
Normal file
|
@ -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.
|
||||
|
||||
The source 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
|
||||
sample you wish to use. Please be sure to note that only one sample is selected at a time.
|
||||
The source/examples folder contains a selection of samples demonstrating the capabilities and usage of the runtime APIs.
|
||||
To select a sample, simply copy the .cpp files from the relevant folder into the source/ folder.
|
||||
|
||||
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
|
||||
|
||||
|
@ -25,7 +49,7 @@ In addition to supporting development in C/C++, the runtime is also designed spe
|
|||
|
||||
## 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).
|
||||
|
||||
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 "MicroBitSamples.h"
|
||||
|
||||
#ifdef MICROBIT_SAMPLE_ACCELEROMETER_DEMO
|
||||
|
||||
MicroBit uBit;
|
||||
|
||||
|
@ -71,4 +68,3 @@ int main()
|
|||
}
|
||||
}
|
||||
|
||||
#endif
|
|
@ -24,9 +24,6 @@ DEALINGS IN THE SOFTWARE.
|
|||
*/
|
||||
|
||||
#include "MicroBit.h"
|
||||
#include "MicroBitSamples.h"
|
||||
|
||||
#ifdef MICROBIT_SAMPLE_BUTTON_EVENTS
|
||||
|
||||
MicroBit uBit;
|
||||
|
||||
|
@ -101,4 +98,3 @@ int main()
|
|||
uBit.sleep(10000);
|
||||
}
|
||||
|
||||
#endif
|
|
@ -24,9 +24,6 @@ DEALINGS IN THE SOFTWARE.
|
|||
*/
|
||||
|
||||
#include "MicroBit.h"
|
||||
#include "MicroBitSamples.h"
|
||||
|
||||
#ifdef MICROBIT_SAMPLE_GREYSCALE
|
||||
|
||||
MicroBit uBit;
|
||||
|
||||
|
@ -55,4 +52,3 @@ int main()
|
|||
uBit.sleep(10000);
|
||||
}
|
||||
|
||||
#endif
|
|
@ -24,9 +24,6 @@ DEALINGS IN THE SOFTWARE.
|
|||
*/
|
||||
|
||||
#include "MicroBit.h"
|
||||
#include "MicroBitSamples.h"
|
||||
|
||||
#ifdef MICROBIT_SAMPLE_HELLO_WORLD
|
||||
|
||||
MicroBit uBit;
|
||||
|
||||
|
@ -44,4 +41,3 @@ int main()
|
|||
release_fiber();
|
||||
}
|
||||
|
||||
#endif
|
|
@ -37,13 +37,10 @@ DEALINGS IN THE SOFTWARE.
|
|||
//
|
||||
|
||||
#include "MicroBit.h"
|
||||
#include "MicroBitSamples.h"
|
||||
|
||||
#define GAME_ON 0
|
||||
#define GAME_OVER 1
|
||||
|
||||
#ifdef MICROBIT_SAMPLE_INVADERS
|
||||
|
||||
struct Point
|
||||
{
|
||||
int x;
|
||||
|
@ -293,4 +290,3 @@ int main()
|
|||
spaceInvaders();
|
||||
}
|
||||
|
||||
#endif
|
|
@ -24,9 +24,6 @@ DEALINGS IN THE SOFTWARE.
|
|||
*/
|
||||
|
||||
#include "MicroBit.h"
|
||||
#include "MicroBitSamples.h"
|
||||
|
||||
#ifdef MICROBIT_SAMPLE_LOGIC_GATES
|
||||
|
||||
#define LOGIC_MODE_NOT 1
|
||||
#define LOGIC_MODE_AND 2
|
||||
|
@ -165,4 +162,3 @@ int main()
|
|||
}
|
||||
}
|
||||
|
||||
#endif
|
|
@ -24,9 +24,6 @@ DEALINGS IN THE SOFTWARE.
|
|||
*/
|
||||
|
||||
#include "MicroBit.h"
|
||||
#include "MicroBitSamples.h"
|
||||
|
||||
#ifdef MICROBIT_SAMPLE_SIMPLE_ANIMATION
|
||||
|
||||
MicroBit uBit;
|
||||
|
||||
|
@ -42,4 +39,3 @@ int main()
|
|||
uBit.display.scroll(img, 80, -1);
|
||||
}
|
||||
|
||||
#endif
|
7
source/examples/simple-radio-rx/config.json
Normal file
7
source/examples/simple-radio-rx/config.json
Normal file
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"microbit-dal":{
|
||||
"bluetooth":{
|
||||
"enabled": 0
|
||||
}
|
||||
}
|
||||
}
|
|
@ -24,9 +24,6 @@ DEALINGS IN THE SOFTWARE.
|
|||
*/
|
||||
|
||||
#include "MicroBit.h"
|
||||
#include "MicroBitSamples.h"
|
||||
|
||||
#ifdef MICROBIT_SAMPLE_SIMPLE_RADIO_RX
|
||||
|
||||
MicroBit uBit;
|
||||
|
||||
|
@ -53,4 +50,3 @@ int main()
|
|||
uBit.sleep(1000);
|
||||
}
|
||||
|
||||
#endif
|
7
source/examples/simple-radio-tx/config.json
Normal file
7
source/examples/simple-radio-tx/config.json
Normal file
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"microbit-dal":{
|
||||
"bluetooth":{
|
||||
"enabled": 0
|
||||
}
|
||||
}
|
||||
}
|
|
@ -24,9 +24,6 @@ DEALINGS IN THE SOFTWARE.
|
|||
*/
|
||||
|
||||
#include "MicroBit.h"
|
||||
#include "MicroBitSamples.h"
|
||||
|
||||
#ifdef MICROBIT_SAMPLE_SIMPLE_RADIO_TX
|
||||
|
||||
MicroBit uBit;
|
||||
|
||||
|
@ -49,4 +46,3 @@ int main()
|
|||
|
||||
}
|
||||
|
||||
#endif
|
|
@ -24,9 +24,6 @@ DEALINGS IN THE SOFTWARE.
|
|||
*/
|
||||
|
||||
#include "MicroBit.h"
|
||||
#include "MicroBitSamples.h"
|
||||
|
||||
#ifdef MICROBIT_SAMPLE_SNAKE
|
||||
|
||||
#define SNAKE_EMPTY 0
|
||||
#define SNAKE_UP 1
|
||||
|
@ -203,4 +200,3 @@ int main()
|
|||
snake();
|
||||
}
|
||||
|
||||
#endif
|
43
source/main.cpp
Normal file
43
source/main.cpp
Normal file
|
@ -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 a new issue