• 締切済み

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

undemandeの回答

回答No.4

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

関連する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() { この中身の記述方法が分かりません。 教えていただけないでしょうか? } よろしくお願いします。