Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Fork of Nucleo-Analog_read by
main.cpp@1:dc5a274adc7d, 2015-03-13 (annotated)
- 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?
| User | Revision | Line number | New 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 | } |
