simulate satellite program structure
Dependencies: mbed HeptaBattery SDFileSystem
Fork of Lab7-01_template by
main.cpp@17:f4fd402f8e93, 2018-08-08 (annotated)
- Committer:
- HEPTA
- Date:
- Wed Aug 08 10:41:54 2018 +0000
- Revision:
- 17:f4fd402f8e93
- Parent:
- 13:a1fa75a002f6
- Child:
- 19:67ec6c9b7451
simulate satellite program structure
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mbed_official | 0:bdbd3d6fc5d5 | 1 | #include "mbed.h" |
mbed_official | 0:bdbd3d6fc5d5 | 2 | #include "SDFileSystem.h" |
umeume | 2:1c5cdb2c3e0f | 3 | #include "HeptaBattery.h" |
umeume | 2:1c5cdb2c3e0f | 4 | |
umeume | 2:1c5cdb2c3e0f | 5 | Serial pc(USBTX,USBRX); |
HEPTA | 9:942eb6e8c117 | 6 | SDFileSystem sd(p5, p6, p7, p8, "sd"); |
HEPTA | 13:a1fa75a002f6 | 7 | HeptaBattery battery(p16,p26); |
umeume | 2:1c5cdb2c3e0f | 8 | |
HEPTA | 17:f4fd402f8e93 | 9 | DigitalOut myleds[] = {LED1,LED2,LED3,LED4};; |
HEPTA | 17:f4fd402f8e93 | 10 | |
HEPTA | 17:f4fd402f8e93 | 11 | int rcmd = 0,cmdflag = 0; |
HEPTA | 17:f4fd402f8e93 | 12 | |
HEPTA | 17:f4fd402f8e93 | 13 | void commandget() |
HEPTA | 17:f4fd402f8e93 | 14 | { |
HEPTA | 17:f4fd402f8e93 | 15 | rcmd=pc.getc(); |
HEPTA | 17:f4fd402f8e93 | 16 | cmdflag = 1; |
HEPTA | 17:f4fd402f8e93 | 17 | } |
HEPTA | 17:f4fd402f8e93 | 18 | void receive(int *xrcmd, int *xcmdflag) |
HEPTA | 17:f4fd402f8e93 | 19 | { |
HEPTA | 17:f4fd402f8e93 | 20 | pc.attach(commandget,Serial::RxIrq); |
HEPTA | 17:f4fd402f8e93 | 21 | *xrcmd = rcmd; |
HEPTA | 17:f4fd402f8e93 | 22 | *xcmdflag = cmdflag; |
HEPTA | 17:f4fd402f8e93 | 23 | } |
HEPTA | 17:f4fd402f8e93 | 24 | |
HEPTA | 17:f4fd402f8e93 | 25 | void initialize() |
HEPTA | 17:f4fd402f8e93 | 26 | { |
HEPTA | 17:f4fd402f8e93 | 27 | rcmd = 0; |
HEPTA | 17:f4fd402f8e93 | 28 | cmdflag = 0; |
HEPTA | 17:f4fd402f8e93 | 29 | } |
umeume | 5:c5ccb1b07e8f | 30 | |
umeume | 2:1c5cdb2c3e0f | 31 | int main() |
umeume | 2:1c5cdb2c3e0f | 32 | { |
HEPTA | 17:f4fd402f8e93 | 33 | pc.baud(9600); |
HEPTA | 17:f4fd402f8e93 | 34 | float bt; |
HEPTA | 17:f4fd402f8e93 | 35 | int flag = 0; |
HEPTA | 17:f4fd402f8e93 | 36 | char str[100]; |
HEPTA | 17:f4fd402f8e93 | 37 | while(1) { |
HEPTA | 17:f4fd402f8e93 | 38 | battery.vol(&bt); |
HEPTA | 17:f4fd402f8e93 | 39 | if(bt <= 3.5) { |
HEPTA | 17:f4fd402f8e93 | 40 | battery.shut_down_regulator(); |
HEPTA | 17:f4fd402f8e93 | 41 | flag = 1; |
HEPTA | 17:f4fd402f8e93 | 42 | } else { |
HEPTA | 17:f4fd402f8e93 | 43 | battery.turn_on_regulator(); |
HEPTA | 17:f4fd402f8e93 | 44 | flag = 0; |
HEPTA | 17:f4fd402f8e93 | 45 | } |
HEPTA | 17:f4fd402f8e93 | 46 | pc.printf("Vol = %.2f [V]\r\n",bt); |
HEPTA | 17:f4fd402f8e93 | 47 | if(flag == 1) { |
HEPTA | 17:f4fd402f8e93 | 48 | pc.printf("Power saving mode ON\r\n"); |
HEPTA | 17:f4fd402f8e93 | 49 | } |
HEPTA | 17:f4fd402f8e93 | 50 | wait(0.5); |
HEPTA | 17:f4fd402f8e93 | 51 | receive(&rcmd,&cmdflag); |
HEPTA | 17:f4fd402f8e93 | 52 | if (cmdflag == 1) { |
HEPTA | 17:f4fd402f8e93 | 53 | pc.printf("Command Get = %d\r\n",rcmd); |
HEPTA | 17:f4fd402f8e93 | 54 | if (rcmd == 'a') { |
HEPTA | 17:f4fd402f8e93 | 55 | for(int i = 0; i < 10; i++) { |
HEPTA | 17:f4fd402f8e93 | 56 | pc.printf("Count = %d\r\n",i); |
HEPTA | 17:f4fd402f8e93 | 57 | wait(1.0); |
HEPTA | 17:f4fd402f8e93 | 58 | } |
HEPTA | 17:f4fd402f8e93 | 59 | } |
HEPTA | 17:f4fd402f8e93 | 60 | if (rcmd == 'b') { |
HEPTA | 17:f4fd402f8e93 | 61 | |
HEPTA | 17:f4fd402f8e93 | 62 | |
HEPTA | 17:f4fd402f8e93 | 63 | |
HEPTA | 17:f4fd402f8e93 | 64 | |
HEPTA | 17:f4fd402f8e93 | 65 | |
HEPTA | 17:f4fd402f8e93 | 66 | |
HEPTA | 17:f4fd402f8e93 | 67 | } |
HEPTA | 17:f4fd402f8e93 | 68 | initialize(); |
HEPTA | 17:f4fd402f8e93 | 69 | } |
HEPTA | 17:f4fd402f8e93 | 70 | } |
umeume | 2:1c5cdb2c3e0f | 71 | } |