追記 2014/11/25
匿名コメントにて「MPLAB X IDE v2.25を再インストールしたら解決した」との情報をいただきましたので,検証してみました. 情報をご提供いただき,ありがとうございました.
私の検証環境は,本投稿の解決方法が未適用の,Windows Server 2008 + MPLAB X IDE v2.15 + MPLAB XC8 Compiler v1.32という構成です. 検証環境においてMPLAB X IDE v2.15のみアンインストールし,2014年11月25日現在の最新バージョン,MPLAB X IDE v2.26をインストールしました. この結果,いただいた情報のとおり,エラー(警告)マークが表示されなくなりました.
問題が解決されたMPLAB X IDEのバージョンや,どのバージョンのMPLAB XC8 Compilerをインストールしていても同様に解決するのかについては未確認です. 詳細については,リリースノートなどを確認する必要があるでしょう. とりあえず,エラー(警告)マークの表示でお悩み方は,最新バージョンのMPLAB X IDEの導入をお試しください.
問題の概要,既存情報
Microchip Technology社のPIC16Fマイコン向けのプログラム開発を,MPLAB X IDEとMPLAB XC8 C Compilerの組み合わせで行っています.ここで気になるのが,__delay_ms関数と__delay_us関数を使用した際に表示されるエラー(警告)マークです.テキストエディタの該当箇所にオンマウスすると,「Unable to resolve identifier __delay_ms」などとメッセージが表示されます.しかしながら,文法や関数の利用方法には問題はなく,コンパイルを試行すると成功しますし,PIC上でも意図した動作を再現してくれます.
__delay_ms関数にエラー(警告)マークが表示される
ということで,無視すれば良いものといえばそうなのですが,やはり気になります.そこで,このエラーが表示されなくなる方法がないか調べてみました.
Googleで検索すると,下記のように,同じ症状は1年以上前から報告されていることがわかりました.
しかしながら,本記事投稿現在の最新版のXC8 v1.21でも,この問題は解決されていません. さらに調べてみると,解決方法はYahoo! 知恵袋の下記のQ&Aで紹介されていました.
- PIC XC8で__delay_ms()にエラーが出る
回答内で,Microchipのフォーラムのスレッド「When will XC8 have a "delay" function?」の記述が紹介されています.
解決方法
上記によれば,XC8のインストールディレクトリ内の「include」ディレクトリ内にある「pic.h」の146行目を編集すると良いとのことです.具体的には下記の記述を,
次のように変更し,MPLAB X IDEを再起動すれば解決するというものでした.
結果,見事に問題が解決しました.気になる表示が消えてスッキリしました.
問題の解決後のテキストエディタ
XC8が登場してから1年以上経過しましたが,まだまだHi-TECH CやCCS-Cのユーザの方が多い気がします.
XC8は結構頻繁にアップデートされているようですので,レガシー・デバイス脱却とともに開発環境も更新してみてはいかがでしょうか.
製品紹介
技術評論社
売り上げランキング: 119,862