It runs, taking a sample every 3 seconds, but update_lcd() runs only once instead of once after every sample.
What am I doing wrong?
Code: Select all
import uasyncio as asyncio
import asyn # https://github.com/peterhinch/micropython-async/blob/master/asyn.py
import sys
async def sample(data_ready):
while True:
print('Sample taken')
data_ready.set()
await asyncio.sleep(3) # in s
async def update_lcd(data_ready):
await data_ready
print('LCD updated')
data_ready.clear()
loop = asyncio.get_event_loop()
data_ready = asyn.Event()
loop.create_task(sample(data_ready))
loop.create_task(update_lcd(data_ready))
try:
loop.run_forever()
except KeyboardInterrupt or SystemExit:
sys.exit()
Sample taken
LCD updated
Sample taken
Sample taken
Sample taken