a simple code for elevator
Dependencies: PinDetect mbed Servo
PIN_DETECT.cpp
- Committer:
- kemken
- Date:
- 2012-06-04
- Revision:
- 0:85829f7bbe62
File content as of revision 0:85829f7bbe62:
/* * SWITCH DEBOUNCING * ^^^^^^ ^^^^^^^^^^ * * FILE NAME: PIN_DETECT.cpp * USAGE: Extends DigitalIn to add mechanical switch deboucing of inputs. */ /* * including the wanted library files. */ #include "mbed.h" #include "main.h" #include "PIN_DETECT.h" #include "PinDetect.h" /******************************************************************************** ********************************************************************************* ******* WARNING: to used this file, PinDetect library must be import ************ ******* into the program ************ ********************************************************************************* *********************************************************************************/ PinDetect top_SW (p13); PinDetect NR_top_SW (p14); PinDetect bottom_SW (p15); PinDetect NR_bottom_SW (p16); PinDetect top_call (p17); PinDetect bottom_call (p19); PinDetect goto_top (p20); PinDetect goto_bottom (p21); PinDetect safety_button (p22); /*>>>>>>>>>>>>>>>>>>>>>>>>>>>>> functions callbacks follow <<<<<<<<<<<<<<<<<<<<<<<<<<<<*/ void SW_1 (void) { /* top switch pressed*/ new_event(at_top); } void SW_2 (void) { /*near top switch pressed*/ new_event(NR_top); } void SW_3(void) { /*near bottom switch pressed*/ new_event(NR_bottom); } void SW_4 (void) { /*bottom switch pressed*/ new_event(at_bottom); } void SW_5 (void) { /*top call button pressed*/ new_event(call_2); flag_call_2=1; } void SW_6 (void) { /*bottom call button pressed*/ new_event(call_1); flag_call_1=1; } void SW_7 (void) { /*go to top button*/ new_event(B_level_2); } void SW_8 (void) { /*go to bottom button*/ new_event(B_level_1); } void SW_9 (void) { /*safety switch*/ new_event(safety); } // C function for pin detect void switches (void) { // Debouncing >>>> // for switch 1 (top switch) top_SW.mode( PullUp ); top_SW.setAssertValue(0); top_SW.attach_asserted( &SW_1 ); top_SW.setSampleFrequency(); // for switch 2 (near top switch) NR_top_SW.mode( PullUp ); NR_top_SW.setAssertValue(0); NR_top_SW.attach_asserted( &SW_2 ); NR_top_SW.setSampleFrequency();// Defaults to 20ms. // for switch 3 (near bottom switch) bottom_SW.mode( PullUp ); bottom_SW.setAssertValue(0); bottom_SW.attach_asserted( &SW_3 ); bottom_SW.setSampleFrequency();// Defaults to 20ms. // for switch 4 (bottom switch) NR_bottom_SW.mode( PullUp ); NR_bottom_SW.setAssertValue(0); NR_bottom_SW.attach_asserted( &SW_4 ); NR_bottom_SW.setSampleFrequency();// Defaults to 20ms. // for switch 5 (top call switch) top_call.mode( PullUp ); top_call.setAssertValue(0); top_call.attach_asserted( &SW_5 ); top_call.setSampleFrequency();// Defaults to 20ms. // for switch 6 (bottom call switch) bottom_call.mode( PullUp ); bottom_call.setAssertValue(0); bottom_call.attach_asserted( &SW_6 ); bottom_call.setSampleFrequency();// Defaults to 20ms. // for switch 7 (level select button) goto_top.mode( PullUp ); goto_top.setAssertValue(0); goto_top.attach_asserted( &SW_7 ); goto_top.setSampleFrequency();// Defaults to 20ms. // for switch 8 (level select button) goto_bottom.mode( PullUp ); goto_bottom.setAssertValue(0); goto_bottom.attach_asserted( &SW_8 ); goto_bottom.setSampleFrequency();// Defaults to 20ms. // for switch 9 (safety switch) safety_button.mode( PullUp ); safety_button.setAssertValue(0); safety_button.attach_asserted( &SW_9 ); safety_button.setSampleFrequency();// Defaults to 20ms. } /******************************************************************************** ********************************************************************************* ******* for more detail about switch depancing program vist ************* ******* http://mbed.org/users/AjK/libraries/PinDetect/lkyxpw ************* ********************************************************************************* *********************************************************************************/