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:
- 41:5df2bed2157d
- Parent:
- 40:c2538d97e78b
--- a/main.cpp Tue Jul 05 19:14:06 2016 +0000 +++ b/main.cpp Fri Jul 08 08:14:29 2016 +0000 @@ -5,8 +5,8 @@ #include "EPS.h" #include "BCN.h" #include "TCTM.h" -#define tm_len 135 -#define tc_len 134 +#define tm_len 134 +#define tc_len 135 #define batt_heat_low 20 #define print 1 #define PRINT2 1 @@ -287,7 +287,7 @@ //TCTM -extern uint8_t telemetry[135]; +extern uint8_t telemetry[tm_len]; //ACS @@ -504,7 +504,7 @@ ACS_DATA_ACQ_STATUS = (uint8_t) FCTN_ATS_DATA_ACQ(); #if print - printing the angular speed and magnetic field values + //printing the angular speed and magnetic field values pc.printf("gyro values\n\r"); for(int i=0; i<3; i++) { @@ -518,26 +518,40 @@ } #endif + pc.printf("gyro values\n\r"); + for(int i=0; i<3; i++) + { + printf("%f\n\r",actual_data.AngularSpeed_actual[i]); + } + + pc.printf("mag values\n\r"); + for(int i=0; i<3; i++) + { + pc.printf("%f\n\r",actual_data.Bvalue_actual[i]); + } + for(int i=0;i<3;i++) { mag_data[i] = actual_data.Bvalue_actual[i]/1000000; gyro_data[i] = actual_data.AngularSpeed_actual[i]*3.14159/180; + //mag_data[i] = 32/1000000; + //gyro_data[i] = 1.5*3.14159/180; } if(ACS_STATE == 0) // check ACS_STATE = ACS_CONTROL_OFF? { - #if print + //#if print printf("\n\r acs control off\n"); - #endif + //#endif ACS_STATUS = 0; // set ACS_STATUS = ACS_CONTROL_OFF ACS_MAIN_STATUS = 0; return; } else if(actual_data.power_mode<=2) { - #if print + //#if print 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 @@ -603,9 +617,9 @@ ACS_DETUMBLING_ALGO_TYPE = 0x01; FCTN_ACS_CNTRLALGO(moment,mag_data,gyro_data,0x00,0x01,ACS_DETUMBLING_ALGO_TYPE); controlmode_mms=0x00; - #if print + //#if print printf("\n\r Moment values returned by control algo \n"); - #endif + //#endif for(int i=0; i<3; i++) { printf("%f\t",moment[i]); @@ -616,9 +630,9 @@ } else if(ACS_STATE == 7) // Nominal mode { - #if print + //#if print printf("\n\r Nominal mode \n"); - #endif + //#endif DRV_Z_EN = 1; DRV_XY_EN = 1; FCTN_ACS_CNTRLALGO(moment,mag_data,gyro_data,0x01,0x00,ACS_DETUMBLING_ALGO_TYPE); @@ -636,26 +650,30 @@ } else if(ACS_STATE == 8) // Auto Control { - #if print + //#if print printf("\n\r Auto control mode \n"); - #endif + //#endif DRV_Z_EN = 1; - DRV_XY_EN = 1; + DRV_XY_EN = 1; + //moment[1] = 0; + //moment[2]= 0; + // moment[0] = 0; FCTN_ACS_CNTRLALGO(moment,mag_data,gyro_data,0x00,0x00,ACS_DETUMBLING_ALGO_TYPE); controlmode_mms = 0x00; - #if print - printf("\n\r Moment values returned by control algo \n"); + + printf("\n\r Moment values returned by control algo \n"); for(int i=0; i<3; i++) { printf("%f\t",moment[i]); } - #endif + FCTN_ACS_GENPWM_MAIN(moment) ;// set ACS_STATUS in function ACS_MAIN_STATUS = 0; return; } else if(ACS_STATE == 9) // Detumbling { + printf("Detumbling mode\r\n"); DRV_Z_EN = 1; DRV_XY_EN = 1; FCTN_ACS_CNTRLALGO(moment,mag_data,gyro_data,0x00,0x01,ACS_DETUMBLING_ALGO_TYPE); @@ -750,7 +768,7 @@ //**************************************************BCN THREAD*******************************************************************// - + void F_BCN() { pc.printf("\n\rEntered BCN %f\n",t_start.read()); @@ -770,7 +788,7 @@ BAE_MNG_I2C_STATUS =1 ; I2C_last.reset(); I2C_last.start(); - pc.printf("\n\r intrpet"); + // pc.printf("\n\r\r\n\r\n\r\n\r\n TELECOMMAND RECEIVED!!\r\n\r\n\r\n\r\n"); if( slave.receive() == 0) { pdir_ss1=PTE->PDIR; /////////edited @@ -1025,7 +1043,8 @@ { if( BAE_STANDBY!=0x02 && BAE_STANDBY!=0x03 && BAE_STANDBY!=0x06 && BAE_STANDBY!=0x07) { - pc.printf("\nSTATE IS !!!!!! = %x !!\n",ACS_STATE); + pc.printf("\nACS STATE IS !!!!!! = %x !!\r\n",ACS_STATE); + pc.printf("\nACS ATS STATUS IS !!!!!! = %x !!\r\n",ACS_ATS_STATUS); F_ACS(); //time_wdog = 0; }