1read 100read
2013年08月電気・電子22: pic初心者専用のスレ その1 (512) TOP カテ一覧 スレ一覧 2ch元 削除依頼
雑談すれ (110)
おいしくなーれ、もえもえきゅーん (113)
3Dプリンター 個人向け その4 (438)
【Renesas】ルネサス 78K R8C RL78 RX SH V850 6 (786)
おいしくなーれ、もえもえきゅーん (113)
3Dプリンター 個人向け その4 (438)

pic初心者専用のスレ その1


1 :2013/02/18 〜 最終レス :2013/08/02
PIC専用のスレはすでにありますが、敷居が高くて
初心者には質問がしにくいです。
そこで初心者専用のスレをたてました。

2 :
>>1


3 :
http://c.2ch.net/test/-/denki/1360674351/1
>アセンブラのアの字もわからない‥
そりゃアセンブラだって敷居高い罠。ブログラムのプの字レベルか?
てんぷら:
Q.picって何ですか? 電子工作でやたら出てくるんですが。
Q.あのICに書き込むとか、プログラムするとかありますがどういうことですか。
Q.picってどこ行けば手に入りますか?
Q.股間さんって誰ですか?
・・・だりか、A.を書いて。

4 :
どうすんだよ、このスレ。
そもそもPICは(マイコン)初心者向けじゃないし

5 :
初心者は別なの使うから
終了

6 :
>PIC12F675を実態図のように組んでみたのですが全くこれのLEDが点きません。
電池も電源もきているし、LEDの極性も確認しました。またPICがヌッ壊れた可能性も考えてもう一台作りました。
何がいけないんでしょうか?
なんてPCなしで組み立てるのがいたりするから必要なのさ、ここは2ch。
と言いつつも、厨ん時にZ−80でパソコン作る記事見て、組み立てればBASIC動くのできるかと思っていた。27C256そのままで。

7 :
PCなしで2chに書き込むとか最近の人は進んでいるね

8 :
ぼくはいつもそーですが何か

9 :
あっ、0x2chのレジスタへか! あれは何の設定だったっけ?

10 :
×:>>7
〇:>>8

11 :
初心者は写真や絵で説明しないと無理だと思うけど。。。 2chのテキストオンリーでは無理なんじゃね?

12 :
pic専用のスレは喧嘩ばっかだよw

13 :
あっちは喧嘩ばかりだから
とりあえずこちらはあまりギスギスしないといいな

14 :
あちらの人に発見されるから無理

15 :
まあ順序立ててこれから始める人向けに書いてみるか。
1.開発には何が必要なの?
PICKIT2か3。秋月電子あたりで購入しましょう
プログラムの開発ツール。microchipからMPLABをダウンロードしましょう
あとはググったりマニュアルを飲める程度の脳みそ。
分からないことはここで聞け。

入門用PICは16F88で良いかな?
16F84は作例や情報多いとはいえ、さすがにもう切っても良い時期だと思うんだ。

16 :
そうだな。16F84は無いわ。
せめて16F84Aだな。

17 :
マニュアルを飲める、じゃねえや読めるだw
さて言語はアセンブラかCか・・・ここで古老達の論争が始まりますw

最初は中身の動きもちょっとだけでも理解させたいので独断でアセンブラにするね。
最初の回路(LEDチカチカ)の回路図とソース、解説文をまとめてどっかに置くので週末まで待ってくれ。
一度にあまり大量に情報を与えないために、回路は電池駆動の内部発振にしとこう。
必要なパーツはユニバーサル基板の切れっ端、PIC16F88、乾電池2本、赤色LED、1k抵抗1本。

18 :
>>15
>最初は中身の動きもちょっとだけでも理解させたい
上から目線が、なんとも言えませんね。
>まあ順序立ててこれから始める人向けに書いてみるか。
誰も頼んでいないけどね。
ネットにたくさん写真入りで出ているから、それ以上の物をお願いね。
>入門用PICは16F88で良いかな?
なんで今更、わかりにくい16Fなの?
24のほうがストレートでわかりやすいのに。

19 :
>>18
相手する価値無いと思うけど?キミも同レベルならしょうがないが。

20 :
>>18
まあ、いいんじゃないのやってくれると言うんだから、お手並み拝見といこうじゃないの。
24Fを薦めるなら、>>18みたいにプロモーションしてよ。

