当ブログをご覧いただき、ありがとうございます。
ご注意事項:
記載内容には、十分注意しておりますが、勘違い、記憶違い、理解不足、思い込み等が無いとは限りませんので、申し訳ありませんが、 記載内容の正確性は保障致しません(出来ません)。
従いまして、このブログの内容を参考にする事に起因して生じる、または 生じた、いかなる事態にも、当方は何の責任も取れませんので、 参考にされる場合は、自己責任にてお願い致します。
このブログのC言語に関する説明には、PICで電子工作するのに必要な事柄以外(私のレベルで)は出てきません、出てこないことの方が多いと思いますので、ご了承願います。

4桁7セグメントLED表示器を駆動する、その2。

前回の記事と同じ7セグメントLED表示器と回路構成で、7セグメントLED表示器をダイナミック駆動するプログラムを書き、ダイナミック駆動の様子を観察しました。

今回のプログラムは、下記の通りです。

f:id:higonohimajin:20210422211759p:plain

f:id:higonohimajin:20210422211743p:plain

f:id:higonohimajin:20210422211720p:plain

f:id:higonohimajin:20210422211656p:plain

プログラムは、分割してスクリーンショットしましたので、繋ぎ目は重複してます。

下の動画は、プログラムを動作させたときの様子です。

youtu.be

表示している数字は、点灯時間(ミリ秒)です。

点灯時間が短くなるほど、同時に点灯しているように見えるようになります。

6msまでは、チラツキが気になりますが、5msだと気になりません、どうでしょうか?。

このプログラムをPICマイコンに書き込むと、2Kワードのプログラムメモリの41%程を使ってしまいました。

同じ動作のプログラムを、アセンブリ言語でも組んでみたのですが、こちらは、300ワードも使わずに書けてしまいました、つまり、1/3程で済んだ訳です。

この差は、MPLAB X C8 コンパイラにあります、私が使っているのは、無償版ですから、プログラムが最適化されません、有償版を買って使うと最適化されますのでアセンブリ言語でも組んだものと、ほぼ同じくらいの容量になるものと思われます。

最適化 ➡ プログラムが高速に動作し、プログラムサイズが小さくなるように、マシン語に変換すること。