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.

Dependencies:   mbed

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