Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: main.cpp
- Revision:
- 0:c0996e3989ce
diff -r 000000000000 -r c0996e3989ce main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Wed Feb 22 14:14:17 2017 +0000 @@ -0,0 +1,83 @@ +/* Morse Code + +(c) Dr Craig A. Evans, University of Leeds + +A dot is 1 time unit +A dash is 3 time units +Space between parts of a letter is 1 unit +Space between letters is 3 units +Space between words is 7 units + +*/ + +#include "mbed.h" + +DigitalOut red_led(p24); +DigitalOut green_led(p23); +DigitalOut blue_led(p22); + +void init_leds(); +void dot(); +void dash(); +void morse_s(); +void morse_o(); +void sos(); + +// global variable for unit time in milli-seconds +int g_time_unit_ms = 150; + +int main() +{ + init_leds(); + + while(1) { + sos(); + wait_ms(7*g_time_unit_ms); // space between words is 7 units + } +} + +// LEDs are active low and so writing a 1 turns them off +void init_leds() +{ + red_led.write(1); + green_led.write(1); + blue_led.write(1); +} + +void dot() +{ + red_led.write(0); // turn LED on + wait_ms(g_time_unit_ms); // wait for 1 time unit + red_led.write(1); // turn LED off +} + +void dash() +{ + red_led.write(0); // turn LED on + wait_ms(3*g_time_unit_ms); // A dash is 3 time units + red_led.write(1); // turn LED off +} + +void morse_s() { // ... + dot(); + wait_ms(g_time_unit_ms); // space between parts of a letter is 1 unit + dot(); + wait_ms(g_time_unit_ms); + dot(); +} + +void morse_o() { // --- + dash(); + wait_ms(g_time_unit_ms); // space between parts of a letter is 1 unit + dash(); + wait_ms(g_time_unit_ms); + dash(); +} + +void sos() { // ... --- ... + morse_s(); + wait_ms(3*g_time_unit_ms); // space between letters is 3 units + morse_o(); + wait_ms(3*g_time_unit_ms); // space between letters is 3 units + morse_s(); +} \ No newline at end of file