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: SwAnalog_LPC1768 mbed
Fork of SwAnalogInputLibraryExampleProgram by
main.cpp@1:c4d2d6df69ce, 2013-12-22 (annotated)
- 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?
User | Revision | Line number | New 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 | } |