Ian Colwell / Mbed 2 deprecated FirstProgram
Committer:
IanTheMBEDMaster
Date:
Mon Feb 04 14:48:28 2013 +0000
Revision:
0:205c4d6ab7f4
hahahaa

Who changed what in which revision?

UserRevisionLine numberNew contents of line
IanTheMBEDMaster 0:205c4d6ab7f4 1 #include "mbed.h"
IanTheMBEDMaster 0:205c4d6ab7f4 2 #include <AnalogOut.h>
IanTheMBEDMaster 0:205c4d6ab7f4 3 //AnalogOut(p18);
IanTheMBEDMaster 0:205c4d6ab7f4 4 DigitalOut myled(LED1);
IanTheMBEDMaster 0:205c4d6ab7f4 5 Serial pc(USBTX, USBRX); // tx, rx
IanTheMBEDMaster 0:205c4d6ab7f4 6
IanTheMBEDMaster 0:205c4d6ab7f4 7 //void Initialize();
IanTheMBEDMaster 0:205c4d6ab7f4 8
IanTheMBEDMaster 0:205c4d6ab7f4 9 // prototypes
IanTheMBEDMaster 0:205c4d6ab7f4 10 char DisplayMenu();
IanTheMBEDMaster 0:205c4d6ab7f4 11 void SimpleIOTest();
IanTheMBEDMaster 0:205c4d6ab7f4 12 void AnalogOutTest();
IanTheMBEDMaster 0:205c4d6ab7f4 13 void AnalogInTest();
IanTheMBEDMaster 0:205c4d6ab7f4 14 void PwmOutTest();
IanTheMBEDMaster 0:205c4d6ab7f4 15 void TimerIntInit();
IanTheMBEDMaster 0:205c4d6ab7f4 16 void ExternalIntInit();
IanTheMBEDMaster 0:205c4d6ab7f4 17 void LinearOpticalArrayTest();
IanTheMBEDMaster 0:205c4d6ab7f4 18 void BluetoothTest();
IanTheMBEDMaster 0:205c4d6ab7f4 19 void TimerISR();
IanTheMBEDMaster 0:205c4d6ab7f4 20
IanTheMBEDMaster 0:205c4d6ab7f4 21 int main()
IanTheMBEDMaster 0:205c4d6ab7f4 22 {
IanTheMBEDMaster 0:205c4d6ab7f4 23 char Key;
IanTheMBEDMaster 0:205c4d6ab7f4 24 //Initialize();
IanTheMBEDMaster 0:205c4d6ab7f4 25 while(1)
IanTheMBEDMaster 0:205c4d6ab7f4 26 {
IanTheMBEDMaster 0:205c4d6ab7f4 27 Key=DisplayMenu();
IanTheMBEDMaster 0:205c4d6ab7f4 28 switch(Key)
IanTheMBEDMaster 0:205c4d6ab7f4 29 {
IanTheMBEDMaster 0:205c4d6ab7f4 30 case ('1'):
IanTheMBEDMaster 0:205c4d6ab7f4 31 {
IanTheMBEDMaster 0:205c4d6ab7f4 32 SimpleIOTest();
IanTheMBEDMaster 0:205c4d6ab7f4 33 break;
IanTheMBEDMaster 0:205c4d6ab7f4 34 }
IanTheMBEDMaster 0:205c4d6ab7f4 35 case ('2'):
IanTheMBEDMaster 0:205c4d6ab7f4 36 {
IanTheMBEDMaster 0:205c4d6ab7f4 37 AnalogOutTest();
IanTheMBEDMaster 0:205c4d6ab7f4 38 break;
IanTheMBEDMaster 0:205c4d6ab7f4 39 }
IanTheMBEDMaster 0:205c4d6ab7f4 40 case ('3'):
IanTheMBEDMaster 0:205c4d6ab7f4 41 {
IanTheMBEDMaster 0:205c4d6ab7f4 42 AnalogInTest();
IanTheMBEDMaster 0:205c4d6ab7f4 43 break;
IanTheMBEDMaster 0:205c4d6ab7f4 44 }
IanTheMBEDMaster 0:205c4d6ab7f4 45 case ('4'):
IanTheMBEDMaster 0:205c4d6ab7f4 46 {
IanTheMBEDMaster 0:205c4d6ab7f4 47 PwmOutTest();
IanTheMBEDMaster 0:205c4d6ab7f4 48 break;
IanTheMBEDMaster 0:205c4d6ab7f4 49 }
IanTheMBEDMaster 0:205c4d6ab7f4 50 case ('5'):
IanTheMBEDMaster 0:205c4d6ab7f4 51 {
IanTheMBEDMaster 0:205c4d6ab7f4 52 TimerIntInit();
IanTheMBEDMaster 0:205c4d6ab7f4 53 break;
IanTheMBEDMaster 0:205c4d6ab7f4 54 }
IanTheMBEDMaster 0:205c4d6ab7f4 55 case ('6'):
IanTheMBEDMaster 0:205c4d6ab7f4 56 {
IanTheMBEDMaster 0:205c4d6ab7f4 57 ExternalIntInit();
IanTheMBEDMaster 0:205c4d6ab7f4 58 break;
IanTheMBEDMaster 0:205c4d6ab7f4 59 }
IanTheMBEDMaster 0:205c4d6ab7f4 60 case ('7'):
IanTheMBEDMaster 0:205c4d6ab7f4 61 {
IanTheMBEDMaster 0:205c4d6ab7f4 62 LinearOpticalArrayTest();
IanTheMBEDMaster 0:205c4d6ab7f4 63 break;
IanTheMBEDMaster 0:205c4d6ab7f4 64 }
IanTheMBEDMaster 0:205c4d6ab7f4 65 case ('8'):
IanTheMBEDMaster 0:205c4d6ab7f4 66 {
IanTheMBEDMaster 0:205c4d6ab7f4 67 BluetoothTest();
IanTheMBEDMaster 0:205c4d6ab7f4 68 break;
IanTheMBEDMaster 0:205c4d6ab7f4 69 }
IanTheMBEDMaster 0:205c4d6ab7f4 70 default:
IanTheMBEDMaster 0:205c4d6ab7f4 71 {
IanTheMBEDMaster 0:205c4d6ab7f4 72 printf("\r\nInvalid keypress entry.\r\n");
IanTheMBEDMaster 0:205c4d6ab7f4 73 break;
IanTheMBEDMaster 0:205c4d6ab7f4 74 }
IanTheMBEDMaster 0:205c4d6ab7f4 75 }// close switch
IanTheMBEDMaster 0:205c4d6ab7f4 76 }// end infinite loop
IanTheMBEDMaster 0:205c4d6ab7f4 77
IanTheMBEDMaster 0:205c4d6ab7f4 78 //return (0);
IanTheMBEDMaster 0:205c4d6ab7f4 79 }// close main
IanTheMBEDMaster 0:205c4d6ab7f4 80
IanTheMBEDMaster 0:205c4d6ab7f4 81 char DisplayMenu()
IanTheMBEDMaster 0:205c4d6ab7f4 82 {
IanTheMBEDMaster 0:205c4d6ab7f4 83 // test code for a display function
IanTheMBEDMaster 0:205c4d6ab7f4 84 unsigned int ScanData[] = {};
IanTheMBEDMaster 0:205c4d6ab7f4 85
IanTheMBEDMaster 0:205c4d6ab7f4 86 unsigned short
IanTheMBEDMaster 0:205c4d6ab7f4 87
IanTheMBEDMaster 0:205c4d6ab7f4 88 int i = 0;
IanTheMBEDMaster 0:205c4d6ab7f4 89 for(i = 0; i < 128; i++)
IanTheMBEDMaster 0:205c4d6ab7f4 90 {
IanTheMBEDMaster 0:205c4d6ab7f4 91 if
IanTheMBEDMaster 0:205c4d6ab7f4 92 }
IanTheMBEDMaster 0:205c4d6ab7f4 93 }
IanTheMBEDMaster 0:205c4d6ab7f4 94
IanTheMBEDMaster 0:205c4d6ab7f4 95 void SimpleIOTest()
IanTheMBEDMaster 0:205c4d6ab7f4 96 {
IanTheMBEDMaster 0:205c4d6ab7f4 97 DigitalOut StatusLED(p25);
IanTheMBEDMaster 0:205c4d6ab7f4 98 DigitalIn LimitSW(p26);
IanTheMBEDMaster 0:205c4d6ab7f4 99
IanTheMBEDMaster 0:205c4d6ab7f4 100 bool z;
IanTheMBEDMaster 0:205c4d6ab7f4 101 char x;
IanTheMBEDMaster 0:205c4d6ab7f4 102
IanTheMBEDMaster 0:205c4d6ab7f4 103 do
IanTheMBEDMaster 0:205c4d6ab7f4 104 {
IanTheMBEDMaster 0:205c4d6ab7f4 105 z = LimitSW;
IanTheMBEDMaster 0:205c4d6ab7f4 106 StatusLED = z;
IanTheMBEDMaster 0:205c4d6ab7f4 107 pc.printf("\r\nDigital input = %x",z);
IanTheMBEDMaster 0:205c4d6ab7f4 108 pc.printf("\r\nPress space to continue - any other key to quit");
IanTheMBEDMaster 0:205c4d6ab7f4 109 x = pc.getc();
IanTheMBEDMaster 0:205c4d6ab7f4 110 }
IanTheMBEDMaster 0:205c4d6ab7f4 111 while (x == 0x20);
IanTheMBEDMaster 0:205c4d6ab7f4 112 }
IanTheMBEDMaster 0:205c4d6ab7f4 113
IanTheMBEDMaster 0:205c4d6ab7f4 114 void AnalogIOTest()
IanTheMBEDMaster 0:205c4d6ab7f4 115 {
IanTheMBEDMaster 0:205c4d6ab7f4 116 AnalogOut AnalogOutPin(p18);
IanTheMBEDMaster 0:205c4d6ab7f4 117 AnalogIn Ain19(p19);
IanTheMBEDMaster 0:205c4d6ab7f4 118
IanTheMBEDMaster 0:205c4d6ab7f4 119 unsigned short x, Aout;
IanTheMBEDMaster 0:205c4d6ab7f4 120 Aout = 0;
IanTheMBEDMaster 0:205c4d6ab7f4 121
IanTheMBEDMaster 0:205c4d6ab7f4 122 do
IanTheMBEDMaster 0:205c4d6ab7f4 123 {
IanTheMBEDMaster 0:205c4d6ab7f4 124 AnalogOutPin.write_u16(Aout);
IanTheMBEDMaster 0:205c4d6ab7f4 125 x = Ain19.read_u16();
IanTheMBEDMaster 0:205c4d6ab7f4 126 printf("\r\nAnalog output = %x, Analog input = %x", Aout, x);
IanTheMBEDMaster 0:205c4d6ab7f4 127 Aout = Aout + 4096;
IanTheMBEDMaster 0:205c4d6ab7f4 128 }
IanTheMBEDMaster 0:205c4d6ab7f4 129 while(pc.getc() == ' ');
IanTheMBEDMaster 0:205c4d6ab7f4 130 }
IanTheMBEDMaster 0:205c4d6ab7f4 131
IanTheMBEDMaster 0:205c4d6ab7f4 132 void AnalogInTest()
IanTheMBEDMaster 0:205c4d6ab7f4 133 {
IanTheMBEDMaster 0:205c4d6ab7f4 134 AnalogIn Ain19(p19);
IanTheMBEDMaster 0:205c4d6ab7f4 135 char inputChar = ' ';
IanTheMBEDMaster 0:205c4d6ab7f4 136 unsigned short analogIn;
IanTheMBEDMaster 0:205c4d6ab7f4 137 float percent;
IanTheMBEDMaster 0:205c4d6ab7f4 138
IanTheMBEDMaster 0:205c4d6ab7f4 139 pc.printf("\r\nPress space to continue - any other key to quit");
IanTheMBEDMaster 0:205c4d6ab7f4 140
IanTheMBEDMaster 0:205c4d6ab7f4 141 while(inputChar == ' ')
IanTheMBEDMaster 0:205c4d6ab7f4 142 {
IanTheMBEDMaster 0:205c4d6ab7f4 143 // sample analog input
IanTheMBEDMaster 0:205c4d6ab7f4 144 analogIn = Ain19.read_u16();
IanTheMBEDMaster 0:205c4d6ab7f4 145
IanTheMBEDMaster 0:205c4d6ab7f4 146 // convert to percentage
IanTheMBEDMaster 0:205c4d6ab7f4 147 percent = (float) analogIn/65535;
IanTheMBEDMaster 0:205c4d6ab7f4 148
IanTheMBEDMaster 0:205c4d6ab7f4 149 pc.printf("\r\nAnalog input = %u (%f %%)", analogIn, percent);
IanTheMBEDMaster 0:205c4d6ab7f4 150
IanTheMBEDMaster 0:205c4d6ab7f4 151 inputChar = pc.getc();
IanTheMBEDMaster 0:205c4d6ab7f4 152 }
IanTheMBEDMaster 0:205c4d6ab7f4 153 }
IanTheMBEDMaster 0:205c4d6ab7f4 154
IanTheMBEDMaster 0:205c4d6ab7f4 155 void AnalogOutTest()
IanTheMBEDMaster 0:205c4d6ab7f4 156 {
IanTheMBEDMaster 0:205c4d6ab7f4 157 AnalogOut AnalogOutPin(p18);
IanTheMBEDMaster 0:205c4d6ab7f4 158
IanTheMBEDMaster 0:205c4d6ab7f4 159 char firstNum;
IanTheMBEDMaster 0:205c4d6ab7f4 160 char secondNum;
IanTheMBEDMaster 0:205c4d6ab7f4 161 unsigned short analogOut;
IanTheMBEDMaster 0:205c4d6ab7f4 162
IanTheMBEDMaster 0:205c4d6ab7f4 163 pc.printf("\r\nEnter the voltage percentage, press q to quit");
IanTheMBEDMaster 0:205c4d6ab7f4 164 while(firstNum != 'q' || firstNum != 'q')
IanTheMBEDMaster 0:205c4d6ab7f4 165 {
IanTheMBEDMaster 0:205c4d6ab7f4 166 pc.printf("\r\nEnter Voltage Percentage:");
IanTheMBEDMaster 0:205c4d6ab7f4 167 firstNum = pc.getc();
IanTheMBEDMaster 0:205c4d6ab7f4 168 secondNum = pc.getc();
IanTheMBEDMaster 0:205c4d6ab7f4 169
IanTheMBEDMaster 0:205c4d6ab7f4 170 // convert to integer and set the analog out
IanTheMBEDMaster 0:205c4d6ab7f4 171 analogOut = (firstNum - '0')*10 + (secondNum - '0');
IanTheMBEDMaster 0:205c4d6ab7f4 172
IanTheMBEDMaster 0:205c4d6ab7f4 173 AnalogOutPin.write_u16(analogOut);
IanTheMBEDMaster 0:205c4d6ab7f4 174 }
IanTheMBEDMaster 0:205c4d6ab7f4 175 }
IanTheMBEDMaster 0:205c4d6ab7f4 176
IanTheMBEDMaster 0:205c4d6ab7f4 177 void PwmOutTest()
IanTheMBEDMaster 0:205c4d6ab7f4 178 {
IanTheMBEDMaster 0:205c4d6ab7f4 179 PwmOut PwmP21(p21);
IanTheMBEDMaster 0:205c4d6ab7f4 180
IanTheMBEDMaster 0:205c4d6ab7f4 181 float y, T;
IanTheMBEDMaster 0:205c4d6ab7f4 182 T=0.001;
IanTheMBEDMaster 0:205c4d6ab7f4 183
IanTheMBEDMaster 0:205c4d6ab7f4 184 PwmP21.period(T);
IanTheMBEDMaster 0:205c4d6ab7f4 185 pc.printf("\n\rEnter on-time for PwmP21 followed by enter: ");
IanTheMBEDMaster 0:205c4d6ab7f4 186 pc.scanf("%f",&y);
IanTheMBEDMaster 0:205c4d6ab7f4 187 pc.printf("\n\n\rPwm period = %f, Pwm on-time = %f", T, y);
IanTheMBEDMaster 0:205c4d6ab7f4 188 PwmP21.pulsewidth(y);
IanTheMBEDMaster 0:205c4d6ab7f4 189 }
IanTheMBEDMaster 0:205c4d6ab7f4 190
IanTheMBEDMaster 0:205c4d6ab7f4 191 void TimerIntInit()
IanTheMBEDMaster 0:205c4d6ab7f4 192 {
IanTheMBEDMaster 0:205c4d6ab7f4 193 Ticker PeriodicInt;
IanTheMBEDMaster 0:205c4d6ab7f4 194 char x;
IanTheMBEDMaster 0:205c4d6ab7f4 195
IanTheMBEDMaster 0:205c4d6ab7f4 196 pc.printf("\r\nPeiodic interrupts toggles LED2");
IanTheMBEDMaster 0:205c4d6ab7f4 197 //PeriodicInt.attach(&TimerISR, 0.0625); // ISR Address, int interval
IanTheMBEDMaster 0:205c4d6ab7f4 198
IanTheMBEDMaster 0:205c4d6ab7f4 199 do x=pc.getc(); while (x!='q'); // Wait for interrupts
IanTheMBEDMaster 0:205c4d6ab7f4 200
IanTheMBEDMaster 0:205c4d6ab7f4 201 }
IanTheMBEDMaster 0:205c4d6ab7f4 202
IanTheMBEDMaster 0:205c4d6ab7f4 203 void TimerISR()
IanTheMBEDMaster 0:205c4d6ab7f4 204 {
IanTheMBEDMaster 0:205c4d6ab7f4 205 //led2=1;
IanTheMBEDMaster 0:205c4d6ab7f4 206 //led2 = !led2;
IanTheMBEDMaster 0:205c4d6ab7f4 207 }
IanTheMBEDMaster 0:205c4d6ab7f4 208
IanTheMBEDMaster 0:205c4d6ab7f4 209 void ExternalIntInit()
IanTheMBEDMaster 0:205c4d6ab7f4 210 {
IanTheMBEDMaster 0:205c4d6ab7f4 211 }
IanTheMBEDMaster 0:205c4d6ab7f4 212
IanTheMBEDMaster 0:205c4d6ab7f4 213 void LinearOpticalArrayTest()
IanTheMBEDMaster 0:205c4d6ab7f4 214 {
IanTheMBEDMaster 0:205c4d6ab7f4 215 }
IanTheMBEDMaster 0:205c4d6ab7f4 216
IanTheMBEDMaster 0:205c4d6ab7f4 217 void BluetoothTest()
IanTheMBEDMaster 0:205c4d6ab7f4 218 {
IanTheMBEDMaster 0:205c4d6ab7f4 219 Serial pc(USBTX, USBRX); // tx, rx
IanTheMBEDMaster 0:205c4d6ab7f4 220 Serial BluetoothSerial(p28, p27); // tx, rx
IanTheMBEDMaster 0:205c4d6ab7f4 221
IanTheMBEDMaster 0:205c4d6ab7f4 222 char x;
IanTheMBEDMaster 0:205c4d6ab7f4 223 BluetoothSerial.baud(9600);
IanTheMBEDMaster 0:205c4d6ab7f4 224 do
IanTheMBEDMaster 0:205c4d6ab7f4 225 {
IanTheMBEDMaster 0:205c4d6ab7f4 226 if (pc.readable())
IanTheMBEDMaster 0:205c4d6ab7f4 227 {
IanTheMBEDMaster 0:205c4d6ab7f4 228 x=pc.getc();
IanTheMBEDMaster 0:205c4d6ab7f4 229 // Receive keyboard entry and send to Bluetooth channel
IanTheMBEDMaster 0:205c4d6ab7f4 230 BluetoothSerial.putc(x);
IanTheMBEDMaster 0:205c4d6ab7f4 231 pc.putc(x); //Echo keyboard entry
IanTheMBEDMaster 0:205c4d6ab7f4 232 }
IanTheMBEDMaster 0:205c4d6ab7f4 233 }
IanTheMBEDMaster 0:205c4d6ab7f4 234 while (x!='q');
IanTheMBEDMaster 0:205c4d6ab7f4 235 }