From 229b1274d07a5e9abe5574c72f90d7cf25d99efc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= Date: Thu, 14 Jun 2018 10:28:08 +0200 Subject: [PATCH] fix camera_trigger gpio: _pins[i] == 0 is valid Because _pins[i] is set from parameter value - 1 --- src/drivers/camera_trigger/interfaces/src/gpio.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/drivers/camera_trigger/interfaces/src/gpio.cpp b/src/drivers/camera_trigger/interfaces/src/gpio.cpp index 0fe8f9aee5..8231fad181 100644 --- a/src/drivers/camera_trigger/interfaces/src/gpio.cpp +++ b/src/drivers/camera_trigger/interfaces/src/gpio.cpp @@ -22,8 +22,8 @@ CameraInterfaceGPIO::~CameraInterfaceGPIO() void CameraInterfaceGPIO::setup() { for (unsigned i = 0; i < arraySize(_pins); i++) { - // Pin range is ranges from 1 to 6 - if (_pins[i] > 0 && _pins[i] < (int)arraySize(_gpios)) { + // Pin range is from 0 to 5 + if (_pins[i] >= 0 && _pins[i] < (int)arraySize(_gpios)) { px4_arch_configgpio(_gpios[_pins[i]]); px4_arch_gpiowrite(_gpios[_pins[i]], !_polarity); } @@ -34,7 +34,7 @@ void CameraInterfaceGPIO::trigger(bool enable) { if (enable) { for (unsigned i = 0; i < arraySize(_pins); i++) { - if (_pins[i] >= 0) { + if (_pins[i] >= 0 && _pins[i] < (int)arraySize(_gpios)) { // ACTIVE_LOW == 1 px4_arch_gpiowrite(_gpios[_pins[i]], _polarity); } @@ -42,7 +42,7 @@ void CameraInterfaceGPIO::trigger(bool enable) } else { for (unsigned i = 0; i < arraySize(_pins); i++) { - if (_pins[i] >= 0) { + if (_pins[i] >= 0 && _pins[i] < (int)arraySize(_gpios)) { // ACTIVE_LOW == 1 px4_arch_gpiowrite(_gpios[_pins[i]], !_polarity); }