Serial Question

Dependencies:   mbed

Committer:
craigflanagan
Date:
Wed Aug 23 22:00:28 2017 +0000
Revision:
0:7229d855a74e
try this

Who changed what in which revision?

UserRevisionLine numberNew contents of line
craigflanagan 0:7229d855a74e 1 #include "mbed.h"
craigflanagan 0:7229d855a74e 2
craigflanagan 0:7229d855a74e 3 Serial dialog(PB_6, PB_7);
craigflanagan 0:7229d855a74e 4 Serial pcc(USBTX, USBRX);
craigflanagan 0:7229d855a74e 5 DigitalOut myled(LED1);
craigflanagan 0:7229d855a74e 6
craigflanagan 0:7229d855a74e 7 char ch;
craigflanagan 0:7229d855a74e 8 const int PACKET_SIZE = 3;
craigflanagan 0:7229d855a74e 9 char dialog_RxBuf[PACKET_SIZE];
craigflanagan 0:7229d855a74e 10 volatile int dialog_RxLen = 0;
craigflanagan 0:7229d855a74e 11 int index = 0;
craigflanagan 0:7229d855a74e 12
craigflanagan 0:7229d855a74e 13 void dialog_Rx(void)
craigflanagan 0:7229d855a74e 14 {
craigflanagan 0:7229d855a74e 15 wait(.4);
craigflanagan 0:7229d855a74e 16
craigflanagan 0:7229d855a74e 17 if(dialog.readable())
craigflanagan 0:7229d855a74e 18 {
craigflanagan 0:7229d855a74e 19 char c = dialog.getc();
craigflanagan 0:7229d855a74e 20
craigflanagan 0:7229d855a74e 21 switch(c)
craigflanagan 0:7229d855a74e 22 {
craigflanagan 0:7229d855a74e 23 case '*':
craigflanagan 0:7229d855a74e 24 do
craigflanagan 0:7229d855a74e 25 {
craigflanagan 0:7229d855a74e 26 pcc.printf("\r\n stuck in this do loop...");
craigflanagan 0:7229d855a74e 27 if (dialog.readable()) // NOTE: NOT MAKING IT INTO THIS "IF" STATMENT
craigflanagan 0:7229d855a74e 28 {
craigflanagan 0:7229d855a74e 29 ch = dialog.getc(); // read it
craigflanagan 0:7229d855a74e 30 if (index < PACKET_SIZE) // to avoid buffer overflow
craigflanagan 0:7229d855a74e 31 dialog_RxBuf[index++]=ch; // put it into the value array and increment the index
craigflanagan 0:7229d855a74e 32 pcc.printf("\r\n Did it make it in here?");
craigflanagan 0:7229d855a74e 33 }
craigflanagan 0:7229d855a74e 34 } while (ch!='\n');
craigflanagan 0:7229d855a74e 35 break;
craigflanagan 0:7229d855a74e 36 default:
craigflanagan 0:7229d855a74e 37 pcc.putc(c);
craigflanagan 0:7229d855a74e 38 break;
craigflanagan 0:7229d855a74e 39 }
craigflanagan 0:7229d855a74e 40 }
craigflanagan 0:7229d855a74e 41
craigflanagan 0:7229d855a74e 42 }
craigflanagan 0:7229d855a74e 43
craigflanagan 0:7229d855a74e 44
craigflanagan 0:7229d855a74e 45
craigflanagan 0:7229d855a74e 46 int main()
craigflanagan 0:7229d855a74e 47 {
craigflanagan 0:7229d855a74e 48 dialog.baud(9600);
craigflanagan 0:7229d855a74e 49 pcc.baud(9600);
craigflanagan 0:7229d855a74e 50 dialog.attach(&dialog_Rx); // Attach UART receive interrupt
craigflanagan 0:7229d855a74e 51
craigflanagan 0:7229d855a74e 52
craigflanagan 0:7229d855a74e 53 __disable_irq();
craigflanagan 0:7229d855a74e 54
craigflanagan 0:7229d855a74e 55 dialog.puts("*12\n"); // Put in a string in the UART buffer
craigflanagan 0:7229d855a74e 56 wait(1);
craigflanagan 0:7229d855a74e 57
craigflanagan 0:7229d855a74e 58 __enable_irq();
craigflanagan 0:7229d855a74e 59
craigflanagan 0:7229d855a74e 60 myled = 0;
craigflanagan 0:7229d855a74e 61 wait(0.5);
craigflanagan 0:7229d855a74e 62 myled = 1;
craigflanagan 0:7229d855a74e 63 wait(0.5);
craigflanagan 0:7229d855a74e 64 }
craigflanagan 0:7229d855a74e 65