Fri, 20 Oct 2023 15:57:56 +0200
Added framework for the DCF77 transmitter. Added two debug LEDs.
1
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
1 | /** |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
2 | * @file task_dcf.c |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
3 | * @brief DCF77 task. |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
4 | */ |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
5 | |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
6 | |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
7 | #include "dcf77tx.h" |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
8 | |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
9 | |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
10 | static const char *TAG = "task_dcf"; |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
11 | |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
12 | |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
13 | SemaphoreHandle_t xSemaphoreDCF = NULL; ///< Semaphore DCF task. |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
14 | EventGroupHandle_t xEventGroupDCF; ///< Events DCF task. |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
15 | DCF_State *dcf_state = NULL; ///< Public state for other tasks. |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
16 | |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
17 | #define LED1 CONFIG_LED1_PIN |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
18 | #define LED2 CONFIG_LED2_PIN |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
19 | |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
20 | |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
21 | const int TASK_DCF_REQUEST_START = BIT0; |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
22 | const int TASK_DCF_REQUEST_STOP = BIT1; |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
23 | |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
24 | const int TASK_DCF_RUN = BIT2; |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
25 | |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
26 | |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
27 | bool ready_DCF(void) |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
28 | { |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
29 | return dcf_state->DCF_running; |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
30 | } |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
31 | |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
32 | |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
33 | |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
34 | void request_DCF(bool run) |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
35 | { |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
36 | } |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
37 | |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
38 | |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
39 | |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
40 | void task_DCF(void *pvParameters) |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
41 | { |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
42 | ESP_LOGI(TAG, "Starting DCF77"); |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
43 | |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
44 | xEventGroupDCF = xEventGroupCreate(); |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
45 | xSemaphoreDCF = xSemaphoreCreateMutex(); |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
46 | dcf_state = malloc(sizeof(DCF_State)); |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
47 | memset(dcf_state, 0x00, sizeof(DCF_State)); |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
48 | |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
49 | gpio_reset_pin(LED1); |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
50 | gpio_reset_pin(LED2); |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
51 | gpio_set_direction(LED1, GPIO_MODE_OUTPUT); |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
52 | gpio_set_direction(LED2, GPIO_MODE_OUTPUT); |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
53 | |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
54 | xEventGroupClearBits(xEventGroupDCF, TASK_DCF_RUN); |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
55 | EventBits_t uxBits; |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
56 | |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
57 | for (;;) { |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
58 | uxBits = xEventGroupWaitBits(xEventGroupDCF, TASK_DCF_REQUEST_START | TASK_DCF_REQUEST_STOP, pdFALSE, pdFALSE, portMAX_DELAY ); |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
59 | |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
60 | if (uxBits & TASK_DCF_REQUEST_START) { |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
61 | if (dcf_state->DCF_running) { |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
62 | /* Already running */ |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
63 | xEventGroupClearBits(xEventGroupDCF, TASK_DCF_REQUEST_START); |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
64 | } |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
65 | |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
66 | } else if (uxBits & TASK_DCF_REQUEST_STOP) { |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
67 | |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
68 | } |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
69 | } /* for(;;) */ |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
70 | } |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
71 | |
86b275481021
Added framework for the DCF77 transmitter. Added two debug LEDs.
Michiel Broek <mbroek@mbse.eu>
parents:
diff
changeset
|
72 |