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 TF_conops_BAE1_3 by
Revision 2:3c6c33509772, committed 2015-07-10
- 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
