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.
Dependencies: FreescaleIAP mbed-rtos mbed
Fork of workinQM_5thJan_azad by
Diff: main.cpp
- Revision:
- 52:daa685b0e390
- Parent:
- 50:6001287f3045
- Child:
- 55:6ea0d7e9fce2
--- a/main.cpp Fri Jul 22 17:32:41 2016 +0000 +++ b/main.cpp Fri Jul 22 22:21:05 2016 +0000 @@ -279,34 +279,30 @@ //eps hw faults //uint8_t ACS_TR_Z_SW_STATUS; -DigitalOut ACS_TR_Z_ENABLE(PIN40); +DigitalOut ACS_TR_Z_ENABLE(PIN40,0); DigitalIn ACS_TR_Z_OC_FAULT(PIN91); DigitalIn ACS_TR_Z_FAULT(PIN89); //Driver IC fault int ACS_TR_Z_FAULT_COUNTER = 0; -#if SBC InterruptIn irpt_4m_mstr(PIN38); //I2c interrupt from CDMS DigitalOut irpt_2_mstr(PIN4); //I2C interrupt to CDMS -#endif + -#if !SBC -InterruptIn irpt_4m_mstr(PIN38); //I2c interrupt from CDMS -DigitalOut irpt_2_mstr(PIN4); //I2C interrupt to CDMS -#endif + //uint8_t ACS_TR_XY_SW_STATUS; -DigitalOut ACS_TR_XY_ENABLE(PIN71); -DigitalIn ACS_TR_XY_OC_FAULT(PIN72); +DigitalOut ACS_TR_XY_ENABLE(PIN71,0); +DigitalIn ACS_TR_XY_OC_FAULT(PIN77); DigitalIn ACS_TR_XY_FAULT(PIN83); //Driver IC fault int ACS_TR_XY_FAULT_COUNTER = 0; //bool ACS_ATS1_ENABLE; -DigitalIn ACS_ATS1_OC_FAULT(PIN5); +DigitalIn ACS_ATS1_OC_FAULT(PIN39); int ACS_TS1_FAULT_COUNTER = 0; //bool ACS_ATS2_ENABLE; -DigitalIn ACS_ATS2_OC_FAULT(PIN97); +DigitalIn ACS_ATS2_OC_FAULT(PIN41); int ACS_ATS2_FAULT_COUNTER; //EPS @@ -372,8 +368,8 @@ bool if2check = 0; //ASSIGNING PINS// -DigitalOut ATS1_SW_ENABLE(PTC0); // enable of att sens2 switch -DigitalOut ATS2_SW_ENABLE(PTC16); // enable of att sens switch +DigitalOut ATS1_SW_ENABLE(PIN90,1); // enable of att sens2 switch +DigitalOut ATS2_SW_ENABLE(PIN61,0); // enable of att sens switch ////InterruptIn irpt_4m_mstr(PIN38); //I2c interrupt from CDMS ////DigitalOut irpt_2_mstr(PIN4); //I2C interrupt to CDMS I2CSlave slave (PIN1,PIN2);///pin1 pin2 @@ -390,18 +386,22 @@ //DigitalIn pf2(PIN97);//Attitude Sensor 2 OC bar fault signal //DigitalIn pf3(PIN83);//Fault Bar for TRXY driver -DigitalOut TRXY_SW(PIN71,1); //TR XY Switch -DigitalOut DRV_Z_EN(PIN88); //Sleep pin of driver z -DigitalOut TRZ_SW(PIN40,1); //TR Z Switch + +DigitalOut DRV_XY_EN(PIN82,0); // DRV XY en +//DigitalOut TRXY_SW(PIN71,0); //TR XY Switch +DigitalOut DRV_Z_EN(PIN88,0); //Sleep pin of driver z //DISABLE by default +//DigitalOut TRZ_SW(PIN40,0); //TR Z Switch + DigitalOut CDMS_RESET(PIN7,1); // CDMS RESET -DigitalOut BCN_SW(PIN14,0); //Beacon switch -DigitalOut DRV_XY_EN(PIN82); + +DigitalOut CDMS_OC_ENA(PIN70,1); - +DigitalOut BCN_SW(PIN65,1); //IN TEMPORARY SBC +//DigitalOut BCN_SW(PIN14,1); //Beacon switch //IN QM SBC, TO BE CHANGED //================================================================================ //default flash array some filler bits added (detail in MMS file) -uint32_t ARR_INITIAL_VAL[8]={0x73582600,0x505A4141,0x1A1A1400,0x00000000,0x00000000,0x00000000,0xCBA20000,0x00000000};//to be done +uint32_t ARR_INITIAL_VAL[8]={0x73532600,0x505A4141,0x1A1A1400,0x00000000,0x00000000,0x00000000,0xCBA20000,0x00000000};//to be done void FLASH_INI() { @@ -605,11 +605,11 @@ ACS_MAIN_STATUS = 0; return; } - else if((actual_data.power_mode<=2)&&( (ACS_STATE&0x80) != 0x80)) + else if((actual_data.power_mode<=2)&&( (( ACS_STATE)&0x08) != 0x08)) { - #if print + //#if print pc.printf("\n\r Low Power \n\r"); - #endif + //#endif DRV_Z_EN = 0; DRV_XY_EN = 0; ACS_STATUS = 1; // set ACS_STATUS = ACS_LOW_POWER @@ -619,6 +619,7 @@ } else if(ACS_TR_Z_SW_STATUS != 1) { + pc.printf("\n\r Z disabled \n\r"); DRV_Z_EN = 0; DRV_XY_EN = 0; ACS_STATUS = 2; // set ACS_STAUS = ACS_TRZ_DISABLED @@ -626,7 +627,8 @@ return; } else if(ACS_TR_XY_SW_STATUS != 1) - { + { + pc.printf("\n\r Z only \n\r"); DRV_Z_EN = 1; DRV_XY_EN = 0; ACS_STATUS = 3; // set ACS_STAUS = ACS_TRXY_DISABLED , Z axis only @@ -643,6 +645,8 @@ } else if((ACS_DATA_ACQ_STATUS == 0)||(ACS_DATA_ACQ_STATUS == 1)) { + + pc.printf("\n\r Z only no data \n\r"); DRV_Z_EN = 1; DRV_XY_EN = 0; ACS_STATUS = 3; // set Set ACS_STATUS = ACS_DATA_ACQN_FAILURE , Z axis only @@ -659,8 +663,9 @@ ACS_MAIN_STATUS = 0; return; } - else if(ACS_STATE == 1) + else if((ACS_STATE == 1)||(ACS_STATE == 9)) { + pc.printf("\n\r Z only by state \n\r"); DRV_Z_EN = 1; DRV_XY_EN = 0; ACS_STATUS = 3; // set ACS_STAUS = ACS_TRXY_DISABLED by ACS_STATE i.e Z axis only @@ -675,6 +680,7 @@ } else if(ACS_DATA_ACQ_STATUS == 2) // MM only is available { + pc.printf("\n\r MM only BDOT \n\r"); DRV_Z_EN = 1; DRV_XY_EN = 1; @@ -693,7 +699,7 @@ ACS_MAIN_STATUS = 0; return; } - else if(ACS_STATE == 2) // Nominal mode + else if((ACS_STATE == 2)||(ACS_STATE == 10)) // Nominal mode { #if print pc.printf("\n\r Nominal mode \n"); @@ -723,7 +729,7 @@ ACS_MAIN_STATUS = 0; return; } - else if(ACS_STATE == 3) // Auto Control + else if((ACS_STATE == 3)||(ACS_STATE == 11)) // Auto Control { #if print pc.printf("\n\r Auto control mode \n"); @@ -744,7 +750,7 @@ pc.printf("%f\t",moment[i]); } #endif - + pc.printf("\r\n"); timer_FCTN_ACS_GENPWM_MAIN.start(); FCTN_ACS_GENPWM_MAIN(moment) ;// set ACS_STATUS in function timer_FCTN_ACS_GENPWM_MAIN.stop(); @@ -753,8 +759,9 @@ ACS_MAIN_STATUS = 0; return; } - else if(ACS_STATE == 4) // Detumbling + else if((ACS_STATE == 4)||(ACS_STATE == 12)) // Detumbling { + pc.printf("\n\r Detumbling \n\r"); DRV_Z_EN = 1; DRV_XY_EN = 1; FCTN_ACS_CNTRLALGO(moment,mag_data,gyro_data,0x00,0x01,ACS_DETUMBLING_ALGO_TYPE); @@ -1129,7 +1136,8 @@ void pollfault() { - if (ACS_ATS1_OC_FAULT==0) // OC_ATS1 + //if (ACS_ATS1_OC_FAULT==0) // OC_ATS1 + if(0) { pf1check=1; actual_data.faultPoll_status |=0x01 ; @@ -1138,7 +1146,8 @@ else actual_data.faultPoll_status &= 0xFE; - if(ACS_ATS2_OC_FAULT==0) + //if(ACS_ATS2_OC_FAULT==0) + if(0) { pf2check=1; actual_data.faultPoll_status |=0x02 ; @@ -1178,7 +1187,7 @@ pc.printf("\nSTATE IS !!!!!! = %x !!\n",ACS_STATE); timer_F_ACS.reset(); timer_F_ACS.start(); - //F_ACS(); + F_ACS(); timer_F_ACS.stop(); /*pc.printf("\n\r timer_F_ACS is %f",timer_F_ACS.read()); pc.printf("\n\r timer_SENSOR_INIT is %f",timer_SENSOR_INIT.read()); @@ -1382,13 +1391,13 @@ actual_data.power_mode=3; //............intializing pins................// - ATS1_SW_ENABLE = 0; + ATS1_SW_ENABLE = 1; ATS2_SW_ENABLE = 1; DRV_XY_EN = 1; DRV_Z_EN = 1; - TRZ_SW = 1; - TRXY_SW = 1; + ACS_TR_Z_ENABLE = 1; + ACS_TR_XY_ENABLE = 1; //time_wdog = 1;