![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Rtos API example
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 #include "test_env.h" 00002 00003 #if !DEVICE_ANALOGIN 00004 #error [NOT_SUPPORTED] AnalogIn not supported 00005 #endif 00006 00007 #if !DEVICE_ANALOGOUT 00008 #error [NOT_SUPPORTED] AnalogOut not supported 00009 #endif 00010 00011 #if defined(TARGET_K64F) || defined(TARGET_K66F) || defined (TARGET_K22F) 00012 AnalogIn in(A0); 00013 AnalogOut out(DAC0_OUT); 00014 00015 #elif defined(TARGET_KL25Z) 00016 AnalogIn in(PTC2); 00017 AnalogOut out(PTE30); 00018 00019 #elif defined(TARGET_KL05Z) 00020 AnalogIn in(PTB11); // D9 00021 AnalogOut out(PTB1); // D1 00022 00023 #elif defined(TARGET_KL46Z) || defined(TARGET_KL43Z) 00024 AnalogIn in(PTB0); 00025 AnalogOut out(PTE30); 00026 00027 #elif defined(TARGET_KL82Z) 00028 AnalogIn in(A2); 00029 AnalogOut out(DAC0_OUT); 00030 00031 #elif defined(TARGET_LPC1549) 00032 AnalogIn in(A0); 00033 AnalogOut out(D12); //D12 is P0_12, the DAC output pin 00034 00035 // no pin to access DAC on these targets: 00036 //TARGET_DISCO_F746NG 00037 // No DAC on these targets: 00038 //TARGET_NUCLEO_F030R8 00039 //TARGET_NUCLEO_F070RB 00040 //TARGET_NUCLEO_F103RB 00041 //TARGET_NUCLEO_F401RE 00042 //TARGET_NUCLEO_F411RE 00043 #elif defined(TARGET_NUCLEO_F072RB) || \ 00044 defined(TARGET_NUCLEO_F091RC) || \ 00045 defined(TARGET_NUCLEO_F302R8) || \ 00046 defined(TARGET_NUCLEO_F303RE) || \ 00047 defined(TARGET_NUCLEO_F334R8) || \ 00048 defined(TARGET_NUCLEO_F446RE) || \ 00049 defined(TARGET_NUCLEO_L053R8) || \ 00050 defined(TARGET_NUCLEO_L073RZ) || \ 00051 defined(TARGET_NUCLEO_L476RG) || \ 00052 defined(TARGET_NUCLEO_L152RE) 00053 AnalogIn in(A0); 00054 AnalogOut out(A2); 00055 00056 #elif defined(TARGET_NUCLEO_F303K8) 00057 AnalogIn in(A0); 00058 AnalogOut out(A3); 00059 00060 #elif defined(TARGET_DISCO_F769NI) 00061 AnalogIn in(A0); 00062 AnalogOut out(A1); 00063 00064 #elif defined(TARGET_NUCLEO_F207ZG) || \ 00065 defined(TARGET_NUCLEO_F746ZG) || \ 00066 defined(TARGET_NUCLEO_F303ZE) || \ 00067 defined(TARGET_NUCLEO_F410RB) || \ 00068 defined(TARGET_NUCLEO_F446ZE) || \ 00069 defined(TARGET_NUCLEO_F429ZI) || defined(TARGET_DISCO_L475VG_IOT01A) 00070 AnalogIn in(A0); 00071 AnalogOut out(D13); 00072 00073 #elif defined(TARGET_ARCH_MAX) 00074 AnalogIn in(PA_0); 00075 AnalogOut out(PA_4); 00076 00077 #elif defined(TARGET_DISCO_L053C8) || \ 00078 defined(TARGET_DISCO_F334C8) 00079 AnalogIn in(PA_1); 00080 AnalogOut out(PA_4); 00081 00082 #elif defined(TARGET_DISCO_F407VG) || \ 00083 defined(TARGET_DISCO_F469NI) 00084 AnalogIn in(PC_5); 00085 AnalogOut out(PA_4); 00086 00087 #elif defined(TARGET_DISCO_L476VG) 00088 AnalogIn in(PA_0); 00089 AnalogOut out(PA_5); 00090 00091 #elif defined(TARGET_DISCO_F429ZI) 00092 AnalogIn in(PC_3); 00093 AnalogOut out(PA_5); 00094 00095 #elif defined(TARGET_MAX32600MBED) 00096 AnalogIn in(AIN_7P); 00097 AnalogOut out(AOUT_DO); 00098 00099 #elif defined(TARGET_SAMD21J18A) || defined(TARGET_SAML21J18A) 00100 AnalogIn in(PA04); 00101 AnalogOut out(PA02); 00102 00103 #elif defined(TARGET_SAMD21G18A) 00104 AnalogIn in(PB02); 00105 AnalogOut out(PA02); 00106 00107 #else 00108 AnalogIn in(p17); 00109 AnalogOut out(p18); 00110 00111 #endif 00112 00113 #define ERROR_TOLLERANCE 0.05 00114 00115 int main() { 00116 bool check = true; 00117 00118 for (float out_value=0.0; out_value<1.1; out_value+=0.1) { 00119 out.write(out_value); 00120 wait(0.1); 00121 00122 float in_value = in.read(); 00123 float diff = fabs(out_value - in_value); 00124 if (diff > ERROR_TOLLERANCE) { 00125 check = false; 00126 printf("ERROR (out:%.4f) - (in:%.4f) = (%.4f)"NL, out_value, in_value, diff); 00127 } else { 00128 printf("OK (out:%.4f) - (in:%.4f) = (%.4f)"NL, out_value, in_value, diff); 00129 } 00130 } 00131 00132 notify_completion(check); 00133 }
Generated on Sun Jul 17 2022 08:25:26 by
![doxygen](doxygen.png)