QITH FLAGS

Dependencies:   FreescaleIAP mbed-rtos mbed

Fork of TF_conops_BAE1_3 by Team Fox

Files at this revision

API Documentation at this revision

Comitter:
raizel_varun
Date:
Fri Jul 10 10:09:56 2015 +0000
Parent:
1:7185136654ce
Commit message:
WITH FLAGS

Changed in this revision

ACS.cpp Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r 7185136654ce -r 3c6c33509772 ACS.cpp
--- a/ACS.cpp	Mon Jul 06 07:34:00 2015 +0000
+++ b/ACS.cpp	Fri Jul 10 10:09:56 2015 +0000
@@ -41,7 +41,7 @@
 
 void  FCTN_ACS_INIT()
 {
-    BAE_STATUS |= 0x00000080;             //set ACS_INIT_STATUS flag to 1
+    BAE_STATUS = (BAE_STATUS & 0xFFFFFF7F) +0x00000080;             //set ACS_INIT_STATUS flag to 1
     FCTN_ATS_SWITCH(1);
     char store;
     g_cmd[0]=RESETREQ;
@@ -97,8 +97,8 @@
 
 void FCTN_ACS_DATA_ACQ(float g_gyro_data[3],float g_mag_data[3])
 {
-    BAE_STATUS |= 0x00000020;     //set ACS_DATA_ACQ_STATUS flag to 1
-    if(BAE_ENABLE & 0x00000010 == 0x00000010)       // check ACS_ATS_ENABLE = 1?
+    BAE_STATUS =(BAE_STATUS & 0xFFFFFEFF)  0x00000100;     //set ACS_DATA_ACQ_STATUS flag to 1
+    if(BAE_ENABLE & 0x00000004 == 0x00000004)       // check ACS_ATS_ENABLE = 1?
     {
         char status;
         g_toflag=1; //toFlag is set to 1 so that it enters while loop
@@ -135,14 +135,14 @@
                 FCTN_ATS_SWITCH(0);
             }
         }
-        BAE_STATUS |= 0x00000100;            //set ACS_ATS_STATUS = ACS_ATS_OPERATIONAL 
+      //  BAE_STATUS |= 0x00000000;            //set ACS_ATS_STATUS = ACS_ATS_OPERATIONAL 
     }
     else
     {
-        BAE_STATUS |= 0x000000C0;             //set ACS_DATA_ACQ_ATS = ACS_ATS_DISABLED // ACS_DATA_ACQ_STATUS = ACS_DATA_ACQ_FAILURE
+        BAE_STATUS =(BAE_STATUS & 0xFFFFFEFF)+ 0x00000200;             //set ACS_DATA_ACQ_ATS = ACS_ATS_DISABLED // ACS_DATA_ACQ_STATUS = ACS_DATA_ACQ_FAILURE
     }
        
-    BAE_STATUS &= 0xFFFFFFDF;     //clear ACS_DATA_ACQ_STATUS flag to 1
+    BAE_STATUS &= 0xFFFFFEFF;     //clear ACS_DATA_ACQ_STATUS flag to 1
 }
 
 void FCTN_GET_DATA(float g_gyro_data[3],float g_mag_data[3])
diff -r 7185136654ce -r 3c6c33509772 main.cpp
--- a/main.cpp	Mon Jul 06 07:34:00 2015 +0000
+++ b/main.cpp	Fri Jul 10 10:09:56 2015 +0000
@@ -91,7 +91,7 @@
         Thread::signal_wait(0x1);
         printf("\n\rEntered ACS   %f\n",t_start.read());
         t_exec.start();
-        BAE_STATUS |= 0x00001000;     //set ACS_MAIN_STATUS flag to 1
+        BAE_STATUS = (BAE_STATUS & 0xFFFEFFFF) + 0x00001000;     //set ACS_MAIN_STATUS flag to 1
         PWM1 = 0;                     //clear pwm pins
         PWM2 = 0;                     //clear pwm pins
         PWM3 = 0;                     //clear pwm pins
@@ -103,7 +103,7 @@
         mag_field1[1] = 20;
         mag_field1[2] = 30;
         //--------------------------------------
-        if (BAE_ENABLE & 0x00000001 == 0x00000001)       // check if ACS_DATA_ACQ_ENABLE = 1?
+        if (BAE_ENABLE & 0x00000008 == 0x00000008)       // check if ACS_DATA_ACQ_ENABLE = 1?
         {
             FCTN_ACS_DATA_ACQ(omega1,mag_field1); 
             printf("\n\rmnm gyro values\n"); //printing the angular velocity and magnetic field values
@@ -117,9 +117,9 @@
                 printf("%f\t",mag_field1[i]);
             }
         }
