「XC8でDelay関数を使う」の編集履歴(バックアップ)一覧はこちら

XC8でDelay関数を使う」(2012/11/25 (日) 15:40:49) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

XC8コンパイラを使ってLチカプログラムを書こうとしたら、C18で慣れ親しんだDelay関数がないと言われ、解決方法やら諸々がわかったのでまとめ。 前提条件として・・・ PIC:16F720 コンパイラ:XC8 v1.11 IDE:MPLAB X IDE v1.50 OS:Windows7 x64 *includeフォルダのdelays.hは18シリーズ向け ヘッダファイルを開いて見るとわかる通り、18シリーズ向けでしか使えないようマクロが入っています。つまり16シリーズではdelays.hをインクルードしても使えません。 *XC8のマニュアルを開いてみる XC8のマニュアルはIDEから「Help」→「Help Contents」から参照できます。 XC8 Toolchain」→「MPLAB XC8 C Compiler」→「Library Functions」→「_DELAY()」にありました。 サンプルコードからわかる通りxc.hのみインクルードすれば良いようです。 また__delay_us()関数と__delay_ms()関数に関してはxc.hをインクルードした後に_XTAL_FREQをPICのクロック周波数で宣言するようにとのこと。 *_delay()関数の実体はどこへ? delays.hが16シリーズで使えない以上、別なところに実体があるはずです。 IDE上からジャンプしてみると、pic.hの151行目に実体がありました。 この様子だと18シリーズを使う場合でもdelays.hをインクルードせずとも使えそうです。delays.hは過去のソースを使えるようにするための措置でしょうか。  

表示オプション

横に並べて表示:
変化行の前後のみ表示: