シフトレジスタ(74HC595)の使い方という以前の記事において、汎用IOポートをソフトウエアで制御してシフトレジスタ(74HC595)を操作するというのは実験しました。 ですが、この方法ではプログラムサイズも大きくなり、動作速度も遅くなってしまうという問題があります。 そこで、今回はAVRに搭載されている周辺機能であるSPIを使い、ハードウエアでシリアルデータとクロックを送出するようにしてみたいと思います。 どれぐらいのコードサイズの削減、動作速度の向上が出来るかを実験してみます。 ソフトウエアの場合(関数呼び出し等のオーバーヘッドは考慮しない) データセット クロックHi クロックLo がそれぞれ 8回 ラッチクロックLo ラッチクロックHi がそれぞれ 1回 なので、最低でも26クロックの動作時間が必要です、が、実際には関数呼び出しのオーバヘッドやif文、データのビット操作等でもっと