May 2021 test

Dependencies:   sx128x sx12xx_hal

Revision:
5:5ac152096add
Parent:
4:a645b6a6fa1f
--- a/main.cpp	Mon Aug 19 01:30:26 2019 +0000
+++ b/main.cpp	Thu Nov 07 11:08:22 2019 +0000
@@ -29,6 +29,7 @@
 #endif
 
 #ifdef TARGET_DISCO_L072CZ_LRWAN1
+    DigitalOut pinCommandExecute(PB_2);
     DigitalOut pin0(PB_5);
     DigitalOut pin1(PB_6);
     DigitalOut pin2(PB_8);
@@ -45,9 +46,11 @@
 #endif /* !TARGET_DISCO_L072CZ_LRWAN1 */
 
 Timeout timeoutOutputDelay;
+Timeout timeoutCommandExecuteSignal;
 static uint8_t command = 0;
 
 #define PIN_ASSERT_us       500000
+#define COMMAND_EXECUTE_SIGNAL_PERIOD 200000
 
 
 /**********************************************************************/
@@ -57,7 +60,15 @@
     
 }
 
+
 static bool commandWrittenFlag = false;
+static bool commandAssertedFlag = false;
+
+void onCommandExecuteSignalTimeout(void)
+{
+    pinCommandExecute = false;
+    commandAssertedFlag = true;
+}
 
 void writeCommandToDigitalOuts(void)
 {
@@ -69,7 +80,9 @@
     pin5 = command & 0b00100000;
     pin6 = command & 0b01000000;
     pin7 = command & 0b10000000;
+    pinCommandExecute = true;
     commandWrittenFlag = true;
+    timeoutCommandExecuteSignal.attach_us(onCommandExecuteSignalTimeout, COMMAND_EXECUTE_SIGNAL_PERIOD);
 }
 
 static uint16_t crc_ccitt( uint8_t *buffer, uint16_t length )
@@ -176,5 +189,12 @@
             commandWrittenFlag = false;
             CriticalSectionLock::disable();
         }
+        if(commandAssertedFlag)
+        {
+            tr_debug("Command Asserted: %d", command);
+            CriticalSectionLock::enable();
+            commandAssertedFlag = false;
+            CriticalSectionLock::disable();
+        }
     }
 }