diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json index 00c9b0c..705e4b4 100644 --- a/.vscode/c_cpp_properties.json +++ b/.vscode/c_cpp_properties.json @@ -3,13 +3,17 @@ { "name": "Win32", "includePath": [ - "C:\\Users\\pspyc\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.6.19\\cores\\arduino", + "${workspaceRoot}", + "C:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino", + "C:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries", + "C:\\Users\\pspyc\\Documents\\Arduino\\libraries", "C:\\Users\\pspyc\\Documents\\Arduino\\libraries\\PPMReader" ], "browse": { "limitSymbolsToIncludedHeaders": false, "path": [ - "C:\\Users\\pspyc\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.6.19\\cores\\arduino", + "C:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino", + "C:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\libraries", "${workspaceRoot}", "C:\\Users\\pspyc\\Documents\\Arduino\\libraries" ] diff --git a/crossbow.ino b/crossbow.ino index efd30fa..1398bd5 100644 --- a/crossbow.ino +++ b/crossbow.ino @@ -58,7 +58,7 @@ uint32_t lastOledTaskTime = 0; QspConfiguration_t qsp = {}; RxDeviceState_t rxDeviceState = {}; TxDeviceState_t txDeviceState = {}; -volatile RadioState_t radioState; +volatile RadioState_t radioState = {}; uint8_t tmpBuffer[MAX_PACKET_SIZE]; @@ -81,7 +81,7 @@ void writeToRadio(uint8_t dataByte, QspConfiguration_t *qsp) LoRa.write(dataByte); } -void onQspSuccess(QspConfiguration_t *qsp, TxDeviceState_t *txDeviceState, RxDeviceState_t *rxDeviceState, RadioState_t *radioState) { +void onQspSuccess(QspConfiguration_t *qsp, TxDeviceState_t *txDeviceState, RxDeviceState_t *rxDeviceState, volatile RadioState_t *radioState) { //If devide received a valid frame, that means it can start to talk qsp->canTransmit = true; @@ -121,7 +121,7 @@ void onQspSuccess(QspConfiguration_t *qsp, TxDeviceState_t *txDeviceState, RxDev qsp->transmitWindowOpen = true; } -void onQspFailure(QspConfiguration_t *qsp, TxDeviceState_t *txDeviceState, RxDeviceState_t *rxDeviceState, RadioState_t *radioState) { +void onQspFailure(QspConfiguration_t *qsp, TxDeviceState_t *txDeviceState, RxDeviceState_t *rxDeviceState, volatile RadioState_t *radioState) { } diff --git a/qsp.cpp b/qsp.cpp index 84b8c3d..dbcefe1 100644 --- a/qsp.cpp +++ b/qsp.cpp @@ -161,7 +161,7 @@ void qspDecodeIncomingFrame( uint8_t incomingByte, RxDeviceState_t *rxDeviceState, TxDeviceState_t *txDeviceState, - RadioState_t *radioState + volatile RadioState_t *radioState ) { static uint8_t frameId; static uint8_t payloadLength; diff --git a/qsp.h b/qsp.h index 84728b1..106d98f 100644 --- a/qsp.h +++ b/qsp.h @@ -14,7 +14,7 @@ void qspDecodeIncomingFrame( uint8_t incomingByte, RxDeviceState_t *rxDeviceState, TxDeviceState_t *txDeviceState, - RadioState_t *radioState + volatile RadioState_t *radioState ); void qspClearPayload(QspConfiguration_t *qsp); void qspEncodeFrame(QspConfiguration_t *qsp, uint8_t buffer[], uint8_t *size); diff --git a/variables.h b/variables.h index 05f3b5f..e81721d 100644 --- a/variables.h +++ b/variables.h @@ -116,8 +116,8 @@ struct QspConfiguration_t { uint32_t anyFrameRecivedAt = 0; uint8_t deviceState = DEVICE_STATE_UNDETERMINED; void (* hardwareWriteFunction)(uint8_t, QspConfiguration_t*); - void (* onSuccessCallback)(QspConfiguration_t*, TxDeviceState_t*, RxDeviceState_t*, RadioState_t*); - void (* onFailureCallback)(QspConfiguration_t*, TxDeviceState_t*, RxDeviceState_t*, RadioState_t*); + void (* onSuccessCallback)(QspConfiguration_t*, TxDeviceState_t*, RxDeviceState_t*, volatile RadioState_t*); + void (* onFailureCallback)(QspConfiguration_t*, TxDeviceState_t*, RxDeviceState_t*, volatile RadioState_t*); bool canTransmit = false; bool forcePongFrame = false; uint8_t debugConfig = 0;