这几天抽空学校了一下pyRTOS,用Circuit Playground开发板。创建了三个任务,task1每秒翻转一次LED,task2每0.5秒随机改变WS2812,task3打印当前环境光强。
import gc
import pyRTOS
gc.collect()
from adafruit_circuitplayground import cp
gc.collect()
from random import randrange as rand
def task1(self):
yield
while 1:
cp.red_led = not cp.red_led
yield [pyRTOS.timeout(1)]
def task2(self):
yield
while 1:
cp.pixels[rand(10)] = rand(10), rand(10), rand(10)
yield [pyRTOS.timeout(0.5)]
def task3(self):
yield
while 1:
print(cp.light)
yield [pyRTOS.timeout(2)]
pyRTOS.add_task(pyRTOS.Task(task1, name="task1"))
pyRTOS.add_task(pyRTOS.Task(task2, name="task2"))
pyRTOS.add_task(pyRTOS.Task(task3, name="task3"))
pyRTOS.start()
pyRTOS的一个小demo
- shaoziyang
- 帖子: 3956
- 注册时间: 2019年 10月 21日 13:48
Re: pyRTOS的一个小demo
总的来说,pyRTOS的功能和用法类似python的异步(circuitpython还未提供异步功能)
-
- 随机主题
- 回复总数
- 阅读次数
- 最新文章
-
- 1回复总数
- 761 阅读次数
- 最新文章 由 shaoziyang
2022年 4月 21日 21:24
-
- 1回复总数
- 754 阅读次数
- 最新文章 由 shaoziyang
2021年 12月 29日 10:53
-
- 8回复总数
- 1110 阅读次数
- 最新文章 由 sh-fluke
2021年 12月 30日 08:52