2016-03-20 13 views
0

HCS12の命令サイクル数と遅延サイクル数を計算しようとしています。私はHCS12に関するいくつかの情報を持っていますhcs12の遅延サイクルを計算する

HCS12は、バスクロック(Eクロック)をタイミング のリファレンスとして使用しています。

  • Eクロックの周波数は、オンボードクロック発振器(クロック、48MHz、Eクロック、24MHz)の半分です。命令の
  • 実行時間も

  • 私は24MHzの水晶周波数であるだろE・クロック・サイクルで測定されていますか?その場合、CPUの命令時間には、水晶発振器周波数の半分だけが使用されます。したがって、 は半分にする必要がありますか?

  • 24MHzバスのデモボードで、クロック時間を100msにする方法を教えてください。 クロック? 100ミリ秒の時間遅延を生成するために

、我々は、先行命令シーケンスを60,000回【100ミリ秒÷(40÷24,000,000)マイクロ秒= 60,000]を繰り返す必要があります。次の命令シーケンスは、希望の遅延を作成します: 例がありますが、6000040の値がどのように計算されるのか分かりません。

答えて

1

最初のセクションでは、内部発振器(または外部水晶)が48 MHzの場合、EClockは24 MHzです。したがって、100ミリ秒で遅延させたい場合は、24,000,000 * 100/1,000 EClock、つまり2,400,000命令サイクルです。

利用可能な最大レジスタ・サイズは16ビットであるため、ループカウンタ値は、それは好都合< = 65535

60,000であり、選択され2,400,000 60,000 * 40であることの要因はインナーループに工夫されています40サイクルかかる。しかし、最後の3行のタイミングコメントは間違っているはずです。

nop    ; 1 E cycle 
nop    ; 1 E cycle 
dbne x,loop  ; 3 E cycles 

実行時間が40サイクル必要です。

割り込みやその他のプロセスがある場合、このハードコーディングされた方法はあまり正確ではなく、タイマー割り込みが優れていることに注意してください。

+0

啓発の説明をいただきありがとうございます – snr

関連する問題