ECE4180 / Mbed 2 deprecated 4180_Lab2_Part1

Dependencies:   mbed

Committer:
ycai47
Date:
Tue Oct 06 19:17:32 2015 +0000
Revision:
1:506c8ffad3d8
Parent:
0:1dbc25c03bad
ECE4180 lab2 part 1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ldeng31 0:1dbc25c03bad 1 #include "mbed.h"
ycai47 1:506c8ffad3d8 2
ycai47 1:506c8ffad3d8 3 DigitalOut dout1(LED1);
ycai47 1:506c8ffad3d8 4 DigitalOut dout2(LED2);
ycai47 1:506c8ffad3d8 5 DigitalOut dout3(LED3);
ycai47 1:506c8ffad3d8 6 DigitalOut dout4(LED4);
ycai47 1:506c8ffad3d8 7 AnalogIn ain(p15);
ldeng31 0:1dbc25c03bad 8 // The sinewave is created on this pin
ldeng31 0:1dbc25c03bad 9 AnalogOut aout(p18);
ycai47 1:506c8ffad3d8 10
ldeng31 0:1dbc25c03bad 11 int main()
ldeng31 0:1dbc25c03bad 12 {
ldeng31 0:1dbc25c03bad 13 const double pi = 3.141592653589793238462;
ldeng31 0:1dbc25c03bad 14 const double amplitude = 0.5f;
ldeng31 0:1dbc25c03bad 15 const double offset = 65535/2;
ldeng31 0:1dbc25c03bad 16 double rads = 0.0;
ldeng31 0:1dbc25c03bad 17 uint16_t sample = 0;
ldeng31 0:1dbc25c03bad 18
ldeng31 0:1dbc25c03bad 19 while(1) {
ldeng31 0:1dbc25c03bad 20 // sinewave output
ldeng31 0:1dbc25c03bad 21 for (int i = 0; i < 360; i++) {
ldeng31 0:1dbc25c03bad 22 rads = (pi * i) / 180.0f;
ldeng31 0:1dbc25c03bad 23 sample = (uint16_t)(amplitude * (offset * (cos(rads + pi))) + offset);
ldeng31 0:1dbc25c03bad 24 aout.write_u16(sample);
ldeng31 0:1dbc25c03bad 25 }
ycai47 1:506c8ffad3d8 26
ycai47 1:506c8ffad3d8 27 //Sharp IR sensor display
ycai47 1:506c8ffad3d8 28 if (ain.read() > 0.9f) //less than 7 cm
ycai47 1:506c8ffad3d8 29 {
ycai47 1:506c8ffad3d8 30 dout1 = 1;
ycai47 1:506c8ffad3d8 31 dout2 = 1;
ycai47 1:506c8ffad3d8 32 dout3 = 1;
ycai47 1:506c8ffad3d8 33 dout4 = 1;
ycai47 1:506c8ffad3d8 34 }
ycai47 1:506c8ffad3d8 35 else if (ain.read() > 0.68f && ain.read() <= 0.9f) //7-10
ycai47 1:506c8ffad3d8 36 {
ycai47 1:506c8ffad3d8 37 dout1 = 0;
ycai47 1:506c8ffad3d8 38 dout2 = 1;
ycai47 1:506c8ffad3d8 39 dout3 = 1;
ycai47 1:506c8ffad3d8 40 dout4 = 1;
ycai47 1:506c8ffad3d8 41 }
ycai47 1:506c8ffad3d8 42 else if (ain.read() > 0.53f && ain.read() <= 0.68f) //10-13
ycai47 1:506c8ffad3d8 43 {
ycai47 1:506c8ffad3d8 44 dout1 = 0;
ycai47 1:506c8ffad3d8 45 dout2 = 0;
ycai47 1:506c8ffad3d8 46 dout3 = 1;
ycai47 1:506c8ffad3d8 47 dout4 = 1;
ycai47 1:506c8ffad3d8 48 }
ycai47 1:506c8ffad3d8 49 else if (ain.read() > 0.45f && ain.read() <= 0.53f) //13-17
ycai47 1:506c8ffad3d8 50 {
ycai47 1:506c8ffad3d8 51 dout1 = 0;
ycai47 1:506c8ffad3d8 52 dout2 = 0;
ycai47 1:506c8ffad3d8 53 dout3 = 0;
ycai47 1:506c8ffad3d8 54 dout4 = 1;
ycai47 1:506c8ffad3d8 55 }
ycai47 1:506c8ffad3d8 56 else //greater than 17
ycai47 1:506c8ffad3d8 57 {
ycai47 1:506c8ffad3d8 58
ycai47 1:506c8ffad3d8 59 dout1 = 0;
ycai47 1:506c8ffad3d8 60 dout2 = 0;
ycai47 1:506c8ffad3d8 61 dout3 = 0;
ycai47 1:506c8ffad3d8 62 dout4 = 0;
ycai47 1:506c8ffad3d8 63 }
ldeng31 0:1dbc25c03bad 64 }
ldeng31 0:1dbc25c03bad 65 }