summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorluhuadong <[email protected]>2020-07-08 22:53:02 +0800
committerluhuadong <[email protected]>2020-07-08 22:53:02 +0800
commitcc15a1b59cdc11b9a05816f417b6c9cec165849b (patch)
tree556f7d9d2498a2a57f22d88f27a31664372fa97f
parenta6d7dc73edcafeda53da3168e3e2669dfa17d207 (diff)
[sensor] fixed sensor cmd delay time
-rwxr-xr-xcomponents/drivers/sensors/sensor_cmd.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/components/drivers/sensors/sensor_cmd.c b/components/drivers/sensors/sensor_cmd.c
index d46b23f4cf..d74b1a6307 100755
--- a/components/drivers/sensors/sensor_cmd.c
+++ b/components/drivers/sensors/sensor_cmd.c
@@ -226,6 +226,7 @@ static void sensor_polling(int argc, char **argv)
rt_sensor_t sensor;
struct rt_sensor_data data;
rt_size_t res, i;
+ rt_int32_t delay;
dev = rt_device_find(argv[1]);
if (dev == RT_NULL)
@@ -237,6 +238,7 @@ static void sensor_polling(int argc, char **argv)
num = atoi(argv[2]);
sensor = (rt_sensor_t)dev;
+ delay = sensor->info.period_min > 100 ? sensor->info.period_min : 100;
if (rt_device_open(dev, RT_DEVICE_FLAG_RDWR) != RT_EOK)
{
@@ -256,7 +258,7 @@ static void sensor_polling(int argc, char **argv)
{
sensor_show_data(i, sensor, &data);
}
- rt_thread_mdelay(100);
+ rt_thread_mdelay(delay);
}
rt_device_close(dev);
}
@@ -268,7 +270,9 @@ static void sensor(int argc, char **argv)
{
static rt_device_t dev = RT_NULL;
struct rt_sensor_data data;
+ rt_sensor_t sensor;
rt_size_t res, i;
+ rt_int32_t delay;
/* If the number of arguments less than 2 */
if (argc < 2)
@@ -410,6 +414,9 @@ static void sensor(int argc, char **argv)
num = atoi(argv[2]);
}
+ sensor = (rt_sensor_t)dev;
+ delay = sensor->info.period_min > 100 ? sensor->info.period_min : 100;
+
for (i = 0; i < num; i++)
{
res = rt_device_read(dev, 0, &data, 1);
@@ -419,9 +426,9 @@ static void sensor(int argc, char **argv)
}
else
{
- sensor_show_data(i, (rt_sensor_t)dev, &data);
+ sensor_show_data(i, sensor, &data);
}
- rt_thread_mdelay(100);
+ rt_thread_mdelay(delay);
}
}
else if (argc == 3)