Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of vr1_0CDMS_1_0 by
Revision 6:1f8dbe33c66a, committed 2015-06-16
- Comitter:
- pradeepvk2208
- Date:
- Tue Jun 16 16:37:37 2015 +0000
- Parent:
- 5:c77b49508927
- Commit message:
- cdmshk
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/HK_CDMS.cpp Tue Jun 16 16:37:37 2015 +0000 @@ -0,0 +1,106 @@ +#include "HK_CDMS.h" +#include "pin_config.h" + + +Serial hk_cdms(USBTX, USBRX); +DigitalOut Select_Lines_C[]={PIN85,PIN84,PIN39,PIN38}; //to mux on IF board,from LSB(Select_Lines_C[3]) to MSB(Select_Lines_C[0]) + +AnalogIn Temperature_voltage_Input(PIN53); //output from IF mux +AnalogIn Sensor_Input(PIN53); //output from temperature sensor on CDMS + + +void FCTN_CDMS_HK_INIT() +{ + Select_Lines_C[0] = Select_Lines_C[1] = Select_Lines_C[2] = Select_Lines_C[3] = 0; //initialisation of variables + +} + +int quantiz(float l_start,float l_step,float l_x) // accepts min and measured values and step->quantises on a scale 0-15..(4 bit quantisation) +{ + int l_y = (l_x - l_start)/l_step; + + if(l_y <= 0) + l_y = 0; + + if(l_y >= 15) + l_y = 15; + + return l_y; +} + +Sensor_Data Sensor; +Sensor_Data_Quantised Sensor_Quantised; + +char* FCTN_CDMS_HK_MAIN() +{ + float l_resistance_thermistor; //declaration of variables + float l_voltage_thermistor; + float l_Payload_voltage; + int l_Loop_Iterator = 0; + int l_Select_Line_Iterator = 3; + + for(l_Loop_Iterator = 0; l_Loop_Iterator < 16; l_Loop_Iterator++) + { + + l_voltage_thermistor = Temperature_voltage_Input.read()*3.3; //voltage across thermistor + l_resistance_thermistor = 24000*l_voltage_thermistor/(3.3 - l_voltage_thermistor); //resistance of thermistor + l_Payload_voltage = Temperature_voltage_Input.read()*3.3; + + Sensor.l_Temperature_thermistor[(l_Loop_Iterator)] = 0.00000004*l_resistance_thermistor*l_resistance_thermistor - 0.0039*l_resistance_thermistor + 347.97; + Sensor.l_Temperature_sensor[l_Loop_Iterator] = (-90.7*3.3*Temperature_voltage_Input.read() + 190.1543); + + if(l_Loop_Iterator % 2 == 0) + { + if(l_Loop_Iterator < 4) + Sensor_Quantised.l_Temperature_thermistor[(l_Loop_Iterator)/2] = quantiz(tstart_thermistor,tstep_thermistor,Sensor.l_Temperature_thermistor[(l_Loop_Iterator)]); + + else + { + if(4 < l_Loop_Iterator < 14) + Sensor_Quantised.l_Payload_voltage[(l_Loop_Iterator)/2] = Sensor_Quantised.l_Payload_voltage[(l_Loop_Iterator)/2] <<4 + quantiz(tstart,tstep,Sensor.l_Payload_voltage[l_Loop_Iterator]); + + else + Sensor_Quantised.l_Temperature_sensor[(l_Loop_Iterator)/2] = quantiz(tstart,tstep,Sensor.l_Temperature_sensor[l_Loop_Iterator]); + } + } + + else + { + + if(l_Loop_Iterator < 4) + Sensor_Quantised.l_Temperature_thermistor[(l_Loop_Iterator)/2] = Sensor_Quantised.l_Temperature_thermistor[(l_Loop_Iterator)/2] <<4 + quantiz(tstart_thermistor,tstep_thermistor,Sensor.l_Temperature_thermistor[l_Loop_Iterator]); + + else + { + if(4 < l_Loop_Iterator < 14) + Sensor_Quantised.l_Payload_voltage[(l_Loop_Iterator)/2] = quantiz(tstart,tstep,Sensor.l_Payload_voltage[l_Loop_Iterator]); + + else + Sensor_Quantised.l_Temperature_sensor[(l_Loop_Iterator)/2] = Sensor_Quantised.l_Temperature_sensor[(l_Loop_Iterator)/2] <<4 + quantiz(tstart,tstep,Sensor.l_Temperature_sensor[l_Loop_Iterator]); + + } + } + + + + // The following lines are used to iterate the select lines from 0 to 15 + for(l_Select_Line_Iterator = 3;l_Select_Line_Iterator >= 0;l_Select_Line_Iterator--) + { + if(Select_Lines_C[l_Select_Line_Iterator] == 0) + { + Select_Lines_C[l_Select_Line_Iterator] = 1; + break; + } + else Select_Lines_C[l_Select_Line_Iterator] = 0; + printf("%d\n",l_Select_Line_Iterator); + } + + wait_us(10.0); // A delay of 10 microseconds between each sensor output. Can be changed. + } + + printf("CDMS_HK Data is Temperature_sensor=%s, l_Temperature_thermistor=%s, Payload_voltage=%s ",Sensor_Quantised.l_Temperature_sensor,Sensor_Quantised.l_Temperature_thermistor,Sensor_Quantised.l_Payload_voltage); + strcpy (CDMS_HK_DATA,Sensor_Quantised.l_Temperature_sensor); + strcat (CDMS_HK_DATA,Sensor_Quantised.l_Temperature_thermistor); + strcat (CDMS_HK_DATA,Sensor_Quantised.l_Payload_voltage); + return(CDMS_HK_DATA); +} \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/HK_CDMS.h Tue Jun 16 16:37:37 2015 +0000 @@ -0,0 +1,29 @@ +#include "mbed.h" + +#define tstart -40 +#define tstep 8 +#define tstep_thermistor 8 +#define tstart_thermistor -40 + +typedef struct Sensor_Data +{ + + float l_Temperature_sensor[2]; + float l_Temperature_thermistor[4]; //read by thermistors on solar panels + float l_Payload_voltage[9]; //for payload analog signals + +} Sensor_Data; + +typedef struct Sensor_Data_Quantised +{ + char l_Temperature_sensor[1]; + char l_Temperature_thermistor[2]; + char l_Payload_voltage[5]; + +} Sensor_Data_Quantised; + +void FCTN_CDMS_HK_INIT(); +char* FCTN_CDMS_HK_MAIN(); + +int quantiz(float l_start,float l_step,float l_x); +char CDMS_HK_DATA[8]; \ No newline at end of file
--- a/mbed-rtos.lib Tue Jun 16 16:09:47 2015 +0000 +++ b/mbed-rtos.lib Tue Jun 16 16:37:37 2015 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/mbed_official/code/mbed-rtos/#ed4ff3bea947 +http://mbed.org/users/mbed_official/code/mbed-rtos/#5c72830f2d48
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pin_config.h Tue Jun 16 16:37:37 2015 +0000 @@ -0,0 +1,102 @@ +// 100 LQFP format pin assignment +#define PIN1 PTE0 +#define PIN2 PTE1 +#define PIN3 PTE2 +#define PIN4 PTE3 +#define PIN5 PTE4 +#define PIN6 PTE5 +#define PIN7 PTE6 +//#define 8 +//#define 9 +//#define 10 +//#define 11 +//#define 12 +//#define 13 +#define PIN14 PTE16 +#define PIN15 PTE17 +#define PIN16 PTE18 +#define PIN17 PTE19 +#define PIN18 PTE20 +#define PIN19 PTE21 +#define PIN20 PTE22 +#define PIN21 PTE23 +//#define 22 +//#define 23 +//#define 24 +//#define 25 +#define PIN26 PTE29 +#define PIN27 PTE30 +#define PIN28 PTE31 +//#define 29 +//#define 30 +#define PIN31 PTE24 +#define PIN32 PTE25 +#define PIN33 PTE26 +#define PIN34 PTA0 +#define PIN35 PTA1 +#define PIN36 PTA2 +#define PIN37 PTA3 +#define PIN38 PTA4 +#define PIN39 PTA5 +#define PIN40 PTA6 +#define PIN41 PTA7 +#define PIN42 PTA12 +#define PIN43 PTA13 +#define PIN44 PTA14 +#define PIN45 PTA15 +#define PIN46 PTA16 +#define PIN47 PTA17 +//#define 48 +//#define 49 +#define PIN50 PTA18 +#define PIN51 PTA19 +#define PIN52 PTA20 +#define PIN53 PTB0 +#define PIN54 PTB1 +#define PIN55 PTB2 +#define PIN56 PTB3 +#define PIN57 PTB7 +#define PIN58 PTB8 +#define PIN59 PTB9 +#define PIN60 PTB10 +#define PIN61 PTB11 +#define PIN62 PTB16 +#define PIN63 PTB17 +#define PIN64 PTB18 +#define PIN65 PTB19 +#define PIN66 PTB20 +#define PIN67 PTB21 +#define PIN68 PTB22 +#define PIN69 PTB23 +#define PIN70 PTC0 +#define PIN71 PTC1 +#define PIN72 PTC2 +#define PIN73 PTC3 +//#define 74 +//#define 75 +#define PIN76 PTC20 +#define PIN77 PTC21 +#define PIN78 PTC22 +#define PIN79 PTC23 +#define PIN80 PTC4 +#define PIN81 PTC5 +#define PIN82 PTC6 +#define PIN83 PTC7 +#define PIN84 PTC8 +#define PIN85 PTC9 +#define PIN86 PTC10 +#define PIN87 PTC11 +#define PIN88 PTC12 +#define PIN89 PTC13 +#define PIN90 PTC16 +#define PIN91 PTC17 +#define PIN92 PTC18 +#define PIN93 PTD0 +#define PIN94 PTD1 +#define PIN95 PTD2 +#define PIN96 PTD3 +#define PIN97 PTD4 +#define PIN98 PTD5 +#define PIN99 PTD6 +#define PIN100 PTD7 +