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.
Revision 0:791f5d1a8275, committed 2011-02-23
- Comitter:
- James1208
- Date:
- Wed Feb 23 20:59:54 2011 +0000
- Commit message:
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
| mbed.bld | Show annotated file Show diff for this revision Revisions of this file |
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Wed Feb 23 20:59:54 2011 +0000
@@ -0,0 +1,77 @@
+#include "mbed.h"
+
+DigitalIn sw_in (p5);
+InterruptIn enc_a (p6);
+InterruptIn enc_b (p7);
+PwmOut led1 (p22);
+PwmOut led2 (p23);
+
+void enc_a_int_routine (void);
+void enc_b_int_routine (void);
+
+bool enc_a_state;
+bool enc_b_state;
+bool old_enc_a_state;
+bool old_enc_b_state;
+int val_min = 0;
+int val_max = 100;
+int val = ((val_max - val_min) / 2) + val_min;
+int val_old = val;
+
+int main() {
+ sw_in.mode(PullUp);
+ enc_a.mode(PullUp);
+ enc_b.mode(PullUp);
+ enc_a_state = enc_a;
+ enc_b_state = enc_b;
+ enc_a.rise(&enc_a_int_routine);
+ enc_b.rise(&enc_b_int_routine);
+ enc_a.fall(&enc_a_int_routine);
+ enc_b.fall(&enc_b_int_routine);
+ while (1) {
+ if (val != val_old) {
+ printf("\n\r%i",val);
+ } // if (val != val_old)
+ val_old = val;
+ if (sw_in) {
+ led1 = val / 100.0;
+ led2 = 1.0 - (val / 100.0);
+ } else {
+ printf("button\n\r");
+ led1 = 0;
+ led2 = 0;
+ } // if (sw_in)
+ } // while(1)
+} // end main
+
+void enc_a_int_routine (void) {
+ old_enc_a_state = enc_a_state;
+ old_enc_b_state = enc_b_state;
+ enc_a_state = enc_a;
+ enc_b_state = enc_b;
+ if (((enc_a_state != old_enc_a_state) && (enc_b_state != old_enc_b_state)) || ((enc_a_state == old_enc_a_state) && (enc_b_state == old_enc_b_state))) {
+ val = val;
+ } else {
+ if (enc_a_state ^ old_enc_b_state) {
+ val -= 1;
+ } else {
+ val += 1;
+ } // (enc_a_state ^ old_enc_b_state)
+ } // if ((enc_a_state != old_enc_a_state) && (enc_b_state != old_enc_b_state))
+} // end enc_a_int_routine
+
+void enc_b_int_routine (void) {
+ old_enc_a_state = enc_a_state;
+ old_enc_b_state = enc_b_state;
+ enc_a_state = enc_a;
+ enc_b_state = enc_b;
+ if (((enc_a_state != old_enc_a_state) && (enc_b_state != old_enc_b_state)) || ((enc_a_state == old_enc_a_state) && (enc_b_state == old_enc_b_state))) {
+ val = val;
+ } else {
+ if (enc_a_state ^ old_enc_b_state) {
+ val -= 1;
+ } else {
+ val += 1;
+ } // (enc_a_state ^ old_enc_b_state)
+ } // if ((enc_a_state != old_enc_a_state) && (enc_b_state != old_enc_b_state))
+} // end enc_a_int_routine
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Wed Feb 23 20:59:54 2011 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/63bcd7ba4912