Avinash Repaka / Mbed 2 deprecated Lab4_519

Dependencies:   mbed

Committer:
avinashr
Date:
Thu Mar 26 02:25:46 2015 +0000
Revision:
1:4ec28912c9e7
Child:
2:2cc70773996b
Motors and Keypad working

Who changed what in which revision?

UserRevisionLine numberNew contents of line
avinashr 1:4ec28912c9e7 1 #include "mbed.h"
avinashr 1:4ec28912c9e7 2 //#include "RequestQueue.h"
avinashr 1:4ec28912c9e7 3
avinashr 1:4ec28912c9e7 4 //selection pin
avinashr 1:4ec28912c9e7 5 volatile int index = 1;
avinashr 1:4ec28912c9e7 6 Serial pc(USBTX, USBRX);
avinashr 1:4ec28912c9e7 7
avinashr 1:4ec28912c9e7 8 //Row pins
avinashr 1:4ec28912c9e7 9 InterruptIn inputOne(p8);
avinashr 1:4ec28912c9e7 10 InterruptIn inputTwo(p7);
avinashr 1:4ec28912c9e7 11 InterruptIn inputThree(p6);
avinashr 1:4ec28912c9e7 12 InterruptIn inputFour(p5);
avinashr 1:4ec28912c9e7 13
avinashr 1:4ec28912c9e7 14 //Coloumn pins
avinashr 1:4ec28912c9e7 15 DigitalOut outputOne(p9);
avinashr 1:4ec28912c9e7 16 DigitalOut outputTwo(p10);
avinashr 1:4ec28912c9e7 17 DigitalOut outputThree(p11);
avinashr 1:4ec28912c9e7 18 DigitalOut outputFour(p12);
avinashr 1:4ec28912c9e7 19
avinashr 1:4ec28912c9e7 20 //Timer to scan
avinashr 1:4ec28912c9e7 21 Ticker keypadTicker ;
avinashr 1:4ec28912c9e7 22 float scanInterval = 0.004; //4ms
avinashr 1:4ec28912c9e7 23
avinashr 1:4ec28912c9e7 24 void changeConfiguration();
avinashr 1:4ec28912c9e7 25
avinashr 1:4ec28912c9e7 26 void keyOnePressed (){
avinashr 1:4ec28912c9e7 27 keypadTicker .detach();
avinashr 1:4ec28912c9e7 28 if (index == 1)
avinashr 1:4ec28912c9e7 29 pc.printf(": 1 is pressed :");
avinashr 1:4ec28912c9e7 30 if (index == 2)
avinashr 1:4ec28912c9e7 31 pc.printf(": 4 is pressed :");
avinashr 1:4ec28912c9e7 32 if (index ==3)
avinashr 1:4ec28912c9e7 33 pc.printf(": 7 is pressed :");
avinashr 1:4ec28912c9e7 34 if (index ==4)
avinashr 1:4ec28912c9e7 35 pc.printf(": * is pressed :");
avinashr 1:4ec28912c9e7 36 }
avinashr 1:4ec28912c9e7 37
avinashr 1:4ec28912c9e7 38 void keyOneReleased (){
avinashr 1:4ec28912c9e7 39 keypadTicker .attach(&changeConfiguration,scanInterval);
avinashr 1:4ec28912c9e7 40 }
avinashr 1:4ec28912c9e7 41
avinashr 1:4ec28912c9e7 42 void keyTwoPressed (){
avinashr 1:4ec28912c9e7 43 keypadTicker .detach();
avinashr 1:4ec28912c9e7 44 if (index == 1)
avinashr 1:4ec28912c9e7 45 pc.printf(": 2 is pressed :");
avinashr 1:4ec28912c9e7 46 if (index == 2)
avinashr 1:4ec28912c9e7 47 pc.printf(": 5 is pressed :");
avinashr 1:4ec28912c9e7 48 if (index ==3)
avinashr 1:4ec28912c9e7 49 pc.printf(": 8 is pressed :");
avinashr 1:4ec28912c9e7 50 if (index ==4)
avinashr 1:4ec28912c9e7 51 pc.printf(": 0 is pressed :");
avinashr 1:4ec28912c9e7 52 }
avinashr 1:4ec28912c9e7 53
avinashr 1:4ec28912c9e7 54 void keyTwoReleased (){
avinashr 1:4ec28912c9e7 55 keypadTicker .attach(&changeConfiguration,scanInterval);
avinashr 1:4ec28912c9e7 56 }
avinashr 1:4ec28912c9e7 57
avinashr 1:4ec28912c9e7 58 void keyThreePressed (){
avinashr 1:4ec28912c9e7 59 keypadTicker .detach();
avinashr 1:4ec28912c9e7 60 if (index == 1)
avinashr 1:4ec28912c9e7 61 pc.printf(": 3 is pressed :");
avinashr 1:4ec28912c9e7 62 if (index == 2)
avinashr 1:4ec28912c9e7 63 pc.printf(": 6 is pressed :");
avinashr 1:4ec28912c9e7 64 if (index ==3)
avinashr 1:4ec28912c9e7 65 pc.printf(": 9 is pressed :");
avinashr 1:4ec28912c9e7 66 if (index ==4)
avinashr 1:4ec28912c9e7 67 pc.printf(": # is pressed :");
avinashr 1:4ec28912c9e7 68 }
avinashr 1:4ec28912c9e7 69
avinashr 1:4ec28912c9e7 70 void keyThreeReleased (){
avinashr 1:4ec28912c9e7 71 keypadTicker .attach(&changeConfiguration,scanInterval);
avinashr 1:4ec28912c9e7 72 }
avinashr 1:4ec28912c9e7 73
avinashr 1:4ec28912c9e7 74 void keyFourPressed (){
avinashr 1:4ec28912c9e7 75 keypadTicker .detach();
avinashr 1:4ec28912c9e7 76 if (index == 1)
avinashr 1:4ec28912c9e7 77 pc.printf(": A is pressed :");
avinashr 1:4ec28912c9e7 78 if (index == 2)
avinashr 1:4ec28912c9e7 79 pc.printf(": B is pressed :");
avinashr 1:4ec28912c9e7 80 if (index ==3)
avinashr 1:4ec28912c9e7 81 pc.printf(": c is pressed :");
avinashr 1:4ec28912c9e7 82 if (index ==4)
avinashr 1:4ec28912c9e7 83 pc.printf(": D is pressed :");
avinashr 1:4ec28912c9e7 84 }
avinashr 1:4ec28912c9e7 85
avinashr 1:4ec28912c9e7 86 void keyFourReleased (){
avinashr 1:4ec28912c9e7 87 keypadTicker .attach(&changeConfiguration,scanInterval);
avinashr 1:4ec28912c9e7 88 }
avinashr 1:4ec28912c9e7 89
avinashr 1:4ec28912c9e7 90 void changeConfiguration(){
avinashr 1:4ec28912c9e7 91 index =index +1;
avinashr 1:4ec28912c9e7 92 if(index == 5)
avinashr 1:4ec28912c9e7 93 index = 1;
avinashr 1:4ec28912c9e7 94 switch (index )
avinashr 1:4ec28912c9e7 95 {
avinashr 1:4ec28912c9e7 96 case 1:
avinashr 1:4ec28912c9e7 97 outputOne = 0;
avinashr 1:4ec28912c9e7 98 outputTwo = 1;
avinashr 1:4ec28912c9e7 99 outputThree = 1;
avinashr 1:4ec28912c9e7 100 outputFour = 1;
avinashr 1:4ec28912c9e7 101 break;
avinashr 1:4ec28912c9e7 102 case 2:
avinashr 1:4ec28912c9e7 103 outputOne = 1;
avinashr 1:4ec28912c9e7 104 outputTwo = 0;
avinashr 1:4ec28912c9e7 105 outputThree = 1;
avinashr 1:4ec28912c9e7 106 outputFour = 1;
avinashr 1:4ec28912c9e7 107 break;
avinashr 1:4ec28912c9e7 108 case 3:
avinashr 1:4ec28912c9e7 109 outputOne = 1;
avinashr 1:4ec28912c9e7 110 outputTwo = 1;
avinashr 1:4ec28912c9e7 111 outputThree = 0;
avinashr 1:4ec28912c9e7 112 outputFour = 1;
avinashr 1:4ec28912c9e7 113 break;
avinashr 1:4ec28912c9e7 114 case 4:
avinashr 1:4ec28912c9e7 115 outputOne = 1;
avinashr 1:4ec28912c9e7 116 outputTwo = 1;
avinashr 1:4ec28912c9e7 117 outputThree = 1;
avinashr 1:4ec28912c9e7 118 outputFour = 0;
avinashr 1:4ec28912c9e7 119 break;
avinashr 1:4ec28912c9e7 120 default : break;
avinashr 1:4ec28912c9e7 121 }
avinashr 1:4ec28912c9e7 122 }
avinashr 1:4ec28912c9e7 123
avinashr 1:4ec28912c9e7 124 void initializeKeypad(){
avinashr 1:4ec28912c9e7 125 outputOne = 1;
avinashr 1:4ec28912c9e7 126 outputTwo = 1;
avinashr 1:4ec28912c9e7 127 outputThree = 1;
avinashr 1:4ec28912c9e7 128 outputFour = 1;
avinashr 1:4ec28912c9e7 129 inputOne.fall(&keyOnePressed);
avinashr 1:4ec28912c9e7 130 inputOne.rise(&keyOneReleased);
avinashr 1:4ec28912c9e7 131 inputTwo.fall(&keyTwoPressed);
avinashr 1:4ec28912c9e7 132 inputTwo.rise(&keyTwoReleased);
avinashr 1:4ec28912c9e7 133 inputThree.fall(&keyThreePressed);
avinashr 1:4ec28912c9e7 134 inputThree.rise(&keyThreeReleased);
avinashr 1:4ec28912c9e7 135 inputFour.fall(&keyFourPressed);
avinashr 1:4ec28912c9e7 136 inputFour.rise(&keyFourReleased);
avinashr 1:4ec28912c9e7 137 keypadTicker.attach(&changeConfiguration, scanInterval);
avinashr 1:4ec28912c9e7 138 }