Hi Peter, I've used the default parameters for ADC_0, that are described in the attached (RIOT/boards/samr21-xpro/include/periph_conf.h).
Hi Akshay, Yes, i tried to let the sensor floats in air, with a 10bit precision, and it gives me back a plausible value (less than 40/1024). Than i tried to put it in mineral water, and it replied with a value next to 1000/1024, that it seems to be correct. Only in the soil (where it should works correctly) it gives back a no-sense value...and i don't know why. thanks a lot! *best regards, * *Alessandro* 2016-10-12 9:48 GMT+02:00 <devel-requ...@riot-os.org>: > Send devel mailing list submissions to > devel@riot-os.org > > To subscribe or unsubscribe via the World Wide Web, visit > https://lists.riot-os.org/mailman/listinfo/devel > or, via email, send a message with subject or body 'help' to > devel-requ...@riot-os.org > > You can reach the person managing the list at > devel-ow...@riot-os.org > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of devel digest..." > > > Today's Topics: > > 1. Soil Moisture Sensor (ALESSANDRO NICOLI) > 2. Re: Soil Moisture Sensor (Peter Kietzmann) > 3. Re: Soil Moisture Sensor (Akshay Mishra) > 4. I2C driver function to read a register with 16 bits address > (Kees Bakker) > 5. Re: alternative socket-api (Kaspar Schleiser) > 6. Re: I2C driver function to read a register with 16 bits > address (Hauke Petersen) > 7. Coding conventions amendment (Oleg Hahm) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Tue, 11 Oct 2016 16:32:22 +0200 > From: ALESSANDRO NICOLI <alessandro.nic...@studenti.unipr.it> > To: RIoT Dev List <devel@riot-os.org> > Subject: [riot-devel] Soil Moisture Sensor > Message-ID: > <CAFsA-_2x_4gmfBn8KK7740SYFwx22hiCzpz2ayq > ftkog6iw...@mail.gmail.com> > Content-Type: text/plain; charset="utf-8" > > Hi all, > I'm trying to use a Soil moisture sensor with a Samr21-xpro and RIOT os. > The sensor used is as follows : > > https://www.seeedstudio.com/Grove-Moisture-Sensor-p-955.html > > > I have *4 soil jars (with different moisture concentrations)* that i'm > gonna use for testing, i've already tried to get moisture values with > *Arduino > Uno* and they seem to be acceptable. > *For both, i used the built in ADC with 10 bits of resolution.* > > But when i try to use the samr21, it gets me always 330 as value (10 bits > ADC). > For the SAMR21* i used the default parameters for ADC_0*. > > There is a way to rectify the readings, or some kind of calibration to do? > > > Thanks a lot, > *best regards, * > *Alessandro* > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: <http://lists.riot-os.org/pipermail/devel/attachments/ > 20161011/89c17d33/attachment-0001.html> > > ------------------------------ > > Message: 2 > Date: Tue, 11 Oct 2016 16:46:21 +0200 > From: Peter Kietzmann <peter.kietzm...@haw-hamburg.de> > To: RIOT OS kernel developers <devel@riot-os.org> > Subject: Re: [riot-devel] Soil Moisture Sensor > Message-ID: <f56b24b5-c67b-fac8-8321-0ced51274...@haw-hamburg.de> > Content-Type: text/plain; charset="utf-8" > > Hi Alessandro, > > what are the default values for ADC_0 on the samr21-xpro board and which > driver did you use? > > Best > Peter > > Am 11.10.2016 um 16:32 schrieb ALESSANDRO NICOLI: > > Hi all, > > I'm trying to use a Soil moisture sensor with a Samr21-xpro and RIOT os. > > The sensor used is as follows : > > > > https://www.seeedstudio.com/Grove-Moisture-Sensor-p-955.html > > > > > > I have *4 soil jars (with different moisture concentrations)* that i'm > > gonna use for testing, i've already tried to get moisture values with > *Arduino > > Uno* and they seem to be acceptable. > > *For both, i used the built in ADC with 10 bits of resolution.* > > > > But when i try to use the samr21, it gets me always 330 as value (10 bits > > ADC). > > For the SAMR21* i used the default parameters for ADC_0*. > > > > There is a way to rectify the readings, or some kind of calibration to > do? > > > > > > Thanks a lot, > > *best regards, * > > *Alessandro* > > > > > > > > _______________________________________________ > > devel mailing list > > devel@riot-os.org > > https://lists.riot-os.org/mailman/listinfo/devel > > > > -- > Peter Kietzmann > > Hamburg University of Applied Sciences > Dept. Informatik, Internet Technologies Group > Berliner Tor 7, 20099 Hamburg, Germany > Fon: +49-40-42875-8426 > Web: http://www.haw-hamburg.de/inet > > > ------------------------------ > > Message: 3 > Date: Tue, 11 Oct 2016 20:28:08 +0530 > From: Akshay Mishra <aks...@dspworks.in> > To: RIOT OS kernel developers <devel@riot-os.org> > Subject: Re: [riot-devel] Soil Moisture Sensor > Message-ID: > <CABSY_Zsg8Q_x2-ADsCQQ9mAnR8FiPsBbAGDGPhfPBnn_ > 1ty...@mail.gmail.com> > Content-Type: text/plain; charset="utf-8" > > Start with measuring the voltage value? Try giving some different analog > input less than 3.3V > > > > On Tuesday, 11 October 2016, ALESSANDRO NICOLI < > alessandro.nic...@studenti.unipr.it> wrote: > > > Hi all, > > I'm trying to use a Soil moisture sensor with a Samr21-xpro and RIOT os. > > The sensor used is as follows : > > > > https://www.seeedstudio.com/Grove-Moisture-Sensor-p-955.html > > > > > > I have *4 soil jars (with different moisture concentrations)* that i'm > > gonna use for testing, i've already tried to get moisture values with > *Arduino > > Uno* and they seem to be acceptable. > > *For both, i used the built in ADC with 10 bits of resolution.* > > > > But when i try to use the samr21, it gets me always 330 as value (10 bits > > ADC). > > For the SAMR21* i used the default parameters for ADC_0*. > > > > There is a way to rectify the readings, or some kind of calibration to > do? > > > > > > Thanks a lot, > > *best regards, * > > *Alessandro* > > > > > -- > *Akshay Mishra* > *Chief Technology Officer* > GSM: +91 98693 21611 > Skype: mishrakshay > Office: +91 22 2500 3488 > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: <http://lists.riot-os.org/pipermail/devel/attachments/ > 20161011/55e4b13d/attachment-0001.html> > > ------------------------------ > > Message: 4 > Date: Tue, 11 Oct 2016 21:29:27 +0200 > From: Kees Bakker <k...@sodaq.com> > To: RIOT OS kernel developers <devel@riot-os.org> > Subject: [riot-devel] I2C driver function to read a register with 16 > bits address > Message-ID: <ac4b8681-6b0e-3aeb-2f57-7be5d938f...@sodaq.com> > Content-Type: text/plain; charset=utf-8; format=flowed > > Hi, > > The SHT2x I2C device has a register with a 16 bits address. If I'm correct > we don't have a function in the I2C driver to do that. Right? > > Assuming we need to extend the driver API, what would be a good name > for such a function? > > All I can come up with is i2c_read_regs2: > > /** > * @brief Read multiple bytes from a register at the I2C slave with > the given > * address > * > * @param[in] dev I2C peripheral device > * @param[in] address bus address of the target device > * @param[in] reg the 16 bits register address on the > targeted I2C device > * @param[out] data array holding the received bytes > * @param[in] length the number of bytes to read into `data` > * > * @return the number of bytes that were read > * @return -1 on undefined device given > */ > int i2c_read_regs2(i2c_t dev, uint8_t address, uint16_t reg, > char *data, int length); > > -- > Kees Bakker > Founder > SODAQ > M. 0031617737165 > www.sodaq.com > > > > ------------------------------ > > Message: 5 > Date: Tue, 11 Oct 2016 23:35:08 +0200 > From: Kaspar Schleiser <kas...@schleiser.de> > To: RIOT OS kernel developers <devel@riot-os.org> > Subject: Re: [riot-devel] alternative socket-api > Message-ID: <ffaba4af-6161-02ce-1661-3adcfeb58...@schleiser.de> > Content-Type: text/plain; charset=utf-8 > > Hi, > > On 10/07/2016 03:49 PM, Alexander Aring wrote: > > came across [0] today and remembers me that RIOT also plans some simple > > "conn" API for a bsd socket alternative. > > Interesting concept. > > Unfortunately it relies on in-stack dynamic resource management (e.g., > "tcp_connect()" returns an integer as resource handle, which thus must > be managed by the tcp implementation), which sock tries to avoid. > > Kaspar > > > ------------------------------ > > Message: 6 > Date: Wed, 12 Oct 2016 09:48:23 +0200 > From: Hauke Petersen <hauke.peter...@fu-berlin.de> > To: RIOT OS kernel developers <devel@riot-os.org> > Subject: Re: [riot-devel] I2C driver function to read a register with > 16 bits address > Message-ID: <41830aae-a9f4-3a05-5124-4c601df18...@fu-berlin.de> > Content-Type: text/plain; charset=utf-8; format=flowed > > Hi Kees, > > you are right, the current interface does not support 16-bit registers. > We are however overhauling the I2C interface as we speak, and the > re-worked interface does have support for them (see [1]). Feel free to > take a look and comment on the proposal! > > Cheers, > Hauke > > [1] https://github.com/RIOT-OS/RIOT/pull/4926 > > > On 11.10.2016 21:29, Kees Bakker wrote: > > Hi, > > > > The SHT2x I2C device has a register with a 16 bits address. If I'm > > correct > > we don't have a function in the I2C driver to do that. Right? > > > > Assuming we need to extend the driver API, what would be a good name > > for such a function? > > > > All I can come up with is i2c_read_regs2: > > > > /** > > * @brief Read multiple bytes from a register at the I2C slave with > > the given > > * address > > * > > * @param[in] dev I2C peripheral device > > * @param[in] address bus address of the target device > > * @param[in] reg the 16 bits register address on the > > targeted I2C device > > * @param[out] data array holding the received bytes > > * @param[in] length the number of bytes to read into `data` > > * > > * @return the number of bytes that were read > > * @return -1 on undefined device given > > */ > > int i2c_read_regs2(i2c_t dev, uint8_t address, uint16_t reg, > > char *data, int length); > > > > > > ------------------------------ > > Message: 7 > Date: Wed, 12 Oct 2016 09:48:28 +0200 > From: Oleg Hahm <oliver.h...@inria.fr> > To: RIOT OS kernel developers <devel@riot-os.org> > Subject: [riot-devel] Coding conventions amendment > Message-ID: <20161012074827.gf12...@hobbykeller.org> > Content-Type: text/plain; charset="utf-8" > > Dear rolling IoTlers, > > as far I'm concerned it has been an undocumented coding convention so far > to > use `int` or `unsigned int` for iterator variables in a loop instead of > fixed > width integer types. Does anybody object to adding this to the coding > conventions explicitly? > > Cheers, > Oleg > -- > The problem with a SQL security joke is that Sony don't get it. > -------------- next part -------------- > A non-text attachment was scrubbed... > Name: signature.asc > Type: application/pgp-signature > Size: 801 bytes > Desc: not available > URL: <http://lists.riot-os.org/pipermail/devel/attachments/ > 20161012/c1f2f768/attachment.sig> > > ------------------------------ > > Subject: Digest Footer > > _______________________________________________ > devel mailing list > devel@riot-os.org > https://lists.riot-os.org/mailman/listinfo/devel > > > ------------------------------ > > End of devel Digest, Vol 44, Issue 10 > ************************************* >
/* * 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 boards_samr21-xpro * @{ * * @file * @brief Configuration of CPU peripherals for the Atmel SAM R21 Xplained * Pro board * * @author Thomas Eichinger <thomas.eichin...@fu-berlin.de> * @author Hauke Petersen <hauke.peter...@fu-berlin.de> * @author Peter Kietzmann <peter.kietzm...@haw-hamburg.de> */ #ifndef PERIPH_CONF_H_ #define PERIPH_CONF_H_ #include <stdint.h> #include "cpu.h" #include "periph_cpu.h" #ifdef __cplusplus extern "C" { #endif /** * @brief External oscillator and clock configuration * * For selection of the used CORECLOCK, we have implemented two choices: * * - usage of the PLL fed by the internal 8MHz oscillator divided by 8 * - usage of the internal 8MHz oscillator directly, divided by N if needed * * * The PLL option allows for the usage of a wider frequency range and a more * stable clock with less jitter. This is why we use this option as default. * * The target frequency is computed from the PLL multiplier and the PLL divisor. * Use the following formula to compute your values: * * CORECLOCK = ((PLL_MUL + 1) * 1MHz) / PLL_DIV * * NOTE: The PLL circuit does not run with less than 32MHz while the maximum PLL * frequency is 96MHz. So PLL_MULL must be between 31 and 95! * * * The internal Oscillator used directly can lead to a slightly better power * efficiency to the cost of a less stable clock. Use this option when you know * what you are doing! The actual core frequency is adjusted as follows: * * CORECLOCK = 8MHz / DIV * * NOTE: A core clock frequency below 1MHz is not recommended * * @{ */ #define CLOCK_USE_PLL (1) #if CLOCK_USE_PLL /* edit these values to adjust the PLL output frequency */ #define CLOCK_PLL_MUL (47U) /* must be >= 31 & <= 95 */ #define CLOCK_PLL_DIV (1U) /* adjust to your needs */ /* generate the actual used core clock frequency */ #define CLOCK_CORECLOCK (((CLOCK_PLL_MUL + 1) * 1000000U) / CLOCK_PLL_DIV) #else /* edit this value to your needs */ #define CLOCK_DIV (1U) /* generate the actual core clock frequency */ #define CLOCK_CORECLOCK (8000000 / CLOCK_DIV) #endif /** @} */ /** * @name Timer peripheral configuration * @{ */ #define TIMER_NUMOF (2U) #define TIMER_0_EN 1 #define TIMER_1_EN 1 /* Timer 0 configuration */ #define TIMER_0_DEV TC3->COUNT16 #define TIMER_0_CHANNELS 2 #define TIMER_0_MAX_VALUE (0xffff) #define TIMER_0_ISR isr_tc3 /* Timer 1 configuration */ #define TIMER_1_DEV TC4->COUNT32 #define TIMER_1_CHANNELS 2 #define TIMER_1_MAX_VALUE (0xffffffff) #define TIMER_1_ISR isr_tc4 /** @} */ /** * @name UART configuration * @{ */ static const uart_conf_t uart_config[] = { /* device, RX pin, TX pin, mux */ {&SERCOM0->USART, GPIO_PIN(PA,5), GPIO_PIN(PA,4), GPIO_MUX_D}, {&SERCOM5->USART, GPIO_PIN(PA,23), GPIO_PIN(PA,22), GPIO_MUX_D}, }; /* interrupt function name mapping */ #define UART_0_ISR isr_sercom0 #define UART_1_ISR isr_sercom5 #define UART_NUMOF (sizeof(uart_config) / sizeof(uart_config[0])) /** @} */ /** * @name PWM configuration * @{ */ #define PWM_0_EN 1 #define PWM_1_EN 1 #define PWM_MAX_CHANNELS 3 /* for compatibility with test application */ #define PWM_0_CHANNELS PWM_MAX_CHANNELS #define PWM_1_CHANNELS PWM_MAX_CHANNELS /* PWM device configuration */ static const pwm_conf_t pwm_config[] = { #if PWM_0_EN {TCC1, { /* GPIO pin, MUX value, TCC channel */ { GPIO_PIN(PA, 6), GPIO_MUX_E, 0 }, { GPIO_PIN(PA, 7), GPIO_MUX_E, 1 }, { GPIO_UNDEF, (gpio_mux_t)0, 2 } }}, #endif #if PWM_1_EN {TCC0, { /* GPIO pin, MUX value, TCC channel */ { GPIO_PIN(PA, 16), GPIO_MUX_F, 0 }, { GPIO_PIN(PA, 18), GPIO_MUX_F, 2 }, { GPIO_PIN(PA, 19), GPIO_MUX_F, 3 } }} #endif }; /* number of devices that are actually defined */ #define PWM_NUMOF (2U) /** @} */ /** * @name SPI configuration * @{ */ #define SPI_NUMOF (2) #define SPI_0_EN 1 #define SPI_1_EN 1 /* SPI0 */ #define SPI_0_DEV SERCOM4->SPI #define SPI_IRQ_0 SERCOM4_IRQn #define SPI_0_DOPO (1) #define SPI_0_DIPO (0) //#define SPI_0_SCLK_DEV PORT->Group[2] //#define SPI_0_SCLK_PIN (18) #define SPI_0_SCLK_DEV PORT->Group[0] #define SPI_0_SCLK_PIN (28) //#define SPI_0_MISO_DEV PORT->Group[2] //#define SPI_0_MISO_PIN (19) #define SPI_0_MISO_DEV PORT->Group[0] #define SPI_0_MISO_PIN (18) //#define SPI_0_MOSI_DEV PORT->Group[1] //#define SPI_0_MOSI_PIN (30) #define SPI_0_MOSI_DEV PORT->Group[0] #define SPI_0_MOSI_PIN (19) /* SPI1 */ #define SPI_1_DEV SERCOM5->SPI #define SPI_IRQ_1 SERCOM5_IRQn #define SPI_1_DOPO (1) #define SPI_1_DIPO (2) #define SPI_1_SCLK_DEV PORT->Group[1] #define SPI_1_SCLK_PIN (23) #define SPI_1_MISO_DEV PORT->Group[1] #define SPI_1_MISO_PIN (02) #define SPI_1_MOSI_DEV PORT->Group[1] #define SPI_1_MOSI_PIN (22) /** @} */ /** * @name I2C configuration * @{ */ #define I2C_NUMOF (2U) #define I2C_0_EN 1 #define I2C_1_EN 1 #define I2C_2_EN 0 #define I2C_3_EN 0 #define I2C_IRQ_PRIO 1 #define I2C_0_DEV SERCOM3->I2CM #define I2C_0_IRQ SERCOM3_IRQn #define I2C_0_ISR isr_sercom3 /* I2C 0 pin configuration - Usati solo nella Master_init()*/ #define I2C_0_PORT (PORT->Group[0]) #define I2C_SDA PIN_PA16 #define I2C_SCL PIN_PA17 #define I2C_0_PINS (PORT_PA16 | PORT_PA17) //Fila EXT3 /* I2C 1 pin configuration */ #define I2C_1_PORT (PORT->Group[0]) //#define I2C_SDA PIN_PA13 //#define I2C_SCL PIN_PA28 #define I2C_1_PINS (PORT_PA13 | PORT_PA28) /** * @name RTC configuration * @{ */ #define RTC_NUMOF (1U) #define RTC_DEV RTC->MODE2 /** @} */ /** * @name RTT configuration * @{ */ #define RTT_NUMOF (1U) #define RTT_DEV RTC->MODE0 #define RTT_IRQ RTC_IRQn #define RTT_IRQ_PRIO 10 #define RTT_ISR isr_rtc #define RTT_MAX_VALUE (0xffffffff) #define RTT_FREQUENCY (32768U) /* in Hz. For changes see `rtt.c` */ #define RTT_RUNSTDBY (1) /* Keep RTT running in sleep states */ /** @} */ #ifdef __cplusplus } #endif /** * @ ADC Configuration * @{ */ #define ADC_NUMOF (1U) #define ADC_0_EN 1 #define ADC_MAX_CHANNELS 8 /* ADC 0 device configuration */ #define ADC_0_DEV ADC #define ADC_0_PORT (PORT->Group[0]) #define ADC_0_IRQ ADC_IRQn #define ADC_0_CHANNELS 6 // ignore PA04 & PA05 due to EDBG UART conflict typedef struct { PortGroup *port; uint8_t pin; uint8_t muxpos; /* see datasheet sec 30.8.8 */ } adc_channel_t; /* ADC 0 Default values */ #define ADC_0_CLK_SOURCE 0 /* GCLK_GENERATOR_0 */ #define ADC_0_PRESCALER ADC_CTRLB_PRESCALER_DIV4 #define ADC_0_WINDOW_MODE ADC_WINCTRL_WINMODE_DISABLE #define ADC_0_WINDOW_LOWER 0 #define ADC_0_WINDOW_HIGHER 0 #define SAMPLE_0_V_OFFSET 170 #define SAMPLE_REF_V 3541 #define ADC_0_CORRECTION_EN 0/*MODDED: 1 enabled */ #define ADC_0_GAIN_CORRECTION ADC_GAINCORR_RESETVALUE/*MODDED: 3541*/ #define ADC_0_OFFSET_CORRECTION ADC_OFFSETCORR_RESETVALUE/*MODDED: 170 */ #define ADC_0_SAMPLE_LENGTH 0 #define ADC_0_PIN_SCAN_OFFSET_START 0 /* disabled */ #define ADC_0_PIN_SCAN_INPUT_TO_SCAN 0 /* disabled */ #define ADC_0_LEFT_ADJUST 0 /* disabled */ #define ADC_0_DIFFERENTIAL_MODE 0 /* disabled */ #define ADC_0_FREE_RUNNING 0 /* disabled */ #define ADC_0_EVENT_ACTION 0 /* disabled */ #define ADC_0_RUN_IN_STANDBY 0 /* disabled */ /* ADC 0 Module Status flags */ #define ADC_0_STATUS_RESULT_READY (1UL << 0) #define ADC_0_STATUS_WINDOW (1UL << 1) #define ADC_0_STATUS_OVERRUN (1UL << 2) #if ADC_0_CHANNELS /* An array listing all possible positive input * ADC channels for the SAMR21-XPRO. * * Note: Enabling PA04/PA05 will cause EDBG serial communication * to freeze, so they are disabled by default! */ static const adc_channel_t adc_channels[] = { /* port, pin, muxpos */ //{&PORT->Group[0], ADC_INPUTCTRL_MUXPOS_PIN4, 0x4}, // PA04 //{&PORT->Group[0], ADC_INPUTCTRL_MUXPOS_PIN5, 0x5}, // PA05 {&PORT->Group[0], ADC_INPUTCTRL_MUXPOS_PIN6, 0x6}, // PA06 {&PORT->Group[0], ADC_INPUTCTRL_MUXPOS_PIN7, 0x7}, // PA07 {&PORT->Group[0], ADC_INPUTCTRL_MUXPOS_PIN16, 0x10}, // PA08 {&PORT->Group[0], ADC_INPUTCTRL_MUXPOS_PIN17, 0x11}, // PA09 {&PORT->Group[0], ADC_INPUTCTRL_MUXPOS_PIN10, 0xA}, // PB02 {&PORT->Group[0], ADC_INPUTCTRL_MUXPOS_PIN11, 0xB}, // PB03 }; /* In differential mode, we can only pick one positive * and one negative input. These are the default values. */ #define ADC_0_POS_INPUT ADC_INPUTCTRL_MUXPOS_PIN6 #define ADC_0_NEG_INPUT ADC_INPUTCTRL_MUXNEG_IOGND #endif /* ADC 0 Gain Factor */ #define ADC_0_GAIN_FACTOR_1X ADC_INPUTCTRL_GAIN_1X #define ADC_0_GAIN_FACTOR_2X ADC_INPUTCTRL_GAIN_2X #define ADC_0_GAIN_FACTOR_4X ADC_INPUTCTRL_GAIN_4X #define ADC_0_GAIN_FACTOR_8X ADC_INPUTCTRL_GAIN_8X #define ADC_0_GAIN_FACTOR_16X ADC_INPUTCTRL_GAIN_16X /* Use this to define the value used */ #define ADC_0_GAIN_FACTOR_DEFAULT ADC_0_GAIN_FACTOR_1X /* ADC 0 Resolutions */ #define ADC_0_RES_8BIT ADC_CTRLB_RESSEL_8BIT #define ADC_0_RES_10BIT ADC_CTRLB_RESSEL_10BIT #define ADC_0_RES_12BIT ADC_CTRLB_RESSEL_12BIT #define ADC_0_RES_16BIT ADC_CTRLB_RESSEL_16BIT /* ADC 0 Voltage reference * * Note: ADC_0_REF_EXT_B is PA04 on the SAMR21-xpro. * PA04 is also hardwired to the USB EDBG serial. * If you use ADC_0_REF_EXT_B while also using * EDBG serial, the serial connection will freeze. */ #define ADC_0_REF_INT_1V ADC_REFCTRL_REFSEL_INT1V #define ADC_0_REF_EXT_B ADC_REFCTRL_REFSEL_AREFB #define ADC_0_REF_COM_EN 0 /* Use this to define the value used */ #define ADC_0_REF_DEFAULT ADC_0_REF_INT_1V /* ADC 0 ACCUMULATE */ #define ADC_0_ACCUM_DISABLE ADC_AVGCTRL_SAMPLENUM_1 #define ADC_0_ACCUM_2 ADC_AVGCTRL_SAMPLENUM_2 #define ADC_0_ACCUM_4 ADC_AVGCTRL_SAMPLENUM_4 #define ADC_0_ACCUM_8 ADC_AVGCTRL_SAMPLENUM_8 #define ADC_0_ACCUM_16 ADC_AVGCTRL_SAMPLENUM_16 #define ADC_0_ACCUM_32 ADC_AVGCTRL_SAMPLENUM_32 #define ADC_0_ACCUM_64 ADC_AVGCTRL_SAMPLENUM_64 #define ADC_0_ACCUM_128 ADC_AVGCTRL_SAMPLENUM_128 #define ADC_0_ACCUM_256 ADC_AVGCTRL_SAMPLENUM_256 #define ADC_0_ACCUM_512 ADC_AVGCTRL_SAMPLENUM_512 #define ADC_0_ACCUM_1024 ADC_AVGCTRL_SAMPLENUM_1024 /* Use this to define the value used */ #define ADC_0_ACCUM_DEFAULT ADC_0_ACCUM_DISABLE /* ADC 0 DIVIDE RESULT */ #define ADC_0_DIV_RES_DISABLE 0 #define ADC_0_DIV_RES_2 1 #define ADC_0_DIV_RES_4 2 #define ADC_0_DIV_RES_8 3 #define ADC_0_DIV_RES_16 4 #define ADC_0_DIV_RES_32 5 #define ADC_0_DIV_RES_64 6 #define ADC_0_DIV_RES_128 7 /* Use this to define the value used */ #define ADC_0_DIV_RES_DEFAULT ADC_0_DIV_RES_DISABLE /* Declare ADC Configuration object */ #define ADC_CONF_TYPE_DEFINED 1 typedef struct { uint32_t precision; uint32_t prescaler; uint32_t gain; uint32_t accumulate; uint8_t divide; int vref; int differential_mode; int run_in_standby; } adc_conf_t; /** @} */ #endif /* PERIPH_CONF_H_ */ /** @} */
_______________________________________________ devel mailing list devel@riot-os.org https://lists.riot-os.org/mailman/listinfo/devel