hk tentative jul 9

Dependencies:   mbed

Fork of mbed_hkfinal by Bharath S

Committer:
pranoysvarma
Date:
Wed Jul 09 05:55:31 2014 +0000
Revision:
1:8b8bc4aef6f9
Parent:
0:333cda053c40
hk tentative

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pranoysvarma 1:8b8bc4aef6f9 1 #include "hkfinal.h"
pranoysvarma 1:8b8bc4aef6f9 2
pranoysvarma 1:8b8bc4aef6f9 3 typedef struct SensorData {
nbharaths 0:333cda053c40 4 char Voltage[10];
nbharaths 0:333cda053c40 5 char Current[10];
nbharaths 0:333cda053c40 6 char Temperature[10];
nbharaths 0:333cda053c40 7 //float Battery[2];
pranoysvarma 1:8b8bc4aef6f9 8 }SensorDaty;
pranoysvarma 1:8b8bc4aef6f9 9
pranoysvarma 1:8b8bc4aef6f9 10 typedef struct ShortBeacon {
pranoysvarma 1:8b8bc4aef6f9 11 char Voltage[1];
pranoysvarma 1:8b8bc4aef6f9 12 char AngularSpeed[2];
pranoysvarma 1:8b8bc4aef6f9 13 char SubsystemStatus[1];
pranoysvarma 1:8b8bc4aef6f9 14 char Temp[3];
pranoysvarma 1:8b8bc4aef6f9 15 char ErrorFlag[1];
pranoysvarma 1:8b8bc4aef6f9 16 }ShortBeacy;
nbharaths 0:333cda053c40 17
nbharaths 0:333cda053c40 18 int quantiz(float start,float step,float x)
nbharaths 0:333cda053c40 19 {
pranoysvarma 1:8b8bc4aef6f9 20 int y=(x-start)/step;
nbharaths 0:333cda053c40 21 if(y<=0)y=0;
nbharaths 0:333cda053c40 22 if(y>=15)y=15;
nbharaths 0:333cda053c40 23 return y;
nbharaths 0:333cda053c40 24 }
nbharaths 0:333cda053c40 25
pranoysvarma 1:8b8bc4aef6f9 26 void init_beacon(ShortBeacy x){
pranoysvarma 1:8b8bc4aef6f9 27 x.Voltage={1};
pranoysvarma 1:8b8bc4aef6f9 28 x.AngularSpeed={2,3}
pranoysvarma 1:8b8bc4aef6f9 29 x.SubsystemStatus={145};
pranoysvarma 1:8b8bc4aef6f9 30 x.Temp={1,2,3};
pranoysvarma 1:8b8bc4aef6f9 31 x.ErrorFlag={3};
pranoysvarma 1:8b8bc4aef6f9 32 }
pranoysvarma 1:8b8bc4aef6f9 33
nbharaths 0:333cda053c40 34 void FUNC_HK_MAIN()
nbharaths 0:333cda053c40 35 {
pranoysvarma 1:8b8bc4aef6f9 36 SensorDaty SensorData;
pranoysvarma 1:8b8bc4aef6f9 37 ShortBeacy ShortBeacon;
pranoysvarma 1:8b8bc4aef6f9 38 init_beacon(ShortBeacon);
nbharaths 0:333cda053c40 39
nbharaths 0:333cda053c40 40 int LoopIterator;
nbharaths 0:333cda053c40 41
nbharaths 0:333cda053c40 42 SelectLine0=0;
nbharaths 0:333cda053c40 43 SelectLine1=0;
nbharaths 0:333cda053c40 44 SelectLine2=0;
nbharaths 0:333cda053c40 45 SelectLine3=0;
nbharaths 0:333cda053c40 46
nbharaths 0:333cda053c40 47 for(LoopIterator=0; LoopIterator<16; LoopIterator++) {
nbharaths 0:333cda053c40 48
nbharaths 0:333cda053c40 49 if(LoopIterator%2==0) {
pranoysvarma 1:8b8bc4aef6f9 50 SensorData.Current[LoopIterator]=quantiz(cstart,cstep,(CurrentInput.read()/(50*rsens)));
pranoysvarma 1:8b8bc4aef6f9 51 SensorData.Voltage[LoopIterator]=quantiz(vstart,vstep,(VoltageInput.read()/5.37));
pranoysvarma 1:8b8bc4aef6f9 52 SensorData.Temperature[LoopIterator]=quantiz(tstart,tstep,(-90.7*3.18*TemperatureInput.read()+190.1543));
nbharaths 0:333cda053c40 53 } else {
pranoysvarma 1:8b8bc4aef6f9 54 SensorData.Current[LoopIterator-1]=Current[LoopIterator-1]<<4+quantiz(cstart,cstep,(CurrentInput.read()/(50*rsens)));
pranoysvarma 1:8b8bc4aef6f9 55 SensorData.Voltage[LoopIterator-1]=Voltage[LoopIterator-1]<<4+quantiz(vstart,vstep,(VoltageInput.read()/5.37));
pranoysvarma 1:8b8bc4aef6f9 56 SensorData.Temperature[LoopIterator-1]=Temperature[LoopIterator-1]<<4+quantiz(tstart,tstep,(-90.7*3.18*TemperatureInput.read()+190.1543));
nbharaths 0:333cda053c40 57 }
nbharaths 0:333cda053c40 58 // The following lines are used to iterate the select lines from 0 to 15
nbharaths 0:333cda053c40 59 SelectLine0=!(SelectLine0);
nbharaths 0:333cda053c40 60
nbharaths 0:333cda053c40 61 if(LoopIterator%2==1)
nbharaths 0:333cda053c40 62 SelectLine1=!(SelectLine1);
nbharaths 0:333cda053c40 63
nbharaths 0:333cda053c40 64 if(LoopIterator%4==3)
nbharaths 0:333cda053c40 65 SelectLine2=!(SelectLine2);
nbharaths 0:333cda053c40 66
nbharaths 0:333cda053c40 67 if(LoopIterator%8==7)
nbharaths 0:333cda053c40 68 SelectLine3=!(SelectLine3);
nbharaths 0:333cda053c40 69
nbharaths 0:333cda053c40 70 wait_us(10.0); // A delay of 10 microseconds between each sensor output. Can be changed.
nbharaths 0:333cda053c40 71
nbharaths 0:333cda053c40 72 }
nbharaths 0:333cda053c40 73
nbharaths 0:333cda053c40 74 }