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-STM32F100R6
Diff: main.cpp
- Revision:
- 3:2ca9ec946232
- Parent:
- 2:7cc544472c34
diff -r 7cc544472c34 -r 2ca9ec946232 main.cpp
--- a/main.cpp Mon May 09 03:20:26 2016 +0000
+++ b/main.cpp Sat May 14 00:49:19 2016 +0000
@@ -32,11 +32,14 @@
}
#endif
+
+
+
#if 0
//******stdio UART test******
+// PA_2-TX; PA_3-RX
-//Serial pc(PA_9, PA_10); // tx, rx
DigitalOut myled(PB_0);
int main()
@@ -53,7 +56,7 @@
-#if 1
+#if 0
//******DAC test******
@@ -68,7 +71,7 @@
int main()
{
- for (k=0;k<SIN1_ARRAY_SIZE;k++) {
+ for (k=0; k<SIN1_ARRAY_SIZE; k++) {
sin_data[k]= (1.0+sin(1.0*k/SIN1_ARRAY_SIZE*2.0*PI))/2*0xFFFF;
};
@@ -85,4 +88,100 @@
}
-#endif
\ No newline at end of file
+#endif
+
+#if 1
+
+//******ADC test******
+// adapted from https://developer.mbed.org/teams/ST/code/Nucleo_analog_loop/
+// connect tested ADC input to PA_4
+
+// serial output on pins where not adc option
+Serial pc(PA_9, PA_10); // tx, rx
+
+// test signal source
+AnalogOut out(PA_4);
+
+
+// select tested ADC input
+#define ADC_IN 0
+
+
+#if ADC_IN==0
+AnalogIn in(PA_0);
+const char pin_name[]="PA_0";
+#elif ADC_IN==1
+AnalogIn in(PA_1);
+const char pin_name[]="PA_1";
+#elif ADC_IN==2
+AnalogIn in(PA_2);
+const char pin_name[]="PA_2";
+#elif ADC_IN==3
+AnalogIn in(PA_3);
+const char pin_name[]="PA_3";
+#elif ADC_IN==4
+AnalogIn in(PA_4);
+const char pin_name[]="PA_4";
+#elif ADC_IN==5
+AnalogIn in(PA_5);
+const char pin_name[]="PA_5";
+#elif ADC_IN==6
+AnalogIn in(PA_6);
+const char pin_name[]="PA_6";
+#elif ADC_IN==7
+AnalogIn in(PA_7);
+const char pin_name[]="PA_7";
+#elif ADC_IN==8
+AnalogIn in(PB_0);
+const char pin_name[]="PB_0";
+#elif ADC_IN==9
+AnalogIn in(PB_1);
+const char pin_name[]="PB_1";
+#elif ADC_IN==10
+AnalogIn in(PC_0);
+const char pin_name[]="PC_0";
+#elif ADC_IN==11
+AnalogIn in(PC_1);
+const char pin_name[]="PC_1";
+#elif ADC_IN==12
+AnalogIn in(PC_2);
+const char pin_name[]="PC_2";
+#elif ADC_IN==13
+AnalogIn in(PC_3);
+const char pin_name[]="PC_3";
+#elif ADC_IN==14
+AnalogIn in(PC_4);
+const char pin_name[]="PC_4";
+#elif ADC_IN==15
+AnalogIn in(PC_5);
+const char pin_name[]="PC_5";
+#endif
+
+
+int main()
+{
+ pc.printf("\nAnalog loop example\n");
+ pc.printf("*** Connect %s and PA_4 pins together ***\n",pin_name);
+ while(1) {
+ for (float out_value = 0.0f; out_value <= 1.0f; out_value += 0.05f) {
+ // Output value using DAC
+ out.write(out_value);
+ wait(0.1);
+ // Read ADC input
+ float in_value = in.read();
+ // Display difference between two values
+ float diff = out_value - in_value;
+ pc.printf("(out:%.4f) - (in:%.4f) = (% .4f) ", out_value, in_value, diff);
+ if (fabs(diff) > 0.03f) {
+ pc.printf("FAIL\n");
+ } else {
+ pc.printf("OK\n");
+ pc.printf("\033[1A"); // Moves cursor up of 1 line
+ }
+ }
+ }
+}
+
+
+
+#endif