Queues
Dependencies: ELEC350-Practicals-FZ429
Fork of Task631-mbedos54 by
Diff: main.cpp
- Revision:
- 12:43370561e925
- Parent:
- 10:624be54e5299
- Child:
- 13:ab9f53427355
--- a/main.cpp Tue Nov 14 15:06:25 2017 +0000 +++ b/main.cpp Tue Nov 14 15:16:06 2017 +0000 @@ -1,5 +1,6 @@ #include "mbed.h" -#include "rtos.h" +#include "sample_hardware.hpp" + #include "string.h" #include <stdio.h> #include <ctype.h> @@ -10,38 +11,24 @@ void thread2(); void switchISR(); -//Analogue inputs -AnalogIn adcIn(A0); - -//Digital outputs -DigitalOut onBoardLED(LED1); -DigitalOut redLED(D7); -DigitalOut yellowLED(D6); -DigitalOut greenLED(D5); - -//Digital inputs -DigitalIn onBoardSwitch(USER_BUTTON); -DigitalIn sw1(D4); //CONSIDER CHANGING THIS TO AN INTERRUPT -DigitalIn sw2(D3); - //Threads -Thread *t1; +Thread t1; //Queues - "A message can be a integer or pointer value to a certain type T that is sent to a thread or interrupt service routine." -Queue<uint32_t, 5> *queue; +Queue<uint32_t, 5> queue; // Call this on precise intervals void adcISR() { //Option to starve the queue - if (sw2 == 1) return; + if (SW2 == 1) return; //Read sample - make a copy uint32_t sample = (uint32_t)(4095*adcIn.read()); //Write to queue - osStatus stat = queue->put((uint32_t*)sample); + osStatus stat = queue.put((uint32_t*)sample); //Check if succesful if (stat == osErrorResource) { @@ -56,7 +43,7 @@ { while (true) { //Read queue - block (with timeout) - osEvent evt = queue->get(5000); //With timeout + osEvent evt = queue.get(5000); //With timeout //Check status of get() switch (evt.status) { @@ -77,7 +64,7 @@ //Block up consumer if switch is held down //Will fill the queue if held long enough - while (sw1 == 1); + while (SW1 == 1); } //end while } @@ -92,16 +79,12 @@ //Start message printf("Welcome\n"); - //Queue - queue = new Queue<uint32_t,5>(); - //Hook up timer interrupt Ticker timer; timer.attach(&adcISR, 1.0); //Threads - t1 = new Thread(); - t1->start(thread1); + t1.start(thread1); printf("Main Thread\n"); while (true) {