Example software for a Cyclic Executive

Dependencies:   MCP23017 SDFileSystem WattBob_TextLCD mbed

Tasks.h

Committer:
sk398
Date:
2016-02-26
Revision:
4:b85bc0d810e1
Parent:
3:c611b9bb5770
Child:
5:250f51c80ac1

File content as of revision 4:b85bc0d810e1:

/* #####################################################################
                                Tasks.h
                                -------
                
                     Embedded Software - Assignment 2
                     --------------------------------
 
 Written by:        Steven Kay
 
 Date:              February 2016
 
 Function:          This 
 
 Version:           1.0
 
 Version History
 ---------------
 
 1.1                rgdfgdfgdfggdfgdg
 
 1.0                gdgddfdddgd
    
 ##################################################################### */

#ifndef _TASKS_H_
#define _TASKS_H_

// Global definitions
#define HIGH 1
#define LOW 0

#define TRUE 1
#define FALSE 0

// Task 1 definitions
#define WATCHDOG_PULSE_WIDTH 15

// Task 2 definitions

// Task 3 definitions

// Task 4 definitions
#define NUM_ANALOG_SAMPLES 4.0

// Task 5 definitions

// Task 6 definitions


/* ####################### Class definitions and prototypes ####################### */

/* ==================================== Task 1 ==================================== */
// Measure freuqnecy
class Task1
{
public:
    Task1(PinName squareWaveInPin);
    int ReadFrequency();
        
private:
    Timer _Task1Timer;
    
    void MeasureFrequency();
    void StopCounter();
    
    volatile int measuredFrequency;
    
    InterruptIn *_squareWaveIn;
        
};


/* ==================================== Task 2 ==================================== */ 
// Digital Input
class Task2
{
public:
    Task2(PinName digitalInCheckPin);
    bool digitalInState();
    
private:
    DigitalIn *_digitalInCheck;
        
};


/* ==================================== Task 3 ==================================== */ 
// Output watchdog pulse
class Task3
{
public:
    Task3(PinName WatchdogPin);
    void OutputWatchdogPulse();
        
private:
    DigitalOut *_Watchdog;    
};


/* ==================================== Task 4 ==================================== */ 
// Read 2 analog inputs 
class Task4
{
public:
    Task4(PinName Analog1Pin,PinName Analog2Pin);
    float *returnAnalogReadings();
    
private:
    AnalogIn *_AnalogIn1;
    AnalogIn *_AnalogIn2;        
};

//
///* ==================================== Task 5 ==================================== */
//// Display outputs to LCD
//class Task5
//{
//public:
//    Task5();
//        
//private:
//    
//        
//};
//
///* ==================================== Task 6 ==================================== */
//// Logical checks
//class Task6
//{
//public:
//    Task5();
//        
//private:
//    
//        
//};
//
///* ==================================== Task 7 ==================================== */
//// Save data to SD Card
//class Task7
//{
//public:
//    Task7();
//        
//private:
//    
//        
//};

#endif