• 締切済み

PICのCコンパイラーについて

PICのCコンパイラーでどれを使うかで迷っています。 高価なものでCCS社やmicrochipのものがいいかなと思うんですが、 やはり安く済まそうと思うとmikroCやBoostCがやすいかなって思います。安いにこしたことはないんですが、購入後に不便に感じて、あっちのコンパイラーをにしとけば良かったなどと後悔したくもありません。 実際、ある程度の経験がないとそれぞれの(コンパイラーの)長所と短所が見えてこない気がしましたので、お伺いします。 説明がわかりづらいかもしれませんが、よろしくお願いします。

みんなの回答

回答No.4

貴方がお仕事として、PICを使って商売をされるのであれば、有償の保証のあるコンパイラーを使うべきです。 もしも、趣味としてPICのプログラミングをするのであれば、無償のMicrochip社からダウンロードできる無償のCコンパイラーで何も問題ありません。(もちろん有償版もダウンロードできます) Micorochip社製Cと旧HI-TECH 社製のCがそれぞれのチップ毎に一部重複しながら存在します。 また、HI-TECH社は以前にMicrochip社に合併されました。現在はどちらも純正品としてサポートされています。 どちらも、MPLAB IDEやMPLAB X上の統合開発環境で使用できます。 無償版は、Pro版をダウンロードして、インストールの際にLiteモードで使用する宣言をすれば、無償板として使用できます。制限は最適化が使用できないだけで、他の請願は現在はありません。全ての機能が使用できます。 有償版と、無償版の違いは、最適化が使えるか使えないかの違いしかありません。 C言語コンパイラーの吐き出したアセンブラーソースがいかに短く表現されているかが違います。 最適化の有無で、発生するアセンブラーソースコードの大きさは2~3倍も違いますが、決して最適化されていないソースコードの処理が遅くて使いものにならないことなどはありません。 小型マイコンの様なメモリー資源の少ないマイコン上で、いかにメモリーを節約して使うかは、プロの世界では死活問題になります。ですから、最適化にによって見かけ上どれだけより多くのプログラミングが出来るかは、重要な事なのです。 趣味ではメモリーの目いっぱいまでプログラムすることはあまりありませんし、そのことが死活問題にはなりません。

  • yf491224
  • ベストアンサー率0% (0/1)
回答No.3

先日の私の発言を訂正します。 HI-TEC社が出しているフリーCコンパイラーはPIC C LITE(または C Pro)です。 C LITEは、PICの種類ごとに分かれていますのでHI-TECのHPで必要なものをダウンロードしてください。ダウンロードの際は登録しなくてはいけません。このコンパイラには、Editorがついてきてます。 MPLAB IDEはMicrochip社製です。現在のバージョンは「8.14」です。 またサンプルコードもついているので、とても重宝するとおもいます。 良かったら、使ってみてください。 エディターに関してはMPLABを使用するかCコンパイラに付属のを使用するかはご自身でお決めください。 このコンパイラーを使ったPICのプログラミングは、オーム者から出ている「C言語ではじめるPICマイコン フリーのCコンパイラではじめよう」という本で紹介されています。  また、この本に掲載されているソースコードは本に掲載されているURLよりダウンロードできます。

参考URL:
http://www.ne.jp/asahi/niko.niko/neko/cpic_code.htm
  • yf491224
  • ベストアンサー率0% (0/1)
回答No.2

現在、わたしもC言語でPICマイコンをプログラミングしています。 私が使用しているのは、HI-TEC社が出している。フリーCコンパイラーでPIC C LITE(または C Pro)です。 C LITEはMPLAB IDE(Microchip社製)です。 たしか、MPLABに付属していると思います。またサンプルコードもついているので、とても重宝しています。C PROはHI-TECのHPからダウンロードできます。(確か登録しないとダウンロードできなかったと思った) 良かったら、使ってみてください。 このコンパイラーの使ったPICのプログラミングは、オーム者から出ている「C言語ではじめるPICマイコン フリーのCコンパイラではじめよう」で紹介されています。

  • inisisi
  • ベストアンサー率50% (1/2)
回答No.1

