28. のこぎり波ジェネレータ
Python の記述でそのまんま
def gen(start):
phase = start
while 1:
phase += 1
phase &= 511
val = abs(phase-256)
if val<0:
val = 0
if val>255:
val = 255
yield val
29. 動作デモ
R と G と B でノコギリ波の初期値を 1/3 づつずらし
てジェネレータを初期化。
あとは延々と RGB を出力してる。
def main():
cled = ColorLed()
r = gen(0)
g = gen(512/3)
b = gen(512*2/3)
while 1:
cled.set(r.next(),g.next(),b.next())
sys.wait(1)