Skip to content

Commit 509d55f

Browse files
committed
Add Adacallback as part of the repo and initial task
1 parent 89a3de8 commit 509d55f

File tree

5 files changed

+9
-8
lines changed

5 files changed

+9
-8
lines changed

cores/nRF5/Arduino.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ uint32_t setLoopStacksize(void);
6363
#include "debug.h"
6464
#include "common_inc.h"
6565
#include "utility/utilities.h"
66+
#include "utility/AdaCallback.h"
6667

6768
#ifdef __cplusplus
6869
#include "Uart.h"

cores/nRF5/main.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,9 @@ int main( void )
9595
TaskHandle_t _loopHandle;
9696
xTaskCreate( loop_task, "loop", _loopStacksize, NULL, TASK_PRIO_NORMAL, &_loopHandle);
9797

98+
// Initialize callback task
99+
ada_callback_init();
100+
98101
// Start FreeRTOS scheduler.
99102
vTaskStartScheduler();
100103

cores/nRF5/utility/AdaCallback.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
*/
3535
/**************************************************************************/
3636

37-
#include "AdaCallback.h"
37+
#include "Arduino.h"
3838

3939
static QueueHandle_t _cb_queue = NULL;
4040

@@ -48,7 +48,6 @@ void adafruit_callback_task(void* arg)
4848
if ( xQueueReceive(_cb_queue, (void*) &cb_data, portMAX_DELAY) )
4949
{
5050
// PRINT_HEX(cb_data);
51-
// PRINT_INT(cb_data->callback_type);
5251
// PRINT_HEX(cb_data->malloced_data);
5352

5453
void* func = cb_data->callback_func;
@@ -75,7 +74,7 @@ void adafruit_callback_task(void* arg)
7574

7675
void ada_callback_queue(ada_callback_t* cb_data)
7776
{
78-
xQueueSend(_cb_queue, (void*) &cb_data, BLE_GENERIC_TIMEOUT);
77+
xQueueSend(_cb_queue, (void*) &cb_data, CFG_CALLBACK_TIMEOUT);
7978
}
8079

8180
void ada_callback_init(void)

cores/nRF5/utility/AdaCallback.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,11 @@
3636
#ifndef ADACALLBACK_H_
3737
#define ADACALLBACK_H_
3838

39-
#include <Arduino.h>
40-
#include "bluefruit.h"
39+
#include "common_inc.h"
4140

4241
#define CFG_CALLBACK_TASK_STACKSIZE (512*2)
4342
#define CFG_CALLBACK_QUEUE_LENGTH 20
43+
#define CFG_CALLBACK_TIMEOUT 100
4444

4545
#ifdef __cplusplus
4646
extern "C"{
@@ -58,7 +58,7 @@ typedef struct
5858
uint32_t arguments[1]; // flexible array holder
5959
}ada_callback_t;
6060

61-
static_assert(sizeof(ada_callback_t) == 16, "Incorrect Size");
61+
VERIFY_STATIC( sizeof(ada_callback_t) == 16 );
6262

6363
/*------------- Defer callback type, determined by number of arguments -------------*/
6464
typedef void (*adacb_0arg_t) (void);

libraries/Bluefruit52Lib/src/bluefruit.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -214,8 +214,6 @@ err_t AdafruitBluefruit::begin(bool prph_enable, bool central_enable)
214214
TaskHandle_t soc_task_hdl;
215215
xTaskCreate( adafruit_soc_task, "SD SOC", CFG_SOC_TASK_STACKSIZE, NULL, TASK_PRIO_HIGH, &soc_task_hdl);
216216

217-
ada_callback_init();
218-
219217
NVIC_SetPriority(SD_EVT_IRQn, 6);
220218
NVIC_EnableIRQ(SD_EVT_IRQn);
221219

0 commit comments

Comments
 (0)