Lets you control your mbed from an easy to use GUI. Entire project is on git hub: https://github.com/navin-bhaskar/Controller For usage info follow this link http://navinbhaskar.blogspot.in/2013/02/arduino-controller-3.html

Dependencies:   mbed

Committer:
Navin
Date:
Tue Feb 26 03:45:52 2013 +0000
Revision:
0:fe5850ccdb6f
Child:
1:9d3340bcd863
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Navin 0:fe5850ccdb6f 1
Navin 0:fe5850ccdb6f 2
Navin 0:fe5850ccdb6f 3 /**
Navin 0:fe5850ccdb6f 4 * Implements the peripheral access functionalities
Navin 0:fe5850ccdb6f 5 */
Navin 0:fe5850ccdb6f 6
Navin 0:fe5850ccdb6f 7 #include "MbedPerAccess.h"
Navin 0:fe5850ccdb6f 8 #include "error.h"
Navin 0:fe5850ccdb6f 9 #include "mbed.h"
Navin 0:fe5850ccdb6f 10
Navin 0:fe5850ccdb6f 11 /**
Navin 0:fe5850ccdb6f 12 * Outputs the given logic level at the given pin
Navin 0:fe5850ccdb6f 13 */
Navin 0:fe5850ccdb6f 14
Navin 0:fe5850ccdb6f 15 uint MbedPerAccess::digitalOut(uint pinNo, uint val)
Navin 0:fe5850ccdb6f 16 {
Navin 0:fe5850ccdb6f 17 DigitalOut ports[] = {p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20,
Navin 0:fe5850ccdb6f 18 p21, p22, p23, p24, p25, p26, p27, p28, p29, LED1, LED1, LED2, LED3, LED4
Navin 0:fe5850ccdb6f 19 };
Navin 0:fe5850ccdb6f 20 if (pinNo > _maxDigiOutPins) {
Navin 0:fe5850ccdb6f 21
Navin 0:fe5850ccdb6f 22 return ERR_INVALID_PIN;
Navin 0:fe5850ccdb6f 23 }
Navin 0:fe5850ccdb6f 24 if (val == 0) {
Navin 0:fe5850ccdb6f 25 ports[pinNo] = 0;
Navin 0:fe5850ccdb6f 26 } else {
Navin 0:fe5850ccdb6f 27 ports[pinNo] = 1;
Navin 0:fe5850ccdb6f 28 }
Navin 0:fe5850ccdb6f 29 return ERR_SUCCESS;
Navin 0:fe5850ccdb6f 30 }
Navin 0:fe5850ccdb6f 31
Navin 0:fe5850ccdb6f 32 /**
Navin 0:fe5850ccdb6f 33 * Reads the voltage level at given pin and returns
Navin 0:fe5850ccdb6f 34 * it's logical value.
Navin 0:fe5850ccdb6f 35 */
Navin 0:fe5850ccdb6f 36
Navin 0:fe5850ccdb6f 37 uint MbedPerAccess::digitalIn(uint pinNo, uint * val)
Navin 0:fe5850ccdb6f 38 {
Navin 0:fe5850ccdb6f 39 DigitalIn ports[] = {p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20,
Navin 0:fe5850ccdb6f 40 p21, p22, p23, p24, p25, p26, p27, p28, p29
Navin 0:fe5850ccdb6f 41 };
Navin 0:fe5850ccdb6f 42 if (pinNo > _maxDigiInPins) {
Navin 0:fe5850ccdb6f 43 return ERR_INVALID_PIN;
Navin 0:fe5850ccdb6f 44 }
Navin 0:fe5850ccdb6f 45
Navin 0:fe5850ccdb6f 46
Navin 0:fe5850ccdb6f 47 *val = ports[pinNo];
Navin 0:fe5850ccdb6f 48 return ERR_SUCCESS;
Navin 0:fe5850ccdb6f 49 }
Navin 0:fe5850ccdb6f 50
Navin 0:fe5850ccdb6f 51 /**
Navin 0:fe5850ccdb6f 52 * Outputs the analog value.
Navin 0:fe5850ccdb6f 53 */
Navin 0:fe5850ccdb6f 54
Navin 0:fe5850ccdb6f 55 uint MbedPerAccess::analogOut(uint pinNo, uint val)
Navin 0:fe5850ccdb6f 56 {
Navin 0:fe5850ccdb6f 57 AnalogOut aout(p18);
Navin 0:fe5850ccdb6f 58 if (val > _maxAnOutVal) {
Navin 0:fe5850ccdb6f 59 return ERR_INVALID_ARG;
Navin 0:fe5850ccdb6f 60 }
Navin 0:fe5850ccdb6f 61 /* Only one analog out */
Navin 0:fe5850ccdb6f 62 if (pinNo != 18) {
Navin 0:fe5850ccdb6f 63 return ERR_INVALID_PIN;
Navin 0:fe5850ccdb6f 64 }
Navin 0:fe5850ccdb6f 65 aout = val;
Navin 0:fe5850ccdb6f 66 return ERR_SUCCESS;
Navin 0:fe5850ccdb6f 67 }
Navin 0:fe5850ccdb6f 68
Navin 0:fe5850ccdb6f 69 /**
Navin 0:fe5850ccdb6f 70 * Reads the volatge at the given analog input pin
Navin 0:fe5850ccdb6f 71 * and returns the digital representation of the same
Navin 0:fe5850ccdb6f 72 */
Navin 0:fe5850ccdb6f 73
Navin 0:fe5850ccdb6f 74 uint MbedPerAccess::analogIn(uint pinNo, uint * outVal)
Navin 0:fe5850ccdb6f 75 {
Navin 0:fe5850ccdb6f 76 AnalogIn ana_in[] = { p15, p16, p17, p18, p19, p20};
Navin 0:fe5850ccdb6f 77 if (pinNo > _maxAnInPins) {
Navin 0:fe5850ccdb6f 78 return ERR_INVALID_PIN;
Navin 0:fe5850ccdb6f 79 }
Navin 0:fe5850ccdb6f 80
Navin 0:fe5850ccdb6f 81 *outVal = ana_in[pinNo];
Navin 0:fe5850ccdb6f 82 return ERR_SUCCESS;
Navin 0:fe5850ccdb6f 83 }