Cortex Challenge Team / Mbed 2 deprecated Nucleo_read_analog_set

Dependencies:   mbed

Fork of Nucleo-Analog_read by Cortex Challenge Team

Committer:
dousape2
Date:
Fri Mar 13 01:37:57 2015 +0000
Revision:
1:dc5a274adc7d
Parent:
0:242976b62902
Child:
2:eb5ee8191175
analog, uart set

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dousape2 0:242976b62902 1 #include "mbed.h"
dousape2 0:242976b62902 2
dousape2 0:242976b62902 3 #define voltage 3300
dousape2 1:dc5a274adc7d 4 #define mv(x) ((x*voltage)/0xFFFF)
dousape2 1:dc5a274adc7d 5
dousape2 0:242976b62902 6 AnalogIn analog_value(A0);
dousape2 0:242976b62902 7
dousape2 1:dc5a274adc7d 8 Serial pc(SERIAL_TX, SERIAL_RX);
dousape2 1:dc5a274adc7d 9
dousape2 0:242976b62902 10 DigitalOut led(LED1);
dousape2 0:242976b62902 11
dousape2 1:dc5a274adc7d 12 Ticker toggle_ticker;
dousape2 1:dc5a274adc7d 13 int voltages =0;
dousape2 1:dc5a274adc7d 14
dousape2 1:dc5a274adc7d 15 bool start = true;
dousape2 1:dc5a274adc7d 16
dousape2 1:dc5a274adc7d 17 void toggle()
dousape2 1:dc5a274adc7d 18 {
dousape2 1:dc5a274adc7d 19 int meas;
dousape2 1:dc5a274adc7d 20
dousape2 1:dc5a274adc7d 21 meas = analog_value.read_u16(); // Converts and read the analog input value (value from 0.0 to 0xFFFF)
dousape2 1:dc5a274adc7d 22 meas = mv(meas); // Change the value to be in the 0 to 3300 range
dousape2 1:dc5a274adc7d 23 while(!pc.writeable());
dousape2 1:dc5a274adc7d 24
dousape2 1:dc5a274adc7d 25
dousape2 1:dc5a274adc7d 26 led= !led;
dousape2 1:dc5a274adc7d 27 if (meas > voltages ) { // If the value is greater than 2V then switch the LED on
dousape2 1:dc5a274adc7d 28 start = true;
dousape2 1:dc5a274adc7d 29 }
dousape2 1:dc5a274adc7d 30 if(start) {
dousape2 1:dc5a274adc7d 31 printf("%d\n", meas);
dousape2 1:dc5a274adc7d 32 }
dousape2 1:dc5a274adc7d 33 }
dousape2 1:dc5a274adc7d 34
dousape2 1:dc5a274adc7d 35 void flushSerialPort()
dousape2 1:dc5a274adc7d 36 {
dousape2 1:dc5a274adc7d 37 while(pc.readable())
dousape2 1:dc5a274adc7d 38 pc.getc();
dousape2 1:dc5a274adc7d 39 return;
dousape2 1:dc5a274adc7d 40 }
dousape2 1:dc5a274adc7d 41
dousape2 0:242976b62902 42 int main()
dousape2 0:242976b62902 43 {
dousape2 1:dc5a274adc7d 44 int prijData=0;
dousape2 1:dc5a274adc7d 45 int Data1=0;
dousape2 1:dc5a274adc7d 46 float Data2=0;
dousape2 1:dc5a274adc7d 47 pc.baud(115200);
dousape2 1:dc5a274adc7d 48 toggle_ticker.detach();
dousape2 1:dc5a274adc7d 49 toggle_ticker.attach(&toggle, 0.01);
dousape2 1:dc5a274adc7d 50 printf("\nAnalogIn example, data (numbers) are in mV.\n");
dousape2 0:242976b62902 51
dousape2 0:242976b62902 52 while(1) {
dousape2 1:dc5a274adc7d 53 prijData=pc.scanf("%d %f",&Data1,&Data2);
dousape2 1:dc5a274adc7d 54 if(prijData==2) {
dousape2 1:dc5a274adc7d 55 //pc.printf()
dousape2 1:dc5a274adc7d 56 if(Data1==1) {
dousape2 1:dc5a274adc7d 57 toggle_ticker.detach();
dousape2 1:dc5a274adc7d 58 toggle_ticker.attach(&toggle, Data2);
dousape2 1:dc5a274adc7d 59 } else if(Data1==2) {
dousape2 1:dc5a274adc7d 60 toggle_ticker.detach();
dousape2 1:dc5a274adc7d 61 } else if(Data1==3) {
dousape2 1:dc5a274adc7d 62 voltages=(int)Data2;
dousape2 1:dc5a274adc7d 63 start = false;
dousape2 1:dc5a274adc7d 64 }
dousape2 0:242976b62902 65 } else {
dousape2 1:dc5a274adc7d 66 while(!pc.writeable());
dousape2 1:dc5a274adc7d 67 printf("HELP - MENU\n");
dousape2 1:dc5a274adc7d 68 while(!pc.writeable());
dousape2 1:dc5a274adc7d 69 printf("Data send to PC (numbers) are in mV.\n");
dousape2 1:dc5a274adc7d 70 while(!pc.writeable());
dousape2 1:dc5a274adc7d 71 printf("Set data exactly.\n");
dousape2 1:dc5a274adc7d 72 while(!pc.writeable());
dousape2 1:dc5a274adc7d 73 printf("Write to console: \"xx yy\", where xx is a code of seting and yy his value.\n");
dousape2 1:dc5a274adc7d 74 while(!pc.writeable());
dousape2 1:dc5a274adc7d 75 printf("01 y.yyy - set period[s] to send data to PC and start reading value, example:01 0.01\n");
dousape2 1:dc5a274adc7d 76 while(!pc.writeable());
dousape2 1:dc5a274adc7d 77 printf("02 0 - stop reading value example:02 0\n");
dousape2 1:dc5a274adc7d 78 while(!pc.writeable());
dousape2 1:dc5a274adc7d 79 printf("03 yyyy - Wait for minimum voltage[mV] (to 3299) and send data example:03 2000\n");
dousape2 1:dc5a274adc7d 80 while(!pc.writeable());
dousape2 1:dc5a274adc7d 81 printf("end HELP\n");
dousape2 1:dc5a274adc7d 82 flushSerialPort();
dousape2 0:242976b62902 83 }
dousape2 1:dc5a274adc7d 84 // wait(0.2); // 200 ms
dousape2 0:242976b62902 85 }
dousape2 0:242976b62902 86 }