ディレイの作り方

たとえばAVRなら<util/delay.h>に用意されている関数で簡単にディレイを生成できる。命令の実行時間予測が容易なので、 クロック設定さえ教えれば必要な待ちループを作ってくれる。

一方、NiosIIでは実際の実行時間予測が難しい。たとえ単純な待ちループであっても、コード領域のリードに掛かる時間などのゆらぎ要素がある。 そのせいかループによるディレイ関数は用意されていないようだ。

NiosでOSを載せない(HALを使う)場合には、IntervalTimerでシステムチックを供給させ、アラームやalt_nticks()のポーリングでディレイを作る。

準備

QsysまたはSOPC BuilderでIntervalTimer(QsysならLibrary→Peripherals→Microcontroller peripheralsにある)を追加。

  • 適当にperiodを設定
  • PresetはSimple periodic interruptを選択
altera/niosii/ディレイの作り方.txt · 最終更新: 2012/05/13 04:40 by shuta
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0