
for textbook ver.4.4
Dependencies: mbed
main.cpp@0:6ea3da70c580, 2020-07-02 (annotated)
- Committer:
- MEXT1
- Date:
- Thu Jul 02 08:53:03 2020 +0000
- Revision:
- 0:6ea3da70c580
Lab1-04_create_satellite_program_step2_Q
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MEXT1 | 0:6ea3da70c580 | 1 | #include "mbed.h" |
MEXT1 | 0:6ea3da70c580 | 2 | |
MEXT1 | 0:6ea3da70c580 | 3 | DigitalOut cond[]={LED1,LED2,LED3,LED4}; |
MEXT1 | 0:6ea3da70c580 | 4 | Serial gs(USBTX,USBRX); // for ground station |
MEXT1 | 0:6ea3da70c580 | 5 | int rcmd = 0,cmdflag = 0; //command variable |
MEXT1 | 0:6ea3da70c580 | 6 | |
MEXT1 | 0:6ea3da70c580 | 7 | //getting command and flag |
MEXT1 | 0:6ea3da70c580 | 8 | void commandget() |
MEXT1 | 0:6ea3da70c580 | 9 | { |
MEXT1 | 0:6ea3da70c580 | 10 | rcmd=gs.getc(); |
MEXT1 | 0:6ea3da70c580 | 11 | cmdflag = 1; |
MEXT1 | 0:6ea3da70c580 | 12 | } |
MEXT1 | 0:6ea3da70c580 | 13 | //interrupting |
MEXT1 | 0:6ea3da70c580 | 14 | void receive(int rcmd, int cmdflag) |
MEXT1 | 0:6ea3da70c580 | 15 | { |
MEXT1 | 0:6ea3da70c580 | 16 | gs.attach(commandget,Serial::RxIrq); |
MEXT1 | 0:6ea3da70c580 | 17 | } |
MEXT1 | 0:6ea3da70c580 | 18 | //initialzing |
MEXT1 | 0:6ea3da70c580 | 19 | void initialize() |
MEXT1 | 0:6ea3da70c580 | 20 | { |
MEXT1 | 0:6ea3da70c580 | 21 | rcmd = 0; |
MEXT1 | 0:6ea3da70c580 | 22 | cmdflag = 0; |
MEXT1 | 0:6ea3da70c580 | 23 | cond[0] = 0; |
MEXT1 | 0:6ea3da70c580 | 24 | } |
MEXT1 | 0:6ea3da70c580 | 25 | |
MEXT1 | 0:6ea3da70c580 | 26 | int main() { |
MEXT1 | 0:6ea3da70c580 | 27 | gs.baud(9600); |
MEXT1 | 0:6ea3da70c580 | 28 | gs.printf("From Sat : Operation Start...\r\n"); |
MEXT1 | 0:6ea3da70c580 | 29 | int flag = 0; // condition |
MEXT1 | 0:6ea3da70c580 | 30 | float sattime=0.0,btvol,temp; //Voltage, Temerature |
MEXT1 | 0:6ea3da70c580 | 31 | receive(rcmd,cmdflag); //interupting by ground station command |
MEXT1 | 0:6ea3da70c580 | 32 | for(int i=0; i<100; i++){ |
MEXT1 | 0:6ea3da70c580 | 33 | //Sensing HK data(dummy) |
MEXT1 | 0:6ea3da70c580 | 34 | btvol = 3.7; |
MEXT1 | 0:6ea3da70c580 | 35 | temp = 28.5; |
MEXT1 | 0:6ea3da70c580 | 36 | |
MEXT1 | 0:6ea3da70c580 | 37 | //Transmitting HK data |
MEXT1 | 0:6ea3da70c580 | 38 | gs.printf("HEPTASAT::Condition = %d, Time = %f [s], batVol = %.2f [V],Temp = %.2f [C]\r\n",flag,sattime,btvol,temp); |
MEXT1 | 0:6ea3da70c580 | 39 | |
MEXT1 | 0:6ea3da70c580 | 40 | //Condition |
MEXT1 | 0:6ea3da70c580 | 41 | cond[0] = 1; |
MEXT1 | 0:6ea3da70c580 | 42 | |
MEXT1 | 0:6ea3da70c580 | 43 | //Contents of command |
MEXT1 | 0:6ea3da70c580 | 44 | if (cmdflag == 1) { |
MEXT1 | 0:6ea3da70c580 | 45 | if (rcmd == 'a') { |
MEXT1 | 0:6ea3da70c580 | 46 | //Please enter your answer in this part |
MEXT1 | 0:6ea3da70c580 | 47 | |
MEXT1 | 0:6ea3da70c580 | 48 | |
MEXT1 | 0:6ea3da70c580 | 49 | |
MEXT1 | 0:6ea3da70c580 | 50 | |
MEXT1 | 0:6ea3da70c580 | 51 | |
MEXT1 | 0:6ea3da70c580 | 52 | |
MEXT1 | 0:6ea3da70c580 | 53 | } |
MEXT1 | 0:6ea3da70c580 | 54 | initialize(); |
MEXT1 | 0:6ea3da70c580 | 55 | } |
MEXT1 | 0:6ea3da70c580 | 56 | |
MEXT1 | 0:6ea3da70c580 | 57 | //Operation Interval |
MEXT1 | 0:6ea3da70c580 | 58 | wait(1.0); |
MEXT1 | 0:6ea3da70c580 | 59 | sattime = sattime+1.0; |
MEXT1 | 0:6ea3da70c580 | 60 | } |
MEXT1 | 0:6ea3da70c580 | 61 | gs.printf("From Sat : Operation Stop...\r\n"); |
MEXT1 | 0:6ea3da70c580 | 62 | } |