mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
periph/adc_continous: add test for ADC continous API
This commit is contained in:
parent
b289d69b4f
commit
d3dfd4baf0
9
tests/periph/adc_continuous/Makefile
Normal file
9
tests/periph/adc_continuous/Makefile
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
BOARD ?= same54-xpro
|
||||||
|
include ../Makefile.periph_common
|
||||||
|
|
||||||
|
FEATURES_REQUIRED += periph_adc
|
||||||
|
FEATURES_REQUIRED += periph_adc_continuous
|
||||||
|
USEMODULE += ztimer
|
||||||
|
USEMODULE += ztimer_msec
|
||||||
|
|
||||||
|
include $(RIOTBASE)/Makefile.include
|
3
tests/periph/adc_continuous/Makefile.ci
Normal file
3
tests/periph/adc_continuous/Makefile.ci
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
BOARD_INSUFFICIENT_MEMORY := \
|
||||||
|
atmega8 \
|
||||||
|
#
|
13
tests/periph/adc_continuous/README.md
Normal file
13
tests/periph/adc_continuous/README.md
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
Expected result
|
||||||
|
===============
|
||||||
|
When running this test, you should see the samples of all configured ADC lines
|
||||||
|
continuously streamed to std-out.
|
||||||
|
|
||||||
|
Background
|
||||||
|
==========
|
||||||
|
This test application will initialize each configured ADC lines to sample with
|
||||||
|
10-bit accuracy. Once configured the application will continuously convert each
|
||||||
|
available channel and print the conversion results to std-out.
|
||||||
|
|
||||||
|
For verification of the output connect the ADC pins to known voltage levels
|
||||||
|
and compare the output.
|
58
tests/periph/adc_continuous/main.c
Normal file
58
tests/periph/adc_continuous/main.c
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2014-2015 Freie Universität Berlin
|
||||||
|
*
|
||||||
|
* This file is subject to the terms and conditions of the GNU Lesser
|
||||||
|
* General Public License v2.1. See the file LICENSE in the top level
|
||||||
|
* directory for more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ingroup tests
|
||||||
|
* @{
|
||||||
|
*
|
||||||
|
* @file
|
||||||
|
* @brief Test application for peripheral ADC drivers
|
||||||
|
*
|
||||||
|
* @author Hauke Petersen <hauke.petersen@fu-berlin.de>
|
||||||
|
*
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#include "ztimer.h"
|
||||||
|
#include "periph/adc.h"
|
||||||
|
|
||||||
|
#define RES ADC_RES_10BIT
|
||||||
|
#define DELAY_MS 100U
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
int sample = 0;
|
||||||
|
|
||||||
|
puts("\nRIOT ADC peripheral driver test\n");
|
||||||
|
puts("This test will sample all available ADC lines once every 100ms with\n"
|
||||||
|
"a 10-bit resolution and print the sampled results to STDIO\n\n");
|
||||||
|
|
||||||
|
/* initialize all available ADC lines */
|
||||||
|
for (unsigned i = 0; i < ADC_NUMOF; i++) {
|
||||||
|
if (adc_init(ADC_LINE(i)) < 0) {
|
||||||
|
printf("Initialization of ADC_LINE(%u) failed\n", i);
|
||||||
|
return 1;
|
||||||
|
} else {
|
||||||
|
printf("Successfully initialized ADC_LINE(%u)\n", i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
adc_continuous_begin(RES);
|
||||||
|
while (1) {
|
||||||
|
for (unsigned i = 0; i < ADC_NUMOF; i++) {
|
||||||
|
sample = adc_continuous_sample(ADC_LINE(i));
|
||||||
|
printf("ADC_LINE(%u): %i\n", i, sample);
|
||||||
|
}
|
||||||
|
ztimer_sleep(ZTIMER_MSEC, DELAY_MS);
|
||||||
|
}
|
||||||
|
|
||||||
|
adc_continuous_stop();
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user