Andrea Pallotta
/
Nucleo_analog_loop
import test
main.cpp@0:bf84ee4ea1d2, 2016-05-13 (annotated)
- Committer:
- bcostm
- Date:
- Fri May 13 09:21:10 2016 +0000
- Revision:
- 0:bf84ee4ea1d2
- Child:
- 1:89aa667d1a9b
First version
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bcostm | 0:bf84ee4ea1d2 | 1 | #include "mbed.h" |
bcostm | 0:bf84ee4ea1d2 | 2 | |
bcostm | 0:bf84ee4ea1d2 | 3 | AnalogIn in(A0); |
bcostm | 0:bf84ee4ea1d2 | 4 | |
bcostm | 0:bf84ee4ea1d2 | 5 | #if !DEVICE_ANALOGOUT |
bcostm | 0:bf84ee4ea1d2 | 6 | #error You cannot use this example as the AnalogOut is not supported on this device. |
bcostm | 0:bf84ee4ea1d2 | 7 | #else |
bcostm | 0:bf84ee4ea1d2 | 8 | AnalogOut out(PA_4); |
bcostm | 0:bf84ee4ea1d2 | 9 | #endif |
bcostm | 0:bf84ee4ea1d2 | 10 | |
bcostm | 0:bf84ee4ea1d2 | 11 | DigitalOut led(LED1); |
bcostm | 0:bf84ee4ea1d2 | 12 | |
bcostm | 0:bf84ee4ea1d2 | 13 | int main() |
bcostm | 0:bf84ee4ea1d2 | 14 | { |
bcostm | 0:bf84ee4ea1d2 | 15 | printf("\nAnalog loop example\n"); |
bcostm | 0:bf84ee4ea1d2 | 16 | printf("*** Connect A0 and PA_4 pins together ***\n"); |
bcostm | 0:bf84ee4ea1d2 | 17 | while(1) { |
bcostm | 0:bf84ee4ea1d2 | 18 | for (float out_value = 0.0f; out_value < 1.1f; out_value += 0.1f) { |
bcostm | 0:bf84ee4ea1d2 | 19 | // Output value using DAC |
bcostm | 0:bf84ee4ea1d2 | 20 | out.write(out_value); |
bcostm | 0:bf84ee4ea1d2 | 21 | wait(0.1); |
bcostm | 0:bf84ee4ea1d2 | 22 | // Read ADC input |
bcostm | 0:bf84ee4ea1d2 | 23 | float in_value = in.read(); |
bcostm | 0:bf84ee4ea1d2 | 24 | // Display difference between two values |
bcostm | 0:bf84ee4ea1d2 | 25 | float diff = fabs(out_value - in_value); |
bcostm | 0:bf84ee4ea1d2 | 26 | printf("(out:%.4f) - (in:%.4f) = (%.4f) ", out_value, in_value, diff); |
bcostm | 0:bf84ee4ea1d2 | 27 | if (diff > 0.05f) { |
bcostm | 0:bf84ee4ea1d2 | 28 | printf("FAIL\n"); |
bcostm | 0:bf84ee4ea1d2 | 29 | } else { |
bcostm | 0:bf84ee4ea1d2 | 30 | printf("OK\n"); |
bcostm | 0:bf84ee4ea1d2 | 31 | printf("\033[1A"); // Moves cursor up of 1 line |
bcostm | 0:bf84ee4ea1d2 | 32 | } |
bcostm | 0:bf84ee4ea1d2 | 33 | led = !led; |
bcostm | 0:bf84ee4ea1d2 | 34 | } |
bcostm | 0:bf84ee4ea1d2 | 35 | } |
bcostm | 0:bf84ee4ea1d2 | 36 | } |
bcostm | 0:bf84ee4ea1d2 | 37 |