iNSTITUTEM@STER

iNSTITUTEM@STER

2010年7月25日日曜日

プログラム変更

三つ目のモード「細かく色設定」は使いにくいので、代わりに「ColorfulDaysモード」を搭載します。
初期設定は赤-青-白-橙-緑-紫-桃-黄-黄緑-浅葱-臙脂-雛-予備用の全弾発射の順番ですが
Colorfuldaysモードでは白-黄-青-赤-臙脂-緑-浅葱-黄緑-橙-桃-紫-雛-予備という具合に変化します。

こうなるとボタンが二つもいらないのですが、二つ目の新しい使い道として「真モード」を搭載します。
真モードとは、サイリウム史上初?菊地真カラーである黒を再現するために搭載しました。

ただ、実際にプログラムを変更するにも、そのままコピペじゃ容量不足でだめ
ルーチンを見直して最適化をして、容量はクリアできましたが
真モードがうまくできず、ボタンを離すタイミングを変えると逆真モード(ボタンを押している時だけ光る)になっちゃったり、
プログラム技術もまだまだですな…
でも、C言語を使えるだけありがたいと思え!

デバッグ完了!黒い!でもやっぱり見えない…
本当は一時停止や点滅を再現するために搭載しました。
これで曲に合わせて点滅したり、光通信ができたり…使い道はあるかな?
消灯のたびにスリープモードを使っているので、この間の消費電力はかなり抑えられます。

ボタンを押すたびにスリープモードに入る…こんな使い方をしていいのかな…

メインルーチンの中でボタンが押されているかどうかの判定を行い、押されていたら消灯してスリープモードに入ります。
ボタンを離したら割り込みが入ったと認識し、スリープを解除します。
割り込みは行いますが、割り込んだ先では何も行いません。

何もスリープモードを使わなくても…と思いましたが、実は、LEDの光り方の制御をタイマー0割込で行っています。
このため、ある程度時間が来たら光るルーチンへ入るため、スリープで処理を止めます。
まれにボタンから指を離してもスリープモードから復帰しないことがあります。
そういう時は、もう一度ボタンを押すと元に戻ります。

0 件のコメント:

コメントを投稿