See graph

Dependencies:   MCP23017 SDFileSystem WattBob_TextLCD mbed

Fork of Embedded_Software_Assignment_2 by Steven Kay

Committer:
sk398
Date:
Wed Feb 17 10:22:50 2016 +0000
Revision:
3:c611b9bb5770
Parent:
2:22ebabd78084
Child:
4:b85bc0d810e1
All 4 input processes constructed

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sk398 2:22ebabd78084 1 /* ###############################################################################
sk398 2:22ebabd78084 2 #
sk398 2:22ebabd78084 3 #
sk398 2:22ebabd78084 4 #
sk398 2:22ebabd78084 5 #
sk398 2:22ebabd78084 6 #
sk398 2:22ebabd78084 7 #
sk398 2:22ebabd78084 8 #
sk398 2:22ebabd78084 9 #
sk398 2:22ebabd78084 10 #
sk398 2:22ebabd78084 11 #
sk398 2:22ebabd78084 12 #
sk398 2:22ebabd78084 13 #
sk398 2:22ebabd78084 14 #
sk398 2:22ebabd78084 15 #
sk398 2:22ebabd78084 16 #
sk398 2:22ebabd78084 17 ############################################################################### */
sk398 2:22ebabd78084 18
sk398 1:221d677fe0d3 19 #include "mbed.h"
sk398 1:221d677fe0d3 20 #include "Tasks.h"
sk398 1:221d677fe0d3 21
sk398 1:221d677fe0d3 22
sk398 1:221d677fe0d3 23 /* ==================================== Task 1 ==================================== */
sk398 1:221d677fe0d3 24 Task1::Task1(PinName squareWaveInPin)
sk398 1:221d677fe0d3 25 {
sk398 1:221d677fe0d3 26 Timer Task1Timer;
sk398 1:221d677fe0d3 27 _squareWaveIn = new DigitalIn(squareWaveInPin);
sk398 1:221d677fe0d3 28 }
sk398 1:221d677fe0d3 29
sk398 1:221d677fe0d3 30 int Task1::MeasureFreq()
sk398 1:221d677fe0d3 31 {
sk398 3:c611b9bb5770 32 return 0;
sk398 1:221d677fe0d3 33 }
sk398 1:221d677fe0d3 34
sk398 1:221d677fe0d3 35
sk398 1:221d677fe0d3 36 /* ==================================== Task 2 ==================================== */
sk398 1:221d677fe0d3 37 Task2::Task2(PinName digitalInCheckPin)
sk398 1:221d677fe0d3 38 {
sk398 3:c611b9bb5770 39 _digitalInCheck = new DigitalIn(digitalInCheckPin);
sk398 1:221d677fe0d3 40 }
sk398 3:c611b9bb5770 41
sk398 3:c611b9bb5770 42 bool Task2::digitalInState()
sk398 3:c611b9bb5770 43 {
sk398 3:c611b9bb5770 44 if(_digitalInCheck -> read())
sk398 3:c611b9bb5770 45 {
sk398 3:c611b9bb5770 46 return TRUE;
sk398 3:c611b9bb5770 47 }
sk398 3:c611b9bb5770 48 else
sk398 3:c611b9bb5770 49 {
sk398 3:c611b9bb5770 50 return FALSE;
sk398 3:c611b9bb5770 51 }
sk398 3:c611b9bb5770 52 }
sk398 3:c611b9bb5770 53
sk398 1:221d677fe0d3 54
sk398 1:221d677fe0d3 55 /* ==================================== Task 3 ==================================== */
sk398 1:221d677fe0d3 56 Task3::Task3(PinName WatchdogPin)
sk398 1:221d677fe0d3 57 {
sk398 1:221d677fe0d3 58 _Watchdog = new DigitalOut(WatchdogPin);
sk398 1:221d677fe0d3 59 }
sk398 1:221d677fe0d3 60
sk398 1:221d677fe0d3 61 void Task3::OutputWatchdogPulse()
sk398 1:221d677fe0d3 62 {
sk398 1:221d677fe0d3 63 _Watchdog -> write(HIGH);
sk398 1:221d677fe0d3 64 wait_ms(WATCHDOG_PULSE_WIDTH);
sk398 1:221d677fe0d3 65 _Watchdog -> write(LOW);
sk398 1:221d677fe0d3 66 }
sk398 1:221d677fe0d3 67
sk398 1:221d677fe0d3 68
sk398 3:c611b9bb5770 69 /* ==================================== Task 4 ==================================== */
sk398 3:c611b9bb5770 70 Task4::Task4(PinName Analog1Pin,PinName Analog2Pin)
sk398 3:c611b9bb5770 71 {
sk398 3:c611b9bb5770 72 _AnalogIn1 = new AnalogIn(Analog1Pin);
sk398 3:c611b9bb5770 73 _AnalogIn2 = new AnalogIn(Analog2Pin);
sk398 3:c611b9bb5770 74 }
sk398 3:c611b9bb5770 75
sk398 3:c611b9bb5770 76 float *Task4::returnAnalogReadings()
sk398 3:c611b9bb5770 77 {
sk398 3:c611b9bb5770 78 float readBuffer_1 = 0.0;
sk398 3:c611b9bb5770 79 float readBuffer_2 = 0.0;
sk398 3:c611b9bb5770 80
sk398 3:c611b9bb5770 81 float outputBuffer[2];
sk398 3:c611b9bb5770 82 float *outputBufferPtr =&outputBuffer[0];
sk398 3:c611b9bb5770 83
sk398 3:c611b9bb5770 84 // outputBuffer[0] = _AnalogIn1 -> read();
sk398 3:c611b9bb5770 85 // outputBuffer[1] = _AnalogIn2 -> read();
sk398 3:c611b9bb5770 86
sk398 3:c611b9bb5770 87 for(int readCount = 0;readCount < NUM_ANALOG_SAMPLES; readCount++)
sk398 3:c611b9bb5770 88 {
sk398 3:c611b9bb5770 89 readBuffer_1 += _AnalogIn1 -> read();
sk398 3:c611b9bb5770 90 readBuffer_2 += _AnalogIn2 -> read();
sk398 3:c611b9bb5770 91 }
sk398 3:c611b9bb5770 92
sk398 3:c611b9bb5770 93 outputBuffer[0] = readBuffer_1/NUM_ANALOG_SAMPLES;
sk398 3:c611b9bb5770 94 outputBuffer[1] = readBuffer_1/NUM_ANALOG_SAMPLES;
sk398 3:c611b9bb5770 95
sk398 3:c611b9bb5770 96 return outputBufferPtr;
sk398 3:c611b9bb5770 97 }