あなたが本当に超初心者なら参考になると思います。わたしは一ヶ月前までC言語もアセンブラも知識ゼロ。もちろんパソコンを自作したこともなければ、PICってなに?の自分でした。言葉(コンパイラとか書き込むとか組み込むなど)も知らなかった。お金もありません。そんな自分が始めたのを紹介します。ADWIN(広島本社の教材です)。http://www.adwin.com/elec/kitdeasobo/note_20.html この会社の学習キット(C言語)を購入しました。学習教科書(雑誌も含めて)はたくさん出版されていますが、超初心者の私はこの学習キットのおかげで入門することができました。この本の中にコンパイラはmicrochip社の無料のが紹介されています。またコンパイラはPICに限らずAVRもGCCなど私の知る限り全部無料配布のものがあるようです。またC言語は「方言」が多いそうです。ですからもしPICならmicrochip社のものを、AVRならGCCをつかうのが一番素直に使えると思います。わたしはその後このシリーズのアセンブラの教科書のみを追加購入してマブチモーターをセンサー制御できるようになりました。ただ「書き込み器(プログラマー)」は別途購入するかキット自作が必要です。キットの場合でも書き込みソフトは付属しています。念のため申し添えますが、この回答で使っている言葉は一ヶ月前まで知らなかった言葉です。またこの分野の初心者向けの各種教材や雑誌、参考書は必ず「内容訂正」の部分があります。サイトを開けばきちんと情報が書いてあります。教科書を開いたらまず最初に「訂正情報」をサイトで探して、文章を正しく直してから学習する必要があることも実感しました。わたしはまだ初心者です。そのうちにあなたに質問することがあるかもね。楽しんでがんばろうね。

参考URL:
http://www.adwin.com/elec/kitdeasobo/note_20.html
misaki972
質問者

お礼

早速のご回答ありがとうございます。こういうキットがあることを初めて知りました。 知識としては、ミドルレンジ(PIC16)ならアセンブラで一通り制御できる感じです。 ただ、複雑な制御(特に関数)を使うとなると、ハイエンド(PIC18)とかで、 C言語がいいのかなっと思っております。 確かにmicrochip純正でStudentEditionだとかで無料のものもありますね。 先ずは、無料の範囲でやってみるのがいいのかもしれませんね。

