MULTITASKING
MULTITASKING
L'ESP32 pot fer diverses tasques aparentment alhora executant-les a intervals diferents, utilitzant ticks_ms().
Només cal definir per a cada tasca el seu propi temporitzador. Un exemple:
import time
ultim_led = 0
ultim_sensor = 0
while True:
ara = time.ticks_ms()
# tasca 1 cada 500 ms:
if time.ticks_diff(ara, ultim_led) >= 500:
print("Canvi estat LED")
ultim_led = ara
# tasca 2 cada 2000 ms
if time.ticks_diff(ara, ultim_sensor) >= 2000:
print("Lectura sensor")
ultim_led = ara
time.ticks_diff(ara, ultim_led) == ara - ultim_led
Esquema general
import time
ultim_tasca = 0
while True:
ara = time.ticks_ms()
if time.ticks_diff(ara, ultim_tasca) >= INTERVAL:
# codi de la tasca
ultim_tasca = ara