stm32f103rb_hal_ds18b20

Index Commits Files Refs README
app/src/task_system_interface.c (1443B)
   1 /*
   2  * Copyright (c) 2023 Juan Manuel Cruz <jcruz@fi.uba.ar> <jcruz@frba.utn.edu.ar>.
   3  * Copyright (c) 2026 Martin Javier Klöckner <mklockner@fi.uba.ar>
   4  *
   5  * See file `LICENSE` for full details
   6  */
   7 
   8 #include "main.h"
   9 
  10 #include "logger.h"
  11 #include "dwt.h"
  12 
  13 #include "board.h"
  14 #include "app.h"
  15 #include "task_system_attribute.h"
  16 
  17 #define EVENT_UNDEFINED (255)
  18 #define MAX_EVENTS      (16)
  19 
  20 struct
  21 {
  22     uint32_t         head;
  23     uint32_t         tail;
  24     uint32_t         count;
  25     task_system_ev_t queue[MAX_EVENTS];
  26 } queue_task_a;
  27 
  28 void init_queue_event_task_system(void)
  29 {
  30     uint32_t i;
  31 
  32     queue_task_a.head = 0;
  33     queue_task_a.tail = 0;
  34     queue_task_a.count = 0;
  35 
  36     for (i = 0; i < MAX_EVENTS; i++)
  37         queue_task_a.queue[i] = EVENT_UNDEFINED;
  38 }
  39 
  40 void put_event_task_system(task_system_ev_t event)
  41 {
  42     queue_task_a.count++;
  43     queue_task_a.queue[queue_task_a.head++] = event;
  44 
  45     if (MAX_EVENTS == queue_task_a.head)
  46         queue_task_a.head = 0;
  47 }
  48 
  49 task_system_ev_t get_event_task_system(void)
  50 {
  51     task_system_ev_t event;
  52 
  53     queue_task_a.count--;
  54     event = queue_task_a.queue[queue_task_a.tail];
  55     queue_task_a.queue[queue_task_a.tail++] = EVENT_UNDEFINED;
  56 
  57     if (MAX_EVENTS == queue_task_a.tail)
  58         queue_task_a.tail = 0;
  59 
  60     return event;
  61 }
  62 
  63 bool any_event_task_system(void)
  64 {
  65     return (queue_task_a.head != queue_task_a.tail);
  66 }