ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠ² Π½Π° ESP32 | kotyara12.ru
ΠΠΎΠ±ΡΡΠΉ Π΄Π΅Π½Ρ, ΡΠ²Π°ΠΆΠ°Π΅ΠΌΡΠΉ ΡΠΈΡΠ°ΡΠ΅Π»Ρ! Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π°ΠΌ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ESP32.
ΠΠ°Π²Π΅ΡΠ½ΠΎΠ΅ Ρ Π½Π΅ ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠ³ΡΠ΅ΡΡ ΠΏΡΠΎΡΠΈΠ² ΠΈΡΡΠΈΠ½Ρ, Π΅ΡΠ»ΠΈ ΡΠΊΠ°ΠΆΡ ΡΡΠΎ Π² ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅Ρ ΠΏΡΠΎΡΠΈΠ²ΠΊΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ°ΠΉΠΌΠ΅ΡΡ Π΄Π»Ρ ΠΎΡΡΡΠ΅ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠ². Π ΡΠΎΠΌ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅. ΠΡΠΎ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½ΡΡ Ρ ΡΠ΅Π½ΡΠΎΡΠΎΠ², Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π° Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π°ΠΌ ESP32:
- Π€ΡΠ½ΠΊΡΠΈΡ ets_delay_us()
- Π€ΡΠ½ΠΊΡΠΈΠΈ FreeRTOS β vTaskDelay() ΠΈ vTaskDelayUntil()
- ΠΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΡ 64-bit General Purpose Timer β 4 ΡΡ.
- ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΡ (ΠΌΠ½ΠΎΠ³ΠΎ)
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎΡ ΡΠΏΠΈΡΠΎΠΊ Π½Π΅ ΠΏΠΎΠ»Π½ΡΠΉ, Ρ ΠΏΠΎΠΊΠ° Π·Π½Π°ΠΊΠΎΠΌ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΠΎΡΡΡΠΌΠΈ ESP-IDF. ΠΡΠ»ΠΈ Π²Ρ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ Π΅ΡΡ ΠΊΠ°ΠΊΠΈΠΌΠΈ-Π»ΠΈΠ±ΠΎ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ β ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΡΠΎΡΡ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΠ°ΡΠ½Π΅ΠΌ Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π°.
Π€ΡΠ½ΠΊΡΠΈΡ ets_delay_us()
ΠΡΡΡ ΠΏΡΠΎΡΡΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΡ Π½Π° Π²ΡΠ΅ΠΌΡ us Π² ΠΌΠΈΠΊΡΠΎΡΠ΅ΠΊΡΠ½Π΄Π°Ρ
Ρ ΠΏΠΎΠ»Π½ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ½Π°Π»ΠΎΠ³ delay()
Π΄Π»Ρ Arduino, Π½ΠΎ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ.
void ets_delay_us(uint32_t us)
Π‘ΡΡΠΎΠ³ΠΎ Π³ΠΎΠ²ΠΎΡΡ, ΡΡΠΎ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠ°ΠΉΠΌΠ΅Ρ. Π’ΠΎΡΠ½Π΅Π΅ β ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ ΡΠ°ΠΉΠΌΠ΅Ρ. CPU ΡΡΠΏΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΈΠΊΠ» while Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠ² ΠΏΡΠΈ ΠΎΠ±ΠΌΠ΅Π½Π΅ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΡΠ΅Π½ΡΠΎΡΠ°ΠΌΠΈ ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ).
Π€ΡΠ½ΠΊΡΠΈΠΈ vTaskDelay() ΠΈ vTaskDelayUntil()
ΠΡΠ΅ Π΄Π²Π° βΠ½Π΅ ΡΠ°ΠΉΠΌΠ΅ΡΠ°β. ΠΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π°ΠΌ Π΄Π°ΠΆΠ΅ Π½Π΅ ESP32, Π° FreeRTOS ΠΈ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ ΠΎΠ½ΠΈ Π΄Π»Ρ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π·Π°Π΄Π°ΡΠΈ Π½Π° Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΈΠΊΠΎΠ². Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ
Π½Π΅ Π½Π°Π³ΡΡΠΆΠ°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ, Π° Π½Π°ΠΎΠ±ΠΎΡΠΎΡ β ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡΡ Π΅Π³ΠΎ ΠΎΡ ΡΠ°ΡΡΠΈ ΡΠ°Π±ΠΎΡΡ, ΡΡΠΎ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Π΅Π΅. Π Π·Π½Π°ΡΠΈΡ ΠΌΠΎΠ³ΡΡ Ρ ΡΡΠΏΠ΅Ρ
ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠΎΡΠ½ΡΡ
Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ.
ΠΠ°Π΄Π΅ΡΠΆΠΊΠ° Π·Π°Π΄Π°ΡΠΈ Π½Π° Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΈΠΊΠΎΠ²:
void vTaskDelay(const TickType_t xTicksToDelay)
Π’ΠΈΠΊ β ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ βΡΠ°Π³β ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ ΠΏΡΠΈΠ²ΡΠ·Π°Π½ ΠΊ βΠΊΠ²Π°ΡΡΠΎΠ²Π°Π½Π½ΠΎΠΉβ ΡΠ°ΠΊΠΎΠ²ΠΎΠΉ ΡΠ°ΡΡΠΎΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, Π° Π·Π½Π°ΡΠΈΡ ΠΎΡΡΡΠΈΡΡΠ²Π°Π΅ΠΌΡΠΉ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΎΡΠ½ΡΠΌ.
- Π²ΡΠ΅ΠΌΡ Π² ΡΠΈΠΊΠ°Ρ
= Π²ΡΠ΅ΠΌΡ Π² ΠΌΡ /
portTICK_PERIOD_MS
- Π²ΡΠ΅ΠΌΡ Π² ΡΠΈΠΊΠ°Ρ
=
pdMS_TO_TICKS ( Π²ΡΠ΅ΠΌΡ Π² ΠΌΡ )
portTICK_PERIOD_MS
ΠΈ pdMS_TO_TICKS
β ΡΡΠΎ ΠΌΠ°ΠΊΡΠΎΡΡ, ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΊ ΡΠ°ΡΡΠΎΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± (Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Ρ Π²ΡΠΎΡΠΎΠΉ). ΠΠΎ vTaskDelay()
Π½Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΡΠ°ΡΡΠΎΡΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΠ΅ΠΌΡ, Π·Π°ΡΡΠ°ΡΠ΅Π½Π½ΠΎΠ΅ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ Π±ΡΠ΄ΡΡ Π²Π»ΠΈΡΡΡ Π½Π° ΡΠ°ΡΡΠΎΡΡ, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ
, ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π½Π° Π²ΡΠ΅ΠΌΡ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ Π·Π°Π΄Π°ΡΠΈ. Π§ΡΠΎΠ±Ρ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ Π²Π»ΠΈΡΠ½ΠΈΠ΅ ΡΡΠΈΡ
ΡΡΡΠ΅ΠΊΡΠΎΠ², ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ:
BaseType_t xTaskDelayUntil (TickType_t * const pxPreviousWakeTime, const TickType_t xTimeIncrement)
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, Π·Π΄Π΅ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΡΡ Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ β ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ pxPreviousWakeTime, Π³Π΄Π΅ Π±ΡΠ΄Π΅Ρ Ρ ΡΠ°Π½ΠΈΡΡΡ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ.
xTaskDelayUntil()
Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΈΠΊΠΎΠ² Π±ΡΠ΄Π΅Ρ ΡΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΎ Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΡΠΈΡ
Π΄Π°Π½Π½ΡΡ
. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π»Π΅Π³ΠΊΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π·Π°Π΄Π°ΡΠΈ. ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ vTaskDelay()
ΠΌΡ ΡΠΆΠ΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ
ΡΡΠ°ΡΠ΅ΠΉ, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π½Π° GitHub.Β ΠΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΡ
ΠΠΎΠΆΠ°Π»ΡΠΉ, ΡΡΠΎ ΡΠ°ΠΌΡΠΉ ΡΠΎΡΠ½ΡΠΉ ΡΠΈΠΏ ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠ² Π½Π° ESP32, Ρ ΠΎΡΡ ΠΈ Π½Π΅ ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ , ΠΊΠΎΠ³Π΄Π° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΡΠ΅Π½Ρ Π²ΡΡΠΎΠΊΠ°Ρ ΡΠΎΡΠ½ΠΎΡΡΡ ΠΈΠ·ΠΌΠ΅ΡΡΠ΅ΠΌΡΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠ².
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΌΠΈ ΡΠ°ΠΉΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ β Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΠ·Π±Π΅Π³Π°Π΅ΡΠ΅ ΠΈΡ , ΡΠΎ Π²Π°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΡΠ°ΠΉΠΌΠ΅ΡΠ°ΠΌ. Π₯ΠΎΡΡ, Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΡ Π±Π΅Π· ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ, βΠ²ΡΡΡΠ½ΡΡβ ΠΏΡΠΎΠ²Π΅ΡΡΡ ΡΠ΅Π³ΠΈΡΡΡ ΡΡΠ΅Π²ΠΎΠ³ΠΈ, Π½ΠΎ Ρ Π½Π΅ Π²ΠΈΠΆΡ Π² ΡΡΠΎΠΌ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΡΠΌΡΡΠ»Π°.
Π§ΠΈΠΏ ESP32 ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ΅ΡΡΡΠ΅ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΡΠ°ΠΉΠΌΠ΅ΡΠ° ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ β Π΄Π²Π΅ Π³ΡΡΠΏΠΏΡ ΠΏΠΎ Π΄Π²Π° ΡΠ°ΠΉΠΌΠ΅ΡΠ°. ΠΡΠ΅ ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡΡΡΡ 64-Π±ΠΈΡΠ½ΡΠΌΠΈ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΠ°ΠΉΠΌΠ΅ΡΠ°ΠΌΠΈ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΌΠΈ Π½Π° 16-Π±ΠΈΡΠ½ΡΡ ΠΌΠ°ΡΡΡΠ°Π±Π°ΡΠΎΡΠ°Ρ (ΠΈΡ Π΅ΡΡ Π½Π°Π·ΡΠ²Π°ΡΡ ΠΏΡΠ΅Π΄Π΄Π΅Π»ΠΈΡΠ΅Π»ΠΈ) ΠΈ 64-Π±ΠΈΡΠ½ΡΡ ΡΡΠ΅ΡΡΠΈΠΊΠ°Ρ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ/ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΌΠΈ ΡΠ°ΠΉΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ:#include "
ΠΠ±ΡΠ°Ρ ΡΡ Π΅ΠΌΠ° ΡΠ°Π±ΠΎΡΡ Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΌΠΈ ΡΠ°ΠΉΠΌΠ΅ΡΠ°ΠΌΠΈ ΡΠ°ΠΊΠΎΠ²Π°:
- ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠΉΡΠ΅ ΡΠ°ΠΉΠΌΠ΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
timer_init()
. ΠΠ΄Π΅ΡΡ Π²Ρ Π·Π°Π΄Π°Π΅ΡΠ΅ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ Π΄Π΅Π»Π΅Π½ΠΈΡ Π²Ρ ΠΎΠ΄ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΎΡΡ (ΡΠΎ Π΅ΡΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΡΠ°ΠΉΠΌΠ΅ΡΠ°), Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΠ° ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°. - ΠΠ°Π΄Π°ΠΉΡΠ΅ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΡΠΈΠΊΠ° ΡΠ°ΠΉΠΌΠ΅ΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ
timer_set_counter_value()
ΠΈtimer_set_alarm_value()
. - Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ β ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ Π΅Π³ΠΎ ΠΊ ΡΠ°ΠΉΠΌΠ΅ΡΡ β
timer_isr_callback_add()
ΠΈtimer_enable_intr()
. - ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΡΡΠ΅ΡΡΠΈΠΊ ΡΠ°ΠΉΠΌΠ΅ΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
timer_start()
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π²ΡΠ΅ ΡΡΠΈ ΡΡΠ°ΠΏΡ ΠΏΠΎΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅.
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ°ΠΉΠΌΠ΅ΡΠ° ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²
ΠΠ»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΠΉΠΌΠ΅ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ:
esp_err_t timer_init(timer_group_t group_num, timer_idx_t timer_num, const timer_config_t *config)
Π³Π΄Π΅:
timer_group_t group_num
β Π½ΠΎΠΌΠ΅Ρ Π³ΡΡΠΏΠΏΡ ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠ², ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π²ΡΠ΅Π³ΠΎ Π΄Π²Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ:TIMER_GROUP_0
ΠΈΠ»ΠΈTIMER_GROUP_1
(Π½ΡΠΌΠ΅ΡΠ°ΡΠΈΡ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΡΠ³ΠΎΠ»ΠΎΠ²Ρ ΠΏΠΎΠ΅Π·Π΄Π°Π½ΡΠ»Ρ)timer_idx_t timer_num
β Π½ΠΎΠΌΠ΅Ρ ΡΠ°ΠΉΠΌΠ΅ΡΠ° Π² Π³ΡΡΠΏΠΏΠ΅, ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π²ΡΠ΅Π³ΠΎ Π΄Π²Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ:TIMER_0
ΠΈΠ»ΠΈTIMER_1
const timer_config_t *config
β ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ°ΠΉΠΌΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ³Π»ΡΠ΄ΡΡ ΡΠ°ΠΊ:
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅:
uint32_t divider
β ΠΠ΅Π»ΠΈΡΠ΅Π»Ρ ΡΠ°ΠΊΡΠΎΠ²ΠΎΠΉ ΡΠ°ΡΡΠΎΡΡ, ΠΈΠ»ΠΈ ΠΌΠ°ΡΡΡΠ°Π±Π°ΡΠΎΡ. ΠΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡ 2 Π΄ΠΎ 65536. ΠΠ°, Π΄Π°, Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°Π²Π½ΡΠΌ 0 ΠΈΠ»ΠΈ 1, ΡΠΎ Π΅ΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΡΠ°ΡΡΠΎΡΠ° ΡΠ°ΠΉΠΌΠ΅ΡΠ° 40MHz, ΡΡΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Ρ 0,025 ΠΌΠΈΠΊΡΠΎΡΠ΅ΠΊΡΠ½Π΄Ρ.timer_count_dir_t counter_dir
β Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΠ°:
β Π²Π½ΠΈΠ· ΠΈΠ»ΠΈTIMER_COUNT_UP
β Π²Π²Π΅ΡΡtimer_autoreload_t auto_reload
β ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΉ ΡΠ΅ΡΡΠ°ΡΡ ΡΠ°ΠΉΠΌΠ΅ΡΠ° ΠΏΠΎΡΠ»Π΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ; ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡΒTIMER_AUTORELOAD_DIS
ΠΈΠ»ΠΈΒTIMER_AUTORELOAD_EN
. ΠΡΠΈTIMER_AUTORELOAD_EN
ΠΏΠΎΠ»ΡΡΠΈΡΡΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°ΠΉΠΌΠ΅Ρ, ΠΏΡΠΈTIMER_AUTORELOAD_DIS
β ΠΎΠ΄Π½ΠΎΠΊΡΠ°ΡΠ½ΡΠΉ.timer_alarm_t alarm_en
β ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΠΈΠ»ΠΈ Π½Π΅Ρ ΡΠΈΠ³Π½Π°Π» βΠ±ΡΠ΄ΠΈΠ»ΡΠ½ΠΈΠΊΠ°β Π΄Π»Ρ ΡΠ°ΠΉΠΌΠ΅ΡΠ°; ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡTIMER_ALARM_DIS
ΠΈΠ»ΠΈTIMER_ALARM_EN
timer_start_t counter_en
β ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΡΡΠ΅Ρ (ΡΠ°Π±ΠΎΡΡ ΡΠ°ΠΉΠΌΠ΅ΡΠ°) ΠΈΠ»ΠΈ Π½Π΅Ρ; ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π΄Π²Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ:TIMER_PAUSE
ΠΈΠ»ΠΈTIMER_START
. ΠΡΠΈTIMER_PAUSE
Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ°ΠΉΠΌΠ΅Ρ βΠ²ΡΡΡΠ½ΡΡβ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π²ΡΠ΅Ρ Π½Π°ΡΡΡΠΎΠ΅ΠΊ, ΠΈΠ½Π°ΡΠ΅ ΡΠ°ΠΉΠΌΠ΅Ρ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΏΡΡΠ΅Π½ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎtimer_intr_mode_t intr_type
β Π²ΡΠ΅Π³Π΄Π°TIMER_INTR_LEVEL (0)
, Π΄ΡΡΠ³ΠΈΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΏΠΎΠΊΠ° ΠΏΡΠΎΡΡΠΎ Π½Π΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Π·Π°ΠΏΠΎΠ»Π½ΡΡΡ.
ΠΡΠ»ΠΈ Π²Ρ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ, Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠ΅ Π½Π΅Ρ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠ΅ΡΡΠΈΠΊΠΎΠ² ΡΠ°ΠΉΠΌΠ΅ΡΠ°. ΠΡ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠ»Ρ Π·Π°Π΄Π°Π½ΠΈΡ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠ΅ΡΡΠΈΠΊΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ:
esp_err_t timer_set_counter_value(timer_group_t group_num, timer_idx_t timer_num, uint64_t load_val)
ΠΠ΄Π΅ΡΡ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°Π΄Π°ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π³ΡΡΠΏΠΏΡ ΠΈ ΡΠ°ΠΉΠΌΠ΅ΡΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ 64-Π±ΠΈΡΠ½ΠΎΠ΅ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΡΠΈΠΊΠ°
ΠΠ»Ρ Π·Π°Π΄Π°Π½ΠΈΡ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠ΅ΡΡΠΈΠΊΠ° (ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π±ΡΠ΄Π΅Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΎ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅) Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ Π΄ΡΡΠ³ΡΡ ΠΏΠΎΡ ΠΎΠΆΡΡ ΡΡΠ½ΠΊΡΠΈΡ:
esp_err_t timer_set_alarm_value(timer_group_t group_num, timer_idx_t timer_num, uint64_t alarm_value)
ΠΠΏΡΠΎΡΠ΅ΠΌ, Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΠ°ΠΉΠΌΠ΅ΡΠ° Π΅ΡΡΡ Π΅ΡΡ ΡΠ΅Π»Π°Ρ ΠΊΡΡΠΊΠ° ΡΡΠ½ΠΊΡΠΈΠΉ:
timer_set_divider()
β Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ (Π²ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ°ΠΉΠΌΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ)timer_set_counter_mode()
β Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ΅ΡΠ°timer_set_auto_reload()
β Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠ° Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°timer_set_alarm()
β Π΄Π»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ βΠ±ΡΠ΄ΠΈΠ»ΡΠ½ΠΈΠΊΠ°β
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ
Π‘ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΡΠ°Π·ΠΎΠ±ΡΠ°Π»ΠΈΡΡ. Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΡΡ Ρ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡΠΌΠΈ. ΠΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΏΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠ°ΠΊΡΡ-Π»ΠΈΠ±ΠΎ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΡΠ΅Π· Π·Π°Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π΅ΡΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² Π²Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅.
ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ β Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π²Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΊ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΠΏΡΠ΅Π΄ΡΡΠ²Π»ΡΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ:
- ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡΠ΅ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΈΠ½Π°ΡΠ΅ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ WDT Π΄Π»Ρ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π±ΡΠ΄Π΅Ρ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠΆΠ΅Π½ΠΎ.
- ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π±ΡΡΡΡΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ IRAM, ΠΏΠΎΡΡΠΎΠΌΡ Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠΌΠ΅ΡΠΈΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ Π°ΡΡΠΈΠ±ΡΡΠΎΠΌ
IRAM_ATTR
.- Π ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°Ρ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ Π½Π΅ Π΄ΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ
ESP_LOGx
, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΎΠ±Π»Π΅Π³ΡΠ΅Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡESP_DRAM_LOGx
.- Π‘Π»Π΅Π΄ΡΠ΅Ρ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π²Π½Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΡΡ Π·Π°Π΄Π°Ρ. ΠΠ°Π±Ρ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΈΠ· ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π΄ΡΡΠ³ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ, Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΠ»Π°Π³ Π²
EventGroup
ΠΈ Ρ.Π΄. ΠΠ°, Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ bool ΠΈΠ»ΠΈ int, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠΌ Π² Π΄ΡΡΠ³ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅, Π½ΠΎ ΡΡΠΎ Π½Π΅ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΡΠ΅ΡΡΡ.
ΠΠ½Π°ΡΠ°Π»Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ callback-ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½Π° ΠΏΡΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠ½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ (ISR handler ΠΈΠ»ΠΈ ISR callback). Π‘ΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΎΠ½Π° ΠΏΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ°Π±Π»ΠΎΠ½Ρ:
ΠΠΈΡΠ΅Π³ΠΎ ΡΠ²Π΅ΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ, Π½ΠΎ ΡΡΠΎΠΈΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π΄Π²Π° ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΡ ΠΌΠΎΠΌΠ΅Π½ΡΠ°:
- Π€ΡΠ½ΠΊΡΠΈΡ ΡΡΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π° ΠΊΠ°ΠΊ
IRAM_ATTR
, ΡΡΠΎΠ±Ρ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π΄Π΅ΡΠΆΠ°ΡΡ Π΅Ρ Π² Π±ΡΡΡΡΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. - ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅: ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π²Π΅ΡΠ½ΡΡΡ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ (ΠΊΡΡΠ°ΡΠΈ, Π² Π΄ΡΡΠ³ΠΈΡ
ISR-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°Ρ
Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ). ΠΡΠ»ΠΈ Π²Ρ Π²ΡΠ·ΡΠ²Π°Π»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ FreeRTOS (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ
xQueueSendFromISR()
) ΠΈΠ· ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ, ΡΠΎ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²Π΅ΡΠ½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅true
ΠΈΠ»ΠΈfalse
Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°pxHigherPriorityTaskWoken
. ΠΡΠ»ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅pxHigherPriorityTaskWoken
Π»ΡΠ±ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² FreeRTOS ΡΠ°Π²Π½ΠΎ pdTRUE, ΡΠΎ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²Π΅ΡΠ½ΡΡΡ true; Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Π΅ΡΠ½ΡΡΡ false.
ΠΡΠΎΡΡΠ΅ΠΉΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ
ΠΠ°ΡΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ Π΅Ρ ΠΊ Π½Π°ΡΠ΅ΠΌΡ ΡΠ°ΠΉΠΌΠ΅ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
esp_err_t timer_isr_callback_add(timer_group_t group_num, timer_idx_t timer_num, timer_isr_t isr_handler, void *arg, int intr_alloc_flags)
Π³Π΄Π΅:
timer_group_t group_num
β Π½ΠΎΠΌΠ΅Ρ Π³ΡΡΠΏΠΏΡ ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠ²timer_idx_t timer_num
β Π½ΠΎΠΌΠ΅Ρ ΡΠ°ΠΉΠΌΠ΅ΡΠ° Π² Π³ΡΡΠΏΠΏΠ΅timer_isr_t isr_handler
β ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊvoid *arg
β ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π΄Π°Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π΄Π»Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ°ΠΉΠΌΠ΅ΡΠ°int intr_alloc_flags
β ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΡΠ°Π²ΡΡΠ΅0
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ:
esp_err_t timer_enable_intr(timer_group_t group_num, timer_idx_t timer_num)
Π Π΅ΡΠ»ΠΈ Ρ Π½Π°Ρ Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠ²? ΠΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π²Π° ΠΏΡΡΠΈ:
- ΠΠ°ΠΏΠΈΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠ², Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π² Π½Π΅Π³ΠΎ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π΄Π°Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π· void *arg, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠΌΠ΅Ρ, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΠΎΡΡΡΠΏΠΈΠ»ΠΎ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅.
- Π ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ ΠΏΡΠΎΡΡΠΎΠΌΡ β Π½Π°ΠΏΠΈΡΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ.
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ hardware ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠΌ
ΠΡΠ΅ Π³ΠΎΡΠΎΠ²ΠΎ ΠΊ Π·Π°ΠΏΡΡΠΊΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΡΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΡΠ°Π±Π»Ρ ΡΠ°ΠΉΠΌΠ΅ΡΠ°. ΠΠ΅Π»Π°Π΅ΡΡΡ ΡΡΠΎ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ:
esp_err_t timer_start(timer_group_t group_num, timer_idx_t timer_num)
ΠΡΡΠ°ΡΠΈ, Π΅ΡΠ»ΠΈ ΠΠ°ΠΌ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡΠΈΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ°ΠΉΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ timer_pause()
.
ΠΡΠΈΠΌΠ΅ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ hardware ΡΠ°ΠΉΠΌΠ΅ΡΠ°ΠΌΠΈ
ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΌΠΈ ΡΠ°ΠΉΠΌΠ΅ΡΠ°ΠΌΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅: esp-idf/timer_group_example_main.c Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ°Π·Ρ Π΄Π²Π° ΡΠ°ΠΉΠΌΠ΅ΡΠ° Π² Π΄Π²ΡΡ Π³ΡΡΠΏΠΏΠ°Ρ (Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠ΅ΠΆΠΈΠΌΠ°ΠΌΠΈ ΡΠ°Π±ΠΎΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ) β ΡΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ Π² ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΌΠ΅ΡΠ΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ Ρ Π½ΠΈΠΌΠΈ.
ΠΠΎ, Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, Π½ΠΎΠ²ΠΈΡΠΊΡ ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ΠΏΡΠΎΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΡΠΎΠ·Π΄Π°Π» Π΅ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π²ΡΠ΅Π³ΠΎ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠΌ Π±Π΅Π· Π²ΡΡΠΊΠΈΡ βΡ ΠΈΡΡΠΎΡΡΠ΅ΠΉβ: dzen/timer_hardware. Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΠ΅Π³ΠΎ 1 ΡΠ°ΠΉΠΌΠ΅Ρ, Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Π½Π° ΠΏΠΎΠ²ΡΠΎΡ ΡΠ΅ΡΠ΅Π· ΠΊΠ°ΠΆΠ΄ΡΠ΅ 3 ΡΠ΅ΠΊΡΠ½Π΄Ρ. Π ΡΠ΅ΡΠ΅Π· ΠΊΠ°ΠΆΠ΄ΡΠΉ 5 ΡΠ΅ΠΊΡΠ½Π΄ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΈΠΊΠ», ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ vTaskDelay(). ΠΡΠ΅ ΠΏΡΠ΅Π΄Π΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ. ΠΡΠ»ΠΈ ΠΏΡΠΎΡΠΈΡΡ Π΄Π°Π½Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π² ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ, ΠΏΠΎ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ:
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, Π²ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ βΠΊΠ°ΠΊ ΡΠ°ΡΡβ. Π’Π°ΠΊ ΡΡΠΎ ΠΈ Π΅ΡΡΡ ΡΠ°ΡΡ!
Π ΠΌΠΎΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΄Π»Ρ ΠΏΡΠΎΡΡΡ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ β ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ ΡΡΠΎ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ. ΠΡΠΆΠ½Π° Π² ΡΡΠΎΠΌ ΠΏΠΎΠΌΠΎΡΡ β ΠΏΠΈΡΠΈΡΠ΅ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ , Π·Π°ΠΏΠΈΠ»ΠΈΠΌ Π΅ΡΡ ΠΎΠ΄Π½Ρ ΡΡΠ°ΡΡΡ.
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΡΠΈΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΌΠΈ ΡΠ°ΠΉΠΌΠ΅ΡΠ°ΠΌΠΈ Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΠ²Π°Π΅ΡΡΡ, ΡΠ°ΠΌ Π΅ΡΡΡ Π΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, Π½ΠΎ ΠΌΡ ΠΈΡ ΠΏΠΎΠΊΠ° ΠΎΠΏΡΡΡΠΈΠΌ.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΡ
ΠΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΡ β ΡΡΠΎ Ρ ΠΎΡΠΎΡΠΎ, Π½ΠΎ ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΡΡΠ΅! Π Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΡ ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π»Π΅Π³ΠΊΠΎ ΠΈΡΡΠΈΡΠ»ΡΡΡΡΡ Π΄Π΅ΡΡΡΠΊΠ°ΠΌΠΈ. ΠΠ»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² Espressif ΠΏΡΠΈΠ΄ΡΠΌΠ°Π»ΠΈ ΡΠΏΠΎΡΠΎΠ± ΡΠ΅ΡΠ΅Π½ΠΈΡ β ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΡ, ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈΠ· Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠ².
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΡ ΠΎΠ±Π»Π°Π΄Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΡΠ΄ΡΠΈΠΌΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ°ΠΌΠΈ, ΡΠ΅ΠΌ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΡ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π½ΠΎ, ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΡΡ Π·Π°Π΄Π°Ρ Π² ΠΏΠΎΠ΄Π°Π²Π»ΡΡΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π². ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΡ ΠΈΠΌΠ΅ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ:
- ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ (ΡΠΎ Π΅ΡΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΡΠ°ΠΉΠΌΠ΅ΡΠ°) ΡΠ°Π²Π½ΠΎ ΠΏΠ΅ΡΠΈΠΎΠ΄Ρ ΡΠΈΠΊΠ° FreeRTOS.
- ΠΠ±ΡΠ°ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ ΡΠ°ΠΉΠΌΠ΅ΡΠ° ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΠΈΠ· Π·Π°Π΄Π°ΡΠΈ Ρ Π½ΠΈΠ·ΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ
ΠΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Ρ ΠΎΡ ΠΎΠ±ΠΎΠΈΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ, Π½ΠΎ Π·Π°ΡΠ°ΡΡΡΡ ΠΎΠ½ΠΈ ΠΌΠ΅Π½Π΅Π΅ ΡΠ΄ΠΎΠ±Π½Ρ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ Π·Π°ΠΏΡΡΠΊ ΡΠΎΠ±ΡΡΠΈΠΉ ΡΠ°ΠΉΠΌΠ΅ΡΠ° Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ, Π½ΠΎ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΉ ΡΠ°ΠΉΠΌΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Β«ΡΡΠ°Π²Π½Π΅Π½ΠΈΡΒ», ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ΅ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΠΎΠ²Π΅ΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠΎΠΌ ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΡ ΡΠΎΠ±ΡΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ Π΄Π»Ρ ΡΡΠΈΡ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ. ΠΠ½ΡΡΡΠΈ Π²ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π²ΡΠ΅Π³ΠΎ ΠΎΠ΄ΠΈΠ½ 64-Π±ΠΈΡΠ½ΡΠΉ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΉ LAC-ΡΠ°ΠΉΠΌΠ΅Ρ.
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌΠΈ ΡΠ°ΠΉΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΡΡΠ³Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°: #include "esp_timer. h"
. ΠΠ±ΡΠ°Ρ ΡΡ
Π΅ΠΌΠ° ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌΠΈ ΡΠ°ΠΉΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΏΠΎΡ
ΠΎΠΆΠ° Π½Π° Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠ΅:
- Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ β ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΠΉ ΡΠ°ΠΉΠΌΠ΅ΡΠ°
- ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠΉΡΠ΅ ΡΠ°ΠΉΠΌΠ΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
esp_timer_create()
- ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΡΡΠ΅ΡΡΠΈΠΊ ΡΠ°ΠΉΠΌΠ΅ΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
esp_timer_start_once()
(ΠΎΠ΄Π½ΠΎΠΊΡΠ°ΡΠ½ΠΎ) ΠΈΠ»ΠΈesp_timer_start_periodic()
(ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ)
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΠ° Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΡΠΎΡΠ΅. ΠΠ° ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠ², Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, ΠΏΡΠΎΡΠ΅, ΡΠ΅ΠΌ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ . ΠΠ°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΌΠ΅Π½ΡΡΠ΅, Π° Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠ±ΡΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°, Π° Π½Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ (ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠ΅Π·Π²ΠΈΡΡΡΡ). Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π²ΡΠ΅ ΡΡΠΈ ΡΡΠ°ΠΏΡ ΠΏΠΎΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°
ΠΠ°ΠΊ Ρ ΡΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Π», Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΡΠ°ΠΉΠΌΠ΅ΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠ±ΡΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°, ΠΏΠΎΡΡΠΎΠΌΡ ΠΊ Π½Π΅ΠΉ Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠ²Π»ΡΠ΅ΡΡΡ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΎΡΠΎΠ±ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ. ΠΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊ:
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ (ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ) ΡΠ°ΠΉΠΌΠ΅ΡΠ°
ΠΠ°Π»Π΅Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠΌΠ΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
esp_err_t esp_timer_create(const esp_timer_create_args_t *create_args, esp_timer_handle_t *out_handle)
Π³Π΄Π΅:
const esp_timer_create_args_t *create_args
β ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΡΡΡΡΠΊΡΡΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΠ°esp_timer_handle_t *out_handle
β ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Ρ Π΅Π½Π΄Π» ΡΠ°ΠΉΠΌΠ΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠΈΠΌ ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠΌ
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ esp_timer_create_args_t
ΠΏΠΎΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅:
esp_timer_cb_t callback
β ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°void* arg
β Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π² ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°esp_timer_dispatch_t dispatch_method
β ΠΌΠ΅ΡΠΎΠ΄ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ°ΠΉΠΌΠ°ΡΡΠ°: ΠΈΠ· Π·Π°Π΄Π°ΡΠΈ ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅const char* name
β ΠΈΠΌΡ ΡΠ°ΠΉΠΌΠ΅ΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈbool skip_unhandled_events
β ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΠΎΠ±ΡΡΠΈΠΉ, Π΅ΡΠ»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΠ±ΡΡΠΈΡ ΡΠ°ΠΉΠΌΠ΅ΡΠ° ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΡΠΈΡΠΈΠ½Π΅ Π±ΡΠ»Π° ΠΏΡΠΎΠΏΡΡΠ΅Π½Π°. ΠΠ±ΡΠ°ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² ΡΠ°ΠΉΠΌΠ΅ΡΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΎΠ½ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΠ΅ΡΡΠ½. Π Ρ ΡΠ΄ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° ΡΠ°ΠΉΠΌΠ΅Ρ Π½Π΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π»ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠΈΠΎΠ΄Π° (Π΄Π»Ρ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠ²), ΠΎΠ±ΡΠ°ΡΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ Π±ΡΠ΄ΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄ΡΡΠ³ΠΈΠΌ, Π½Π΅ Π΄ΠΎΠΆΠΈΠ΄Π°ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠΈΠΎΠ΄Π°. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈ Π΄Π»Ρ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π±ΡΠ»Π° Π²Π²Π΅Π΄Π΅Π½Π° ΠΎΠΏΡΠΈΡskip_unhandled_events
. ΠΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅skip_unhandled_events = true
, ΡΠΎ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ°ΠΉΠΌΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΡΠ΅ΠΊΠ°Π» Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·, Π½Π΅ ΠΈΠΌΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²ΡΠ·Π²Π°ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ², ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΡΠΎΠ±ΡΡΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ°Π½Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°.
Π― Π·Π°ΠΏΠΎΠ»Π½ΠΈΠ» ΡΡΡ ΡΡΡΡΠΊΡΡΡΡ ΡΠ°ΠΊ:
ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ Ρ
Π΅Π½Π΄Π» ΡΠ°ΠΉΠΌΠ΅ΡΠ° Π½Π° NULL ΠΏΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π° esp_timer_create()
, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ Π²Π½Π΅ΠΏΠ»Π°Π½ΠΎΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ MCU.
ΠΠ°ΠΏΡΡΠΊ ΡΠ°ΠΉΠΌΠ΅ΡΠ°
Π’Π°ΠΉΠΌΠ΅Ρ ΡΠΎΠ·Π΄Π°Π»ΠΈ, ΠΎΡΡΠ°Π»ΠΎΡΡ Π΅Π³ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ. Π’Π°ΠΉΠΌΠ΅Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΡΡΠ΅Π½ Π² ΠΎΠ΄Π½ΠΎΠΊΡΠ°ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΈΠ»ΠΈ Π² ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅.
- Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ°ΠΉΠΌΠ΅Ρ Π² ΠΎΠ΄Π½ΠΎΠΊΡΠ°ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ esp_timer_start_once(esp_timer_handle_t timer, uint64_t timeout_us), ΠΏΠ΅ΡΠ΅Π΄Π°Π² Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π», ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ². ΠΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΡΠ°ΠΉΠΌΠ΅Ρ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΌ.
- Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ°ΠΉΠΌΠ΅Ρ Π² ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅
esp_timer_start_periodic(esp_timer_handle_t timer, uint64_t period)
, ΠΏΠ΅ΡΠ΅Π΄Π°Π² ΠΏΠ΅ΡΠΈΠΎΠ΄, Ρ ΠΊΠΎΡΠΎΡΡΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ². Π’Π°ΠΉΠΌΠ΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ , ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½ esp_timer_stop().
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΠ°ΠΉΠΌΠ΅Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ esp_timer_start_once()
ΠΈΠ»ΠΈ esp_timer_start_periodic()
. Π§ΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ ΡΠ°ΠΉΠΌΠ΅Ρ, ΡΠ½Π°ΡΠ°Π»Π° ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π΅Π³ΠΎ, Π° ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΡΠ΅ΠΌ Π²ΡΠ·ΠΎΠ²ΠΈΡΠ΅ ΠΎΠ΄Π½Ρ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΉ Π·Π°ΠΏΡΡΠΊΠ°.
Π ΠΈΡΠΎΠ³Π΅ Π²Π΅ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ°ΠΉΠΌΠ΅ΡΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΊΠ°ΠΊ-ΡΠΎ ΡΠ°ΠΊ:
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, Π²ΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ.
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°
ΠΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌΠΈ ΡΠ°ΠΉΠΌΠ΅ΡΠ°ΠΌΠΈ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ Π½Π° GitHub ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅: dzen/timer_software
Π’Π°ΠΉΠΌΠ΅ΡΡ arduino
ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ Π½Π° Arduino ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΠΎ Π½ΡΠΆΠ½Π° ΡΠ²ΠΎΠ΅ΠΎΠ±ΡΠ°Π·Π½Π°Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠ°, ΡΠ°ΡΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ. Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, Π° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΈΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΠΈ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ ΠΊΠΎΠ΄ΠΎΠΌ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Ρ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ. ΠΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ β ΡΡΠΎ Π½Π°Π±ΠΎΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠ² Π΄Π»Ρ ΡΠ΅Ρ ΠΈΠ»ΠΈ ΠΈΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠΌ. ΠΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈΠΌΠ΅Π΅Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΠΈ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΠΊ ΡΠ΅Π±Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ.
ΠΠΎΠΈΡΠΊ Π΄Π°Π½Π½ΡΡ ΠΏΠΎ ΠΠ°ΡΠ΅ΠΌΡ Π·Π°ΠΏΡΠΎΡΡ:
Π‘Ρ Π΅ΠΌΡ, ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠΈ, Π΄Π°ΡΠ°ΡΠΈΡΡ:
ΠΡΠ°ΠΉΡ-Π»ΠΈΡΡΡ, ΡΠ΅Π½Ρ:
ΠΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ, ΡΡΠ°ΡΡΠΈ, ΠΌΠ°Π½ΡΠ°Π»Ρ:
ΠΠΎΠΆΠ΄ΠΈΡΠ΅ΡΡ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΠΏΠΎΠΈΡΠΊΠ° Π²ΠΎ Π²ΡΠ΅Ρ Π±Π°Π·Π°Ρ .
ΠΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΡΡΠ»ΠΊΠ° Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°ΠΌ.
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅:
- Π£ΡΠΎΠΊ 39. Π Π΅Π»Π΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ: ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ ΠΏΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΡ
- Arduino ΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠΌΠ΅ΡΠ°
- ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠΌΠ΅Ρ Π² Arduino
- Π’Π°ΠΉΠΌΠ΅Ρ Π½Π° arduino
- Π€ΡΠ½ΠΊΡΠΈΡ ΡΠ°ΠΉΠΌΠ΅ΡΠ° Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
- Arduino: ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΏΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΡ
ΠΠΠ‘ΠΠΠ’Π ΠΠ’Π ΠΠΠΠΠ ΠΠ Π’ΠΠΠ: ΠΡΠΎΡΡΠΎΠΉ ΡΠ°ΠΉΠΌΠ΅Ρ Π² ΡΠ΅ΠΏΠ»ΠΈΡΡ — Π½Π° Arduino
Π£ΡΠΎΠΊ 39. Π Π΅Π»Π΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ: ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ ΠΏΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΡ
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together. Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community. Already on GitHub? Sign in to your account. Π‘ΡΠ΄Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ATMegap ΠΈΠΌΠ΅Π΅Ρ 2 ΡΡ. ΠΠΎΠ΄ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ° ΠΠ°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠ°ΡΡΡΠΈΡΠ°Π½Π° ΡΠΎΠ»ΡΠΊΠΎ Π½Π° 16 Π±ΠΈΡΠ½ΡΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΡ?
ΠΠΎΠ΄ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ Π½Π° ATMegap ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅, Ρ Π²Π°ΡΠ΅ΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ ΡΠ°ΠΉΠΌΠ΅ΡΠ°? ΠΠ»Ρ ΠΌΠΎΠ΅ΠΉ Π·Π°Π΄Π°ΡΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΈ Π΄Π²ΡΡ , Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΊΠΎΠΌΡ ΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΡΠΈ ΡΡΡΠΊΠΈ ΠΠΎΠ΄ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠ² Π΄Π»Ρ ARV Ρ Π±ΡΠ°Π» ΠΈΠ· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Arduino Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΠ²ΠΎΠΌΠ°ΡΠΈΠ½ΠΊΠ°ΠΌΠΈ Servo.
ΠΡΠΎΠ²Π΅ΡΡΠ» Π½Π° Π°ΡΠ΄ΡΠΈΠ½Π°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΠΏΠΎΠ΄ ΡΡΠΊΠΎΠΉ Uno ΠΈ Leonardo, ΠΊΠ°ΠΆΠ΅ΡΡΡ. ΠΠ»Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ² Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ» — ΡΡΠ° ΡΠ°ΡΡΡ ΠΊΠΎΠ΄Π° Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΏΠΎΠΏΠ°Π»Π° Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΊΠ°ΠΊ Π΅ΡΡΡ. Π‘ΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΠΎΡΠΈΡΠ°ΡΡ Π΄Π°ΡΠ°ΡΠΈΡ Π½Π° Π²Π°Ρ ΡΠΈΠΏ. Π Π±Ρ Π΅ΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠ΅Π» ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ Servo. Skip to content. Dismiss Join GitHub today GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.
Sign up. New issue. Copy link Quote reply. This comment has been minimized. Sign in to view. ΠΠΎΠ±ΡΡΠΉ Π΄Π΅Π½Ρ. ΠΡΠΎΡΡ ΠΏΡΠΎΡΠ΅Π½ΠΈΡ Π·Π° Π΄ΠΎΠ»Π³ΠΈΠΉ ΠΎΡΠ²Π΅Ρ, Π²Π΅ΡΠ½Π° ΠΏΠΎΠ»ΡΡΠΈΠ»Π°ΡΡ ΡΠΈΠ»ΡΠ½ΠΎ Π·Π°ΠΌΠΎΡΠΎΡΠ΅Π½Π°Ρ. Sign up for free to join this conversation on GitHub.
Already have an account? Sign in to comment. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window.
Arduino ΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠΌΠ΅ΡΠ°
ΠΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Ρ Π²ΡΡΠΎΠΊΠΈΠΌ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠΌ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ interrupt handler. Π ΠΏΡΠΎΡΠ»ΠΎΠΉ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΡΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡΡ Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π», ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ millis Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ. Π’Π°ΠΉΠΌΠ΅Ρ ΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΏΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π½Π°ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ°ΠΉΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΠΏΡΠ΅ΡΡΠ²Π°Π» Π½Π°Ρ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π² ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄Ρ.
ΠΡΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΏΠΈΡΠ°Π½ΠΈΡ, ΡΠ°ΠΉΠΌΠ΅ΡΡ ΡΠ΅Π»Π΅ Π½Π΅ ΡΠ±ΠΈΠ²Π°ΡΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Ρ ΡΠ°Π½ΡΡΡΡ Π² ΡΠ½Π΅ΡΠ³ΠΎΠ½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Arduino. Π’Π΅ΠΊΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅.
ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠΌΠ΅Ρ Π² Arduino
ΠΡΠ΅ΠΌ ΠΏΡΠΈΠ²Π΅Ρ! Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΠ°ΠΊΠΈΡ ΠΌΠ°Π»ΠΎΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ Π² ΡΡΠ΅Π΄Π΅ Π°ΡΠ΄ΡΠΈΠ½ΡΠΈΠΊΠΎΠ² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°Ρ , ΠΊΠ°ΠΊ TimerOne ΠΈ TimerThree, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌΡΡ Π΄Π»Ρ ΡΠ΅Π³ΠΎ ΠΎΠ½ΠΈ Π½ΡΠΆΠ½Ρ ΠΈ ΠΊΠ°ΠΊ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. Π‘ΠΊΠ°ΡΠ°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ Π΄Π°Π½Π½ΡΠΌ ΡΡΡΠ»ΠΊΠ°ΠΌ: TimerOne , TimerThree. Π Π½Π°ΡΠ½Π΅ΠΌ ΠΌΡ Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ½ΡΡΠΈΡ, ΠΊΠ°ΠΊ ΡΠ°ΠΉΠΌΠ΅ΡΡ-ΡΡΠ΅ΡΡΠΈΠΊΠΈ. ΠΡΠ»ΠΈ ΠΌΡ Π±Π΅ΡΠ΅ΠΌ Arduino, ΡΠΎ Π²ΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΌ Π² Π½Π΅Π΅ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ΅ Atmega Π΅ΡΡΡ ΡΡΠΈ ΡΠ°ΠΊΠΈΡ ΡΠ°ΠΉΠΌΠ΅ΡΠ°. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ Π²ΡΠΈΠ³ΡΡΡ Π² ΡΠ½Π΅ΡΠ³ΠΎΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ, Π½Π΅ Π΄Π°Π²Π°Ρ ΠΏΡΠΎΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΌΠΎΡΠ½ΠΎΡΡΡΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° ΠΏΠΎ ΡΠ΅ΠΊΡΠ½Π΄Π΅ ΠΈΠ»ΠΈ Π½Π° ΠΏΠΎΠ»ΡΠ΅ΠΊΡΠ½Π΄Ρ. Π‘ΠΊΠ°ΡΠ°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ Π΄Π°Π½Π½ΡΠΌ ΡΡΡΠ»ΠΊΠ°ΠΌ: TimerOne , TimerThree Π ΡΠ΅ΠΏΠ΅ΡΡ Π½Π°ΡΠ½Π΅ΠΌ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ Π½ΠΈΠΌΠΈ. ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΊΠΈΡ ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈ ΡΠ°Π·ΡΡΠ΄Π½ΡΠΉ ΡΠ°ΠΉΠΌΠ΅Ρ. ΠΠ½ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π½Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅ Π½ΠΈΠΆΠ΅: ΠΠ»Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΎΠ±ΡΠ°ΡΠΈΠΌΡΡ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ Π΄Π°Π½Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ. Π Π°Π·Π±Π΅ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ΅ΡΠ΅Π· ΡΠ°ΠΉΠΌΠ΅ΡΡ ΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ :.
Π’Π°ΠΉΠΌΠ΅Ρ Π½Π° arduino
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together. Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community. Already on GitHub?
ΠΡ ΠΎΠ΄ Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΠΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠΎΠ»Ρ ΠΡ ΠΎΠ΄ ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΌΠ΅Π½Ρ. ΠΠΎΠ»ΡΡΠΈΡΡ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠΎΠ»Ρ.
Π€ΡΠ½ΠΊΡΠΈΡ ΡΠ°ΠΉΠΌΠ΅ΡΠ° Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠ²-ΡΡΡΡΡΠΈΠΊΠΎΠ² Arduino. ΠΡΡ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π²Π΅ΡΠ½ΠΎ ΠΈ Π΄Π»Ρ ΠΊΠ»ΠΎΠ½ΠΎΠ² Arduino, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Freeduino. Π ΡΡΠ°ΡΡΠ΅ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΡΠΌΠΈΠ½Ρ, Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π΅ Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π½Ρ ΡΡΠ°ΡΡΠΈ ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ Arduino , ΠΠΎΡΡΡ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° Arduino ΠΈ ΠΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΊ Arduino ΠΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Arduino ΠΎΡΠ½Π°ΡΡΠ½ ΡΡΡΠΌΡ ΡΠ°ΠΉΠΌΠ΅ΡΠ°ΠΌΠΈ-ΡΡΡΡΡΠΈΠΊΠ°ΠΌΠΈ Ρ Π½ΠΎΠΌΠ΅ΡΠ°ΠΌΠΈ 0, 1 ΠΈ 2. Π’Π°ΠΉΠΌΠ΅ΡΡ 0 ΠΈ 2 ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π² 8 Π±ΠΈΡ, ΡΠΎ Π΅ΡΡΡ ΠΈΡ ΡΡΡΡΠ½ΡΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ 0 Π΄ΠΎ
Arduino: ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΏΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΡ
Π― ΠΏΡΡΠ°ΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΠΎΠΉ Ρ Arduino. Π― Ρ ΠΎΡΠ΅Π» Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ interrupts , ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΡΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Ρ Ρ ΠΎΡΠ΅Π» Π±Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΈ Π²ΡΠΊΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°, Π½ΠΎ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ attachInterrupt. Π― Π±Ρ Ρ ΠΎΡΠ΅Π» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΎΠ±ΡΡΠΆΠ΄Π°ΡΡΡΡ ΡΠ°ΠΉΠΌΠ΅ΡΡ AVR ΠΈ Arduino ΠΈ ΡΠΎ, ΠΊΠ°ΠΊ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Arduino ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ ΠΈ ΡΡ Π΅ΠΌΠ°Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°ΠΌ ΠΎΡΠΊΠ»ΠΈΠΊΠ°ΡΡΡΡ Π½Π° ΡΠΎΠ±ΡΡΠΈΡ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΡΡΠ»ΠΎΠ²ΠΈΠΉ, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΈ Π²Π°ΠΆΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΠΊ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ, Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠΌ. ΠΠ»Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ Π²Π΅ΡΠ½Π΅ΠΌΡΡ Π²Π½ΠΎΠ²Ρ ΠΊ ΡΠΈΡΡΠΎΠ²ΡΠΌ Π²Ρ ΠΎΠ΄Π°ΠΌ.
Π― Ρ ΠΎΡΡ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΎ Π’Π°ΠΉΠΌΠ΅ΡΡ Arduino Nano. ΠΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ ΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΠ°Ρ Arduino Nano — ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ ΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΠ°Ρ Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ ΡΠΈΠΏΠ΅: ATmega ΠΠ½ ΠΈΠΌΠ΅Π΅Ρ ΡΡΠΈ ΡΠ°ΠΉΠΌΠ΅ΡΠ°:. Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π½Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Arduino Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΠΊ ΡΠ°ΠΉΠΌΠ΅ΡΠ°ΠΌ. Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠΌΠ΅ΡΠ½ΡΠ΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΉ ΠΊΠΎΠ΄. Π ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:.
ΠΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ β ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Arduino, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠΌ ΠΏΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΡΠ°Π·Π½ΡΡ ΡΠΎΠ±ΡΡΠΈΠΉ. ΠΡΠ΅ΡΡΠ²Π°Π½ΠΈΠ΅ β ΡΡΠΎ ΡΠΈΠ³Π½Π°Π», ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ ΠΎ Π½Π°ΡΡΡΠΏΠ»Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΡΠΎΠ±ΡΡΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΡΠ΅Π±ΡΠ΅Ρ Π½Π΅Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ.
Π£Π·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡΠΌΠΈ ΠΏΠΎ ΡΠ°ΠΉΠΌΠ΅ΡΡ. ΠΠ°ΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠΎΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ. Π ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π½Π°Π΄ΠΎ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠΎΠ²Π΅ΡΡΠ°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ. ΠΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΈΠΈ Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠ» ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Ρ ΠΎΠ»ΠΎΠ΄ΠΈΠ»ΡΠ½ΠΈΠΊΠ° Π½Π° ΠΌΠΎΠ΄ΡΠ»Π΅ ΠΠ΅Π»ΡΡΡΠ΅. ΠΠ΅ΡΠ΅ΡΠΈΡΠ»Ρ, ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΎΠ½Π° ΡΠΎΠ²Π΅ΡΡΠ°Π΅Ρ:. ΠΡΠ΅ ΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠΈΠΊΠ»ΠΈΡΠ΅ΡΠΊΠΈ, Ρ Π²ΡΠ΅Ρ ΡΠ°Π·Π½ΡΠ΅ ΠΏΠ΅ΡΠΈΠΎΠ΄Ρ ΡΠΈΠΊΠ»ΠΎΠ². ΠΡΠ±ΠΎΠ΅, Π΄Π°ΠΆΠ΅ ΠΊΡΠ°ΡΠΊΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΠ΅ΡΠΈΠΎΠ΄Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ Π½Π΅ΠΏΡΠΈΡΡΠ½ΠΎΡΡΡΠΌ: Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠΎΠ³ΡΠ΅ΡΠ½ΠΎΡΡΠΈ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ, Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΎΡΠΎΠ², ΠΌΠ΅ΡΡΠ°Π½ΠΈΡ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠΎΠ², Π½Π΅ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΠΉ ΡΠ΅Π°ΠΊΡΠΈΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΉ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ Ρ.
Generally, an ISR should be as short and fast as possible. If your sketch uses multiple ISRs, only one can run at a time, other interrupts will be executed after the current one finishes in an order that depends on the priority they have. Since delay requires interrupts to work, it will not work if called inside an ISR.
Arduino Slovakia — ΠΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΡΠ°ΠΉΠΌΠ΅ΡΠ° AVR
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
Π’Π°ΠΉΠΌΠ΅Ρ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ CTC. ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΡ ΡΠ°ΡΡΠΎΡΡ, MCU ΠΈ ΡΠ°ΠΉΠΌΠ΅Ρ. Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ Π Π°ΡΡΡΠΈΡΠ°ΡΡ. Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°. ΠΡΡΠ°Π²ΡΡΠ΅ ΠΊΠΎΠ΄ Π² Arduino IDE. ΠΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΠΎΠ±ΡΡΠ°ΡΡΠ΅Π΅ Π²ΠΈΠ΄Π΅ΠΎ Π½Π° YouTube.
- ΠΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡ v. {{Π²Π΅ΡΡΠΈΡ}}
- Π
- ΠΡΠ»Π°Π΄ΠΊΠ°
Π’Π°ΠΊΡΠΎΠ²Π°Ρ ΡΠ°ΡΡΠΎΡΠ° ΠΡΠ΄ΡΠΈΠ½ΠΎ:
ΠΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ:
Π’Π°ΠΉΠΌΠ΅Ρ:
ΠΠ°ΠΏΡΠΎΡΠ΅Π½Π½Π°Ρ ΡΠ°ΡΡΠΎΡΠ° ΡΠ°ΠΉΠΌΠ΅ΡΠ° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ:
Π¨Π°Π±Π»ΠΎΠ½:
ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΎΡΠΈΠ±ΠΊΠ°: Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΠΈΡΠ»ΠΈΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ OCR. {{last_ocr}}>{{timer. maxvalue}}
{{ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅}}
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ:
Π£ΡΠ΅Π±Π½ΠΎΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΠ΅
ΠΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ
ATmega328P
Arduino Uno, Arduino Pro Mini.
ATmega48A, ATmega48PA, ATmega88A, ATmega88PA, ATmega168A, ATmega168PA, ATmega328.
- Π’Π°ΠΉΠΌΠ΅Ρ0 β 8-Π±ΠΈΡΠ½ΡΠΉ
- Π’Π°ΠΉΠΌΠ΅Ρ 1 β 16-ΡΠ°Π·ΡΡΠ΄Π½ΡΠΉ
- Π’Π°ΠΉΠΌΠ΅Ρ 2 β 8-Π±ΠΈΡΠ½ΡΠΉ
ATmega2560
Arduino Mega 2560.
ATmega640, ATmega1280, ATmega1281, ATmega2561.
- Π’Π°ΠΉΠΌΠ΅Ρ0 β 8-Π±ΠΈΡΠ½ΡΠΉ
- Π’Π°ΠΉΠΌΠ΅Ρ 1 β 16-ΡΠ°Π·ΡΡΠ΄Π½ΡΠΉ
- Π’Π°ΠΉΠΌΠ΅Ρ 2 β 8 Π±ΠΈΡ
- Π’Π°ΠΉΠΌΠ΅Ρ 3 β 16-Π±ΠΈΡΠ½ΡΠΉ
- Π’Π°ΠΉΠΌΠ΅Ρ 4 β 16-Π±ΠΈΡΠ½ΡΠΉ
- Π’Π°ΠΉΠΌΠ΅Ρ 5 β 16-Π±ΠΈΡΠ½ΡΠΉ
ATtiny84
ATtiny24, ATtiny44.
- Π’Π°ΠΉΠΌΠ΅Ρ0 β 8-Π±ΠΈΡΠ½ΡΠΉ
- Π’Π°ΠΉΠΌΠ΅Ρ 1 β 16-ΡΠ°Π·ΡΡΠ΄Π½ΡΠΉ
ATtiny85
ATtiny25, ATtiny45.
- Π’Π°ΠΉΠΌΠ΅Ρ0 β 8-Π±ΠΈΡΠ½ΡΠΉ
- Π’Π°ΠΉΠΌΠ΅Ρ 1 β 8-Π±ΠΈΡΠ½ΡΠΉ
Π‘ΠΏΠΈΡΠΎΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
- v. 8 — ATtiny84
- v.7 — ATmega2560
- Π²Π΅ΡΡΠΈΡ 6 — ATtiny85
- v. 5 — Π Π΅Π΄ΠΈΠ·Π°ΠΉΠ½
- v. 4 — CTC Π½Π° Timer0 ΠΈ Timer2 ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ
- v.3 — ΠΠΎΠ»ΡΡΠ΅ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² ATmega328P + ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ°
- v. 2 — ΠΡΠΏΡΠ°Π²Π»Π΅Π½ CTC Π½Π° Timer0 ΠΈ Timer1
- v.1 — ΠΠ°ΡΠ°Π»ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ (ATmega328P)
ΠΠ½Π΄Π΅ΠΊΡ | ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ | ΠΠΠ | Π§Π°ΡΡΠΎΡΠ° | ΠΠΈΡΡ. |
---|---|---|---|---|
{{$ΠΈΠ½Π΄Π΅ΠΊΡ}} | {{ x.ΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ }} | {{x.ocr}} | {{Ρ .ΡΠ°ΡΡΠΎΡΠ°}} | {{x.dif}} |
Π»ΡΡΡΠΈΠΉ_ΠΈΠ½Π΄Π΅ΠΊΡ: {{Π»ΡΡΡΠΈΠΉ_ΠΈΠ½Π΄Π΅ΠΊΡ}} ΠΌΠΊ: {{ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ | json}} ΡΠ°ΠΉΠΌΠ΅Ρ: {{ΡΠ°ΠΉΠΌΠ΅Ρ | json}} ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΠΉ_ΡΠΏΠΈΡΠΎΠΊ: {{ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΠΉ_ΡΠΏΠΈΡΠΎΠΊ | json}}
ΠΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ
- ΠΡ ΠΌΠΎΠ²ΡΠΊΠΈΠΉ Π·Π°ΠΊΠΎΠ½
- ΠΠ°Π»ΡΠΊΡΠ»ΡΡΠΎΡ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΡΠ°ΠΉΠΌΠ΅ΡΠ° AVR
- Π Π΅Π·ΠΈΡΡΠΎΡ ΡΠ΅ΡΠΈΠΈ E
- Π’Π°Π±Π»ΠΈΡΠ° ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² AVR
- AngularJS ΠΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΉ
ΠΠ΅Π½Ρ
- ΠΠΎΠΌΠΎΠ²
- Π‘ΡΡΠ°Π½ΠΊΠΈ
- ΠΡΡΠΎΡΠΈΡ ΡΡΡΠ°Π½Ρ
- ΠΠ»ΠΎΠ³
- ΠΠ° Π·Π°ΡΡΠΆΠΊΡ
- ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
- ΠΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Atmel
- ΠΠΈΠ΄Π΅ΠΎ
- Π₯Π»ΡΠ΄Π°Ρ
ΠΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ Arduino ΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΠΈΠΡΠ½ΠΎΠ²Π½ΡΠ΅ (2)
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ cookie ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ Π΄Π»Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π²Π΅Π±-ΡΠ°ΠΉΡΠ°.
ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ°ΠΉΠ»Π°Ρ cookie Π‘ΠΊΡΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ°ΠΉΠ»Π°Ρ cookie
ΠΠΌΡ | ΠΠ΅ΡΠ΅Π½ΡΠ΅ ΠΠΎΡΠ»Π°Π±Ρ |
---|---|
ΠΡΠΎΠ²Π°ΠΉΠ΄Π΅Ρ | ΠΠ»Π°Π΄Π΅Π»Π΅Ρ ΡΡΠΎΠ³ΠΎ Π²Π΅Π±-ΡΠ°ΠΉΡΠ°, ΠΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ |
ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ | Π‘ΠΎΡ ΡΠ°Π½ΡΠ΅Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»Π΅ΠΉ, Π²ΡΠ±ΡΠ°Π½Π½ΡΠ΅ Π² ΠΎΠΊΠ½Π΅ ΡΠ°ΠΉΠ»ΠΎΠ² cookie Borlabs Cookie. |
ΠΠΌΡ ΡΠ°ΠΉΠ»Π° cookie | borlabs-cookie |
Π‘ΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² cookie | 1 Π³ΠΎΠ΄ |
ΠΠΌΡ | ΡΠ·ΠΎΠΈΠΊ |
---|---|
ΠΡΠΎΠ²Π°ΠΉΠ΄Π΅Ρ | Ezoic Inc, 6023 Innovation Way 2nd Floor, ΠΠ°ΡΠ»ΡΠ±Π°Π΄, ΠΠ°Π»ΠΈΡΠΎΡΠ½ΠΈΡ 92009, Π‘Π¨Π |
ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ | ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ Π΄Π»Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ°ΠΉΡΠ°. |
ΠΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΠΈ | Ezoic Website Privacy Policy |
ΠΠΌΡ ΡΠ°ΠΉΠ»Π° cookie | ez*, cf*, unique_id, __cf*, __utmt* |
Π‘ΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠ°ΠΉΠ»Π° cookie | 1 Π³ΠΎΠ΄ |
ΠΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΡ (1)
ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ
Π€Π°ΠΉΠ»Ρ cookie ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΠΉ Ρ ΡΠ°Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΈ ΡΡΠ½ΠΊΡΠΈΡΡ Π²Π΅Π±-ΡΠ°ΠΉΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π»ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΈΠ»ΠΈ ΠΈΡΡ ΠΎΠ΄Π½Π°Ρ Π²Π΅ΡΡΠΈΡ Π²Π΅Π±-ΡΠ°ΠΉΡΠ°.
ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ°ΠΉΠ»Π°Ρ cookie Π‘ΠΊΡΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ°ΠΉΠ»Π°Ρ cookie
ΠΡΠΈΠ½ΡΡΡ | Ezoic β ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ |
---|---|
ΠΠΌΡ | Ezoic β ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ |
ΠΡΠΎΠ²Π°ΠΉΠ΄Π΅Ρ | Ezoic Inc, 6023 Innovation Way 2nd Floor, ΠΠ°ΡΠ»ΡΠ±Π°Π΄, ΠΠ°Π»ΠΈΡΠΎΡΠ½ΠΈΡ 92009, Π‘Π¨Π |
ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ | ΠΠ°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠ΅Π½ΡΠ΅Ρ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΡΠ°ΠΉΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΠΌΡΠΉ ΡΠ·ΡΠΊ ΠΈΠ»ΠΈ ΡΠ΅Π³ΠΈΠΎΠ½, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΠ΅ΡΡ. |
ΠΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΠΈ | Ezoic Website Privacy Policy |
ΠΠΌΡ ΡΠ°ΠΉΠ»Π° cookie | ez*, sitespeed_preview, FTNT*, SITESERVER, SL*, speed_no_process, GED_PLAYLIST_ACTIVITY, __guid |
Π‘ΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠ°ΠΉΠ»Π° cookie | 1 Π³ΠΎΠ΄ |
Π‘ΡΠ°ΡΠΈΡΡΠΈΠΊΠ° (1)
Π‘ΡΠ°ΡΠΈΡΡΠΈΠΊΠ°
Π‘ΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ cookie ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎ. ΠΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π½Π°ΠΌ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ Π½Π°ΡΠΈ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π½Π°Ρ Π²Π΅Π±-ΡΠ°ΠΉΡ.
ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ°ΠΉΠ»Π°Ρ cookie Π‘ΠΊΡΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ°ΠΉΠ»Π°Ρ cookie
ΠΡΠΈΠ½ΡΡΡ | ΠΠ·ΠΎΠΈΠΊ — Π‘ΡΠ°ΡΠΈΡΡΠΈΠΊΠ° |
---|---|
ΠΠΌΡ | ΠΠ·ΠΎΠΈΠΊ — Π‘ΡΠ°ΡΠΈΡΡΠΈΠΊΠ° |
ΠΡΠΎΠ²Π°ΠΉΠ΄Π΅Ρ | Ezoic Inc, 6023 Innovation Way 2nd Floor, ΠΠ°ΡΠ»ΡΠ±Π°Π΄, ΠΠ°Π»ΠΈΡΠΎΡΠ½ΠΈΡ 92009, Π‘Π¨Π |
ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ | ΠΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡ Ρ Π²Π΅Π±-ΡΠ°ΠΉΡΠ°ΠΌΠΈ, ΡΠΎΠ±ΠΈΡΠ°Ρ ΠΈ ΡΠΎΠΎΠ±ΡΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎ. |
ΠΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΠΈ | Ezoic Website Privacy Policy |
ΠΠΌΡ ΡΠ°ΠΉΠ»Π° cookie | ez*, __qca, _gid, _ga, _gat, AMP_ECID_EZOIC, __utm*, _ga* |
Π‘ΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠ°ΠΉΠ»Π° cookie | 1 Π³ΠΎΠ΄ |
ΠΠ°ΡΠΊΠ΅ΡΠΈΠ½Π³ (1)
ΠΠ°ΡΠΊΠ΅ΡΠΈΠ½Π³
ΠΠ°ΡΠΊΠ΅ΡΠΈΠ½Π³ΠΎΠ²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ cookie ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌΠΈ ΡΠ΅ΠΊΠ»Π°ΠΌΠΎΠ΄Π°ΡΠ΅Π»ΡΠΌΠΈ ΠΈΠ»ΠΈ ΠΈΠ·Π΄Π°ΡΠ΅Π»ΡΠΌΠΈ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΠ΅ΠΊΠ»Π°ΠΌΡ. ΠΠ½ΠΈ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ, ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»Π΅ΠΉ Π½Π° Π²Π΅Π±-ΡΠ°ΠΉΡΠ°Ρ .
ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ°ΠΉΠ»Π°Ρ cookie Π‘ΠΊΡΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ°ΠΉΠ»Π°Ρ cookie
ΠΡΠΈΠ½ΡΡΡ | ΠΠ·ΠΎΠΈΠΊ — ΠΠ°ΡΠΊΠ΅ΡΠΈΠ½Π³ |
---|---|
ΠΠΌΡ | ΠΠ·ΠΎΠΈΠΊ — ΠΠ°ΡΠΊΠ΅ΡΠΈΠ½Π³ |
ΠΡΠΎΠ²Π°ΠΉΠ΄Π΅Ρ | Ezoic Inc, 6023 Innovation Way 2nd Floor, ΠΠ°ΡΠ»ΡΠ±Π°Π΄, ΠΠ°Π»ΠΈΡΠΎΡΠ½ΠΈΡ 92009, Π‘Π¨Π |
ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ | ΠΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»Π΅ΠΉ Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠ². Π¦Π΅Π»Ρ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΡΠ΅Π»Π΅Π²Π°Π½ΡΠ½ΡΠ΅ ΠΈ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π΄Π»Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ. |
ΠΠΎΠ»ΠΈΡΠΈΠΊΠ° ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΠΈ | Ezoic Website Privacy Policy |
ΠΠΌΡ ΡΠ°ΠΉΠ»Π° cookie | ez*, _sm_au, cto*, __gads, mind*, _ym_uid, GoogleAdServingTest |
Π‘ΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠ°ΠΉΠ»Π° cookie | 1 Π³ΠΎΠ΄ |
ΠΠ½Π΅ΡΠ½ΠΈΠ΅ Π½ΠΎΡΠΈΡΠ΅Π»ΠΈ (1)
ΠΠ½Π΅ΡΠ½ΠΈΠ΅ Π½ΠΎΡΠΈΡΠ΅Π»ΠΈ
ΠΠΎΠ½ΡΠ΅Π½Ρ Ρ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ»Π°ΡΡΠΎΡΠΌ ΠΈ ΡΠΎΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ΅ΡΠ΅ΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½. ΠΡΠ»ΠΈ ΡΠ°ΠΉΠ»Ρ cookie Π²Π½Π΅ΡΠ½ΠΈΡ Π½ΠΎΡΠΈΡΠ΅Π»Π΅ΠΉ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ, Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΡΠΎΠΌΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠΌΡ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΡΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠ³Π»Π°ΡΠΈΡ.
ΠΠΎΠΊΠ°Π·Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ°ΠΉΠ»Π°Ρ cookie Π‘ΠΊΡΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ°ΠΉΠ»Π°Ρ cookie
ΠΡΠΈΠ½ΡΡΡ | YouTube |
---|---|
ΠΠΌΡ | YouTube |
ΠΡΠΎΠ²Π°ΠΉΠ΄Π΅Ρ | Google Ireland Limited, Gordon House, Barrow Street, Dublin 4, ΠΡΠ»Π°Π½Π΄ΠΈΡ |
ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ | ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° YouTube. |