ユニバーサル基板に半田付けしてみました。
なるべくちゃんと時間どおり動くようにポートを直接操作しています。
何をしてるか自分でもわからなくなりそうなのであんまりやりたくなかったのですが、プログラムした以上にちらついているのが面白くなくなってきたので、大幅に変更しました。
ATtiny85の場合、PORTBというのが出力のポートで、6ビットの整数をひとつ書き込むことで出力を一度に全部変更できます。
下位ビットからそれぞれd0~d4,resetに対応しています。
今回はd0~d3をデジタル出力として使うので、たとえば
というふうになります。
大体動きは決まってきたので一周期5分割のシーケンスをひたすら繰り返す形にしました。
PORTB = なんたら で4ミリ秒ごとに五つの状態をループしています。
何をしてるか自分でもわからなくなりそうなのであんまりやりたくなかったのですが、プログラムした以上にちらついているのが面白くなくなってきたので、大幅に変更しました。
ATtiny85の場合、PORTBというのが出力のポートで、6ビットの整数をひとつ書き込むことで出力を一度に全部変更できます。
下位ビットからそれぞれd0~d4,resetに対応しています。
今回はd0~d3をデジタル出力として使うので、たとえば
- B0000(二進数。十進数では0)が全消灯、
- B0001(=1)がデジタル0番ピンのみ点灯、
- B0011(=2+1=3)は0番、1番が点灯、B1111(=8+4+2+1=15)は全点灯、
というふうになります。
大体動きは決まってきたので一周期5分割のシーケンスをひたすら繰り返す形にしました。
PORTB = なんたら で4ミリ秒ごとに五つの状態をループしています。
あと、基板に組んだら電源が安定しすぎるのか乱数がうまくバラけなくなってきたので、ちょっと時間をおいてrandomSeedをとりなおしたりしています。
スケッチはこちら。
コメント
コメントを投稿