![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
jkjkjkjk
Fork of all_combined_week6 by
Diff: HK.cpp
- Revision:
- 7:5cf19bfdbacd
- Parent:
- 6:82153349cc9b
--- a/HK.cpp Tue Jul 15 10:04:38 2014 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,80 +0,0 @@ -#include "HK.h" - -DigitalOut SelectLine3 (p24); // MSB of Select Lines -DigitalOut SelectLine2 (p23); -DigitalOut SelectLine1 (p22); -DigitalOut SelectLine0 (p21); // LSB of Select Lines - -AnalogIn CurrentInput(p15); // Input from Current Multiplexer -AnalogIn VoltageInput(p16); // Input from Voltage Multiplexer -AnalogIn TemperatureInput(p17); // input from Temperature Multiplexer - -SensorData Sensor; -int quantiz(float start,float step,float x) -{ - int y=(x-start)/step; - if(y<=0)y=0; - if(y>=15)y=15; - return y; -} - -void init_beacon(ShortBeacy x){ - x.Voltage[0]=1; - x.AngularSpeed[0]=2; - x.AngularSpeed[1]=3; - x.SubsystemStatus[0]=145; - x.Temp[0]=1; - x.Temp[1]=2; - x.Temp[2]=3; - x.ErrorFlag[0]=3; -} - -ShortBeacy Shortbeacon; -void FUNC_HK_MAIN() -{ - printf("\nEntered function HK MAIN\n"); - - init_beacon(Shortbeacon); - - int LoopIterator; - - SelectLine0=0; - SelectLine1=0; - SelectLine2=0; - SelectLine3=0; - - for(LoopIterator=0; LoopIterator<16; LoopIterator++) { - - if(LoopIterator%2==0) { - Sensor.Current[LoopIterator/2]=quantiz(cstart,cstep,((CurrentInput.read()*3.18)/(50*rsens))); - Sensor.Voltage[LoopIterator/2]=quantiz(vstart,vstep,(VoltageInput.read()*3.18*5.37)); - Sensor.Temperature[LoopIterator/2]=quantiz(tstart,tstep,(-90.7*3.18*TemperatureInput.read()+190.1543)); - } else { - Sensor.Current[(LoopIterator-1)/2]=(Sensor.Current[(LoopIterator-1)/2]<<4)+quantiz(cstart,cstep,((CurrentInput.read()*3.18)/(50*rsens))); - Sensor.Voltage[(LoopIterator-1)/2]=(Sensor.Voltage[(LoopIterator-1)/2]<<4)+quantiz(vstart,vstep,(VoltageInput.read()*3.18*5.37)); - Sensor.Temperature[(LoopIterator-1)/2]=(Sensor.Temperature[(LoopIterator-1)/2]<<4)+quantiz(tstart,tstep,(-90.7*3.18*TemperatureInput.read()+190.1543)); - } -// 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. - - } - for(int i=0;i<8;i++) - { - printf("\nVoltage %d is %u\n",i,Sensor.Voltage[i]); - printf("\nCurrent %d is %u\n",i,Sensor.Current[i]); - printf("\nTemperature %d is %u\n",i,Sensor.Temperature[i]); - } - - printf("\nExited function HK MAIN\n"); -} \ No newline at end of file