Bing Xian Lim / Mbed 2 deprecated ECE4180FinalProjectTramsmitter

Dependencies:   mbed-rtos mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers transmitter.cpp Source File

transmitter.cpp

00001 /* Created on 4/21/2017
00002 *  By Varun Malhotra
00003 */
00004 
00005 #include "mbed.h"
00006 #include "rtos.h"
00007  
00008 RawSerial pc(USBTX, USBRX); // tx, rx
00009 RawSerial device(p9, p10);  // tx, rx
00010 DigitalOut myled1(LED1);
00011 DigitalOut myled2(LED2);
00012 DigitalOut myled3(LED3);
00013 DigitalOut myled4(LED4);
00014 
00015 // character to interlock the the trasnmitter and receiver
00016 volatile char c = 0xAA;
00017 volatile int cmnd_received = 0;
00018 
00019 void serial_conn_receiver(void)
00020 {
00021          while(1) {   
00022             
00023             if (pc.readable()) {
00024                 c = pc.getc();
00025                 
00026                 if (c == 'U') {
00027                     
00028                     c = 0x55;
00029                     cmnd_received = 1;
00030                     myled1 = 1;
00031                     myled2 = 0;
00032                     myled3 = 0;
00033                     myled4 = 0;
00034                      
00035                 } else if (c == 'D') {
00036                     
00037                     c = 0x56;
00038                     cmnd_received = 1;
00039                     myled1 = 0;
00040                     myled2 = 1;
00041                     myled3 = 0;
00042                     myled4 = 0;
00043                 
00044                 } else if (c == 'L') {
00045                     
00046                     c = 0x57;
00047                     cmnd_received = 1;
00048                     myled1 = 0;
00049                     myled2 = 0;
00050                     myled3 = 1;
00051                     myled4 = 0;
00052                 
00053                 } else if (c == 'R') {
00054                     
00055                     c = 0x58;
00056                     cmnd_received = 1;
00057                     myled1 = 0;
00058                     myled2 = 0;
00059                     myled3 = 0;
00060                     myled4 = 1;
00061                 
00062                 
00063                 } else if (c == 'S') {
00064                     
00065                     c = 0x59;
00066                     cmnd_received = 1;
00067                     myled1 = 0;
00068                     myled2 = 0;
00069                     myled3 = 0;
00070                     myled4 = 0;
00071                 
00072                 } else if (c == 'M') {
00073                     
00074                     c = 0x60;
00075                     cmnd_received = 1;
00076                     myled1 = 0;
00077                     myled2 = 0;
00078                     myled3 = 0;
00079                     myled4 = 0;   
00080                 }
00081             }
00082 
00083             Thread::wait(1000);
00084         }
00085 }
00086  
00087 
00088 
00089 int main() {
00090     
00091     device.baud(600);
00092     
00093     //spawn thread to retrieve characters from the GUI
00094     Thread t1(serial_conn_receiver);
00095     
00096     while (1) {
00097                 
00098             if (cmnd_received) { 
00099                 
00100                 device.putc(c);
00101                 cmnd_received = 0;
00102             
00103             } else {
00104                 device.putc(0xAA);    
00105             }
00106             
00107             Thread::wait(20);
00108 
00109        }
00110 
00111 }