a
Dependents: 3servotest 1stcomp 3rdcompfixstart 2ndcomp ... more
Fork of button by
button.cpp@4:4202cede988e, 2016-09-17 (annotated)
- Committer:
- choutin
- Date:
- Sat Sep 17 23:21:13 2016 +0000
- Revision:
- 4:4202cede988e
- Parent:
- 3:cdeb282335a6
?
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
choutin | 2:bd8ad2528693 | 1 | |
sakanakuuun | 0:8981bbe3e60e | 2 | #include "button.h" |
sakanakuuun | 0:8981bbe3e60e | 3 | |
sakanakuuun | 0:8981bbe3e60e | 4 | DigitalIn start_button(USER_BUTTON); |
choutin | 3:cdeb282335a6 | 5 | DigitalIn makihara_button(PD_2); |
sakanakuuun | 0:8981bbe3e60e | 6 | DigitalOut beep(PB_10); |
sakanakuuun | 0:8981bbe3e60e | 7 | |
sakanakuuun | 0:8981bbe3e60e | 8 | DigitalIn phase1(PA_5); |
sakanakuuun | 0:8981bbe3e60e | 9 | DigitalIn phase2(PA_6); |
sakanakuuun | 0:8981bbe3e60e | 10 | DigitalIn phase4(PA_7); |
sakanakuuun | 0:8981bbe3e60e | 11 | DigitalIn phase8(PB_12); |
sakanakuuun | 0:8981bbe3e60e | 12 | |
sakanakuuun | 0:8981bbe3e60e | 13 | DigitalIn teamSW(PC_11); |
sakanakuuun | 0:8981bbe3e60e | 14 | DigitalOut teamledblue(PC_10); |
sakanakuuun | 0:8981bbe3e60e | 15 | DigitalOut teamledred(PC_12); |
sakanakuuun | 0:8981bbe3e60e | 16 | |
choutin | 1:e7afd09cde6f | 17 | |
sakanakuuun | 0:8981bbe3e60e | 18 | |
sakanakuuun | 0:8981bbe3e60e | 19 | int phaseSW(void){ |
sakanakuuun | 0:8981bbe3e60e | 20 | phase1.mode(PullUp); |
sakanakuuun | 0:8981bbe3e60e | 21 | phase2.mode(PullUp); |
sakanakuuun | 0:8981bbe3e60e | 22 | phase4.mode(PullUp); |
sakanakuuun | 0:8981bbe3e60e | 23 | phase8.mode(PullUp); |
sakanakuuun | 0:8981bbe3e60e | 24 | |
sakanakuuun | 0:8981bbe3e60e | 25 | int SW=phase1+2*phase2+4*phase4+8*phase8; |
choutin | 4:4202cede988e | 26 | |
sakanakuuun | 0:8981bbe3e60e | 27 | return SW; |
sakanakuuun | 0:8981bbe3e60e | 28 | } |
sakanakuuun | 0:8981bbe3e60e | 29 | |
sakanakuuun | 0:8981bbe3e60e | 30 | |
sakanakuuun | 0:8981bbe3e60e | 31 | int teamLED() |
sakanakuuun | 0:8981bbe3e60e | 32 | { |
sakanakuuun | 0:8981bbe3e60e | 33 | teamSW.mode(PullUp); |
sakanakuuun | 0:8981bbe3e60e | 34 | if(teamSW) { |
sakanakuuun | 0:8981bbe3e60e | 35 | teamledblue=1; |
sakanakuuun | 0:8981bbe3e60e | 36 | teamledred=0; |
sakanakuuun | 0:8981bbe3e60e | 37 | return -1; |
sakanakuuun | 0:8981bbe3e60e | 38 | } else { |
sakanakuuun | 0:8981bbe3e60e | 39 | teamledblue=0; |
sakanakuuun | 0:8981bbe3e60e | 40 | teamledred=1; |
sakanakuuun | 0:8981bbe3e60e | 41 | return 1; |
sakanakuuun | 0:8981bbe3e60e | 42 | } |
sakanakuuun | 0:8981bbe3e60e | 43 | } |
sakanakuuun | 0:8981bbe3e60e | 44 | |
sakanakuuun | 0:8981bbe3e60e | 45 | void buzzer(bool on) |
sakanakuuun | 0:8981bbe3e60e | 46 | { |
sakanakuuun | 0:8981bbe3e60e | 47 | if(on) |
sakanakuuun | 0:8981bbe3e60e | 48 | beep = 1; |
sakanakuuun | 0:8981bbe3e60e | 49 | else |
sakanakuuun | 0:8981bbe3e60e | 50 | beep = 0; |
sakanakuuun | 0:8981bbe3e60e | 51 | } |
sakanakuuun | 0:8981bbe3e60e | 52 | |
sakanakuuun | 0:8981bbe3e60e | 53 | bool start() |
sakanakuuun | 0:8981bbe3e60e | 54 | { |
sakanakuuun | 0:8981bbe3e60e | 55 | if(start_button) |
sakanakuuun | 0:8981bbe3e60e | 56 | return true; |
sakanakuuun | 0:8981bbe3e60e | 57 | else |
sakanakuuun | 0:8981bbe3e60e | 58 | return false; |
choutin | 3:cdeb282335a6 | 59 | } |
choutin | 3:cdeb282335a6 | 60 | |
choutin | 3:cdeb282335a6 | 61 | void commandIn(int command[3]) |
choutin | 3:cdeb282335a6 | 62 | { |
choutin | 3:cdeb282335a6 | 63 | |
choutin | 3:cdeb282335a6 | 64 | makihara_button.mode(PullUp); |
choutin | 3:cdeb282335a6 | 65 | while(!makihara_button); |
choutin | 3:cdeb282335a6 | 66 | for(int i=0; i < 3; ++i) { |
choutin | 3:cdeb282335a6 | 67 | while(makihara_button); |
choutin | 3:cdeb282335a6 | 68 | wait_ms(10); |
choutin | 3:cdeb282335a6 | 69 | buzzer(1); |
choutin | 3:cdeb282335a6 | 70 | while(!makihara_button); |
choutin | 3:cdeb282335a6 | 71 | wait_ms(10); |
choutin | 3:cdeb282335a6 | 72 | buzzer(0); |
choutin | 3:cdeb282335a6 | 73 | command[i] = get_phase(); |
choutin | 3:cdeb282335a6 | 74 | // (*colors[i])(1); |
choutin | 3:cdeb282335a6 | 75 | } |
choutin | 3:cdeb282335a6 | 76 | } |
choutin | 3:cdeb282335a6 | 77 | |
choutin | 3:cdeb282335a6 | 78 | void initbutton() |
choutin | 3:cdeb282335a6 | 79 | { |
choutin | 3:cdeb282335a6 | 80 | makihara_button.mode(PullUp); |
choutin | 3:cdeb282335a6 | 81 | phase1.mode(PullUp); |
choutin | 3:cdeb282335a6 | 82 | phase2.mode(PullUp); |
choutin | 3:cdeb282335a6 | 83 | phase4.mode(PullUp); |
choutin | 3:cdeb282335a6 | 84 | phase8.mode(PullUp); |
choutin | 3:cdeb282335a6 | 85 | } |
choutin | 3:cdeb282335a6 | 86 | |
choutin | 3:cdeb282335a6 | 87 | |
choutin | 3:cdeb282335a6 | 88 | int get_phase() |
choutin | 3:cdeb282335a6 | 89 | { |
choutin | 3:cdeb282335a6 | 90 | return phase1 + phase2*2 + phase4*4 + phase8*8; |
sakanakuuun | 0:8981bbe3e60e | 91 | } |