Aurelien STRIDE
/
RotaryDial
This program allows to transform analog signal from rotary dial phone to numeric keys.
main.cpp@0:2c8568cec97f, 2011-08-07 (annotated)
- Committer:
- amigainc
- Date:
- Sun Aug 07 09:10:18 2011 +0000
- Revision:
- 0:2c8568cec97f
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
amigainc | 0:2c8568cec97f | 1 | #include "mbed.h" |
amigainc | 0:2c8568cec97f | 2 | #include "USBKeyboard.h" |
amigainc | 0:2c8568cec97f | 3 | |
amigainc | 0:2c8568cec97f | 4 | DigitalOut Led1(LED1); |
amigainc | 0:2c8568cec97f | 5 | PwmOut Led2(LED2); |
amigainc | 0:2c8568cec97f | 6 | DigitalOut Led3(LED3); |
amigainc | 0:2c8568cec97f | 7 | DigitalOut Led4(LED4); |
amigainc | 0:2c8568cec97f | 8 | |
amigainc | 0:2c8568cec97f | 9 | InterruptIn Master(p10); |
amigainc | 0:2c8568cec97f | 10 | InterruptIn Pulses(p12); |
amigainc | 0:2c8568cec97f | 11 | |
amigainc | 0:2c8568cec97f | 12 | Serial pc(USBTX, USBRX); |
amigainc | 0:2c8568cec97f | 13 | USBKeyboard keyboard; |
amigainc | 0:2c8568cec97f | 14 | |
amigainc | 0:2c8568cec97f | 15 | int Count = 0; |
amigainc | 0:2c8568cec97f | 16 | |
amigainc | 0:2c8568cec97f | 17 | void eMaster1() { |
amigainc | 0:2c8568cec97f | 18 | Count=0; |
amigainc | 0:2c8568cec97f | 19 | Led1=0; |
amigainc | 0:2c8568cec97f | 20 | Led3=0; |
amigainc | 0:2c8568cec97f | 21 | Led2=0; |
amigainc | 0:2c8568cec97f | 22 | Led4=0; |
amigainc | 0:2c8568cec97f | 23 | } |
amigainc | 0:2c8568cec97f | 24 | |
amigainc | 0:2c8568cec97f | 25 | void eMaster0() { |
amigainc | 0:2c8568cec97f | 26 | |
amigainc | 0:2c8568cec97f | 27 | } |
amigainc | 0:2c8568cec97f | 28 | |
amigainc | 0:2c8568cec97f | 29 | void ePulse1() { |
amigainc | 0:2c8568cec97f | 30 | |
amigainc | 0:2c8568cec97f | 31 | } |
amigainc | 0:2c8568cec97f | 32 | |
amigainc | 0:2c8568cec97f | 33 | void ePulse0() { |
amigainc | 0:2c8568cec97f | 34 | wait(0.1); |
amigainc | 0:2c8568cec97f | 35 | Count++; |
amigainc | 0:2c8568cec97f | 36 | |
amigainc | 0:2c8568cec97f | 37 | Led1 = (Count & 1 ? 1 : 0); |
amigainc | 0:2c8568cec97f | 38 | Led2 = (Count & 2 ? 1 : 0); |
amigainc | 0:2c8568cec97f | 39 | Led3 = (Count & 4 ? 1 : 0); |
amigainc | 0:2c8568cec97f | 40 | Led4 = (Count & 8 ? 1 : 0); |
amigainc | 0:2c8568cec97f | 41 | } |
amigainc | 0:2c8568cec97f | 42 | |
amigainc | 0:2c8568cec97f | 43 | int main() { |
amigainc | 0:2c8568cec97f | 44 | Master.rise(& eMaster1); |
amigainc | 0:2c8568cec97f | 45 | Pulses.rise(& ePulse1); |
amigainc | 0:2c8568cec97f | 46 | Master.fall(& eMaster0); |
amigainc | 0:2c8568cec97f | 47 | Pulses.fall(& ePulse0); |
amigainc | 0:2c8568cec97f | 48 | |
amigainc | 0:2c8568cec97f | 49 | while(1) |
amigainc | 0:2c8568cec97f | 50 | { |
amigainc | 0:2c8568cec97f | 51 | if(Master==0 and Count>0) |
amigainc | 0:2c8568cec97f | 52 | { |
amigainc | 0:2c8568cec97f | 53 | if (Count == 10) Count=0; |
amigainc | 0:2c8568cec97f | 54 | //pc.putc(Count+48); |
amigainc | 0:2c8568cec97f | 55 | if (Count == 0) keyboard.sendKey('0'); |
amigainc | 0:2c8568cec97f | 56 | if (Count == 1) keyboard.sendKey('1'); |
amigainc | 0:2c8568cec97f | 57 | if (Count == 2) keyboard.sendKey('2'); |
amigainc | 0:2c8568cec97f | 58 | if (Count == 3) keyboard.sendKey('3'); |
amigainc | 0:2c8568cec97f | 59 | if (Count == 4) keyboard.sendKey('4'); |
amigainc | 0:2c8568cec97f | 60 | if (Count == 5) keyboard.sendKey('5'); |
amigainc | 0:2c8568cec97f | 61 | if (Count == 6) keyboard.sendKey('6'); |
amigainc | 0:2c8568cec97f | 62 | if (Count == 7) keyboard.sendKey('7'); |
amigainc | 0:2c8568cec97f | 63 | if (Count == 8) keyboard.sendKey('8'); |
amigainc | 0:2c8568cec97f | 64 | if (Count == 9) keyboard.sendKey('9'); |
amigainc | 0:2c8568cec97f | 65 | |
amigainc | 0:2c8568cec97f | 66 | Led4= !Led4; |
amigainc | 0:2c8568cec97f | 67 | Count=0; |
amigainc | 0:2c8568cec97f | 68 | } |
amigainc | 0:2c8568cec97f | 69 | } |
amigainc | 0:2c8568cec97f | 70 | } |