This program allows to transform analog signal from rotary dial phone to numeric keys.

Dependencies:   mbed

Committer:
amigainc
Date:
Sun Aug 07 09:10:18 2011 +0000
Revision:
0:2c8568cec97f

        

Who changed what in which revision?

UserRevisionLine numberNew 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 }