diff options
Diffstat (limited to 'tool/mbed/mbed-sdk/libraries/tests/mbed/analog/main.cpp')
-rw-r--r-- | tool/mbed/mbed-sdk/libraries/tests/mbed/analog/main.cpp | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/tool/mbed/mbed-sdk/libraries/tests/mbed/analog/main.cpp b/tool/mbed/mbed-sdk/libraries/tests/mbed/analog/main.cpp new file mode 100644 index 0000000000..88f65ef042 --- /dev/null +++ b/tool/mbed/mbed-sdk/libraries/tests/mbed/analog/main.cpp @@ -0,0 +1,82 @@ +#include "test_env.h" + +#if defined(TARGET_K64F) | defined (TARGET_K22F) +AnalogIn in(A0); +AnalogOut out(DAC0_OUT); + +#elif defined(TARGET_KL25Z) +AnalogIn in(PTC2); +AnalogOut out(PTE30); + +#elif defined(TARGET_KL05Z) +AnalogIn in(PTB11); // D9 +AnalogOut out(PTB1); // D1 + +#elif defined(TARGET_KL46Z) +AnalogIn in(PTB0); +AnalogOut out(PTE30); + +#elif defined(TARGET_LPC1549) +AnalogIn in(A0); +AnalogOut out(D12); //D12 is P0_12, the DAC output pin + +// No DAC on these targets: +//TARGET_NUCLEO_F030R8 +//TARGET_NUCLEO_F070RB +//TARGET_NUCLEO_F103RB +//TARGET_NUCLEO_F401RE +//TARGET_NUCLEO_F411RE +#elif defined(TARGET_NUCLEO_F072RB) || \ + defined(TARGET_NUCLEO_F091RC) || \ + defined(TARGET_NUCLEO_F302R8) || \ + defined(TARGET_NUCLEO_F303RE) || \ + defined(TARGET_NUCLEO_F334R8) || \ + defined(TARGET_NUCLEO_L053R8) || \ + defined(TARGET_NUCLEO_L073RZ) || \ + defined(TARGET_NUCLEO_L152RE) +AnalogIn in(A0); +AnalogOut out(A2); // DAC output + +#elif defined(TARGET_ARCH_MAX) +AnalogIn in(PA_0); +AnalogOut out(PA_4); + +#elif defined(TARGET_DISCO_F407VG) +AnalogIn in(PC_5); +AnalogOut out(PA_4); + +#elif defined(TARGET_DISCO_F429ZI) +AnalogIn in(PC_3); +AnalogOut out(PA_5); + +#elif defined(TARGET_MAX32600MBED) +AnalogIn in(AIN_7P); +AnalogOut out(AOUT_DO); + +#else +AnalogIn in(p17); +AnalogOut out(p18); + +#endif + +#define ERROR_TOLLERANCE 0.05 + +int main() { + bool check = true; + + for (float out_value=0.0; out_value<1.1; out_value+=0.1) { + out.write(out_value); + wait(0.1); + + float in_value = in.read(); + float diff = fabs(out_value - in_value); + if (diff > ERROR_TOLLERANCE) { + check = false; + printf("ERROR (out:%.4f) - (in:%.4f) = (%.4f)"NL, out_value, in_value, diff); + } else { + printf("OK (out:%.4f) - (in:%.4f) = (%.4f)"NL, out_value, in_value, diff); + } + } + + notify_completion(check); +}
\ No newline at end of file |