bae integrated final (may be)

Dependencies:   mbed-rtos mbed

Fork of BAE_FRDMTESIN2 by Seeker of Truth ,

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers fault.cpp Source File

fault.cpp

00001 #include "fault.h"
00002 #include "HK.h"
00003  
00004  
00005 DigitalIn fault0(FAULT0,PullUp);
00006 DigitalIn fault1(FAULT1,PullUp);
00007 DigitalIn fault2(FAULT2,PullUp);
00008 DigitalIn fault3(FAULT3,PullUp);
00009 DigitalIn fault4(FAULT4,PullUp);
00010 //DigitalIn fault5(FAULT5,PullUp);
00011 //DigitalIn fault6(FAULT6,PullUp);
00012 //DigitalIn fault7(FAULT7,PullUp);
00013 //DigitalIn fault8(FAULT8,PullUp);
00014  
00015  
00016 InterruptIn fault_IR1(FAULT5);
00017 InterruptIn fault_IR2(FAULT6);
00018 InterruptIn fault_IR3(FAULT7);
00019 InterruptIn fault_IR4(FAULT8);
00020 InterruptIn fault_IR5(FAULT9);
00021  
00022  
00023  
00024 DigitalOut clear1(FAULT_CLEAR1,0);
00025 DigitalOut clear2(FAULT_CLEAR2,0);
00026 DigitalOut clear3(FAULT_CLEAR3,0);
00027 DigitalOut clear4(FAULT_CLEAR4,0);
00028 DigitalOut clear5(FAULT_CLEAR5);
00029 DigitalOut clear6(FAULT_CLEAR6);
00030 DigitalOut clear7(FAULT_CLEAR7);
00031 DigitalOut clear8(FAULT_CLEAR8);
00032 DigitalOut clear9(FAULT_CLEAR9);
00033  
00034  
00035 DigitalOut acs_active(ACS);
00036  
00037  
00038 BusIn fault_poll(FAULT0,FAULT1,FAULT2,FAULT3,FAULT4);
00039 BusIn fault_ir(FAULT5,FAULT6,FAULT7,FAULT8,FAULT9);
00040  
00041 BusOut clear_poll(FAULT_CLEAR1,FAULT_CLEAR2,FAULT_CLEAR3,FAULT_CLEAR4);//to send fault data along with hk
00042 BusOut clear_ir(FAULT_CLEAR5,FAULT_CLEAR6,FAULT_CLEAR7,FAULT_CLEAR8,FAULT_CLEAR9);
00043  
00044  
00045 extern SensorData Sensor;
00046 extern int beacon_sc;  //to switch beacon between low and high power mode
00047 extern int acs_pflag;  //to activate/deactivate control algo  
00048 char out_poll;
00049 char out_ir;
00050  
00051 void FAULTS()
00052 {
00053         
00054         printf("Entered Fault management \n");
00055         if(fault0==0)printf("CHARGER IS CHARGING THE BATTERY ");
00056         if(fault0==1)printf("CHRGER GONE OFFLINE, BATTERY DRAINING");
00057         
00058         if(fault1==0)
00059         {  clear1=1;printf("");}
00060         else
00061         { clear1=0;}
00062         
00063          if(fault2==0)
00064         {  clear2=1;printf("");}
00065         else
00066         { clear2=0;}
00067         
00068          if(fault3==0)
00069         {  clear3=1;printf("");}
00070         else
00071         { clear3=0;}
00072         
00073          if(fault4==0)
00074         {  clear4=1;printf("");}
00075         else
00076         { clear4=0;}
00077       
00078      
00079         
00080          
00081         
00082         
00083         
00084         
00085         //clear1 = !fault1; 
00086         //clear2 = !fault2; 
00087         //clear3 = !fault3; 
00088         //clear4 = !fault4; 
00089         //clear5 = !fault5; 
00090         //clear6 = !fault6; 
00091         //clear7 = !fault7; 
00092         //clear8 = !fault8; 
00093         
00094         
00095         out_poll = clear_poll;
00096         out_ir = clear_ir;
00097         Sensor.faultpoll = fault_poll ;
00098         Sensor.faultir=fault_ir ;
00099         printf(" %d , %d \n %d , %d\n",Sensor.faultpoll, Sensor.faultir , out_poll , out_ir) ;
00100         
00101 }
00102  
00103  
00104  
00105 void Clear_IR1()
00106 {clear5=!clear5;
00107 }
00108  
00109 void Clear_IR2()
00110 {clear6=!clear6;
00111 }
00112  
00113 void Clear_IR3()
00114 {clear7=!clear7;
00115 }
00116  
00117 void Clear_IR4()
00118 {clear8=!clear8;
00119 }
00120  
00121 void Clear_IR5()
00122 {clear9=!clear9;
00123 }
00124  
00125 void interrupt_fault()
00126 {
00127     fault_IR1.rise(&Clear_IR1);
00128     fault_IR2.rise(&Clear_IR2);
00129     fault_IR3.rise(&Clear_IR3);
00130     fault_IR4.rise(&Clear_IR4);
00131     fault_IR5.rise(&Clear_IR5);
00132     fault_IR1.fall(&Clear_IR1);
00133     fault_IR2.fall(&Clear_IR2);
00134     fault_IR3.fall(&Clear_IR3);
00135     fault_IR4.fall(&Clear_IR4);
00136     fault_IR5.fall(&Clear_IR5);
00137 }
00138     
00139  
00140 void POWER(char flag)                  //flag corresponds to the power mode
00141 {
00142     printf("Entered Power Management \n"); 
00143     printf("Entering mode %c \n", flag);
00144     switch (flag)
00145     {
00146         case '0': beacon_sc = 6;            //least power mode
00147                   acs_pflag = 0;
00148                   acs_active = 0;            //switching off a component of acs 
00149         break;
00150         case '1': beacon_sc = 3;
00151                   acs_pflag = 0;
00152                   acs_active = 0;
00153         break;
00154         case '2': beacon_sc = 3;
00155                   acs_pflag = 0;
00156                   acs_active = 0;
00157         break;
00158         case '3': beacon_sc = 3;             //normal mode  
00159                   acs_pflag = 1;
00160                   acs_active = 1;
00161         break;    
00162     }
00163   /*  if (flag == '0')
00164     beacon_sc = 30;
00165     else
00166     beacon_sc = 3;
00167     if (flag == '3')
00168     acs_pflag = 1;
00169     else
00170     acs_pflag = 0; */
00171 }
00172