Browse Source

tests: adapt driver_mpl3115a2

master
smlng 5 years ago
parent
commit
9bed191b4f
  1. 11
      drivers/mpl3115a2/include/mpl3115a2_params.h
  2. 8
      tests/driver_mpl3115a2/Makefile
  3. 8
      tests/driver_mpl3115a2/README.md
  4. 52
      tests/driver_mpl3115a2/main.c

11
drivers/mpl3115a2/include/mpl3115a2_params.h

@ -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

8
tests/driver_mpl3115a2/Makefile

@ -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

8
tests/driver_mpl3115a2/README.md

@ -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.

52
tests/driver_mpl3115a2/main.c

@ -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;

Loading…
Cancel
Save