2014 Freescale / Hack A Day Make It Challenge FRDM-K64 Internet of "Thing"

Dependencies:   mbed

Committer:
emh203
Date:
Thu Apr 10 21:14:23 2014 +0000
Revision:
0:423d5729e94e
1st add.  Used for final demo

Who changed what in which revision?

UserRevisionLine numberNew contents of line
emh203 0:423d5729e94e 1 /*
emh203 0:423d5729e94e 2
emh203 0:423d5729e94e 3 --------------------------------------------
emh203 0:423d5729e94e 4 | |
emh203 0:423d5729e94e 5 | .... |
emh203 0:423d5729e94e 6 | 7OO$?I78. |
emh203 0:423d5729e94e 7 | .?8++++7+II?D. |
emh203 0:423d5729e94e 8 | .?O++=I++II+?= |
emh203 0:423d5729e94e 9 | .IO++?7==I??$. |
emh203 0:423d5729e94e 10 | .8++=$===?+I$ |
emh203 0:423d5729e94e 11 | ?+++===+===+ |
emh203 0:423d5729e94e 12 | ???=+I++==+? |
emh203 0:423d5729e94e 13 | .??++====+==++ |
emh203 0:423d5729e94e 14 | ?+++==========~ |
emh203 0:423d5729e94e 15 | $+++==========+= |
emh203 0:423d5729e94e 16 | =?+===+==+I======== |
emh203 0:423d5729e94e 17 | ..++======~~~~========? |
emh203 0:423d5729e94e 18 | .$?I??+=~~===~~~===~===++. |
emh203 0:423d5729e94e 19 | .+==.+=~~~=~==~~~~==~~=~==+? |
emh203 0:423d5729e94e 20 | ?===I+====~~=~~~=~~=====~~~=?. |
emh203 0:423d5729e94e 21 | .=~~~+==~==..~~~~~~= ~~~~=7= |
emh203 0:423d5729e94e 22 | +=~~?+~~=. ==~~~~=. ~~~~=?. |
emh203 0:423d5729e94e 23 | =~~~=~~~ ?===~~+. ~~~~+ |
emh203 0:423d5729e94e 24 | +~~:+~~= =~~==. =~~+. |
emh203 0:423d5729e94e 25 | ~:~ =~~= =~~~= ~=== |
emh203 0:423d5729e94e 26 | I=~~ ,=~~= ,. |
emh203 0:423d5729e94e 27 | ~~. ,==== |
emh203 0:423d5729e94e 28 | ==== |
emh203 0:423d5729e94e 29 | =~~. |
emh203 0:423d5729e94e 30 | |
emh203 0:423d5729e94e 31 |------------------------------------------|
emh203 0:423d5729e94e 32 | Internet Of Thing |
emh203 0:423d5729e94e 33 | Eli Hughes |
emh203 0:423d5729e94e 34 | Freescale / Hack-a-day Make-It-Challenge |
emh203 0:423d5729e94e 35 | FTF 2014 - Dallas, Tx |
emh203 0:423d5729e94e 36 |------------------------------------------|
emh203 0:423d5729e94e 37
emh203 0:423d5729e94e 38 */
emh203 0:423d5729e94e 39 #include "mbed.h"
emh203 0:423d5729e94e 40 #include "Queue.h"
emh203 0:423d5729e94e 41 #include "Terminal.h"
emh203 0:423d5729e94e 42 #include "System.h"
emh203 0:423d5729e94e 43
emh203 0:423d5729e94e 44
emh203 0:423d5729e94e 45 //Note -- Seems that there is a bug with the new K64 firmware. When I enable 2 serial port objects there seems to be some cross mojination going on. We use a
emh203 0:423d5729e94e 46 //macro to select wifi or com port for debug
emh203 0:423d5729e94e 47
emh203 0:423d5729e94e 48 #define USE_WIFI
emh203 0:423d5729e94e 49
emh203 0:423d5729e94e 50 #define DATA_BUFFER_MAX_SIZE 128
emh203 0:423d5729e94e 51
emh203 0:423d5729e94e 52 DigitalOut SPIN_CCW (PTA2);
emh203 0:423d5729e94e 53 DigitalOut SPIN_CW (PTC2);
emh203 0:423d5729e94e 54 DigitalOut GO_FORWARD (PTC3);
emh203 0:423d5729e94e 55 DigitalOut GO_REVERSE (PTB23);
emh203 0:423d5729e94e 56
emh203 0:423d5729e94e 57 #ifdef USE_USB
emh203 0:423d5729e94e 58 Serial PC(USBTX, USBRX); // tx, rx
emh203 0:423d5729e94e 59 #endif
emh203 0:423d5729e94e 60
emh203 0:423d5729e94e 61 #ifdef USE_WIFI
emh203 0:423d5729e94e 62 Serial WIFI(PTC17,PTC16);
emh203 0:423d5729e94e 63 #endif
emh203 0:423d5729e94e 64
emh203 0:423d5729e94e 65 uint8_t DataBuffer[DATA_BUFFER_MAX_SIZE];
emh203 0:423d5729e94e 66
emh203 0:423d5729e94e 67 int main (void)
emh203 0:423d5729e94e 68 {
emh203 0:423d5729e94e 69 uint32_t i;
emh203 0:423d5729e94e 70 uint8_t DataOut;
emh203 0:423d5729e94e 71 uint32_t BytesToSend;
emh203 0:423d5729e94e 72
emh203 0:423d5729e94e 73 #ifdef USE_WIFI
emh203 0:423d5729e94e 74
emh203 0:423d5729e94e 75 WIFI.baud(115200);
emh203 0:423d5729e94e 76
emh203 0:423d5729e94e 77 #endif
emh203 0:423d5729e94e 78
emh203 0:423d5729e94e 79 #ifdef USE_USB
emh203 0:423d5729e94e 80
emh203 0:423d5729e94e 81 PC.baud(115200);
emh203 0:423d5729e94e 82
emh203 0:423d5729e94e 83 #endif
emh203 0:423d5729e94e 84
emh203 0:423d5729e94e 85
emh203 0:423d5729e94e 86 TFC_InitTerminal();
emh203 0:423d5729e94e 87
emh203 0:423d5729e94e 88 while(1)
emh203 0:423d5729e94e 89 {
emh203 0:423d5729e94e 90
emh203 0:423d5729e94e 91 //Shuffle Datafrom the terminal Queue to the USB port or TCP Port
emh203 0:423d5729e94e 92 //Inefficient but workable
emh203 0:423d5729e94e 93 BytesToSend = BytesInQueue(&TERMINAL_OUTPUT_QUEUE);
emh203 0:423d5729e94e 94
emh203 0:423d5729e94e 95 if(BytesToSend >0)
emh203 0:423d5729e94e 96 {
emh203 0:423d5729e94e 97 //Limit to maximum chunk size
emh203 0:423d5729e94e 98
emh203 0:423d5729e94e 99 if(BytesToSend > DATA_BUFFER_MAX_SIZE)
emh203 0:423d5729e94e 100 BytesToSend = DATA_BUFFER_MAX_SIZE;
emh203 0:423d5729e94e 101
emh203 0:423d5729e94e 102 for(i=0 ; i< BytesToSend; i++)
emh203 0:423d5729e94e 103 {
emh203 0:423d5729e94e 104 ByteDequeue(&TERMINAL_OUTPUT_QUEUE,&DataOut);
emh203 0:423d5729e94e 105
emh203 0:423d5729e94e 106 #ifdef USE_USB
emh203 0:423d5729e94e 107 PC.putc(DataOut);
emh203 0:423d5729e94e 108 #endif
emh203 0:423d5729e94e 109
emh203 0:423d5729e94e 110 #ifdef USE_WIFI
emh203 0:423d5729e94e 111 WIFI.putc(DataOut);
emh203 0:423d5729e94e 112 #endif
emh203 0:423d5729e94e 113 }
emh203 0:423d5729e94e 114 }
emh203 0:423d5729e94e 115
emh203 0:423d5729e94e 116
emh203 0:423d5729e94e 117
emh203 0:423d5729e94e 118
emh203 0:423d5729e94e 119 #ifdef USE_USB
emh203 0:423d5729e94e 120 if(PC.readable())
emh203 0:423d5729e94e 121 {
emh203 0:423d5729e94e 122
emh203 0:423d5729e94e 123 ByteEnqueue(&TERMINAL_INPUT_QUEUE,PC.getc());
emh203 0:423d5729e94e 124 }
emh203 0:423d5729e94e 125 #endif
emh203 0:423d5729e94e 126
emh203 0:423d5729e94e 127 #ifdef USE_WIFI
emh203 0:423d5729e94e 128
emh203 0:423d5729e94e 129 if(WIFI.readable())
emh203 0:423d5729e94e 130 {
emh203 0:423d5729e94e 131 DataOut = WIFI.getc();
emh203 0:423d5729e94e 132 ByteEnqueue(&TERMINAL_INPUT_QUEUE,DataOut);
emh203 0:423d5729e94e 133
emh203 0:423d5729e94e 134 }
emh203 0:423d5729e94e 135 #endif
emh203 0:423d5729e94e 136
emh203 0:423d5729e94e 137 TFC_ProcessTerminal();
emh203 0:423d5729e94e 138
emh203 0:423d5729e94e 139 }
emh203 0:423d5729e94e 140
emh203 0:423d5729e94e 141 }
emh203 0:423d5729e94e 142
emh203 0:423d5729e94e 143