Lab3-05_create_satcode_step3_lite
Dependencies: mbed HEPTA_CDH_lite HEPTA_EPS_lite
Revision 2:d4178a27e4b2, committed 2021-08-20
- Comitter:
- heptasat2021
- Date:
- Fri Aug 20 12:26:17 2021 +0000
- Parent:
- 1:ddac5ec89167
- Commit message:
- For Hepta-Sat Lite
Changed in this revision
HEPTA_EPS_lite.lib | 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 ddac5ec89167 -r d4178a27e4b2 HEPTA_EPS_lite.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/HEPTA_EPS_lite.lib Fri Aug 20 12:26:17 2021 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/heptasat2021/code/HEPTA_EPS_lite/#d5bf433a0032
diff -r ddac5ec89167 -r d4178a27e4b2 main.cpp --- a/main.cpp Wed Aug 11 03:50:32 2021 +0000 +++ b/main.cpp Fri Aug 20 12:26:17 2021 +0000 @@ -1,19 +1,74 @@ #include "mbed.h" +#include "HEPTA_EPS.h" #include "HEPTA_CDH.h" HEPTA_CDH cdh(PB_5, PB_4, PB_3, PA_8, "sd"); -Serial pc(USBTX,USBRX,9600); +HEPTA_EPS eps(PA_0,PA_4); +DigitalOut condition(PB_1); +Serial gs(USBTX,USBRX,9600); +Timer sattime; +int rcmd = 0, cmdflag = 0; //command variable + +//getting command and command flag +void commandget() +{ + rcmd = gs.getc(); + cmdflag = 1; +} +//interrupting process by command receive +void receive(int rcmd, int cmdflag) +{ + gs.attach(commandget,Serial::RxIrq); +} +//initializing +void initialize() +{ + rcmd = 0; + cmdflag = 0; + condition = 0; +} + int main() { - pc.printf("Hello World!\n"); - - mkdir("/sd/mydir", 0777); - - FILE *fp = fopen("/sd/mydir/sdtest.txt", "w"); - if(fp == NULL) { - error("Could not open file for write\r\n"); + gs.printf("From Sat : Nominal Operation\r\n"); + int flag = 0; //condition flag + float batvol, temp; //voltage, temperature + sattime.start(); + receive(rcmd,cmdflag); //interrupting + eps.turn_on_regulator();//turn on 3.3V conveter + for(int i=0;i<50;i++){ + //satellite condition led + condition = !condition; + + //senssing HK data(dummy data) + eps.vol(&batvol); + temp = 28.5; + + //Transmitting HK data to Ground Station(GS) + gs.printf("HEPTASAT::Condition = %d, Time = %f [s], batvol = %2f [V], temp = %2f [deg C]\r\n",flag,sattime.read(),batvol,temp); + wait_ms(1000); + + //Power Saving Mode + if(batvol <= 3.5){ + eps.shut_down_regulator(); + gs.printf("Power saving mode ON\r\n"); + flag = 1; + } else if((flag == 1) & (batvol > 3.7)) { + eps.turn_on_regulator(); + gs.printf("Power saving mode OFF\r\n"); + flag = 0; + } + + if(cmdflag == 1){ + if(rcmd == 'a'){ + for(int j=0;j<5;j++){ + gs.printf("Hello World!\r\n"); + condition = 1; + wait_ms(1000); + } + } + initialize(); //initializing + } } - fprintf(fp, "Hello my name is HEPTA\r\n"); - fclose(fp); - - pc.printf("Goodbye World!\r\n"); + sattime.stop(); + gs.printf("From Sat : End of operation\r\n"); } \ No newline at end of file