-        if(BAE_ENABLE & 0x0000000E == 0x00000000)        // check ACS_STATE = ACS_CONTROL_OFF?
+        if(BAE_ENABLE & 0x00000000 == 0x00000000)        // check ACS_STATE = ACS_CONTROL_OFF?
         {
-            BAE_STATUS |= 0x00000000;                    // set ACS_STATUS = ACS_CONTROL_OFF
+            BAE_STATUS = (BAE_STATUS & 0xFFF1FFFF) + 0x00000000;                    // set ACS_STATUS = ACS_CONTROL_OFF
             PWM1 = 0;                     //clear pwm pins
             PWM2 = 0;                     //clear pwm pins
             PWM3 = 0;                     //clear pwm pins
@@ -128,9 +128,9 @@
         {
             if(power_flag > 1)
             {
-                if(BAE_ENABLE & 0x0000000E == 0x00000004)   // check ACS_STATE = ACS_ZAXIS_MOMENT_ONLY 
+                if(BAE_ENABLE & 0x00000020 == 0x00000020)   // check ACS_STATE = ACS_ZAXIS_MOMENT_ONLY 
                 {
-                    BAE_STATUS |= 0x00000018;                    // set ACS_STATUS = ACS_ZAXIS_MOMENT_ONLY   
+                    BAE_STATUS = (BAE_STATUS & 0xFFF1FFFF) + 0x00004000;                    // set ACS_STATUS = ACS_ZAXIS_MOMENT_ONLY   
                     FCTN_ACS_CNTRLALGO(mag_field1,omega1,moment);
                     printf("\n\r moment values returned by control algo \n");
                     moment[0] = 0;
@@ -140,18 +140,18 @@
                 } 
                 else 
                 {
-                    if(BAE_ENABLE & 0x00000040 == 0x00000040)           // check ACS_STATE = ACS_DATA_ACQ_FAILURE
+                    if(BAE_ENABLE & 0x00000030 == 0x00000030)           // check ACS_STATE = ACS_DATA_ACQ_FAILURE
                     {
-                        BAE_STATUS |= 0x0000000C;                    // set ACS_STATUS = ACS_DATA_ACQ_FAILURE
+                        BAE_STATUS = (BAE_STATUS & 0xFFF1FFFF) + 0x00006000;                    // set ACS_STATUS = ACS_DATA_ACQ_FAILURE
                         PWM1 = 0;                     //clear pwm pins
                         PWM2 = 0;                     //clear pwm pins
                         PWM3 = 0;                     //clear pwm pins
                     }
                     else
                     {
-                        if(BAE_ENABLE & 0x0000000E == 0x00000008)       // check ACS_STATE = ACS_NOMINAL_ONLY
+                        if(BAE_ENABLE & 0x00000040 == 0x00000040)       // check ACS_STATE = ACS_NOMINAL_ONLY
                         {
-                            BAE_STATUS |= 0x00000010;                    // set ACS_STATUS = ACS_NOMINAL_ONLY
+                            BAE_STATUS = (BAE_STATUS & 0xFFF1FFFF) + 0x00008000;                    // set ACS_STATUS = ACS_NOMINAL_ONLY
                             FCTN_ACS_CNTRLALGO(mag_field1,omega1,moment);
                             printf("\n\r moment values returned by control algo \n");
                             for(int i=0; i<3; i++) 
@@ -162,22 +162,22 @@
                         }
                         else
                         {
-                            if(BAE_ENABLE & 0x0000000E == 0x0000000A)       // check ACS_STATE = ACS_AUTO_CONTROL
+                            if(BAE_ENABLE & 0x00000050 == 0x00000050)       // check ACS_STATE = ACS_AUTO_CONTROL
                             {
-                                BAE_STATUS |= 0x00000014;                    // set ACS_STATUS = ACS_AUTO_CONTROL
+                                BAE_STATUS =(BAE_STATUS & 0xFFF1FFFF) + 0x0000A000;                    // set ACS_STATUS = ACS_AUTO_CONTROL
                                 //FCTN_ACS_AUTOCTRL_LOGIC                    // gotta include this code
                             }
                             else
                             {
-                                if(BAE_ENABLE & 0x0000000E == 0x0000000C)       // check ACS_STATE = ACS_DETUMBLING_ONLY
+                                if(BAE_ENABLE & 0x00000060 == 0x00000060)       // check ACS_STATE = ACS_DETUMBLING_ONLY
                                 {
-                                    BAE_STATUS |= 0x00000018;                    // set ACS_STATUS = ACS_DETUMBLING_ONLY  
+                                    BAE_STATUS =(BAE_STATUS & 0xFFF1FFFF) + 0x0000C000;                    // set ACS_STATUS = ACS_DETUMBLING_ONLY  
                                     FCTN_ACS_CNTRLALGO(mag_field1,omega1,moment);  // detumbling code has to be included
                                     FCTN_ACS_GENPWM_MAIN(moment) ; 
                                 }
                                 else
                                 {
-                                    BAE_STATUS |= 0x0000001C;                    // set ACS_STATUS = INVALID STATE 
+                                    BAE_STATUS =(BAE_STATUS & 0xFFF1FFFF) + 0x0000E000;                    // set ACS_STATUS = INVALID STATE 
                                     PWM1 = 0;                     //clear pwm pins
                                     PWM2 = 0;                     //clear pwm pins
                                     PWM3 = 0;                     //clear pwm pins
@@ -189,7 +189,7 @@
             }
             else
             {
-                BAE_STATUS |= 0x00000004;                    // set ACS_STATUS = ACS_LOW_POWER
+                BAE_STATUS =(BAE_STATUS & 0xFFF1FFFF) + 0x00000004;                    // set ACS_STATUS = ACS_LOW_POWER
                 PWM1 = 0;                     //clear pwm pins
                 PWM2 = 0;                     //clear pwm pins
                 PWM3 = 0;                     //clear pwm pins