Hi, Kenshow-san
Confirm to work this KBA.
Thanks,
Jenna
Hi Jenna-san,
Japanese translation was over.
Please check below.
Original KBA:
Delay Functions in PSoC® 1 - KBA206625
Thanks.
==============================
タイトル: PSoC®1の遅延機能 - KBA206625
バージョン:**
質問:
プロジェクトにソフトウェア遅延を実装するにはどうすればよいですか?
回答:
添付のソースファイルdelay.asmおよびdelay.hを使用して、プロジェクトにソフトウェア遅延を導入します。
「delay.asm」には、遅延を生成する3つの関数があります。
Delay50u:この関数は、1.5MHzから24MHzまでのCPU速度に対して50µsの遅延を生成します。1.5 MHz未満の速度の場合、遅延は次の式で計算されます。
遅延=(1.5 MHz /(CPUクロック周波数))x 50 µs
この関数は、アキュムレータに値がロードされ、ゼロになるまでデクリメントされる単純なループを実装します。アキュムレータに書き込まれる初期値は、OSC_CR0レジスタから検出されたCPU周波数に基づいてルックアップテーブルから抽出されます。
Delay50uTimes:この関数は、50 µsの倍数の遅延を生成します。この関数は、アキュムレータで乗算係数を受け入れ、アキュムレータがゼロになるまでDelay50u関数を呼び出します。関数は255の最大値を受け入れるため、可能な最大遅延は255 x 50 µs = 12.75msです。
これらの2つの機能は、LCDユーザーモジュールで使用される遅延機能からコピーされています。
Delay10msTimes:この関数は、10ミリ秒の倍数の遅延を生成します。この関数は、アキュムレータで乗算係数を受け入れます。関数は255の最大値を受け入れるため、可能な最大遅延は255 x 10 ms = 2.55sです。
「delay.h」は、上記の関数の関数プロトタイプを定義します。また、関数はfastcall16として宣言されているため、Cコンパイラは、Delay50uTimes / Delay10msTimes関数を呼び出すときにアキュムレータで乗算係数を渡す必要があることを認識します。
プロジェクトで遅延関数を使用するには、次のようにします。
==============================
25-Nov-2020