• ベストアンサー

PICマイコンのC言語について

とりあえずカテゴリーはここでいいのかな?・・・。 PICマイコンでC言語を使いたいと考えております。本を色々みるとCでも何種類かあるようです・・。そこでこれからC言語を勉強しようと思っていますがどれがいいのでしょうか?というよりそれぞれどう違うのでしょうか?将来的にはPIC以外でもH8も使いたいと考えていますので共通で使用できるものはあるでしょうか? 初歩的かもしれませんがまだまだ素人なのでよろしくお願いします。 どうもCは色々ありすぎて何がなにやら・・・・。

質問者が選んだベストアンサー

  • ベストアンサー
  • Interest
  • ベストアンサー率31% (207/659)
回答No.2

PICもH8も両方使っていますが、残念ながら共通で使えるCコンパイラはありません。 > そこでこれからC言語を勉強しようと思っていますがどれがいいのでしょうか? 一般的なC言語を学んでからPICやH8に触れることをお勧めします。なぜなら、マイコンが動作する仕組みを理解するにはそれなりに労力が必要だからです。そして、マイコンを動かすためのCのソースコードを書くには、C言語について十分理解している必要があります。具体的には、「ポインタ」の仕組みを理解しているかどうかが重要です。PICに初めて触れつつC言語を学ぶのは負荷が二重になるのでお勧めしません。まずはC言語を一通り学んでからPICに入りましょう。 本については電子工作の実験室(http://www.picfun.com/)で有名な後閑さんが「C言語によるPICプログラミング入門」(http://www.picfun.com/picbook5.html)を書かれており、私もこの本を持っているのですが、(内容は良書ですが)使用しているコンパイラがCCS社のPCM(http://www.datadynamics.co.jp/ccs/ccsorder.html)なのでお勧めできません。 CCSのCコンパイラはそこそこ安価で、組み込み関数が豊富で前述のとおり書籍も出ており、使い勝手がよさそうですが、あまりにも独自路線なので、普通のC言語だと思っていると「あれ?」ということが発生します。 例えば、  int型は 8bit  short型は 1bit  long型は 16bit  float型は 32bitだがフォーマットはIEEE 754ではなく独自形式  関数へのポインタは使用不可 など、なんだそれ?と思うような仕様になっています。 そこでお勧めするCコンパイラは、HI-TECH社のHI-TECH C PRO (Lite mode)です。 http://microchip.htsoft.com/products/compilers/piccpro-modes.php お金を払って使うPro modeに比べてフリーで使えるLite modeは多少機能の制限がありますが、趣味や勉強で使う分には十分です。インストール方法を日本語で説明してくれているサイトもありますので、英語版だからといってビビらなくてもよいでしょう。 http://www.ne.jp/asahi/air/variable/picmel/index.htm ちなみに、Windows Vista上ではCCS PCMもHI-TECH Cもダメダメで、使うと必ず統合開発環境(MPLAB IDE)が落ちてしまいました。 まとめ。 * PICとH8、共通に使えるCコンパイラは無い。 * 普通のC言語を学んでからPICに進め。 * PIC用のCコンパイラはHI-TECH Cがお勧め。

poyo3
質問者

お礼

遅くなりましたが回答ありがとうございます。やはり都合よくは行かないんですね。なかなか壁が高そうですがやはり基本から地道にいくのがベストみたいですね。Cコンパイラまで紹介していただきありがとうございます。

その他の回答 (1)

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.1

> そこでこれからC言語を勉強しようと思っていますがどれがいいのでしょうか?というよりそれぞれどう違うのでしょうか? PICのコンパイラは癖が強く、方言もきついので、主だったものを実際に使ってみて、一番手になじむものを採用するのが一番です。 > 将来的にはPIC以外でもH8も使いたいと考えていますので共通で使用できるものはあるでしょうか? 無理です。 ソースコードレベルでの移植性もそれほど高くありませんので、共通化については余り期待しない方がよいでしょう。

poyo3
質問者

お礼

なるほど。マイコンの種類が変わると言う事は国が変わるようなものなのですね。その国の言葉で無いとだめと言う事ですか・・。 回答ありがとうございました。

関連するQ&A