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.
Fork of pcb_test_v1_1 by
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 SensorDataQuantised SensorQuantised; 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 FUNC_HK_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 SensorQuantised.faultpoll = fault_poll ; 00098 SensorQuantised.faultir=fault_ir ; 00099 printf(" %d , %d \n ",SensorQuantised.faultpoll, SensorQuantised.faultir ) ; 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 FUNC_HK_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 }
Generated on Tue Jul 12 2022 16:58:38 by