21 :
間違えた
>>18
まあ、いいんじゃないのやってくれると言うんだから、お手並み拝見といこうじゃないの。
24Fを薦めるなら、>>15みたいにプロモーションしてよ。

22 :
今日はもう寝ろ>>21

23 :
18Fでやってよ

24 :
初心者一人もいなかったりしてw

25 :
アセンブラで始めるのは良いと思う
ある程度経験してからCに移ったとき理解しやすい

26 :
マイコンの勉強という意味ではアセンブラがいいね

27 :
誰か初心者来ないかな、待ちわびてる人たちのスレ。

28 :
異論は認める。
ゼロから始める人には、電子工作の実験室は
どこから読み始めて最初に何を作ったら良いのかわからんと思うんだ。
他の入門書とかも最初に色々一度に教えすぎて読むのが辛い。

まずベースになる最低限の構成で動く実物を作り、
あとは動かしながらその基板に機能を継ぎ足してゆく方針にすれば
とっつきやすいんでは無いかと考えた。

29 :
16系にしても、これから始める人にF88は無いわ
出た当時は画期的だったし、超多機能だったけど、無理に機能詰め込んで
ピン配置は変態的だし、過渡期だったのもあってI2C無いとか、ハンパな所あるし
まあ、オレも結構使ったし、今でも手持ち結構持ってるけど、
これから始めるなら16F1827あたりがいいんじゃね?

30 :
おいおい 1827と88のピン配置は同じだろ。

31 :
APFCONで振り替えできるようになってんじゃん
っていうかAPFCONで弄ればF88互換にできるようになってるだけ

32 :
初心者は16F688がいいいと思うよ。安くて14ピンでコンパクト。

-◎16F688 \110 ADC有,eUSART有,4Kw,内蔵31k-8MHz,CCP無が残念

33 :
わかりやすさで言ったら16F84Aの右に出るものはいない
なにしろ周辺がなんにもついてない
それでいて割り込みは使える←結構重要

34 :
割り込みのないマイコンに価値はない、
って、言い過ぎ?
タイマー割り込みと、外部割り込みがあれば、大抵オッケー

35 :
ローラさん乙

36 :
16F88の方がマシだろ。

37 :
>>1
敷居が高いは意味が違うぞ

38 :
ラダーを標準にしよう

39 :
私もあちらから逃げてきました。
私はアセンブラ派なのですが、初心用にはバンクを意識しなくてよい10F322を推します。
割り込みもあり、機能豊富です。昔の509のようにサブルーチン配置の制約もありません。

40 :
「生涯エンジニアの◯◯◯」に良いこと書いてあるな
「朝の工作室 PICを勉強するにはどうしたらいいかへの返答」

41 :
初心者にアセンブラすすめるのヤメロ
PCのプログラミング思考にも繋がるCでやらせれ
初心者はCだけでいいのです
逆にCを切っ掛けに、
その先にあるライブラリの使い方や
オブジェクト指向の言語を覚えていけばいいのです
先が広がります
アセンブラに手を出すと、コンパイラより俺の方が優れているという認識が先に来てしまい
視野が狭くなる傾向になります

