Explorar el Código

Updated LED options

xnecas hace 1 semana
padre
commit
ea40ba13a6
Se han modificado 2 ficheros con 24 adiciones y 8 borrados
  1. 3 2
      Inc/nbus_config.h
  2. 21 6
      Src/NbusCommunicator.cpp

+ 3 - 2
Inc/nbus_config.h

@@ -10,9 +10,10 @@
 
 /* BEGIN NBUS LED DEFINES */
 
-#define NBUS_USE_LED                    0
+#define NBUS_USE_LED                    1
 #define NBUS_LED_PORT                   GPIOB
-#define NBUS_LED_PIN                    2// GPIO_PIN_3
+#define NBUS_LED_PIN                    8// GPIO_PIN_3
+#define NBUS_LED_POLARITY_REVERSED      1 // 0-normal, 1-reversed
 
 /* END NBUS LED DEFINES */
 

+ 21 - 6
Src/NbusCommunicator.cpp

@@ -71,14 +71,22 @@ void NbusCommunicator::_receiveFromSlave()
 void NbusCommunicator::setLedOn()
 {
 #if NBUS_USE_LED
-    HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_SET);
+    #if NBUS_LED_POLARITY_REVERSED
+        HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_RESET);
+    #else
+        HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_SET);
+    #endif // POLARITY
 #endif // NBUS_USE_LED
 }
 
 void NbusCommunicator::setLedOff()
 {
 #if NBUS_USE_LED
-    HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_RESET);
+    #if NBUS_LED_POLARITY_REVERSED
+        HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_SET);
+    #else
+        HAL_GPIO_WritePin(GPIOB, GPIO_PIN_3, GPIO_PIN_RESET);
+    #endif // POLARITY
 #endif // NBUS_USE_LED
 }
 
@@ -149,7 +157,6 @@ void NbusCommunicator::_receiveFromSlave()
             _uart_nbus->readBytes(_data_packet_comm + received_size, in_bytes);
             received_size += in_bytes;
         }
-
     }
 
     _packet_rx.Init();
@@ -167,21 +174,29 @@ void NbusCommunicator::_receiveFromSlave()
 void NbusCommunicator::setLedOn()
 {
 #if NBUS_USE_LED
-    digitalWrite(NBUS_LED_PIN, HIGH);
+    #if NBUS_LED_POLARITY_REVERSED
+        digitalWrite(NBUS_LED_PIN, LOW);
+    #else
+        digitalWrite(NBUS_LED_PIN, HIGH);
+    #endif // POLARITY    
 #endif // NBUS_USE_LED
 }
 
 void NbusCommunicator::setLedOff()
 {
 #if NBUS_USE_LED
-    digitalWrite(NBUS_LED_PIN, LOW);
+    #if NBUS_LED_POLARITY_REVERSED
+        digitalWrite(NBUS_LED_PIN, HIGH);
+    #else
+        digitalWrite(NBUS_LED_PIN, LOW);
+    #endif // POLARITY    
 #endif // NBUS_USE_LED
 }
 
 void NbusCommunicator::toggleLed()
 {
 #if NBUS_USE_LED
-    digitalWrite(NBUS_LED_PIN, ~digitalRead(NBUS_LED_PIN));
+    digitalWrite(NBUS_LED_PIN, !digitalRead(NBUS_LED_PIN));
 #endif // NBUS_USE_LED
 }