Morse Code entry (Lab1 Part3)

Dependencies:   mbed

Committer:
jaredwil
Date:
Sun Feb 08 15:44:04 2015 +0000
Revision:
1:e1478ad47f58
Parent:
0:e7ca1ba9745c
commented;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jaredwil 1:e1478ad47f58 1 //Part 3
jaredwil 1:e1478ad47f58 2 //This function is used to simply identify whether a specific
jaredwil 1:e1478ad47f58 3 //input from a button is a dot or dash based on the length of
jaredwil 1:e1478ad47f58 4 //time the button is pressed
jaredwil 1:e1478ad47f58 5
psahay 0:e7ca1ba9745c 6 #include "mbed.h"
psahay 0:e7ca1ba9745c 7
jaredwil 1:e1478ad47f58 8 //Initialize Interrupt
psahay 0:e7ca1ba9745c 9 InterruptIn pound(p25);
jaredwil 1:e1478ad47f58 10 //Initialize Digital Out
psahay 0:e7ca1ba9745c 11 DigitalOut myled(LED1);
jaredwil 1:e1478ad47f58 12 //Initialize Timers
psahay 0:e7ca1ba9745c 13 Timer t1;
psahay 0:e7ca1ba9745c 14 Timer t2;
psahay 0:e7ca1ba9745c 15
jaredwil 1:e1478ad47f58 16 //Serial Interface for Debugging
psahay 0:e7ca1ba9745c 17 Serial pc(USBTX, USBRX);
psahay 0:e7ca1ba9745c 18
jaredwil 1:e1478ad47f58 19 //Function to be called when button is pressed
psahay 0:e7ca1ba9745c 20 void pPress () {
jaredwil 1:e1478ad47f58 21 t2.stop(); //stop space timer
jaredwil 1:e1478ad47f58 22 if(t2.read_ms() > 400)//if the length is greater than 400ms
jaredwil 1:e1478ad47f58 23 pc.printf(" "); //space if added
jaredwil 1:e1478ad47f58 24 t1.start(); //start dot/dash timer
jaredwil 1:e1478ad47f58 25 myled = 1; //turn on led for debugging
psahay 0:e7ca1ba9745c 26 }
jaredwil 1:e1478ad47f58 27
jaredwil 1:e1478ad47f58 28 //Function Called when button is released
psahay 0:e7ca1ba9745c 29 void pRelease() {
jaredwil 1:e1478ad47f58 30 t1.stop(); //stop dot/dash timer
jaredwil 1:e1478ad47f58 31 if(t1.read_ms() > 30 && t1.read_ms() <= 200)
jaredwil 1:e1478ad47f58 32 pc.printf("."); //dot if length less than 200ms
psahay 0:e7ca1ba9745c 33 else if (t1.read_ms() > 200)
jaredwil 1:e1478ad47f58 34 pc.printf("-"); //dash if length greater than 200ms
psahay 0:e7ca1ba9745c 35 myled = 0;
jaredwil 1:e1478ad47f58 36 //reset both timers
psahay 0:e7ca1ba9745c 37 t1.reset();
psahay 0:e7ca1ba9745c 38 t2.reset();
jaredwil 1:e1478ad47f58 39 //start space timer
psahay 0:e7ca1ba9745c 40 t2.start();
psahay 0:e7ca1ba9745c 41 }
jaredwil 1:e1478ad47f58 42 //mainfunction
psahay 0:e7ca1ba9745c 43 int main() {
psahay 0:e7ca1ba9745c 44 myled = 0;
jaredwil 1:e1478ad47f58 45 //Initialize Interrupts for rising/falling edge
psahay 0:e7ca1ba9745c 46 pound.rise(&pPress);
psahay 0:e7ca1ba9745c 47 pound.fall(&pRelease);
psahay 0:e7ca1ba9745c 48 t2.start();
psahay 0:e7ca1ba9745c 49 while(1) {
psahay 0:e7ca1ba9745c 50 }
psahay 0:e7ca1ba9745c 51 }