first compiled version
Dependencies: mbed-rtos mbed C12832_lcd LM75B
Diff: main.cpp
- Revision:
- 5:d40a563e2c3b
- Parent:
- 4:6c17983d6192
- Child:
- 6:45c3ad45a252
- Child:
- 7:4992146d9872
diff -r 6c17983d6192 -r d40a563e2c3b main.cpp --- a/main.cpp Tue Mar 04 08:56:46 2014 +0000 +++ b/main.cpp Tue Mar 04 09:04:44 2014 +0000 @@ -7,6 +7,8 @@ //the pot values in the queue is asynchronous you need a buffer to keep the values //and this is provided by the MemoryPool. +//I also merged your changes with mine.....temproarily commented out the pc.printf meessage for pot read. + #include "mbed.h" #include "rtos.h" @@ -17,22 +19,16 @@ #define COOKIEQUEUE 30 C12832_LCD lcd; -Serial pc(USBTX, USBRX); // tx, rx - -Serial pc(USBTX, USBRX); //To differentiate from LCD functions +Serial pc(USBTX, USBRX); //To differentiate from LCD functions AnalogIn pot1(p19); MemoryPool<float, 10> potReadingBuffer; Queue<float,10> potReadingQueue; -<<<<<<< local + MemoryPool<char[BUFFER], COOKIEQUEUE> cookieReadingBuffer; Queue<char[BUFFER],COOKIEQUEUE> cookieReadingQueue; -======= ->>>>>>> other -<<<<<<< local -======= /****************************************************************** * *An LCD thread that updates the LCD based on information @@ -43,25 +39,14 @@ *timeout) methods to get data from each of the previous threads * *******************************************************************/ ->>>>>>> other void lcdUpdate(void const*){ while(1){ -<<<<<<< local osEvent evtPot = potReadingQueue.get(1200); if (evtPot.status == osEventMessage) { float *queuePot = (float*)evtPot.value.p; lcd.locate(0,3); lcd.printf("Voltage: %.2f V", *queuePot); potReadingBuffer.free(queuePot); -======= - osEvent evt = potReadingQueue.get(); - if (evt.status == osEventMail) { - float *queue = (float*)evt.value.p; - pc.printf("\nVoltage: %.2f V\n\r" , *queue); - - pc.printf("LCD updated"); - Thread::wait(1000); ->>>>>>> other } osEvent evtCookie = cookieReadingQueue.get(1200); if (evtCookie.status == osEventMessage) { @@ -85,56 +70,41 @@ while(1){ float *queue = potReadingBuffer.alloc(); *queue = pot1; -<<<<<<< local potReadingQueue.put(queue,1200); - - Thread::wait(10000); -======= - potReadingQueue.put(queue); pc.printf("POT read"); Thread::wait(10000); ->>>>>>> other } } -<<<<<<< local - - -======= /****************************************************************** * *A TEMP thread that read the temperature every 60 seconds *and sends the value to the LCD task via IPC Queue * *******************************************************************/ ->>>>>>> other + void readTemp(void const*){ while(1){ - pc.printf("TEMP read"); + //pc.printf("TEMP read"); Thread::wait(60000); } } -<<<<<<< local -void readCookie(void const*){ - pc.printf(">Enter your fortune cookie\n>"); - char (*ptrBuffer)[BUFFER] = cookieReadingBuffer.alloc(); - char *ptrChar; - ptrChar=*ptrBuffer; -======= /****************************************************************** * *A SCANF thread that reads in a fortune cookie from user *and sends it to the LCD task via IPC Memory Pool * *******************************************************************/ -void threadCookie(void const*){ - //Checks often but low priority? ->>>>>>> other +void readCookie(void const*){ + pc.printf(">Enter your fortune cookie\n>"); + char (*ptrBuffer)[BUFFER] = cookieReadingBuffer.alloc(); + char *ptrChar; + ptrChar=*ptrBuffer; while(1){ -<<<<<<< local + if(pc.readable()){ *ptrChar=pc.getc(); pc.putc(*ptrChar); @@ -152,9 +122,6 @@ } } Thread::wait(10); - } -======= - Thread::wait(1000); } } @@ -171,7 +138,6 @@ pc.printf("TOD updated"); Thread::wait(60000); } ->>>>>>> other } DigitalOut myled(LED1);