summaryrefslogtreecommitdiff
path: root/apps/examples/adc/adc.h
diff options
context:
space:
mode:
Diffstat (limited to 'apps/examples/adc/adc.h')
-rwxr-xr-xapps/examples/adc/adc.h57
1 files changed, 52 insertions, 5 deletions
diff --git a/apps/examples/adc/adc.h b/apps/examples/adc/adc.h
index a8f225532..e6d9dd7bd 100755
--- a/apps/examples/adc/adc.h
+++ b/apps/examples/adc/adc.h
@@ -54,8 +54,10 @@
* and this value is ignored. Otherwise, this number of samples is
* collected and the program terminates. Default: Samples are collected
* indefinitely.
- * CONFIG_EXAMPLES_ADC_SAMPLESIZE - The number of bytes to read in one sample.
- * Default: 8
+ * CONFIG_EXAMPLES_ADC_GROUPSIZE - The number of samples to read at once.
+ * Default: 4
+ * CONFIG_EXAMPLES_ADC_SAMPLEWIDTH - The width (in bits) of the on ADC sample.
+ * Default: 16
*/
#ifndef CONFIG_ADC
@@ -66,10 +68,43 @@
# define CONFIG_EXAMPLES_ADC_DEVPATH "/dev/adc0"
#endif
-#ifndef CONFIG_EXAMPLES_ADC_SAMPLESIZE
-# define CONFIG_EXAMPLES_ADC_SAMPLESIZE 8
+#ifndef CONFIG_EXAMPLES_ADC_GROUPSIZE
+# define CONFIG_EXAMPLES_ADC_GROUPSIZE 4
#endif
+#ifndef CONFIG_EXAMPLES_ADC_SAMPLEWIDTH
+# define CONFIG_EXAMPLES_ADC_SAMPLEWIDTH 16
+#endif
+
+/* Sample characteristics ***************************************************/
+
+#undef ADC_SAMPLE_BYTEWIDTH
+#if CONFIG_EXAMPLES_ADC_SAMPLEWIDTH <= 8
+# undef CONFIG_EXAMPLES_ADC_SAMPLEWIDTH
+# define CONFIG_EXAMPLES_ADC_SAMPLEWIDTH 8
+# define ADC_SAMPLE_BYTEWIDTH 1
+# define SAMPLE_FMT "%02x"
+#elif CONFIG_EXAMPLES_ADC_SAMPLEWIDTH <= 16
+# undef CONFIG_EXAMPLES_ADC_SAMPLEWIDTH
+# define CONFIG_EXAMPLES_ADC_SAMPLEWIDTH 16
+# define ADC_SAMPLE_BYTEWIDTH 2
+# define SAMPLE_FMT "%04x"
+#elif CONFIG_EXAMPLES_ADC_SAMPLEWIDTH <= 24
+# undef CONFIG_EXAMPLES_ADC_SAMPLEWIDTH
+# define CONFIG_EXAMPLES_ADC_SAMPLEWIDTH 24
+# define ADC_SAMPLE_BYTEWIDTH 3
+# define SAMPLE_FMT "%06x"
+#elif CONFIG_EXAMPLES_ADC_SAMPLEWIDTH <= 32
+# undef CONFIG_EXAMPLES_ADC_SAMPLEWIDTH
+# define CONFIG_EXAMPLES_ADC_SAMPLEWIDTH 32
+# define ADC_SAMPLE_BYTEWIDTH 4
+# define SAMPLE_FMT "%08x"
+#else
+# error "Unsupported sample width"
+#endif
+
+#undef ADC_SAMPLE_SIZE (CONFIG_EXAMPLES_ADC_GROUPSIZE * ADC_SAMPLE_BYTEWIDTH)
+
/* Debug ********************************************************************/
#ifdef CONFIG_CPP_HAVE_VARARGS
@@ -94,6 +129,18 @@
* Public Types
****************************************************************************/
+#if CONFIG_EXAMPLES_ADC_SAMPLEWIDTH == 8
+typedef uint8_t adc_sample_t;
+#elif CONFIG_EXAMPLES_ADC_SAMPLEWIDTH == 16
+typedef uint16_t adc_sample_t;
+#elif CONFIG_EXAMPLES_ADC_SAMPLEWIDTH == 24
+typedef uint32_t adc_sample_t;
+#elif CONFIG_EXAMPLES_ADC_SAMPLEWIDTH == 32
+typedef uint32_t adc_sample_t;
+#else
+# error "Unsupported sample width"
+#endif
+
/****************************************************************************
* Public Variables
****************************************************************************/
@@ -111,6 +158,6 @@
*
****************************************************************************/
-void adc_devinit(void);
+int adc_devinit(void);
#endif /* __APPS_EXAMPLES_ADC_ADC_H */