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 DebounceIn
main.cpp
00001 #include "mbed.h" 00002 #include "DebounceIn.h" 00003 // must import Cookbook Debounce library into project 00004 // URL: http://mbed.org/users/AjK/libraries/DebounceIn/lky9pc 00005 00006 00007 DigitalOut myled3(p11); 00008 DigitalOut myled4(p12); 00009 DigitalOut myled2(p13); 00010 00011 DebounceIn pb(p8); 00012 DebounceIn pb1(p9); 00013 DebounceIn pb2 (p10); 00014 // SPST Pushbutton count demo using internal PullUp function 00015 // no external PullUp resistor needed 00016 // Pushbutton from P8 to GND. 00017 // Demonstrates need for debounce - will not count more than once per button hit 00018 // This ocuurs on all switches due to mechanical contact bounce 00019 int main() 00020 { 00021 int count=0; 00022 int old_pb=0; 00023 int new_pb; 00024 int old_pb1=0; 00025 int new_pb1; 00026 int order =0; 00027 int old_pb2=0; 00028 int new_pb2; 00029 00030 00031 // Use internal pullup for pushbutton 00032 pb.mode(PullUp); 00033 pb1.mode(PullUp); 00034 // Delay for initial pullup to take effect 00035 wait(.001); 00036 while (1){ 00037 myled4=1; 00038 wait(0.5); 00039 myled3=1; 00040 wait(0.5); 00041 myled2=1; 00042 wait(0.5); 00043 myled4=0; 00044 wait(0.5); 00045 myled3=0; 00046 wait(0.5); 00047 myled2=0; 00048 wait(0.5); 00049 00050 while(1) { 00051 new_pb = pb; 00052 new_pb1 = pb1; 00053 new_pb2= pb2; 00054 if ((new_pb==0) && (old_pb==1)) { 00055 count++; 00056 if (order==1){ 00057 myled3=1; 00058 order=2; 00059 } 00060 else { 00061 order=0; 00062 myled3=0; 00063 myled4=0; 00064 myled2=0; 00065 wait(3); 00066 break; 00067 } 00068 } 00069 if ((new_pb1==0) && (old_pb1==1)) { 00070 count++; 00071 if (order==0){ 00072 myled4=1; 00073 order=1; 00074 } 00075 else { 00076 order=0; 00077 myled3=0; 00078 myled4=0; 00079 wait(3); 00080 break; 00081 } 00082 } 00083 if ((new_pb2==0) && (old_pb2==1)) { 00084 count++; 00085 if (order==2){ 00086 myled2=1; 00087 order=0; 00088 wait(3); 00089 myled3=0; 00090 myled4=0; 00091 myled2=0; 00092 wait(3); 00093 break; 00094 } 00095 else { 00096 order=0; 00097 myled3=0; 00098 myled4=0; 00099 myled2=0; 00100 wait(3); 00101 break; 00102 } 00103 } 00104 00105 old_pb = new_pb; 00106 old_pb1 = new_pb1; 00107 old_pb2 = new_pb2; 00108 } 00109 } 00110 }
Generated on Wed Jul 27 2022 12:53:18 by
1.7.2