Craig Evans
/
1620_Lab4_GPIO_SOS
SOS
main.cpp
- Committer:
- eencae
- Date:
- 2017-02-22
- Revision:
- 0:c0996e3989ce
File content as of revision 0:c0996e3989ce:
/* 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(); }