PIC初心者用掲示板

★★ 質問する前に下記をチェック ★★
(PICに関する疑問は必ず解決するはず)
←←←「電子工作の実験室」へ
←←←← 

■最新ツリー一覧

□このツリー付近のツリー一覧

★新規ツリー作成

◆ 9536. 言語について [超〜初心者2006/02/09 15:02


9536. 言語について [超〜初心者2006/02/09 15:02
PICにプログラムを書き込もうと考えているのですが
アセンブリ語とC言語どちらがよいのでしょうか??
お勧めはどちらですか??
大きな違いってありますか?

9538. Re: 言語について [sss2006/02/09 15:47
>お勧めはどちらですか??

一概には、言えません。それぞれ特徴があり、使う人、使う環境などなどにより変化すると思います。
大胆に一言で言うなら、「お好きなほう」をまずやってみたらどうでしょう。

>大きな違いってありますか?

言わずもがな…のような気がします…。

9540. Re: 言語について [本当の初心者2006/02/09 17:55
私は今アセンブラを勉強中ですが、何年か前にC言語入門の本を読みましたが、その難解さに挫折しました。
Cは一般的にむずかしいとされていますが、有能なる諸先輩の方々はどのようにしてマスターされたのでしょうか?
本一冊読む程度で理解できものなのでしょうか?

9541. Re: 言語について [本当の初心者2006/02/09 18:38
書き忘れましたが、C言語がわかる人が初心者を名乗るのはやめてほしい。

9542. Re: 言語について [ 2006/02/09 19:05
>本一冊読む程度で理解できものなのでしょうか?

アセンブラもC言語も本を読んだだけで理解できる人は極わずかな人だけです。
通常は本を読み、プログラムを書き実行させて理解して行くのではないでしょうか?

勉強するならC言語が良いと思います。
理由はPIC以外のマイコンをやる時にスムーズに以降できるからです。

C言語がわかってもPIC初心者の人はいるので問題ないでしょう。
それよりも数年前から勉強を始めている人こそ初心者の看板を早く次の初心者に渡すべきだと思います。

9548. Re: 言語について [徹底的に初心者2006/02/09 21:13
>PICにプログラムを書き込もうと考えているのですが
>アセンブリ語とC言語どちらがよいのでしょうか??
>お勧めはどちらですか??
>大きな違いってありますか?
アセンブラがわかった上でCでかくのが最良だと思います。

Cで書くと、めちゃめちゃ見やすくて楽ちんです。
例えば、ADコンバータで取り込んだアナログ電圧を
RS232Cで小数点付きでPCに送信、表示する、という場合
(CCS-C、Vref=5Vね)

printf("ただ今の電圧= %f\r\n',(float)(read_adc()/256)*5.0 );

たったこれだけで終わり。
これをアセンブラで書いてみて。
結果は容易に想像できますよね。

また、Cで書くとあの面倒な「バンク切り替え」は
必要ありません。
コンパイラ君がちゃんとやってくれます。

目的の番地に目的の数値を書き込むときも、
#byte CMCON 0x9e  (←アドレス値は適当)

CMCON = 0x07;   // デジタルI/Oにセットする

と書くことができて、めちゃめちゃ見やすいでしょ。

9549. Re: 言語について [オレも天狗2006/02/09 21:18
>書き忘れましたが、C言語がわかる人が初心者を名乗るのはやめてほしい。

CなんかOS記述言語で留めてりゃ良いのにね。

でも、C言語バリバリでもPICはじめてって言う人も居るよ!

ミッドレンジはアセンブラに限る。なんて言ったて簡単。
ハードを理解するにはアセンブリ言語は必須だよ。

9550. Re: 言語について [PICマスター2006/02/09 22:05
>大きな違いってありますか?
ありませんね。
いずれかに集中してやればいいでしょう。

ところで、アセンブラだCだと言う前に、PICと
その周辺のハードウェアを理解しないと駄目
ですよ。

その辺を勘違いしている初心者多し。

9551. Re: 言語について [77002006/02/09 22:33
使うデバイスによっても考えたほうがいいでしょう。

16F84Aならフリーで使えるコンパイラもありますが、
それ以外のPICとなると、アマチュアにとっては高価なソフトが必要になります。

9552. Re: 言語について [さとう2006/02/09 22:42
私は、場合によると思いますけど。何をどんな風に制御したいのか?、と言うことで変わる様な気がします。
瞬時瞬時の制御が必要な場合等は、Cでどれほど緻密な物が組めるのか私は理解出来ておりません。
例えば、ロボコンの優勝チームのマシン、又は、上位チームのマシンが、どれほどCで組んであるか?
興味のあるところです。
Cなら、LCD表示作業中に、割り込み処理も出来るというのでしたら良いのですけどね。
意外と、出来たりするのかなぁ...

9553. Re: 言語について [徹底的に初心者2006/02/10 00:13
>Cなら、LCD表示作業中に、割り込み処理も出来るというのでしたら良いのですけどね。
>意外と、出来たりするのかなぁ...
はい、意外とできたりします。
mainでLCDを表示して、割り込みで時間を計るとかですよね?
それなら楽勝です。

ていうか、普通Cだと割り込みができないものなのでしょうか? PICにしろ、H8にしろ割り込みの書けない
Cコンパイラってないと思うけど。

9555. Re: 言語について [片山2006/02/10 09:53
>PICにプログラムを書き込もうと考えているのですが
>アセンブリ語とC言語どちらがよいのでしょうか??
>お勧めはどちらですか??
>大きな違いってありますか?

18シリーズを使うとすれば、
目的により違うと思いますが、
学習目的ならば、まずはアセンブラでやるほうが良いでしょう。PICの勉強になります。
とり急ぎ、早く動かしたならば、C言語言語のほう良いでしょう。断然開発効率はいいですし、PICについて理解が浅くてもある程度のものは出来ます。ただ、使い込んでいくと時々、痒いところに手が届かない的なこともあります。HEXファイルも大きくなります。

16シリーズ以下ならば、迷わずアセンブラをすすめます。

9558. Re: 言語について [yammay272006/02/10 12:37
時々出没して書き込んだりするノービスな私です。

アセンブラとCのどっちが良いか激論が交わされております。
超〜初心者さんがホビーであるという前提で、Cに一票入れたいと思います。

とある初心者の"私感"で言いますと断然Cが良いと思います。
これもまたすごく私感ですがCCS-Cが良いですね。
http://www.datadynamics.co.jp/ccs/ccsorder.html

私の使っているPCMは\24900とホビーユースには敷居が高く感じますが、アセンブラで悩んだ時間との差し引きはお得だと思いますよ。
純ホビーなら時間とお金の兼ね合いが人によって大きく変わりますけどね(^^;
またgoogったものや本ページ後関さんのサンプルもCCS-Cが結構あります。これも初心者に高得点だと思う根拠です。
コピーして試して動いて。これが肝心だと思います。

どなたかも書かれていますが、初心者の方が手始めにprintf出力をシリアルに出すとなるとアセンブラで組んだらめまいすること必至です(自身の経験w)
アセンブラで始めると「楽しそうだからやってみよう!」という心意気がずんずんすり減っていくのがわかったりします(苦笑

PICを始めたきっかけとなった2ポート異速度シリアルリピーターを作っていたときのことです。
アセンブラで脂汗をかきながら格闘しているとき、ふと有料ながらCCS-Cが簡単にシリアルを扱えることを知り目をつぶって購入しました。
サンプルを見ながらものの数時間で望みの動作が出来上がり、猛烈に感動した記憶が今も新しいです。

ここが私の言いたい論旨!
出来た!動いた!という感動を次のステップ(アセンブラやハード)へのエネルギーとするならば!
CCS-C PCM \24900! 無駄にならないと思いますよ ※回し者ではありません念のため(^^;

アセンブラ or Cどっちで始めても楽しいホビーになりますようこの掲示板時々覗いてみて下さい。
見るだけでもかな〜り役に立ちます。

9561. Re: 言語について [   2006/02/10 16:33
>私の使っているPCMは\24900

$125で買えます。今のレートが$1=\118.4とすると\14800くらいです。
http://www.ccsinfo.com/cgi-bin/order.cgi
「Do not ship media, Email download instructions - $0」なら送料も不要です。

でもCCSCを使って楽するのもいいけど、学習目的なら標準関数や便利なビルトイン関数を
一切使わずにプログラムを作ってみることを薦めます。
そうするとフリーのCでも十分。