diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/main-rtos.c | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/src/main-rtos.c b/src/main-rtos.c index 62a2a76..d68dc93 100644 --- a/src/main-rtos.c +++ b/src/main-rtos.c @@ -48,6 +48,12 @@ subscription_info_t* subs_info[BUS_DEVICE_LIMIT]; uint32_t allocated[4]={0}; uint8_t dev_sts[BUS_DEVICE_LIMIT] = {OFFLINE}; +static QueueHandle_t xQueue = NULL; +#define mainQUEUE_RECEIVE_TASK_PRIORITY (tskIDLE_PRIORITY + 2) +#define mainQUEUE_SEND_TASK_PRIORITY (tskIDLE_PRIORITY + 1) +#define mainHS_FREQUENCY_MS (2000 / portTICK_PERIOD_MS) +#define mainQUEUE_LENGTH (1) + /* Function prototypes */ void SystemClock_Config(void); static void MX_GPIO_Init(void); @@ -60,7 +66,6 @@ bool todo_hs_or_not_todo_hs(uint8_t i2c_addr); state_t get_state_from_hs_status(uint16_t device_addr, hs_status_t hs_status); bool encode_subscription_callback(pb_ostream_t *ostream, const pb_field_t *field, void * const *arg); -#define mainHS_FREQUENCY_MS ( 200 / portTICK_PERIOD_MS ) static void prvHandshakeTask(void *pvParameters) { @@ -81,7 +86,7 @@ static void prvHandshakeTask(void *pvParameters) } } -static void prvBlinkTask(void *prvParam) +static void prvQueueSendTask(void *prvParam) { } @@ -114,7 +119,23 @@ int main(void) HAL_UART_Transmit(&huart1, reset_string, sizeof(reset_string), 100); #endif /* MASTER */ #endif /* TESTING_ENABLE */ + + xQueue = xQueueCreate( mainQUEUE_LENGTH, sizeof( uint32_t ) ); + if( xQueue != NULL ) + { + /* Start the two tasks as described in the comments at the top of this + file. */ + xTaskCreate(prvHandshakeTask, "handshake_rx", configMINIMAL_STACK_SIZE, NULL, + mainQUEUE_RECEIVE_TASK_PRIORITY,NULL); + + xTaskCreate(prvQueueSendTask, "TX", configMINIMAL_STACK_SIZE, NULL, + mainQUEUE_SEND_TASK_PRIORITY, NULL); + /* Start the tasks and timer running. */ + vTaskStartScheduler(); + } + for( ;; ); + #ifdef MASTER hs_status_t hs_status; for (int curr_addr=0; curr_addr < 10; curr_addr++) { |
