ループディレイライブラリ関数の使い方


【ループディレイ関数】

HI-TECH Cコンパイラのライブラリには、ANSI指定以外の関数が
ライブラリとして提供されていますが、その中に下記のようなループディレイ関数が
用意されています。
この表にあるように、サイクル数の合計が197,120以下という条件が付いています。
したがってmsのような場合には、最大遅延時間に制限が付きます。

関数名 機能・書式 備  考
_delay(n); 命令サイクル単位の遅延関数
(最大197,120サイクルまで)
NOP命令と同じ
_delay_us(x); マイクロ秒単位の遅延関数
  _dekay_us(100);
_XTAL_FREQ の定数設定が必要
#define _XTAL_FREQ 10000000

合計サイクル数が197,120以下
  (Max39msec@20MHz)
  (Max78msec@10MHz)
_delay_ms(x); ミリ秒単位の遅延関数
  _delay_ms(25);

【HI-TECH Cコンパイラでの記述方法】

実際の使用例としては下記のようにします。__delay_ms()関数では、20MHz
クロックの場合には、Max39msecまでしか作れませんから、100msecという
遅延を作るため専用のサブ関数を作っています。
この中で25msecの遅延関数として使っています。






   目次ページへ