stm32f103rb_hal_blink

Non-blocking, event triggered blink example using HAL library
Index Commits Files Refs README
app/inc/task_system_attribute.h (1856B)
   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 #ifndef TASK_INC_TASK_SYSTEM_ATTRIBUTE_H_
   9 #define TASK_INC_TASK_SYSTEM_ATTRIBUTE_H_
  10 
  11 #ifdef __cplusplus
  12 extern "C" {
  13 #endif
  14 
  15 /* System Statechart - State Transition Table
  16  *
  17  * +----------------+-------+---------------------------+----------------+-----------------------------+
  18  * | Current state  | Event | [Guard]                   | Next state     | Actions                     |
  19  * |                |       |                           |                |                             |
  20  * +================+=======+===========================+================+=============================+
  21  * | ST_SYS_LED_ON  |       | [tick < LED_PERIOD_MS*    | ST_SYS_LED_OFF | put_event_actuator(LED_OFF) |
  22  * |                |       |          LED_PERCENT_ON]  |                |                             |
  23  * +----------------+-------+---------------------------+----------------+-----------------------------+
  24  * | ST_SYS_LED_OFF |       | [tick > 0]                | ST_SYS_LED_ON  | tick = TICK_MAX             |
  25  * |                |       |                           |                | put_event_actuator(LED_ON)  |
  26  * +----------------+-------+---------------------------+----------------+-----------------------------+
  27  *
  28  */
  29 
  30 typedef enum task_system_ev {
  31     EV_ST_BLANK
  32 } task_system_ev_t;
  33 
  34 typedef enum task_system_st {
  35     ST_SYS_LED_ON,
  36     ST_SYS_LED_OFF
  37 } task_system_st_t;
  38 
  39 typedef struct {
  40     uint32_t         tick;
  41     task_system_st_t state;
  42     task_system_ev_t event;
  43     bool             flag;
  44 } task_system_dta_t;
  45 
  46 extern task_system_dta_t task_system_dta;
  47 
  48 #ifdef __cplusplus
  49 }
  50 #endif
  51 
  52 #endif /* TASK_INC_TASK_SYSTEM_ATTRIBUTE_H_ */