初めてのPIC 0x0e

1774ワット発電中さん2018/02/13(火) 21:26:39.79ID:06sF7iiY
.
  _       _    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

2774ワット発電中さん2018/02/14(水) 00:03:27.90ID:b+HUIkYe
(())))(())()(())((())()((()))))((()())()))(((()((()()()()))((())()(()()))(()
)(((((()())(())(((())()())()())())(()()())(())))())))((()))(()))))((()(((()(
()))()((()()())((()((()())())()(()((()))(())))))(()()()((()(())((())())))()(
))()((())))()(((()()()((())))()))))()((())())()()((()())((()()(()))))(()((((
(()))())))))()())))))((((()(()(((())())()((()))))()()())()())()((()(((()((((
()((((()))((((()())(()(()(()()()()())))())(()((())()(()))))())(()(())()())))
())))(())(((()(((((()))(((())(((()())()())()((()(()()))()))()))())((())())))
))()(((())((()))((()(())))((((()()()())(())()(()))()())(())))))))((((()()()(
()()()((())()))()(()((((())()()))))((()()()((())()()())))()()(())))()()(((()
)()()))()))((())(()))))()))()))(((((()))((()(()(((((()()()(()())(()())())(()
(((()((()((((()(()))()()((())())))))(())(())))())(()()(())))())(()(()((())))
)((())(())((()(()))))())()(()((()()((()((()()()))))())()((())(())(())))(()()
)()))(((()()()))()(()()())))((((()())()()())(()()))))(()))))(((((())()(((()(
))(()()))()()(((((((()(()(()))))))(((((())))()))(()()((()(((()))(()(()))))))
()())((()(()))(())))()()))))())()(()())))()(((())()((()(())()(()(((()())(()(
))()()(()((())((()))(())(()(()(()))()()((()()(((())()()))()()())()))(()))(()
()))())()()()(()(()))))))(((((()((()()))()(((((()))(()()(())))())()())((()()
)((((()))((()((())())(()())())))((())))()))))))(()(())))()))(()()((((()(((((
((()))))()()))(()(()()(())(((()))())())()(((()))))()())((()()))((())(((()(()
)(())()()))))()())())(()))))(()((()((()(()((()()(((())((((()()())())(()))))(
)((()(())))())(()()()))((())()(((())(((())))())((()))())())))()(()(((()())((
))(())((((())((()(()))()))(())(((()())))()()()())))(((()))(()()())((()(()())
))((())))(((((()()()))))())))()))()((()))((((((()())))())(())(())((()()(()((
()((((()())(()((()())((())())((((()((()))))())(((()())())())(()))()))()))())
()))))())))()())(()(()()(())(((()))())))(())))((()()))(()()()((()())((((((((
)()())()((())))(()()())())(()(()))))((())()()()())())(()(())(()(()()()()((((
(((())())))()))((())()))())(()(()(()(((()())()(())(()()()(((()))())))))(()((
())((())(())))()()()()))(((()()()(()())))((()((((((())))()))()((((())))))(()
()())(()))()((((()((())())(()))))()()())))(()))()()(()((((()(())()((())))()(
)))(())()())()()()))(()(()(((((()())(()((()))((())()()())(())))(()((()()()))
(()(((()(()()((((())))()(((((()))(()))((())(())(())()(())))))))()()))))(())(
))(((()())(((()))))((((()())()())))(((())(()(()()()(()))())()(()())()())))((
)((((())))))(()(()(()())((()())())())())(()(()((()(()((())))))(((()))(()()))
()(((()(()()))(())(()(()()((())()))((()))((())(())(()((())())())(()())))()))
()))())(()((((((((()))((((()())())()()))(())(()()))(()(()))((()))((()))))())
())))(((()((()()((()()(((()(()))))()))())(())())(())((())))())()()(()(())(()
))))))))())()((()))(((()()(())((((()(((()()())()(((((((())(())()))(()())))))
()(((())(())(())))(()((()()(()()))()(((((())()())())()(())(())(()())))()))()
((((((()))(()())()())()()))))()()))(())()()))()(()((((()((()())))()(()())()(
(()))))))))()(()))()(())(()))((((()(())(())(((()))(())())())())(((())(()((((
)()(())()(((((())())))(())(((()))((())(()())))())())()))(()))(())(()()(((()(
(((())()()()))())(()(()(()(((((()()))(()((()))((((())()()((())()))))))()))))
)(()()()()())))())((())((()))()(()()()))())()()))))(((((())()())()((((())(((
)()(()(()())))))()())(((()(())((()()(())())((((())()))(())))(((((()))(()))()
)()))(()()((())((())((()()))()()))((()((()()((())()()((()(())())()))(()))))(
(((()))()()(()(()))())))())))())((()((()())()()()(())((()(()()(())()()))()((
)()))))))))))(())(()))(((()(()())(()(()))))((()((((())(((())())(()))(()(((((
))()()((())(()))(()((()())())))(()(())((())()())))))()))())(()()((((()(()(((
))))(())))(()))()(()()(()((())()()()))())(()((())((()((()()())))(()()()()(((
(())()())))(())(())(((()(()()(())(()()()()(())))))())(()((())()()()))()(((()

3774ワット発電中さん2018/02/14(水) 07:47:13.44ID:g/WLC13y
電電板でこのスレだけが16進数表記なんやね…
MPASM的にはH'0E'なんだろうけど

4774ワット発電中さん2018/02/14(水) 13:47:34.74ID:o7WHpV/0
Cでは、0x0e だけど、
MPASMでは、
H'0e' と、最後にも ' が要るの?

5774ワット発電中さん2018/02/14(水) 14:37:51.48ID:5IziNvwG
それでもいいし0x0eでもいい
MPASM/MPLINK User's Guideを読むべし

6774ワット発電中さん2018/02/15(木) 12:50:23.71ID:JQ4h6iRH
MPLAB の、Mはマイクロチップ、LABはラボですよね。
Pは何の略でしょうか?

7774ワット発電中さん2018/02/15(木) 13:15:11.76ID:gVRdw9vA
PICじゃねえの?

8774ワット発電中さん2018/02/15(木) 13:15:33.44ID:ebb6ECd4
PicのPじゃね?

9774ワット発電中さん2018/02/15(木) 13:52:39.05ID:EhjCurqa
Microchip Pic Love Adurt Boy

10774ワット発電中さん2018/02/15(木) 14:22:28.98ID:j4Z4MEWH
PIGのPだったらイヤだなw

11774ワット発電中さん2018/02/15(木) 17:25:03.04ID:byzWgtmN
さすがEngrishができる人は違うな

12774ワット発電中さん2018/02/15(木) 17:49:19.13ID:JQ4h6iRH
なるほど、PICのPですね。
ありがとうございました。

13774ワット発電中さん2018/02/15(木) 20:10:14.15ID:FRlGlX/E
12LF1822を使って赤外線リモコン送信機を作りたいと思い調べてみました
PWMを1ピンで出力すると20-30mAしか取れませんが数ピン並列にすることで電流を稼ぐとWebで見たのですが
SinglePWM(CCP1)の出力を複数ピンに同じ内容で出すにはどのような方法があるのでしょうか?
Trなどの部品数を減らせないものか、アイデアをご教授ください

14774ワット発電中さん2018/02/15(木) 20:57:20.47ID:XK8Sl7uO
adlut...

15122018/02/16(金) 16:26:41.32ID:ugA1Zy6Z
>>9 >>14
マジレスすると、adult 。。。

>>12のご指南お待ちしております

16774ワット発電中さん2018/02/16(金) 20:34:33.40ID:BEQQfq9b
PICの割り込みフラグについて教えてください。

たとえば、Timer1割り込みが発生すると、PIR1のTMR1IF=1になると思うのですが、
このTMR1IFは、処理後に自分でクリアしないといけないようです。
でも、UARTのFERRなどは、次の受信をすれば自動的にクリアされます。

PICが フラグセットしてくれるのはいいのですが、
処理後に自分でクリアしなければならないフラグなのか
自動的にクリアされるフラグなのかの区別がわからなくて、躓いています。

データシートを見たのですが、例えばTMR1IFの説明では
   割り込みフラグビットは、INTCONレジスタの対応するイネーブルビットまたは
   グローバルイネーブルビット(GIE)の状態にかかわらず、
   割り込み条件が発生するとセットされます。
   ユーザーソフトウェアは、割り込みを有効にする前に
   適切な割り込みフラグビットがクリアされていることを確認する必要があります。
と書いてあって「自分でクリアしなければなりません」とは書いてありません。

クリアされる要因や、あるいはフラグセットされた後に、私がしなければならないこと
の区別は、データシートのどこかに書いてありますでしょうか?

宜しくお願いします。

17774ワット発電中さん2018/02/16(金) 20:50:30.46ID:rXaqvpzD
あー
データシートと喧嘩しちゃうタイプね
僕はそういうの面倒だから関わらない様にしてるんだ

18774ワット発電中さん2018/02/16(金) 21:08:16.03ID:fBLmHgha
俺面倒だから理由や根拠を考えずにMCCに書かせちゃうから、データシートをしっかり調べるのは偉いと思う!

19774ワット発電中さん2018/02/16(金) 21:14:37.36ID:EGLFosmG
>>16
the TMR1IF bit should be cleared before enabling interrupts
と書いてあるな、手元のデータシートには。

20774ワット発電中さん2018/02/16(金) 22:04:21.74ID:sFzvFpRO
>>16
データシートの「割り込み」の説明にクリアしろと書いてあるよ。
TMR1IF説明の部分じゃなくて。

21774ワット発電中さん2018/02/16(金) 22:32:22.78ID:2wqXZzm+
>>16
勝手にリセットされる割り込みフラグってあったっけ?

22774ワット発電中さん2018/02/17(土) 01:20:01.11ID:aEG5HgQm
>>19
そうです。それが>>16で書いた、
>ユーザーソフトウェアは、割り込みを有効にする前に
>適切な割り込みフラグビットがクリアされていることを確認する必要があります。
なんですが、割り込みを有効にする前に というのが、初回に有効にする前のことなのか、
毎回のことなのか、はっきりわからないんです。

>>20
ありがとうございます。
>「割り込み」の説明にクリアしろと書いてあるよ。
それば「次の割り込みを知りたいなら、クリアしなさいよ」と言うことでしょうか。
初期設定のGIE=1の前に、xxIF=0にしてからGIE=1にしないと、
いきなり割り込み処理が走り出すよ、という意味にもとれてしまうのですが。

>>21
>勝手にリセットされる割り込みフラグってあったっけ?
そうなんですよ。そういうことがデータシートに一覧で書いてないかな、と思ったんです。

xxxIF セットはPIC クリアは 1)○○が△△した時に自動クリアされる  2) ユーザーが毎回クリアする
などと書かれていると嬉しいのですが。

割り込みばかりでなく、FERRやOVERRでのエラー復旧のサンプルを探したんですが、
どれもFERRはdummy read、OVERRはCREN=0, CREN=1するだけでした。
本当にそれだけで良いのか、チップを設計したMicroChipがお手本を示してくれないかな、
と いつも思っています。

23774ワット発電中さん2018/02/17(土) 01:38:23.23ID:uokiUepy
勝手に思ってろよ。

24774ワット発電中さん2018/02/17(土) 09:36:29.80ID:+8+s/ZuQ
データシートにその辺の仕様が十分に載って無かったりするからな

25774ワット発電中さん2018/02/17(土) 09:52:06.83ID:9cuRQ2Mi
割り込みはちょっと手を出してない範囲なので「明確に載ってなかったら全部手動でクリアしたらいいのでは?」と思うんだが。
チップごとにとか、機能ごとに挙動が違うとか言われても相手PICの専門家じゃないからは分からんと思うよ。

26774ワット発電中さん2018/02/17(土) 09:56:17.59ID:dhX5LMHE
>>16
基本、割り込みフラグが立ってたら、割り込み禁止にしてない限りは、割り込みが発生する。

おおむねだが、検出されたら立つ 奴はクリアが必須。
タイマーとか、コンパレータとか。

処理の結果で立つ 奴は、自動的にクリアされるのが多い。
受信完了なら、データを読み出すだけでクリアされるとか。

27774ワット発電中さん2018/02/17(土) 10:05:30.61ID:+8+s/ZuQ
>>25
クリア過剰もマズい

28774ワット発電中さん2018/02/17(土) 10:08:02.48ID:+8+s/ZuQ
>>26
何の情報にもなってない
データシートの方がはるかに多くの情報がある
そのデータシートにも十分な情報が無かったりする

29774ワット発電中さん2018/02/17(土) 10:09:25.42ID:9cuRQ2Mi
>>27
そうなんか?
XCは使う予定はないんだが、CCSCでもだめ?
どういう所で弊害出るん?

30774ワット発電中さん2018/02/17(土) 10:48:50.53ID:b3vSYT5L
>データシートの方がはるかに多くの情報がある
情報が多くて読み切れないことはわりとある話。

しかし、他人の書き込みに対して「何の情報にもなっていない」という人が
「データシートにも十分な情報が無かったりする」ことの具体例を
書かないのはおかしくないか?

31774ワット発電中さん2018/02/17(土) 11:59:10.59ID:k1QjAGA8
皆さんありがとうございます。
結局のところ、それぞれのプラグに対して、どのように後始末しなければならないか、
どこかに書いてあるものでしょうか?

また、皆さんはどのようにして対処しているよでしょうか?
とにかく使用後は、クリアしまくるのでしょうか?
りーどおんりーでもクリアしてるのを見たことありますが、
訳もわからずやってるな、って感じです

32774ワット発電中さん2018/02/17(土) 11:59:11.00ID:k1QjAGA8
皆さんありがとうございます。
結局のところ、それぞれのプラグに対して、どのように後始末しなければならないか、
どこかに書いてあるものでしょうか?

また、皆さんはどのようにして対処しているよでしょうか?
とにかく使用後は、クリアしまくるのでしょうか?
りーどおんりーでもクリアしてるのを見たことありますが、
訳もわからずやってるな、って感じです

33774ワット発電中さん2018/02/17(土) 12:05:10.07ID:VRCq/TNT
データシート
サンプルコード
実験

の順に情報を集める

34774ワット発電中さん2018/02/17(土) 12:09:06.78ID:3mpB2w4P
ほんとに載ってないかなと思ってデータシートみたが、ブロック図とかみればわかるじゃん

35774ワット発電中さん2018/02/17(土) 12:15:39.36ID:JtXFoNF6
同じ用途で上手く動くソースを探して、何でそうなってるか考える

36774ワット発電中さん2018/02/17(土) 13:29:53.78ID:Nh6q+2d1
>>32
素直にプログラムを書けば、割込み関連のフラグのセット/リセットでそんなに悩む事は無いと思うけどナ。
割込み要求フラグの大原則は
「割込みを使えば自動的にリセットされ、使わないときは自分でリセットする」
です。

通信ハードエラー(フレーミング、オーバーラン、パリティ)発生フラグに関しては、
受信完了フラグが立ったら、通信エラーフラグが立っていないかどうかをチェックし、
立っていれば必要なエラー回復処理を行う。
立っていなければ受信データを読み取って処理する。
かな。

割込み開始時に、すでに割込み要求が発生しているなら(例えば通信でデータを受信済みなら)、
そのデータを捨てるか取り込むかはプログラムの仕様次第です。
不要なら要求フラグをクリアしてから割込みを許可します。

37774ワット発電中さん2018/02/17(土) 15:00:00.93ID:Hqp8Qiv4
枝葉末節が気になって仕方ないヤツを相手したって仕方ないだろ。
何がしたくて、それが分からないとどういう支障が出るのかって話。
たぶん、そいつの脳内を除けば何も困ってないはず。

38774ワット発電中さん2018/02/17(土) 16:52:38.62ID:aEG5HgQm
>>34
ありがとうございます。

>ほんとに載ってないかなと思ってデータシートみたが、ブロック図とかみればわかるじゃん
ありがたい情報、ありがとうございます。
ちなみにこれは、どの型番のデータシートのどのブロック図でしょうか、よかったら教えてください。

僕が見たデータシートPIC16F193x で、例えばUART受信のブロック図では、
割り込みで言えば、事前に僕がRCIEを1にしてあれば、
RCREGに受信データが入ったらRCIF=1になる(?)ようなので、and結果で割り込みがかかります。
割り込みはかかりますが、andの先は→で書かれていて、
誰が記憶を消すかは書かれていないみたいです。

39774ワット発電中さん2018/02/17(土) 16:56:47.84ID:aEG5HgQm
>>36
ありがとうございます。
>「割込みを使えば自動的にリセットされ、使わないときは自分でリセットする」です。
この場合の"使えば"とは、具体的にどのようにすることでしょうか?
・割り込みを設定すること
・割り込みが発生すること
・割り込み結果を参照すること
ありがとうございます。

40774ワット発電中さん2018/02/17(土) 17:26:30.98ID:3t2hmt/h
ISRから帰ればだろJK

実機持ってるんだろ?
不明点があれば仮説を立ててそれを検証すればいい
イミフな説明書いてエスパーの返事を待つよりずっと早いぞ

41774ワット発電中さん2018/02/17(土) 17:28:57.10ID:HnClfFt9
割り込みがかかったことを知りたかった奴が、
また次に割り込みがかかったことを知りたきゃクリアする。
そんだけのこと。
アンタが何をしたいかだよ問題は。

42774ワット発電中さん2018/02/17(土) 17:55:57.31ID:Nh6q+2d1
>>39
「割込みを使えば」とは
割込み処理ルーチンを書き、割込みを許可して、発生した処理要求(例えばUARTの1バイト受信など)を
割込み処理ルーチンで処理することです。
UART受信割込み要求フラグはCPUが割込み受付け時に自動的にリセットします。

「割込みを使わない」場合
割込みを使わないときは、1バイト受信フラグ(UART受信割込み要求フラグ)を
必要に応じてプログラマがチェックし(これをポーリングと言います)、
オンになっていれば必要な処理を行います。
受信割込み要求フラグはプログラマが適切にリセットしなければいけません。

なお、CPUによってはハードウェアで(プログラムの介在無しで)入出力処理が可能です(DMA)
で、ここで細かく聞くよりも >>40 の言うように実践を!

43774ワット発電中さん2018/02/17(土) 17:58:24.54ID:3t2hmt/h
>アンタが何をしたいかだよ問題は。

もしかして: 本人にもわかっていない

44774ワット発電中さん2018/02/17(土) 18:52:12.24ID:Ls+lkq/6
流量センサーの電圧出力(1V〜5V)をPIC(5V,PIC18F46K22)でA/Dして取り込んでいますが、最大出力が5Vなのでセンサーの方が僅かにVDDを越えるかも知れないと思って抵抗で分圧入力しているのですが、VDDをどれくらい超えたらPICは壊れるのでしょうか?

45774ワット発電中さん2018/02/17(土) 19:08:55.73ID:3mpB2w4P
>>38
お前みたいな粘着系のめんどくさそうなやつに教えて、良かったと思うわけないだろ。
ちなみに俺が見たのは12F1822と16F87Xだが、ちゃんと書いてある。

46774ワット発電中さん2018/02/17(土) 19:24:19.13ID:b3vSYT5L
>>44
>VDDをどれくらい超えたらPICは壊れるのでしょうか?
I/Oが壊れるのは大きい要因として
(1)電圧による破壊(をふせぐために決められた上限)
(2)内部の保護ダイオードや内部配線の限界
があります。

データシートの Absolute Maximum Ratings にI/Oピンの電圧限界として、

Voltage on any pin with respect to VSS…-0.3V to (VDD + 0.3V)

と書かれています。VDDが5Vなら5.3Vが上限ってことになりますが、
こういう表現は、たいていの場合、(2)のダイオードにでかい電流が流れないようにする電圧範囲です。
これを遵守するのが望ましいのですけど

Input clamp current, (VI < 0 or VI > VDD) …±20mA

とも書かれています。ダイオードのVFが0.6Vなら、電圧が高くなって(2)の電流が流れ始めるのは
5.6Vになってから。この時点で上の5.3Vは超えているのですが、これでは実際のところ壊れません。
偶発的に電圧が上がった場合でも(2)のダイオードに流れる電流を抑えるようになっていれば大丈夫。
たとえばセンサーとPICのあいだに入れておけば、
PIC5Vのとき、センサー出力が間違って6Vまで上がっても、クランプダイオードに流れる電流は
(6V-5.6V)/1k=0.4mAに抑えられます。
PICに電源を供給せずに、センサーだけに電源が供給される場合でセンサーが6Vまで上がっても、流入は5.4mAにとどまります。
どちらの場合もクランプダイオードを通じてセンサーから流れ込んだ電流をPIC側の電源ラインが吸収できることも必要ですが。

47774ワット発電中さん2018/02/17(土) 19:30:19.68ID:b3vSYT5L
>>38
http://www.microchip.jp/docs/41364B_JP.pdf
77ページにRCIFがいつクリアされるか書いてありますぞ。

↓コツ
・PDFを開いたときに、RDIFで検索して見つかったところの前後を集中的に読むといい。
・日本語データシートがあるなら、無理に英語に拘らずにとりあえず頼ってみる。
・日本語データシートは古かったり翻訳に間違いもあったりする。見つかった役に立ちそうな情報は、英語の最新データシートでも確認してみる。

48774ワット発電中さん2018/02/17(土) 20:18:31.37ID:HnClfFt9
この調子で、PICのすべてのフラグについて、延々と質問が続くのであった…。

49774ワット発電中さん2018/02/17(土) 20:30:43.65ID:3t2hmt/h
ここはサポセンじゃねぇ

50774ワット発電中さん2018/02/17(土) 21:12:56.79ID:GpAlRBtJ
>>39
単純に考えればいいと思う
・割り込み要求は勝手にリセットされないからプログラマが自分でリセットする
・シリアル送受信のフラグは明確に書き込み/読み取りの動作でリセットされる

51774ワット発電中さん2018/02/18(日) 00:56:21.65ID:ZoKmZSDn
型式も分かんないのによくアドバイスする気になるよね

52774ワット発電中さん2018/02/18(日) 03:37:37.59ID:rxWZ1N52
>>51
PICは、16Fならほとんど同じだからね。

よく分かって回答しているのは一部の人だけで、
他の人は適当にやって動いたから良し、
あるいは全然分からずにやってるみたいだね。
質問者が叩かれてるので、まさか自分もわからないと言えなくてね。

53774ワット発電中さん2018/02/18(日) 04:00:32.78ID:Eo7FJdme
>>52
へえ、そうなんだね。
良く分かっている人のレスとそうでない人のレスを
具体的にレス番で教えて、参考にするから。

54774ワット発電中さん2018/02/18(日) 06:49:23.36ID:n3/G2TVC
>>46
詳しくありがとう。
センサーのアンプ出力に約1K抵抗が内蔵されているから大丈夫だね。
分圧抵抗入れて、100と1000で何故半分しか出てこないのか悩んでいて内蔵1Kに気付いた。
出力短絡保護と思うが、分圧抵抗を撤去してダイレクトに入力する事にします。

55774ワット発電中さん2018/02/18(日) 07:24:52.29ID:lKFrYRZW
割込処理ルーチンの入口でフラグクリアするのがよいのか
出口でフラグクリアするのがよいのか何時も迷うぜ

56774ワット発電中さん2018/02/18(日) 07:47:30.81ID:MZkAGnSR
迷う?
どちらですべきか考えれば迷うことなんか無い気がするが

割り込み要因を取り除かないとクリアしても即セットされる物は要因を取り除いてからクリア

処理後、クリアまでに再度割り込み要因が発生する場合はクリアしてから処理

57774ワット発電中さん2018/02/18(日) 07:52:57.50ID:MZkAGnSR
よく考えずに適当な場所でクリアすると
いずれ問題が起こる

多重割り込みが有効な場合は
クリア方法もよく考えないと

58774ワット発電中さん2018/02/18(日) 08:20:09.77ID:MZkAGnSR
アマチュアでやりがちなのが
xc.hで定義されてるフラグにそのまま代入しちゃうこと

IFS1bits.U1RXIF = 0;

とかやっちゃうといずれ問題が起こる

59774ワット発電中さん2018/02/18(日) 09:59:01.27ID:iVcmOy1M
>>58
R/Oのビットに書いても?

60774ワット発電中さん2018/02/18(日) 11:02:20.59ID:rxWZ1N52
>>58
何で?

61774ワット発電中さん2018/02/18(日) 11:38:29.71ID:FBWGsWaz
>>60
8bit 単位でしか読み書きされない。

62774ワット発電中さん2018/02/18(日) 11:54:03.05ID:rxWZ1N52
>>61
えっ? 1bit単位で読み書きする方法があるの?

リードモディファイなんとかライトだから、
読み出してから書き戻す間に、
ハードウェアによって変えられても、
古い情報で上書きされてしまう、
と言うことじゃないの?

63774ワット発電中さん2018/02/18(日) 14:12:45.76ID:ZTRlx6J8
>>54
PICのADCはつなぐ相手の出力インピーダンス10kΩ以下を推奨してた気がする。

1kなら大丈夫と思うけど。

絵入りでわかりやすく説明してるページがあった気がする。

64774ワット発電中さん2018/02/18(日) 14:14:37.05ID:ZJMZ6R97
>>58
それ、いつもやってる。
>いずれ問題が起こる
とても心配なので詳細を教えてください。

>>61
へえ、どうやって回避すればいいの?

65774ワット発電中さん2018/02/18(日) 14:32:13.00ID:kcHnvZhj
>>58
僕もやってる。教えてください。

66774ワット発電中さん2018/02/18(日) 14:40:41.02ID:PX2SWeDW
>>54
わりと多くのマイコン内蔵A/Dコンバータが図のような構成になっていて、
変換直前に一瞬だけスイッチをONにしてCにチャージしてから変換を行う。
この一瞬でCをチャージして、誤差が分解能の1LSB以内に収まる。
ソースの直列抵抗が小さいほどチャージの収束が速くなる。

それゆえ、分解能が高くなれば、ソースの抵抗は小さくないと性能を引き出せなくなるし、
逆に、要求分解能が低いなら、ソースの抵抗は大きくてもよくなる。


で、外部回路や応答性に問題がない範囲で、青のコンデンサを付けておくと
抵抗が大きくても外付けコンデンサが内部コンデンサへのチャージを助けてくれるよ。

67774ワット発電中さん2018/02/18(日) 14:42:05.71ID:vT9inFFA
>>58
はやくみんなの疑問に答えてください。
場合によってはMicrochipに報告しとかないと世界中に影響が出ると思うんで、
よろしくお願いします。

68774ワット発電中さん2018/02/18(日) 15:06:50.22ID:bJet/2q0
ピン変化割込IOCIFレジスタはIOCAFレジスタでないとクリア出来ないトラップに
はまって一週間くらい悩んだ…マニュアルはちゃんと読まないとダメだね

新着レスの表示
レスを投稿する