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 QM_BAE_review_1 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;
}
