4桁7セグメントLED表示器を駆動する、その2。
前回の記事と同じ7セグメントLED表示器と回路構成で、7セグメントLED表示器をダイナミック駆動するプログラムを書き、ダイナミック駆動の様子を観察しました。
今回のプログラムは、下記の通りです。
プログラムは、分割してスクリーンショットしましたので、繋ぎ目は重複してます。
下の動画は、プログラムを動作させたときの様子です。
表示している数字は、点灯時間(ミリ秒)です。
点灯時間が短くなるほど、同時に点灯しているように見えるようになります。
6msまでは、チラツキが気になりますが、5msだと気になりません、どうでしょうか?。
このプログラムをPICマイコンに書き込むと、2Kワードのプログラムメモリの41%程を使ってしまいました。
同じ動作のプログラムを、アセンブリ言語でも組んでみたのですが、こちらは、300ワードも使わずに書けてしまいました、つまり、1/3程で済んだ訳です。
この差は、MPLAB X C8 コンパイラにあります、私が使っているのは、無償版ですから、プログラムが最適化されません、有償版を買って使うと最適化されますのでアセンブリ言語でも組んだものと、ほぼ同じくらいの容量になるものと思われます。
最適化 ➡ プログラムが高速に動作し、プログラムサイズが小さくなるように、マシン語に変換すること。