suu pen / Mbed 2 deprecated SwAnalogInputLibraryExampleProgram

Dependencies:   SwAnalog_LPC1768 mbed

Fork of SwAnalogInputLibraryExampleProgram by suu pen

Committer:
suupen
Date:
Sun Dec 22 09:27:26 2013 +0000
Revision:
1:c4d2d6df69ce
Parent:
0:7ce3de2c24c3
This program is used to verify the operations of the library SW recognize an analog port.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
suupen 1:c4d2d6df69ce 1 // ********************************************************************
suupen 0:7ce3de2c24c3 2 // SwAnalogInput Library example program
suupen 1:c4d2d6df69ce 3 // Per pin analog port, SW recognition There are three possible.
suupen 0:7ce3de2c24c3 4 //
suupen 0:7ce3de2c24c3 5 // <schematic>
suupen 0:7ce3de2c24c3 6 // -.- mbed VOUT(+3.3[V])
suupen 0:7ce3de2c24c3 7 // | |--------------------> mbed p20(ADinput)
suupen 1:c4d2d6df69ce 8 // | 8.2[kohm] 3.9[kohm] 2.0[kohm] | 1.0[kohm]
suupen 0:7ce3de2c24c3 9 // | --------- --------- --------- | ---------
suupen 0:7ce3de2c24c3 10 // .---| Rsw2 |---.---| Rsw1 |---.---| Rsw0 |---.---| Rout |----|
suupen 0:7ce3de2c24c3 11 // | --------- | --------- | --------- | --------- |
suupen 0:7ce3de2c24c3 12 // | ---- | ----- | ----- | |
suupen 0:7ce3de2c24c3 13 // |-----o o------.-----o o------.-----o o------| -----
suupen 0:7ce3de2c24c3 14 // SW2 SW1 SW0 mbed GND(0[V])
suupen 0:7ce3de2c24c3 15 //
suupen 1:c4d2d6df69ce 16 //
suupen 1:c4d2d6df69ce 17 // Accuracy of the resistance value that is within ± 1%
suupen 0:7ce3de2c24c3 18 //
suupen 1:c4d2d6df69ce 19 // <Operation details of this program>
suupen 1:c4d2d6df69ce 20 // mbed LED1 : When it detects the ON level of the SW0, and turns the LED1.
suupen 1:c4d2d6df69ce 21 // mbed LED2 : When it detects the OFF level of the SW1, and turns the LED2.
suupen 1:c4d2d6df69ce 22 // mbed LED3 : When it detects the ON edge of SW2, inverting the output to LED3.
suupen 1:c4d2d6df69ce 23 // mbed LED4 : When it detects the OFF edge of SW2, inverting the output to LED4.
suupen 0:7ce3de2c24c3 24 //
suupen 0:7ce3de2c24c3 25 //
suupen 1:c4d2d6df69ce 26 // <history>
suupen 1:c4d2d6df69ce 27 // 120212 : first edtion
suupen 1:c4d2d6df69ce 28 // 131221 : In this edition, I have changed the behavior of the program content
suupen 1:c4d2d6df69ce 29 //
suupen 0:7ce3de2c24c3 30 // *********************************************************************
suupen 0:7ce3de2c24c3 31
suupen 0:7ce3de2c24c3 32 #include "mbed.h"
suupen 0:7ce3de2c24c3 33 #include "SwAnalog.h"
suupen 0:7ce3de2c24c3 34
suupen 0:7ce3de2c24c3 35 DigitalOut led1(LED1);
suupen 0:7ce3de2c24c3 36 DigitalOut led2(LED2);
suupen 0:7ce3de2c24c3 37 DigitalOut led3(LED3);
suupen 0:7ce3de2c24c3 38 DigitalOut led4(LED4);
suupen 0:7ce3de2c24c3 39
suupen 0:7ce3de2c24c3 40 SwAnalog sw(p20); // p20(adinput) :sw0,sw1,sw2
suupen 1:c4d2d6df69ce 41
suupen 1:c4d2d6df69ce 42 enum{
suupen 1:c4d2d6df69ce 43 sw0 = 0,
suupen 1:c4d2d6df69ce 44 sw1,
suupen 1:c4d2d6df69ce 45 sw2
suupen 1:c4d2d6df69ce 46 };
suupen 0:7ce3de2c24c3 47
suupen 0:7ce3de2c24c3 48 int main() {
suupen 0:7ce3de2c24c3 49 while(1) {
suupen 1:c4d2d6df69ce 50 //===========================================
suupen 1:c4d2d6df69ce 51 // sw edge data refresh
suupen 1:c4d2d6df69ce 52 //===========================================
suupen 0:7ce3de2c24c3 53 sw.refreshEdgeData();
suupen 1:c4d2d6df69ce 54
suupen 1:c4d2d6df69ce 55 //===========================================
suupen 1:c4d2d6df69ce 56 // SW level action
suupen 1:c4d2d6df69ce 57 //===========================================
suupen 1:c4d2d6df69ce 58 // sw0 : OFF:LED1=ON ON:LED1=OFF
suupen 1:c4d2d6df69ce 59 led1 = sw.checkLevel(sw0);
suupen 0:7ce3de2c24c3 60
suupen 1:c4d2d6df69ce 61 // sw1 : OFF:LED2=OFF ON:LED2=ON
suupen 1:c4d2d6df69ce 62 led2 = !sw.checkLevel(sw1);
suupen 0:7ce3de2c24c3 63
suupen 1:c4d2d6df69ce 64 //===========================================
suupen 1:c4d2d6df69ce 65 // SW edge action
suupen 1:c4d2d6df69ce 66 //===========================================
suupen 1:c4d2d6df69ce 67 // sw2 on edge : LED3 invert
suupen 1:c4d2d6df69ce 68 if(sw.checkEdgeOn(sw2) == 1){
suupen 1:c4d2d6df69ce 69 led3 = !led3;
suupen 1:c4d2d6df69ce 70 }
suupen 1:c4d2d6df69ce 71
suupen 1:c4d2d6df69ce 72 // sw2 off edge : LED4 invert
suupen 1:c4d2d6df69ce 73 if(sw.checkEdgeOff(sw2) == 1){
suupen 1:c4d2d6df69ce 74 led4 = !led4;
suupen 0:7ce3de2c24c3 75 }
suupen 0:7ce3de2c24c3 76 }
suupen 1:c4d2d6df69ce 77
suupen 1:c4d2d6df69ce 78
suupen 0:7ce3de2c24c3 79 }