summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernard Xiong <[email protected]>2020-07-14 09:33:38 +0800
committerGitHub <[email protected]>2020-07-14 09:33:38 +0800
commit388c0e25766bfae3e33a6f899691d80cdd03b066 (patch)
tree8e110fa76a406e3873cd46b6ed003a5e1a9f2c67
parent625caba7268d54765d5d1ed68124ce6e6da6ff30 (diff)
parentcc15a1b59cdc11b9a05816f417b6c9cec165849b (diff)
Merge pull request #3741 from luhuadong/develop
[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)