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:
- 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;