42 :
Cでは、一行で書けるのに、アセンブラは何行になることか。
if((a%13)>>5){


43 :
どちらのスレも同じような流れになっている
優劣論はやめたい、所詮一長一短
アセンブラは習熟できなくても、簡単なプログラムでも体験しておけば
デバイスの仕組みや挙動を理解できる
そうするとCのメリットもデメリット、賢い使い方も見えてくる

44 :
いつだかこんなのがあったらしい。

もし「持ち物」が0ならば
“持ち物がありません”をボタンリスト:{“OK”}、デフォルトボタン:“OK”で表示する
以上
と書けば。
if myItem = 0 then
display dialog "持ち物がありません" buttons {"OK"} default button "OK"
end if
みたいなのになる日本語スクリプトがあったとか。
これ、やろうと思えば自分でそんなコンパイラできそうだな。
オリジナルはマッキントッシュのスクリプトにあったらしい。

45 :
ラダーでいいのに

46 :
らだーは、レーシングするよね

47 :
そもそもC使いとアセンブラ使いを別々に考えてるのがよくわからないな
C使いならインラインアセンブラ使うだろう、PICなら特に
もうアセンブラしか解らないオッサンが荒らしてるんだろうなあ

48 :
プログラミングの経験のある初心者には C を奨めるけどなあ、
Javascript さえ知らない初心者にはアセンブラを奨めるなあ。
( C は意外と細かい文法が多くて習得に時間がかかる ミ'ω ` ミ )
数学計算は、あきらめれ。

49 :
アセンブラを使う人
1.Cが理解出来ないから
2.Cの吐くコードが醜いから
3.ドM

50 :
100本のプログラムのうち、Cで書けないものは、龍角散、間違えた、5本くらいだよね。

51 :
まあ大体のことは、アセンブラなんか使わなくてもCで書ける。そういうもんだ。

52 :
はいはいそういうことそういうこと
あっちで勝てそうにないからってこっちで背伸びしないでほしいな

53 :
通販で住所を記入するとき「(全角)」とあると、萎えてしまう。
なんで英数字を「全角」で書かなければならないんだ。
そんなの、システム作った人の都合だろうに。
そのくせ、電話番号は半角数字で書かせるんだから、わけがわからん。

54 :
全角半角言ってる人って頭悪そう。
単なる文字コードを個々の環境によって幅広め/狭めに表示してるだけなのに。

55 :
だよね、システム設計が悪すぎる。
どちらでも有効なように作るのが、優れた設計者だと思う。
ローマ字入力の人は、融通がきかないから。

56 :
pic初心者専用のスレ

57 :
>>53
PICと関係ない。ただ知り範囲でコメントすると
昔郵政省はパソコン等で宛名印刷するときの仕様として
住所表記の番地等の英数字を全角で印刷するよう指定していた。
当時のおバカなOCRへの配慮だったのだろう。今は知らん。
そのため、住所表記部分はすべて全角でないと受け付けないフォームが
広がってしまった(サーバーで勝手に変換しろといつも思っていた)。
さぁ、こんな話題忘れよう。

58 :
そうだよね、忘れよう。
以前、◯◯◯という旅行会社で、ツアーを申し込もうとして、
住所を全角で書けとなっていて、全角数字の入力のしかたがわからず、
申し込むのをやめた事があるよ。
英数を全角で入力させる、あるいは表示しているページ、最低。

59 :
>>307
言えてるね。
英数を全角で書くと、何か嬉しいことがあるんだろうか?

60 :
PICの場合、有料Cと無料Cがあるから。
お金持ちなら迷わず有料C。
社会人時間なし金なし初心者は、サイズが大きくなって冗長度が増すけど、無料C。
学生なら時間はあるから、PICのアセンブラくらいなら覚えられるんじゃないか?

61 :
ちなみに、変数に漢字が使えるCコンパイラって、あるの?
if( 月==4'd2 ) begin
  季節 <= 8'h4e;
end else begin
  季節 <= 8'hff;
end

62 :
>>61
PICでは使えないが、変数に漢字はJavaなら使える。
半角全角厨はいい加減時代に取り残されてることを自覚するべき。

63 :
>>62
おお、使える言語があるのですか。
すると、
  金額 = 単価 * 数量;
みたいな感じで出来るのでしょうか?

64 :
>>44みたいに、
if → もし (ならば)
and → と、
for → が 〜まで


てのにしたの作ってよ。それで小坊が凄いの作ったりして‥

65 :
なでしこって言語はどう?

66 :
たしか、いつだかの時代AIってのあって、普通に人が使う言葉を機械がわかる(って用途だっけ?)って工学あったような。
その場合例えば、
主モーターはどの保護SWが作動しても必ず緊急停止する。
なんてでいけるとか。
でも、その作動ってまずいことの時OFFになるのが多いけどモノによってはONってのある。
あと必ず停止っても、いずれ止まればってことで別タスク終わってからとか‥ 『すぐに』で__ATT なんて宣言になる?

67 :
ロゴライターとかもあったな
小学校のpc98かなんかに入ってた記憶が

68 :
久々にPICやっているがxc8成るものが出たんだね。
c18とほぼ同じだからスラスラ行けるかとおもいきや
EUSARTの読込の割込の仕方がわからない状態です。
_asm→#adm , _endadm→ #endasm
に変わったのは良いですが
#pragma code high_vector=0x8
#pragma interrupt high_isr
#pragma code low_vector=0x18
#pragma interruptlow low_isr
辺りをどう変更したらいいのやら…。
関係ないと思いますがPIC18F4550使ってます。
c18を使えばなんの問題もないのでしょうが、新しい方でトライしたい気分です。
もしよろしかったらご教授頂けないでしょうか?

69 :
これからXC8です。便乗です。仕様の違いがわかる方なら平気なのでしょうが、
やっとCを勉強したところなので不安です。XC8のリファレンス資料ってあるのでしょうか。

70 :
68です。
自己レス
下記と、ヘルプを頼りになんとかわかった気がします。
ttp://technologicaladvance.blog.fc2.com/blog-entry-20.html
今回の場合、下記のように関数名を定義
関数名はどうでもいいみたいです。
ヘルプより
void interrupt tc_int(void)
void interrupt low_priority tc_clr(void)
>> 69
英語でもOKならMPLABXのヘルプからかなり細かい内容がわかりますよ。
でも、情報量が多いので大変そうですが…。

71 :
68,70です。
きちんと割込かかりました。
その他周りのロジック合わせて作りましたが、上手く言っている感じです。

72 :
>>63
JavaならUnicode使ってそんな感じで書けるよ
やってみたら、結局、英数字でいいやって思うと思うけど

73 :
>>70
リンク先のソース、タイマーとかの設定前に『GIE=1;』としてるのが気持ち悪いな。
まあ、PIC内部ではリセット直後の割込み許可は全てOFFになってるんだろうが。

74 :
>>70
69です。ありがとうございます。文法をざっと理解して、これからMPLABXなので覚悟します。
英文で情報量が多いと私は日本語のようにざっと目を通せないので辛いですね。
PICアセンブラの経験しかないので最初はサンプルを試してと思ったのですが、
HI-TECH Cコンパイラのフリー版はPICC Lite からPRO、XC8と変わってきたようで(違っていたらご指摘ください)
しばらくエラーと悪戦苦闘になりそうです。

75 :
今更とは思うけど英文ユーザーガイドは
インストールされたフォルダの XC8>v1.xx>doc>manual.pdf
ざっと見た所ヘルプとたいした違いはなさそう

76 :
私も最近xc8でCを始めたんだけど、ネットで見つけたプログラムが
main()
{
 OSCCON=0;
 PORTC=PORTA=0;
 while(1){
  TRISA=0x1F;
  TRISC=0x0F;
  RA5^=1;
  __delay_ms(JIKAN);
と、アセンブラとは違ってピン設定がwhile(1)の中にあるってなんか
変な感じがする。これでいいんだろうか?

77 :
>>76
問題はないかもしれないが、無駄。
アセンブラとかC言語とかには関係ない。

78 :
>>76
main()を、} で綴じて欲しい。見るたびに気になる。

79 :
main() 以前にループが閉じてない。
次の行に break があったりしてな ミ'ω ` ミ goto?

80 :
初心者さんが来てくれてよかったね

81 :
フレームワークって、活用してますか

82 :
今までアセンブラでやってきたんですが、今度xc8を学ぼうと思ってます。
c言語っていろいろあってなんか混乱してます。
xc8が学べる本、サイトを紹介してください。

83 :
>>82
XC8 は、ほぼ HI-TECH C

84 :
>>82
もうアセンブリには戻れんよ。

85 :
もうアセンブリには戻れんであろうが、
ちょくちょく逆アセンブルして出たコードを眺めるだろうなあ ミ'ω ` ミ
実行回数の多いループ部分とか、
シフト回数が切り替わるプログラム:
a = b >> n
とか、どうコンパイルされるか気になるはず。n が 1, 4, 7 の 3 通りの値しか
とらない場合、break の無い switch 文で順に下へ落ちて行くように書いて
得するかな、とか。

86 :
>>83
ありがとうございます。
なるほど、XC8で書かれたプログラムは検索しても見つからないんですが、
HI-TECH Cで検索するといっぱいありますね。
これは、XC8向けの入門書書いたら、ぜったい売れるとおもうな。
XC8 とHI-TECH Cはかなり違うようだから。

87 :
XC8(HI-TECH C も?)は、switch - case 文使うと稀に、
can't find 0x410 words (0x410 withtotal) for psect ”swtext1” in segment ”CONST”
とかいう原因不明なエラーがリンカーで発生する。
単純なswitch - case で発生する事もあるし、
複雑なswitch - case でも発生しない事もある。
早く直して欲しい。

88 :
PIC(C言語)初心者で、3*3のLEDキューブを作っていまして、ランダムな数字を発生させる時に、
欲しい範囲の乱数を発生させることが出来ずに悩んでいます。
0から9の乱数なら
a = (((double)rand()) / 32768.0) * 10.0;
で良いと言う記述をググって見つけたのですが、
自分の場合、0から3と0から7の種類を作りたいのですが、
単純に上記の式の *10.0を4と8にしてもうまく行きませんでした。
C言語自体初めてなので、考え方に困っております。
mikroCを使っています。
お詳しい方のアドバイスなど、よろしくお願いします。

89 :
10.0でうまくいったの?

90 :
>>88
RAND_MAX とかねぇの?

91 :
char a;
a = rand();
a = a / 256 * 8;

92 :
>>88
剰余の計算で求めるのはどうかと
char a;
a = (char)(rand() % 4)

93 :
>>88
0から3
a = rand() & 3;
0から7
a = rand() & 7;
RAND_MAX気にしないなら↑でいけるだろ。

94 :
PICのrandって偶数奇数が交互に出たりしない?

95 :
皆さま、レスありがとうございます。
現在の回路では、RA0からRA3までとRB0からRB7までのポートを使っていますが、
ネットで見かけた、上に書いた式では、当初*10.0のところを変えても無理でしたので、
*10.0でもしましたがうまく動きませんでした。

アドバイスを頂きました式を使って試して見ます。

96 :
アセンブラの場合は「時間」をつくるのに計算でかなり正確な時間を作れました。
しかしxc8では__delay_ms(); 関数でつくってもそうとうな誤差がでます。
みなさんこうゆうのはどう対処してるんですか。

97 :
そりゃあアレよ、「アセンブラで作る」

98 :
Z80 で、途中どう分岐しても同クロック数でもとに戻るループを作ったなあ。
Z80 の場合、NOP だけで調整しきれないから、一つ先に跳ぶジャンプ命令などの
「意味無ぇー」 命令を組み合わせたなあ ミ'ω ` ミ

99 :
>>98
PICに無関係な迷惑なゴミ

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
【MELSEC】シーケンサ・PLCラダー総合スレ 4台目【SYSMAC】 (756)
Raspberry PiとかBeagle Boardとかを語るスレ (256)
電気工作入門者・初心者の集うスレ 51 (235)
【FPGA/CPLD】 XILINX/ALTERA/Lattice/Actel 19 (116)
おいしくなーれ、もえもえきゅーん (113)
CQ出版総合スレッド 2冊目 (115)
--log9.info------------------
ハイビジョン放送って何でMPEG2なの? (140)
DTVはnyの言い訳と成り得るか?徹底討論しゃべり場 (101)
【フリーオ】録画したMpegTSでDVD-Videoを作るスレ (124)
KORG KAOSS PAD lt;entrancergt;! (100)
【人間工学】Macは最強 美の極み【最先端技術】 (116)
血迷ったかジョーダン?DivX Pro Video Encoder Pack (168)
HL-79シリーズを語ってくれ (122)
お前らのショボイAvisynthスクリプト貼ってください part4 (119)
[0Mbps?]PT1,2でDropを無くすスレ![環境見直し?] (167)
【PRO-G】動画カッターを買った【良く切れなカッター】 (177)
【DTV住人の】MTVGA9600XTを語ろう!【新定番】 (197)
短期集中!『MTV3000W』買った奴が自慢するスレ (160)
PCで地デジを録画することの意義について (135)
ビデオテープの代わりにDVD-Rを使いたい! (175)
ぶっちゃけ制作料金っていくらよ? (117)
24時間テレビを15Mbpsで録画するスレ (118)
--log55.com------------------
【新型肺炎】国内で感染が確認された場合、法律に基づいて強制的な措置をとることができる「指定感染症」に。安倍首相
【研究/生物学】同性愛は人類にとって社会的な「競争優位性」があったから進化してきた
【地方創生の“厳しい現実“】「破れたバケツ」状態の人口流出を防げ 幻想の地方創生 東京一極集中は止まらない ★2
【世論調査】安倍内閣「支持」30.3% 前回比11.1ポイント減
【新型肺炎】「マスク値下げしました。中国頑張れ」日本のPOP、中国SNSで話題…「感動。泣きそう」「日本人にも良心のある人がいる」 ★2
【鉄道】積雪5センチでダイヤ混乱、首都圏鉄道が雪に強くなれない理由
【渋谷】マンションから300キロのひさし落下 男性2人下敷き
【新型肺炎】日本国内で4人目の感染者 武漢から来日 バスツアーで複数の府県めぐる 愛知で入院 ★14