関連するQ&A

  • マイクロチップ社PIC用の Cコンパイラについて

    今までPICのプログラムを作るのにマイクロチップ社のアッセンブル言語を使っていましたが、今後もう少し複雑なプログラミングをしようと思っているのでC言語のコンパイラを購入しようと思っています。 ここで結構迷いまして、どのメーカーのコンパイラがいいか色々な意見を聞きたいために書き込みをしました。 コストパフォーマンスで考えていた候補が CCS-CかMikroCです。 試しにMikroCを使ってみたところ確かにあっという間にちょっとしたプログラムが作れるので快適なのですが、ソフト上のシミュレーション機能で変数の変化を見ると時々挙動が変だったりするのが気になります。 (知っておくべき知識があるのかバグなのかはわかりません)。 また、CCS-Cは若干値段が高く癖のあるC言語ということを聞きますが、人気があるように思えます。私は癖があってもそれを覚えればいいと楽観的なのですが・・。 PIC用のCコンパイラに見識がある方がおられれば意見をお聞かせいただければと思います。 こういうところはかなり問題だとか、こういう機能はすごく便利だとか、こっちの方がこうだから絶対お勧めだとか、なんでもいいので教えていただければ幸いです。 よろしくお願いします。  

  • PIC用のフリーCコンパイラはありますか?

    PICでプログラムを組みたくて、本屋で 「C言語によるPICプログラミング入門」 を買ってきました。 さて早速取り組もうと思ったのですが、いきなりCコンパイラは有料(高価)であるとのこと・・・T-T そこでフリーのCコンパイラについてご存知の方がいらっしゃいましたら紹介して頂けないでしょうか? 以上よろしくお願いします。

  • pic16FのコンパイルにCCSのCコンパイラ

    pic16FのコンパイルにCCSのCコンパイラをMPLABに統合した環境で使用しています。 大文字と小文字の区別をつけることは出来ないのでしょうか? 誰か教えてください。

  • PIC用のCコンパーラーの組み込み

    現在、PICマイコン用Cコンパイラー(デバッカー付き)をインストールしました。しかしながら、ふつうに使用すると、プロンプト画面からいちいちコマンド入力しなければいけないため、統合開発環境であるマイクロチップ社のMPLAB-IDEにCコンパイラ(デバッカ付き)を組み込もう としているのですが、説明書にそれらしいものが見あたりません。誰か、組み込み方を知っている人、教えて下さい。ちなみに、PICのCコンパイラは、(有)データダイナミクスの、PIC Cコンパイラ バージョン3、です

  • PICマイコンを使用した赤外線簡易リモコン

    PIC16F84Aを使って作れる赤外線リモコンの回路とプログラムを教えてください。赤外線の送受信部分の処理がよくわかりません。動作としては簡易的な物で十分ですTTLレベル出力で2チャンネルほどコントロールできればいいです。コンパイラはCCS社のCコンパイラです、アセンブラ(MPASM)でも結構です、PICを使用した電子工作の経験はあります。 よろしくお願いします。

  • PICでの入力カウントについて

    PICを最近はじめました。 スイッチを10回押せば、出力がONするようなプログラムを作るにはどうすればよろしいでしょうか? PICは16F819で、コンパイラはCCS社のPCMを使用しています。 わかる方、よろしくお願いいたします。

  • PICプログラム C言語とアセンブラ言語

    PIC18シリーズを使用して、プログラミングをしています。コンパイラはCCS-Cです。今まではすべてC言語で書いてきたのですが、アセンブラでしか設定ができない部分があり、今までのC言語のソースに加えてアセンブラを組み合わせようと思っているのですが、C言語とアセンブラを組み合わせることは可能なのでしょうか?

  • PIC16F84AのデバイスでC言語を用いて音を出したい

    PIC16F84AデバイスでCCS社のCコンパイラーを用いて音を出したいのですが、C言語の記述が分かりません。 音は、圧電ブザーで、Bポートの1つを使います。 Aポートの1つにスイッチを取り付け、スイッチが入ったら、音を鳴らしたいのですが、C言語で音階が記述できるんでしょうか? 簡単で良いので、C言語で、音を鳴らす記述を教えていただけないでしょうか?

  • PICのCCSコンパイラでのlong

    現在、PIC16f690のプログラムをCCS社のコンパイラを用いて作成しています。 longの変数に数値を入れ、それをPCにシリアル通信で表示しています。 long digi1; long digi2; digi1 = 500; digi2 = 500; printf("%lu",digi1); printf("%lu",digi2); 上記のような時、digi1の値はPCの通信ソフトでは,500と表示されます。 しかし、disi2は244と表示されます。 多分ですが、500 - 256 = 244 でint がオーバーフローしたような状態になっていると推測されます。 変数をlongで宣言しているのに、上記のようなことはありえるのでしょうか? コンパイラのバグでしょうか? なにかお分かりになられる方がいらっしゃいましたら、何卒ご教授よろしくお願い致します。

  • PICマイコンでLEDの点滅をC言語で記述法を教えてください

    PICマイコン(PIC16F84A)にLEDを1個接続し点滅だけのプログラムをC言語で記述を書きたいのですが、教えていただけないでしょうか? CCS社のコンパイラを用いた時の記述の書き方を教えていただけないでしょうか? 条件は、 ・電池を繋げるとLEDが点滅、スイッチ素子は用いません。 ・LEDは1秒間隔で点滅し、永遠に点滅 ・LEDは、PICマイコン(PIC16F84A)の9番ピン(RB3に該当)に接続 ・水晶発振子は、10MHzを使用。 ・コンパイラは、CCS社を使用 私が分かる範囲は下記なのですが、これから先の記述方法が分かりません。 #include <16f84a.h> #fuses HS, NOWDT, NOPROTECT #use delay(clock=10000000) #byte port_b=6 main() { この中身の記述方法が分かりません。 教えていただけないでしょうか? } よろしくお願いします。