初めてのPIC 0x0e
■ このスレッドは過去ログ倉庫に格納されています
.
_ _ PICをさわるのは今日が初めて、という超初心者のためのスレです。
(O>――<O) PIC選び、PICを使った回路は、誰でも最初は不安なものです。
/ (・) (・) ヽ 恥ずかしがらずに何でも聞いてください。速攻で教えてくれますよ。
○ /▼\ ○ 質問のしかたは、初心者質問スレの発言1を見てくださいね。
|(ヽ二フ ) |
/  ̄ ̄ ̄ ヽ
f ヽ / | PIC関係のスレは、レベルに合わせて以下のスレもありますので、活用しましょう。
ヽ \ / ノ ・PIC専用のスレ
| \_ )(_/ ! 本家本元のPICスレです。口の悪い人もいますが、楽しくやってるみたい。
| | ここの話がわかるようになれば、あなたはもう一人前のPICerです。
| | ・マイコンソフト 悩み事相談室
| | ̄ ̄| | マイコンソフトやツールの質問は、こちらでどうぞ。的確な回答があります。
(_ノ ヽ_)
質問する時のコツ
・性格の悪い回答者はスルーしよう(相手すると逆効果)
・素人玄人などと 上から目線の回答者は、無視してください。相手してはいけません。
・そこそこ良い回答が出るまでしばらく再発言しないのもあり(良回答は後に出やすい)
・回答者のアドバイスで後日解決したら、結果報告しよう(とても喜ばれる)
・回答者は、僕たち初心者に優しくしてください。あなたも通ってきた道のはずです。
必要なソフトなど(基本無料)
統合開発環境 MPLAB X ttp://www.microchip.com/mplab/mplab-x-ide
コンパイラ (XC8 XC16 XC32) ttp://www.microchip.com/mplab/compilers (高機能版は有料)
コード生成プラグイン (MCC) ttp://www.microchip.com/mplab/mplab-code-configurator
マイクロチップ ライブラリ (MLA) ttp://www.microchip.com/mplab/microchip-libraries-for-applications
必要なハードなど
初心者はPIC16F1、PIC18F1以降の型番で始めると無理なく始められます。
プログラムの書き込みには書き込み器が必要です。持っていない場合はPICkit3(中華クローンでもまず大丈夫)を使いましょう。
PIC一覧、スペック検索 ttp://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1005
さ、質問どうぞ〜っ
0x0d 2017/10/25〜 ttp://rio2016.5ch.net/test/read.cgi/denki/1508935254/
0X0C 2017/07/27〜 ttp://rio2016.2ch.net/test/read.cgi/denki/1501157324/
0x0B 2017/05/08〜 ttp://rio2016.2ch.net/test/read.cgi/denki/1494235320/
0x0A 2017/01/04〜 ttp://rio2016.2ch.net/test/read.cgi/denki/1483498857/
0x09 2016/09/07〜 ttp://rio2016.2ch.net/test/read.cgi/denki/1473238791/
0x08 2016/04/30〜 ttp://rio2016.2ch.net/test/read.cgi/denki/1461994030/
0x07 2016/02/05〜 ttp://wc2014.2ch.net/test/read.cgi/denki/1454648249/
0x06 2015/07/18〜 ttp://wc2014.2ch.net/test/read.cgi/denki/1437151298/
0x05 2015/04/07〜 ttp://wc2014.2ch.net/test/read.cgi/denki/1428391368
0x04 2015/01/02〜 ttp://wc2014.2ch.net/test/read.cgi/denki/1420205108 >>38
http://www.microchip.jp/docs/41364B_JP.pdf
77ページにRCIFがいつクリアされるか書いてありますぞ。
↓コツ
・PDFを開いたときに、RDIFで検索して見つかったところの前後を集中的に読むといい。
・日本語データシートがあるなら、無理に英語に拘らずにとりあえず頼ってみる。
・日本語データシートは古かったり翻訳に間違いもあったりする。見つかった役に立ちそうな情報は、英語の最新データシートでも確認してみる。 この調子で、PICのすべてのフラグについて、延々と質問が続くのであった…。 >>39
単純に考えればいいと思う
・割り込み要求は勝手にリセットされないからプログラマが自分でリセットする
・シリアル送受信のフラグは明確に書き込み/読み取りの動作でリセットされる 型式も分かんないのによくアドバイスする気になるよね >>51
PICは、16Fならほとんど同じだからね。
よく分かって回答しているのは一部の人だけで、
他の人は適当にやって動いたから良し、
あるいは全然分からずにやってるみたいだね。
質問者が叩かれてるので、まさか自分もわからないと言えなくてね。 >>52
へえ、そうなんだね。
良く分かっている人のレスとそうでない人のレスを
具体的にレス番で教えて、参考にするから。 >>46
詳しくありがとう。
センサーのアンプ出力に約1K抵抗が内蔵されているから大丈夫だね。
分圧抵抗入れて、100と1000で何故半分しか出てこないのか悩んでいて内蔵1Kに気付いた。
出力短絡保護と思うが、分圧抵抗を撤去してダイレクトに入力する事にします。 割込処理ルーチンの入口でフラグクリアするのがよいのか
出口でフラグクリアするのがよいのか何時も迷うぜ 迷う?
どちらですべきか考えれば迷うことなんか無い気がするが
割り込み要因を取り除かないとクリアしても即セットされる物は要因を取り除いてからクリア
処理後、クリアまでに再度割り込み要因が発生する場合はクリアしてから処理 よく考えずに適当な場所でクリアすると
いずれ問題が起こる
多重割り込みが有効な場合は
クリア方法もよく考えないと アマチュアでやりがちなのが
xc.hで定義されてるフラグにそのまま代入しちゃうこと
IFS1bits.U1RXIF = 0;
とかやっちゃうといずれ問題が起こる >>61
えっ? 1bit単位で読み書きする方法があるの?
リードモディファイなんとかライトだから、
読み出してから書き戻す間に、
ハードウェアによって変えられても、
古い情報で上書きされてしまう、
と言うことじゃないの? >>54
PICのADCはつなぐ相手の出力インピーダンス10kΩ以下を推奨してた気がする。
1kなら大丈夫と思うけど。
絵入りでわかりやすく説明してるページがあった気がする。 >>58
それ、いつもやってる。
>いずれ問題が起こる
とても心配なので詳細を教えてください。
>>61
へえ、どうやって回避すればいいの? >>54
わりと多くのマイコン内蔵A/Dコンバータが図のような構成になっていて、
変換直前に一瞬だけスイッチをONにしてCにチャージしてから変換を行う。
この一瞬でCをチャージして、誤差が分解能の1LSB以内に収まる。
ソースの直列抵抗が小さいほどチャージの収束が速くなる。
それゆえ、分解能が高くなれば、ソースの抵抗は小さくないと性能を引き出せなくなるし、
逆に、要求分解能が低いなら、ソースの抵抗は大きくてもよくなる。
で、外部回路や応答性に問題がない範囲で、青のコンデンサを付けておくと
抵抗が大きくても外付けコンデンサが内部コンデンサへのチャージを助けてくれるよ。
>>58
はやくみんなの疑問に答えてください。
場合によってはMicrochipに報告しとかないと世界中に影響が出ると思うんで、
よろしくお願いします。 ピン変化割込IOCIFレジスタはIOCAFレジスタでないとクリア出来ないトラップに
はまって一週間くらい悩んだ…マニュアルはちゃんと読まないとダメだね >>60
>>65
>>67
わからないならスクラッチで組もうとせずに
素直にMCCやHarmonyを使いなさい >>69
MCCやHarmonyはあなたがダメ出ししたコードを吐く。
全く答えになってないね。
まあ、回答できないんだろうけど。 >>70
MCCやHarmonyが >>58 のようなコードを吐いてるMCUは大丈夫
決して >>58 のようなコードを吐かないMCUがある
それだと>>58のコードはNG >>71
>決して >>58 のようなコードを吐かないMCUがある
具体的にPICの型番でお願いします。 あと
>それだと>>58のコードはNG
の理由もね。
そっちが元の質問なんで、いいかげん話をそらさず、よろしく。 結局、大丈夫な理由もNGな理由も出ずじまいか。
予想通りだな。 初心者さんには気の毒だけど
幾度かつついても具体的な回答を出せない>>ID:MZkAGnSRのようなヤツは無視
知識のあるヤツだけが回答してるわけではないから時間の無駄 >>71
吐いてるMCUと吐かないMCUの型番マダー?
みんな待ってるよ 質問者です。
みなさん、貴重なご意見ありがとうございました。
やはり、全部のフラグについて、データシートにも
はっきりと書かれていないみたいですね。
また、みなさん先輩の中でも十分な理解でなく使って
いらっしゃる方も、いるようです。
そういう特性のことかもしれませんね。
みなさんのご意見を参考に、
フラグは、ReadOnlyも含めて、全部自分で上げ下げする
という自分なりの決まりを持つことにしました。
みなさん、どうもありがとうございました。
>>58の発言は、気になるところですが、>>77のような執拗な言動も
どうかと思いました。
ありがとうございました。 勝手に決めるな、書いてある。
アンタが読んでないだけ。 データシートに全部書いてある
なんて時代は終わったのだよ
例えば非常にシンプルなUART
8bit, 16bit, 32bitで割り込みの仕様はまったく異なるのだが
データシートに1行書いてあるだけ
ここに十分な仕様が記述されているわけがない
条件が整っている時にセットされ続けるのか
条件が整った瞬間に1回セットされるのか
FIFO付きでもFIFO4, FIFO8 でその辺が異なる USBのデータシートを見たことがある?
レジスタが書いてあるだけ
あんなんで設計なんて出来ない 8bitのUARTはエラッタシートに載ってないエラッタがあるから注意
タイミングによって送信がダブる >>77
Harmonyって書いてるんだからわかるだろうに
コードを検索すればたくさんヒットするよ
なぜ>>58がマズいか?
それは自分で考えなさい いやでも、PIC32のCLR, SET, INVは非常に便利だよな
他のマイコンも真似してほしいくらい
他のマイコンだと
クリアのみ可能
とかにすることで問題が発生しないようにしてたりするね
まあそういうことを一生気にしない人もいる
ごく稀に問題が発生してもノイズのせいにしたり
趣味の電子工作ならそれでも良いのかもしれない 自分のスキルを誇示して詳細は語らないいつもの御仁ですか ID:H6YmXlV3の見ているデータシート(とID:H6YmXlV3が呼んでいる何か)と
私が見ているデータシートは別物だということが分かった。
したがってID:H6YmXlV3 から何かを得るのは不可能。
どうもお疲れでした>>ID:H6YmXlV3 >>83
>なぜ>>58がマズいか?
>それは自分で考えなさい
説明出来ないなら出てこなければいいのに。 >>87
苦労して会得したんだから、
簡単には教えたくないんだと思いますよ。
知っていても教えない
知らないから教えられない
黙っていれば、どっちかわからないから、
都合よく振舞っているんだと思うよ。 バカ「その問題間違っていまーす」
生徒「え?何処?何処?俺解いちゃったよ」
先生「何処が間近っているのかな?」
バカ「それは自分で考えなさい(キリッ」
どう考えてもコミュニケーションがとれないキチガイだろw 教える気も無いのに初心者スレでホラを吹く。
これ、品性の問題だからどうしようもないね。 ん?
場所と品性は関係ない。
どこだからどう振舞うかとかぶれること自体が品性の無さの表れ。 >場所と品性は関係ない。
だからですよ。ここ、5chですよ。 判らないですか?
ここ、5chですよ 馬鹿も居ますよ 最近のゆとりは、ただ反駁したいだけで中身が無い。
なので、「だって〜」「だから〜」と幼児並み。 あ、そうそう、返す言葉は必ず「判らないですか〜」と決まってる。 あぁ、そうだった。
少し前に馬鹿と阿呆の罵り合いに飽きてこのスレ見限っていたのに。
ちょっと怖いもの見たさで除いたら、結構有用な情報があったものでズルズルと見続けてしまっていた。
データ削除します。 PICスレには残念な人が居座っているから諦めた方がいい。 >>66
直結で期待通りだけどRssば1K位でセンサーの出力インピーダンスは1K位で分圧されないのはキャパシタがチャージするからでしょうか? >>102
追加する抵抗R1は信号源抵抗Rsに直列に入るだけですので、分圧というのは違うように思います。
センサーの直列抵抗が大きくなっていても大丈夫なのは、サンプリングのスイッチが短い時間だけ
ONしたときに、CHに一気にチャージするときに流れる電流をC1から供給できるからですし。
>>44で書かれていた「分圧」は右下の赤の回路ですよね?
>>103
>サンプリングのスイッチが短い時間だけONしたときに
ちょっと認識が違う気がする。
サンプリングのスイッチは常にオンになっていてGO/DONEビットを
セットするとオフになってからA/D変換が開始される。
前回A/D変換したときにチャンネルセレクトを切り替えておけば
ずっとチャージしたままになる。 >>103
レスありがとうございます。
直結前の回路は赤色の通りです。
勉強になりました。 >>104
あーっ。ご指摘の通りです。別のA/Dと混ざっていました。
PICのA/Dの場合は、サンプルスイッチはチャンネルセレクトを切り替えてから
変換開始までどれぐらい待つかを決定するために信号源抵抗(とコンデンサ)を考慮するのでしたね…。
チャンネルを切り替えてから変換開始までに時間的余裕がある場合で、変化も遅い信号をサンプルするときに
信号源抵抗を考慮する理由は端子のリーク電流でした。
>>105
…ということでして、おはずかしい。
チャンネルを切り替える必要がなく、変化の小さい信号源なら外付けコンデンサにあまり意味ありません。 アホの知りたがりは必要悪
アホの教えたがりは社会悪 教えたがりでも知りたがりでも無いと思いますし、
少なくとも「>>107 アホの意味の無いイヤがらせ悪」よりはずっとマシだと思いまぁす。 馬鹿なほど知ったかして、得意げに教えたつもりになってるから卯財 >>106
別のA/Dとは?
参考にしたいので教えてください。 >>114
16bit PIC なら、メモリー容量的にSPI モードで十分だしな。 >>109
> 馬鹿なほど知ったかして、得意げに教えたつもりになってるから卯財
教えようとしてるだけエライじゃん
イヤなのは、なんにも教えず説教をたれたいだけのジジイ >>109
お前はバカだ、知ったかだ。と言うなら
どこが間違っていて、正しくはこうだ。
と書かないと、
あなた自身が、馬鹿な知ったか、に見えるよ? 初心者です。教えてください。
2つあります。
MPLAB Xをダウンロードしてインストールして、ふー炉じぇくとを作って、コンパイル(ビルド?)をしました。
画面の下部にあるエラーとかワーニングが出る窓の文字が小さくて、とても使いにくいです。
この文字を大きくするのは、どこをさわればいいでしょうか?
Toolsのoptionsの中にfont設定があるようですが、
outputペインのfont設定までは見つけられませんでした。
今まではMPLAB IDE8.92を使っていたのですが、それに比べるとコンパイルに時間がかかります。
もっさりした感じです。これで正解なのでしょうか?
どうぞよろしくお願いします。 >>119
マウスのホイール押しながらホイール回す。
デフォルトだと、一度に8つ?のファイルを同時にコンパイルしようとするから、非力なマシンだと、かえって遅くなる。 シングルコアCPUマシンならMPLAB 8.92の一択
最近は安くて早いPC充実してるからMPLAB X使うなら買い替え そりゃPCがボロ過ぎる
サクサク条件は64bit4コア8ギガかな
今時中古ノートでも2万もあればそろえられる
ケチって買わないならコンパイルのんびり待ちましょう
待つのは無料だからね JAVAで開発された物って
開発は楽チンなんだろうけど
メモリバカ食いだよな
オイラもXの遅さに耐えられなくなって
去年PC新調した口
ついでにSSD化も
デュアルディスプレイ化もして超快適 >>120さん
どうもありがとうございました。できました。
この設定は、どこかのプロパティを開いて調整できるものではないのでしょうか?
よろしかったら、教えてください。
>>121,122
みなさん、ありがとうございました。
僕のノートPCは、17インチ1920*1200で広いんですが、
コア2ディュオというCPUですので遅いです。もっさり感たっぷりです。
あと、もう一つ教えてくださいませんか。
文字を大きくしたoutput paineですが、エラーの表示はどこを見れば良いのでしょうか。
どうせ僕のプログラムミスなので、
○○行目にsyntax error ; が必要 とか出れば良いのですが、
いろいろと表示されすぎて、わからないです。 英語のNotice Caution、コンパイル時のエラーメッセージなんかは、
同じ単語が結構出てくるので、一冊ノートを作ってわからない単語を書き出してその意味を書いておくといいよ
ノートの単語が増えてこなくなったら、アルファベット順に再編するとかなんかしておく
その頃にはだいたい意味がわかるようになってる。
PCにText文章で作ってもいいけど、書いたほうが覚える感じがする(個人的に みなさん、ありがとうございます。
ご親切にありがとうございました。
なんとか、プログラムが動き出しました。
outputペインの文字サイズは、outputペイン上で右クリックして、settingに行くとありました。
error表示は、英語を頑張って読むことにします。
ただ、makeとか知らない言葉が出てくるので、メモしておくことにします。
Syntax Error in 123 とか、色を変えて出てくれるとありがたいですね。
あと、ビルド成功の文字を、若草色から変えたいのですが、わかりません。
上記の右クリック...の画面で、Build Successの色を青にしたのに、
若草色のままです。
PCは遅いので、関数50行、main 20行くらいでも、1分くらいかかります。
なんだかなって感じです。 >>124
出力タブのウインドウでCtrl+Sで保存して、ここに貼り付けてみるのはどう。 お金も無くて頭も無い半人前だけど
文句だけは一人前
なんだかなって感じです >>127
makeも知らないのか
お前の組のことだよ。覚えとけ >>129
理系はアフォばっかりだから、挑発はやめろ
無視すればいいんだよ コンパイラの途中経過には興味はない。
Cで書いて、コンパイルして .hex が出来て、picに書き込んで動けばオーケーです。
途中のmakeでこけるとかはMPLABの都合なので、僕らには関係ないです。
makeとかリンカーとかを知らなければマイコンが動かせない訳ではないでしょう。 立派な考えなので全部のコードをハンドアセンブルして手打ちでhexファイルまで作って下さい。
ライブラリなんて安直な考えはダメですよ 動かしたいだけなら全部、他人に作ってもらえばいいんじゃないの
仕事ならお金払って、趣味なら駄々こねれば。 C言語で組んで何が悪いのかね〜〜〜
出力されたアセンブラコード見て適正なコードが
出力されるようにCソース変更することでも結構
いい結果得られるし、だめなら直接アセンブラコードで
書けばいい。
ぐだぐだ言うやつはFreeエディション使ってるんだろ〜〜
Proモードでコンパイルすれば何の問題もない ていうか、メイクとかリンカーとか、知らないとpic使えないのか?
Cでソース書いて、コンパイルして、目的のことが出来たなら、それで充分。 今確認したら MPLABX4.15 の javaw.exe で1.4GBも喰ってる
いつの間にこんな馬鹿喰いデブになってまったんだ、、、
あれ?なんか近くにそんな人居る、、、
4GB頭打ちの32bitOSだと修行僧とか忍耐力ある人じゃないと
運用無理じゃないの? >>142
取り敢えずメモリー確保して置くってソフトは多いよ。 >>143
存在するのはわかるけど、やだなあ、それ。 ■ このスレッドは過去ログ倉庫に格納されています