Tutorial 2 - SOS: This is an embedded program which controls LED1 in order to show a blinking SOS pattern. The tutorial starts to organize helper functions like "morse" in a brick library which will grow and grow with each tutorial. Platform specifics are identified in "bricks/platform.h" by setting proper defines (like LED_INVERTED), which are used to achieve platform independent behaviour. The program has been tested on Nordic nRF51-DK and STM NUCLEO-F303K8, NUCLEO-F401RE and NUCLEO-L476RG.
Diff: bricks/blink.cpp
- Revision:
- 1:10299215b49e
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bricks/blink.cpp Sat Dec 10 18:34:23 2016 +0000 @@ -0,0 +1,32 @@ +// blink.cpp - send a morse pattern to LED1 +// +// Function morse() is one way for running LED1 with a blinking sequence using +// a busy wait, until the sequence is completed. +// +// morse(" x xxx x "); send one time morse sequence, interval = 0.2 +// morse(" x xxx x ",0.5); send one time morse sequence, interval = 0.5 +// + +#include "bricks/target.h" +#include "bricks/blink.h" + +#ifndef LED_INVERTED +# define LED_ON 1 +# define LED_OFF 0 +#else +# define LED_ON 0 +# define LED_OFF 1 +#endif + + static DigitalOut led(LED1); // LED1, being used for morse sequence + + void morse(const char *pattern, double interval) + { + for (; *pattern; pattern++) + { + led = (*pattern == ' ') ? LED_OFF : LED_ON; + wait(interval); // busy waiting for interval time + } + } + + \ No newline at end of file