1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-01-18 12:52:44 +01:00

tests: adapt driver_mpl3115a2

This commit is contained in:
smlng 2017-05-31 21:09:39 +02:00
parent c7375529e3
commit 9bed191b4f
4 changed files with 39 additions and 40 deletions

View File

@ -56,6 +56,7 @@ extern "C" {
*/
static const mpl3115a2_params_t mpl3115a2_params[] =
{
#ifdef MPL3115A2_PARAMS_CUSTOM
MPL3115A2_PARAMS_CUSTOM
#else
@ -63,6 +64,16 @@ static const mpl3115a2_params_t mpl3115a2_params[] =
#endif
};
/**
* @brief Additional meta information to keep in the SAUL registry
*/
static const saul_reg_info_t mpl3115a2_saul_info[] =
{
{
.name = "mpl3115a2"
}
};
#ifdef __cplusplus
}
#endif

View File

@ -6,12 +6,4 @@ FEATURES_REQUIRED = periph_i2c
USEMODULE += mpl3115a2
USEMODULE += xtimer
# set default device parameters in case they are undefined
TEST_MPL3115A2_I2C ?= I2C_DEV\(0\)
TEST_MPL3115A2_ADDR ?= 0x60
# export parameters
CFLAGS += -DTEST_MPL3115A2_I2C=$(TEST_MPL3115A2_I2C)
CFLAGS += -DTEST_MPL3115A2_ADDR=$(TEST_MPL3115A2_ADDR)
include $(RIOTBASE)/Makefile.include

View File

@ -2,8 +2,8 @@
This is a manual test application for the MPL3115A2 driver.
# Usage
This test application will initialize the MPL3115A2 sensor with the following parameters:
- oversample ratio 128
This test application will initialize the MPL3115A2 sensor with parameter
oversample ratio 128
After initialization, the sensor reads the pressure and temperature values every 1s
and prints them to STDOUT.
After initialization, the sensor reads pressure, temperature values and device
state every 1s and prints them to STDOUT.

View File

@ -20,49 +20,45 @@
* @}
*/
#ifndef TEST_MPL3115A2_I2C
#error "TEST_MPL3115A2_I2C not defined"
#endif
#ifndef TEST_MPL3115A2_ADDR
#error "TEST_MPL3115A2_ADDR not defined"
#endif
#include <stdio.h>
#include <stdlib.h>
#include "xtimer.h"
#include "mpl3115a2.h"
#include "mpl3115a2_params.h"
#define SLEEP (1000 * 1000U)
#define SLEEP (1UL * US_PER_SEC)
static mpl3115a2_t dev;
int main(void)
{
mpl3115a2_t dev;
uint32_t pressure;
int16_t temp;
uint8_t status;
puts("MPL3115A2 pressure sensor driver test application\n");
printf("Initializing MPL3115A2 sensor at I2C_%i... ", TEST_MPL3115A2_I2C);
if (mpl3115a2_init(&dev, TEST_MPL3115A2_I2C, TEST_MPL3115A2_ADDR,
MPL3115A2_OS_RATIO_DEFAULT) == 0) {
puts("[OK]\n");
}
else {
puts("[Failed]");
return -1;
printf("Initializing MPL3115A2 sensor at I2C_%i... ", mpl3115a2_params[0].i2c);
if (mpl3115a2_init(&dev, &mpl3115a2_params[0]) != MPL3115A2_OK) {
puts("[FAILED] init device!");
return 1;
}
if (mpl3115a2_set_active(&dev)) {
puts("Measurement start failed.");
return -1;
if (mpl3115a2_set_active(&dev) != MPL3115A2_OK) {
puts("[FAILED] activate measurement!");
return 2;
}
puts("[SUCCESS]");
while (1) {
uint32_t pressure;
int16_t temp;
uint8_t status;
xtimer_usleep(SLEEP);
mpl3115a2_read_pressure(&dev, &pressure, &status);
printf("Pressure: %u Status: %#02x\n", (unsigned int)pressure, status);
mpl3115a2_read_temp(&dev, &temp);
printf("Temperature: %d\n", temp/10);
if ((mpl3115a2_read_pressure(&dev, &pressure, &status) |
mpl3115a2_read_temp(&dev, &temp)) != MPL3115A2_OK) {
puts("[FAILED] read values!");
}
else {
printf("Pressure: %u Pa, Temperature: %3d.%d C, State: %#02x\n",
(unsigned int)pressure, temp/10, abs(temp%10), status);
}
}
return 0;