Dependencies: PinDetect mbed Servo
events.cpp@0:81f78497df4e, 2012-06-18 (annotated)
- Committer:
- Rufaida
- Date:
- Mon Jun 18 17:47:17 2012 +0000
- Revision:
- 0:81f78497df4e
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Rufaida | 0:81f78497df4e | 1 | #include "events.h" |
Rufaida | 0:81f78497df4e | 2 | |
Rufaida | 0:81f78497df4e | 3 | /*pindetect pins on the mbed*/ |
Rufaida | 0:81f78497df4e | 4 | PinDetect Top_Button (p13); |
Rufaida | 0:81f78497df4e | 5 | PinDetect Near_Top_Button (p14); |
Rufaida | 0:81f78497df4e | 6 | PinDetect Near_Bottom_Button (p15); |
Rufaida | 0:81f78497df4e | 7 | PinDetect Bottom_Button (p16); |
Rufaida | 0:81f78497df4e | 8 | PinDetect Top_Call_Button (p17); |
Rufaida | 0:81f78497df4e | 9 | PinDetect Bottom_Call_Button (p19); |
Rufaida | 0:81f78497df4e | 10 | PinDetect Go_Top_Button (p20); |
Rufaida | 0:81f78497df4e | 11 | PinDetect Go_Bottom_Button (p21); |
Rufaida | 0:81f78497df4e | 12 | PinDetect Safety (p22); |
Rufaida | 0:81f78497df4e | 13 | /*definitions*/ |
Rufaida | 0:81f78497df4e | 14 | events ev_q [q_size]; |
Rufaida | 0:81f78497df4e | 15 | int load=0,unload=0; |
Rufaida | 0:81f78497df4e | 16 | |
Rufaida | 0:81f78497df4e | 17 | void new_event(events ev) {//function for new event |
Rufaida | 0:81f78497df4e | 18 | ev_q[load++]= ev;//each time move the load to the next array |
Rufaida | 0:81f78497df4e | 19 | if (load==q_size)//load equal to the size of array |
Rufaida | 0:81f78497df4e | 20 | load=0;//load back to first array |
Rufaida | 0:81f78497df4e | 21 | } |
Rufaida | 0:81f78497df4e | 22 | int empty_q (void) {//function for empty array |
Rufaida | 0:81f78497df4e | 23 | return load==unload;//when unload and load are equal |
Rufaida | 0:81f78497df4e | 24 | } |
Rufaida | 0:81f78497df4e | 25 | events get_event(void) {//function for getting event |
Rufaida | 0:81f78497df4e | 26 | events e;//declearing the ev |
Rufaida | 0:81f78497df4e | 27 | do printf(""); |
Rufaida | 0:81f78497df4e | 28 | while (load==unload); |
Rufaida | 0:81f78497df4e | 29 | e=ev_q[unload++];//each time move the unload to the next array |
Rufaida | 0:81f78497df4e | 30 | if (unload==q_size)//unload equal to the size of array |
Rufaida | 0:81f78497df4e | 31 | unload=0;//unload back to first array |
Rufaida | 0:81f78497df4e | 32 | return e;//return to the fisrt event |
Rufaida | 0:81f78497df4e | 33 | } |
Rufaida | 0:81f78497df4e | 34 | |
Rufaida | 0:81f78497df4e | 35 | //event functions |
Rufaida | 0:81f78497df4e | 36 | void top_button () { |
Rufaida | 0:81f78497df4e | 37 | new_event(ev_Top_Button); |
Rufaida | 0:81f78497df4e | 38 | } |
Rufaida | 0:81f78497df4e | 39 | void near_top_button () { |
Rufaida | 0:81f78497df4e | 40 | new_event(ev_Near_Top_Button); |
Rufaida | 0:81f78497df4e | 41 | } |
Rufaida | 0:81f78497df4e | 42 | void near_bottom_button () { |
Rufaida | 0:81f78497df4e | 43 | new_event(ev_Near_Bottom_Button); |
Rufaida | 0:81f78497df4e | 44 | } |
Rufaida | 0:81f78497df4e | 45 | void bottom_button () { |
Rufaida | 0:81f78497df4e | 46 | new_event(ev_Bottom_Button); |
Rufaida | 0:81f78497df4e | 47 | } |
Rufaida | 0:81f78497df4e | 48 | void top_call_button () { |
Rufaida | 0:81f78497df4e | 49 | new_event(ev_Top_Call_Button); |
Rufaida | 0:81f78497df4e | 50 | call_to_top=1; |
Rufaida | 0:81f78497df4e | 51 | } |
Rufaida | 0:81f78497df4e | 52 | void bottom_call_button () { |
Rufaida | 0:81f78497df4e | 53 | new_event(ev_Bottom_Call_Button); |
Rufaida | 0:81f78497df4e | 54 | call_to_bottom=1; |
Rufaida | 0:81f78497df4e | 55 | } |
Rufaida | 0:81f78497df4e | 56 | void go_top_button () { |
Rufaida | 0:81f78497df4e | 57 | new_event(ev_Go_To_Top_Button); |
Rufaida | 0:81f78497df4e | 58 | } |
Rufaida | 0:81f78497df4e | 59 | void go_bottom_button () { |
Rufaida | 0:81f78497df4e | 60 | new_event(ev_Go_To_Bottom_Button); |
Rufaida | 0:81f78497df4e | 61 | } |
Rufaida | 0:81f78497df4e | 62 | void safety () { |
Rufaida | 0:81f78497df4e | 63 | new_event(ev_Safety); |
Rufaida | 0:81f78497df4e | 64 | } |
Rufaida | 0:81f78497df4e | 65 | |
Rufaida | 0:81f78497df4e | 66 | //pin detect function for the buttons (events) |
Rufaida | 0:81f78497df4e | 67 | void initialise_events(void) { |
Rufaida | 0:81f78497df4e | 68 | |
Rufaida | 0:81f78497df4e | 69 | Top_Button.mode(PullUp); |
Rufaida | 0:81f78497df4e | 70 | Top_Button.setAssertValue( 0 ); |
Rufaida | 0:81f78497df4e | 71 | Top_Button.attach_asserted(&top_button); |
Rufaida | 0:81f78497df4e | 72 | Top_Button.setSampleFrequency(); |
Rufaida | 0:81f78497df4e | 73 | |
Rufaida | 0:81f78497df4e | 74 | Near_Top_Button.mode(PullUp); |
Rufaida | 0:81f78497df4e | 75 | Near_Top_Button.setAssertValue( 0 ); |
Rufaida | 0:81f78497df4e | 76 | Near_Top_Button.attach_asserted(&near_top_button); |
Rufaida | 0:81f78497df4e | 77 | Near_Top_Button.setSampleFrequency(); |
Rufaida | 0:81f78497df4e | 78 | |
Rufaida | 0:81f78497df4e | 79 | Near_Bottom_Button.mode(PullUp); |
Rufaida | 0:81f78497df4e | 80 | Near_Bottom_Button.setAssertValue( 0 ); |
Rufaida | 0:81f78497df4e | 81 | Near_Bottom_Button.attach_asserted(&near_bottom_button); |
Rufaida | 0:81f78497df4e | 82 | Near_Bottom_Button.setSampleFrequency(); |
Rufaida | 0:81f78497df4e | 83 | |
Rufaida | 0:81f78497df4e | 84 | Bottom_Button.mode(PullUp); |
Rufaida | 0:81f78497df4e | 85 | Bottom_Button.setAssertValue( 0 ); |
Rufaida | 0:81f78497df4e | 86 | Bottom_Button.attach_asserted(&bottom_button); |
Rufaida | 0:81f78497df4e | 87 | Bottom_Button.setSampleFrequency(); |
Rufaida | 0:81f78497df4e | 88 | |
Rufaida | 0:81f78497df4e | 89 | Top_Call_Button.mode(PullUp); |
Rufaida | 0:81f78497df4e | 90 | Top_Call_Button.setAssertValue( 0 ); |
Rufaida | 0:81f78497df4e | 91 | Top_Call_Button.attach_asserted(&top_call_button); |
Rufaida | 0:81f78497df4e | 92 | Top_Call_Button.setSampleFrequency(); |
Rufaida | 0:81f78497df4e | 93 | |
Rufaida | 0:81f78497df4e | 94 | Bottom_Call_Button.mode(PullUp); |
Rufaida | 0:81f78497df4e | 95 | Bottom_Call_Button.setAssertValue( 0 ); |
Rufaida | 0:81f78497df4e | 96 | Bottom_Call_Button.attach_asserted(&bottom_call_button); |
Rufaida | 0:81f78497df4e | 97 | Bottom_Call_Button.setSampleFrequency(); |
Rufaida | 0:81f78497df4e | 98 | |
Rufaida | 0:81f78497df4e | 99 | Go_Top_Button.mode(PullUp); |
Rufaida | 0:81f78497df4e | 100 | Go_Top_Button.setAssertValue( 0 ); |
Rufaida | 0:81f78497df4e | 101 | Go_Top_Button.attach_asserted(&go_top_button); |
Rufaida | 0:81f78497df4e | 102 | Go_Top_Button.setSampleFrequency(); |
Rufaida | 0:81f78497df4e | 103 | |
Rufaida | 0:81f78497df4e | 104 | Go_Bottom_Button.mode(PullUp); |
Rufaida | 0:81f78497df4e | 105 | Go_Bottom_Button.setAssertValue( 0 ); |
Rufaida | 0:81f78497df4e | 106 | Go_Bottom_Button.attach_asserted(&go_bottom_button); |
Rufaida | 0:81f78497df4e | 107 | Go_Bottom_Button.setSampleFrequency(); |
Rufaida | 0:81f78497df4e | 108 | |
Rufaida | 0:81f78497df4e | 109 | Safety.mode(PullUp); |
Rufaida | 0:81f78497df4e | 110 | Safety.setAssertValue( 0 ); |
Rufaida | 0:81f78497df4e | 111 | Safety.attach_asserted(&safety); |
Rufaida | 0:81f78497df4e | 112 | Safety.setSampleFrequency(); |
Rufaida | 0:81f78497df4e | 113 | } |