Rtos code for BAE microcontroller, IITMSAT

Dependencies:   mbed-rtos mbed

HK.cpp

Committer:
greenroshks
Date:
2014-07-04
Revision:
2:1792c9cda669
Child:
3:307c56629df0

File content as of revision 2:1792c9cda669:


#include "HK.h" 

 SensorData Sensor;
 
 DigitalOut SelectLine3 (p24); // MSB of Select Lines
 
 DigitalOut SelectLine2 (p23);
 
 DigitalOut SelectLine1 (p22);
 
 DigitalOut SelectLine0 (p21); // LSB of Select Lines
 
 AnalogIn AnalogInput(p15); // Input from Multiplexer
 
 
 
void  FUNC_HK_MAIN()
{
 
    int LoopIterator;
    printf("\nHK invoked\n");
    SelectLine0=0;
    SelectLine1=0;
    SelectLine2=0;
    SelectLine3=0;
 
    for(LoopIterator=0; LoopIterator<16; LoopIterator++) {
 
        float SignalValue= AnalogInput.read()*3.180; // Calculation using ADC Reference
        float Temperature=-90.7*SignalValue+190.1543; // Linear Equation for Temperature Sensor
 
 
        if(LoopIterator%3==0)
            Sensor.Current[LoopIterator/3]=SignalValue/4.37; // Equation for Current Sensor
 
        if(LoopIterator%3==1)
            Sensor.Voltage[LoopIterator/3]=SignalValue*4.64; // Equation for Voltage Sensor  || GAIN NEEDS TO BE CHANGED ||
 
 
        if(LoopIterator%3==2)
            Sensor.Temp[LoopIterator/3]=Temperature;
 
 
        // The following lines are used to iterate the select lines from 0 to 15
        SelectLine0=!(SelectLine0);
 
        if(LoopIterator%2==1)
            SelectLine1=!(SelectLine1);
 
        if(LoopIterator%4==3)
            SelectLine2=!(SelectLine2);
 
        if(LoopIterator%8==7)
            SelectLine3=!(SelectLine3);
 
        wait_us(10.0); // A delay of 10 microseconds between each sensor output. Can be changed.
    }
 
}