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.
Dependencies: mbed
Fork of hybrid_arm_main by
main.cpp@7:230f27866c1a, 2016-03-09 (annotated)
- Committer:
- hare
- Date:
- Wed Mar 09 06:16:08 2016 +0000
- Revision:
- 7:230f27866c1a
- Parent:
- 6:8db4a07deff0
- Child:
- 8:f756ddb8ff5b
2016/9/9
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
hare | 6:8db4a07deff0 | 1 | #include "mbed.h" |
hare | 5:08e214191e2a | 2 | DigitalIn start_sw(p21); |
hare | 5:08e214191e2a | 3 | |
hare | 5:08e214191e2a | 4 | PwmOut motor_up(p23); |
hare | 5:08e214191e2a | 5 | PwmOut motor_down(p22); |
hare | 5:08e214191e2a | 6 | |
hare | 5:08e214191e2a | 7 | DigitalIn encoder_A(p16); |
hare | 5:08e214191e2a | 8 | DigitalIn encoder_B(p17); |
hare | 0:6f7d125a0503 | 9 | |
hare | 5:08e214191e2a | 10 | AnalogIn sensor(p20); |
hare | 5:08e214191e2a | 11 | |
hare | 5:08e214191e2a | 12 | DigitalOut led1(LED1); |
hare | 5:08e214191e2a | 13 | DigitalOut led2(LED2); |
hare | 5:08e214191e2a | 14 | DigitalOut led3(LED3); |
hare | 5:08e214191e2a | 15 | DigitalOut led4(LED4); |
hare | 5:08e214191e2a | 16 | |
hare | 5:08e214191e2a | 17 | CAN can1(p30,p29); |
hare | 5:08e214191e2a | 18 | PwmOut fan(p25); |
hare | 2:aa7e8b22b32c | 19 | |
hare | 6:8db4a07deff0 | 20 | Ticker can_sub; |
hare | 6:8db4a07deff0 | 21 | |
hare | 6:8db4a07deff0 | 22 | int river_eco_loca=0; |
hare | 6:8db4a07deff0 | 23 | void receive(){ |
hare | 6:8db4a07deff0 | 24 | CANMessage msg; |
hare | 6:8db4a07deff0 | 25 | if(can1.read(msg)){ |
hare | 7:230f27866c1a | 26 | if(msg.id==5){ |
hare | 6:8db4a07deff0 | 27 | river_eco_loca=(short)((msg.data[0]<<8)|(msg.data[1])); |
hare | 7:230f27866c1a | 28 | led4=!led4; |
hare | 6:8db4a07deff0 | 29 | } |
hare | 6:8db4a07deff0 | 30 | } |
hare | 6:8db4a07deff0 | 31 | } |
hare | 6:8db4a07deff0 | 32 | int fan_power=1100; |
hare | 6:8db4a07deff0 | 33 | |
hare | 0:6f7d125a0503 | 34 | int main(){ |
hare | 1:0f1e77683604 | 35 | motor_up.period_us(20); |
hare | 1:0f1e77683604 | 36 | motor_down.period_us(20); |
hare | 0:6f7d125a0503 | 37 | motor_up=0; |
hare | 0:6f7d125a0503 | 38 | motor_down=0; |
hare | 6:8db4a07deff0 | 39 | while(1){ |
hare | 6:8db4a07deff0 | 40 | if(start_sw==1){break;} |
hare | 6:8db4a07deff0 | 41 | else if(sensor>=0.7){break;} |
hare | 6:8db4a07deff0 | 42 | else{motor_up=0.2;motor_down=0;} |
hare | 4:5a6706467b10 | 43 | } |
hare | 6:8db4a07deff0 | 44 | wait(0.3); |
hare | 1:0f1e77683604 | 45 | fan.period_ms(20); |
hare | 1:0f1e77683604 | 46 | fan.pulsewidth_us(1100); |
hare | 1:0f1e77683604 | 47 | printf("connect battery in 5sec please\n\r"); |
hare | 2:aa7e8b22b32c | 48 | for(int p=0;p<5;p++){ |
hare | 2:aa7e8b22b32c | 49 | led1=1; |
hare | 2:aa7e8b22b32c | 50 | wait(0.6); |
hare | 2:aa7e8b22b32c | 51 | led1=0; |
hare | 2:aa7e8b22b32c | 52 | wait(0.4);} // connect ripo in 5s; |
hare | 2:aa7e8b22b32c | 53 | |
hare | 2:aa7e8b22b32c | 54 | printf("4sec is count down\n\r"); |
hare | 2:aa7e8b22b32c | 55 | for(int p=0;p<4;p++){ |
hare | 1:0f1e77683604 | 56 | led1=1; |
hare | 2:aa7e8b22b32c | 57 | led2=1; |
hare | 2:aa7e8b22b32c | 58 | wait(0.6); |
hare | 2:aa7e8b22b32c | 59 | led2=0; |
hare | 2:aa7e8b22b32c | 60 | wait(0.4); } |
hare | 1:0f1e77683604 | 61 | printf("fan and is running\n\r"); |
hare | 2:aa7e8b22b32c | 62 | led1=1; |
hare | 2:aa7e8b22b32c | 63 | led2=1; |
hare | 2:aa7e8b22b32c | 64 | led3=1; |
hare | 6:8db4a07deff0 | 65 | can_sub.attach_us(&receive,5000); |
hare | 6:8db4a07deff0 | 66 | can1.frequency(1000000); |
hare | 6:8db4a07deff0 | 67 | |
hare | 0:6f7d125a0503 | 68 | while(1){ |
hare | 6:8db4a07deff0 | 69 | switch(river_eco_loca){ |
hare | 4:5a6706467b10 | 70 | case 0: |
hare | 4:5a6706467b10 | 71 | fan_power=1100; |
hare | 4:5a6706467b10 | 72 | break; |
hare | 4:5a6706467b10 | 73 | case 1: |
hare | 7:230f27866c1a | 74 | fan_power=1550; //start |
hare | 4:5a6706467b10 | 75 | break; |
hare | 4:5a6706467b10 | 76 | case 2: |
hare | 7:230f27866c1a | 77 | fan_power=1750; |
hare | 6:8db4a07deff0 | 78 | break; |
hare | 6:8db4a07deff0 | 79 | case 3: |
hare | 6:8db4a07deff0 | 80 | fan_power=1100; |
hare | 6:8db4a07deff0 | 81 | led1=0;led2=0;led3=0; |
hare | 4:5a6706467b10 | 82 | break; |
hare | 6:8db4a07deff0 | 83 | default: |
hare | 6:8db4a07deff0 | 84 | fan_power=1100; |
hare | 6:8db4a07deff0 | 85 | break;} |
hare | 6:8db4a07deff0 | 86 | fan.pulsewidth_us(fan_power); |
hare | 6:8db4a07deff0 | 87 | } |
hare | 6:8db4a07deff0 | 88 | } |