X



トップページ電気・電子
1002コメント428KB
初めてのPIC 0x12
レス数が1000を超えています。これ以上書き込みはできません。
0001774ワット発電中さん
垢版 |
2018/09/19(水) 16:56:18.51ID:F4lNkPz3
PICを触り始めて比較的日が浅いという初心者のためのスレです。
もちろん、日は経っているが自分はまだ初心者という方も大歓迎です。
PIC選びやPICを使った回路設計は誰でも最初は不安なものです。
恥ずかしがらずに何でも尋ねてみましょう。
なお、PIC関係のスレにはもう1つ「PIC専用のスレ」があります。

質問・回答する際は…
 必ずPICの型番と開発環境を明記しましょう。
 プログラムはレス内に直接書き込まず以下を利用しましょう。
  http://codepad.org/

その際心がけることは…
 品格に劣る回答者はスルー(相手すると逆効果)
 素人玄人などと上から目線の回答者は無視
 良い回答が出るまでしばらく再発言しないのもあり(良回答は後に出やすい)
 回答者のアドバイスで後日解決したら結果報告
 回答者は初心者に優しく
 Atmel買収以降アンチによる荒らしも横行してるので見かけても無視
 (特にスレ立て当初はこぞって荒らしに来るのでスルー)


必要なソフトなど(基本無料)
 統合開発環境 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以降の型番で始めると無理なく始められます。
 最初からPIC32で始めるのもあり。
 MCCの利用でハードルはむしろ低いです。
 http://akizukidenshi.com/catalog/g/gI-11902/
 プログラムの書き込みには書き込み器が必要です。
 持っていない場合はPICkit4などを購入しましょう。
 なお、eBayやAliExpressで買えるPICkit3の中華クローンも十分な性能が報告されています。
 PIC一覧、スペック検索
  ttp://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1005
  ttp://www.microchip.com/maps/microcontroller.aspx

過去スレ
 0x11 2018/08/05〜 ttps://rio2016.5ch.net/test/read.cgi/denki/1533446166/
 0x10 2018/06/29〜 ttps://rio2016.5ch.net/test/read.cgi/denki/1530265723/
 0x0F 2018/05/01〜 ttps://rio2016.5ch.net/test/read.cgi/denki/1525183933/
 0x0E 2018/02/13〜 ttps://rio2016.5ch.net/test/read.cgi/denki/1518524799/
 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

では、質問どうぞ〜っ
0974774ワット発電中さん
垢版 |
2019/02/14(木) 22:42:21.84ID:4rx6qwE2
>>968
一般的なLEDで、25℃30mAのときに駆動立ち上がり時間が50ns以下の遮断時間(応答性-3dBまで)のときの
応答速度は20ns程度ですね

PICのF1だと20MHzくらいで、電流30mAで、他のポートに電流流してない状態でのポートのOFF-ONの速度は
どれくらいだったかな、0.5uSくらいだと思ったのですが。

PICで、LEDをONOFFを最速で点滅させたときには、点灯が点灯と認識されない消灯しきれない状態に
なると思いますので、確実に点灯消灯させるためには数u待ちを入れたほうがいいですよ

LED一個だけならいいですが、別ポートのLEDを同時に点灯させたい場合、その同時が何us以内として
いるかはわかりませんが、最低でも数クロック分のソフトが動くわけですから、複数のLEDを同時駆動
するときにはちょっとだけは気をつけましょうね高速で移動するLED群などがあるとちらつきが肉眼で
見えてしまう可能性もありえます。
0975774ワット発電中さん
垢版 |
2019/02/14(木) 22:45:50.48ID:4rx6qwE2
>>972
でも、緑つけて緑消して黄色漬けて黄色消して、ってやったときに
ハイスピードカメラで見ると、緑と黄色が同時についていますが?とかあってね

実際の信号で電球の昔は普通にありえて大問題

PLCみたいにウェイト入れながらラダーでドロドロまわして、応答が遅い電球だったりするといろいろとね
電球は消えてても消してないしな
0976774ワット発電中さん
垢版 |
2019/02/14(木) 22:50:06.42ID:4rx6qwE2
まぁ、人間がみてついてればいい、
いくつかのLEDを点滅消灯すると、ものによって消灯する時間が少し間延びするとか、
まぁそのあたりはどうでもいいです、という程度だろうから、いいんじゃね

どうせ小学生程度が作るプラレールに毛が生えた程度のジオラマだろ

酒がまわって眠くなってきたので寝るわ、おやすみー
0977774ワット発電中さん
垢版 |
2019/02/14(木) 23:02:29.36ID:kJCy1Jb3
>>967
LATxレジスタがあれば、不要だと思うけど、少し昔のPICや、他のMCUも使っているプログラマであれば、
作法として、I/Oもしくは、それに準ずるレジスタとは別に、メモリ(変数)領域で on/offを管理しておくのが常套手段。

ただ、メモリ不足、性能の問題で、最適化した場合には、あなたの納得のいくようなプログラムになるかもしれませんね。

いろんな、マイコンを使う人は、多少冗長でも、同様のプログラムを書きたいので、無駄に見えるかもしれないです。

それは、経験に基づく習慣だったりするので、今回のような条件では場違いかもしれないです。
0978774ワット発電中さん
垢版 |
2019/02/14(木) 23:06:41.13ID:8O+9Alq4
ID:4rx6qwE2
>ハイスピードカメラで見ると、
>どうせ小学生程度が作るプラレールに毛が生えた程度のジオラマだろ
ホラ話吹き倒した挙句、問い詰められて窮すると、人のやってること小馬鹿にして終了。
品性の欠片もないみじめなヤツ。
0979774ワット発電中さん
垢版 |
2019/02/14(木) 23:16:02.09ID:wn7rIEII
不要だと思うけど
作法として
常套手段
多少冗長でも
書きたいので
無駄に見えるかも
経験に基づく習慣
場違いかもしれない

初心者スレでそれを振りかざして押し付ける連中
>>973に言わせると宗教なんだそうだ、どっちがだよ
自分の無知、不勉強を棚に上げて、実にくだらん
0980774ワット発電中さん
垢版 |
2019/02/14(木) 23:55:49.93ID:HHUHCjCH
老害さんはタイマーが1つしかないような化石PICの頃のカビが生えた知識で上から語る。
MMCだのPIC32だの出てきたひにゃ避けて通ってそっと目を閉じてる感さえある。
質問者がPIC16F1827だ言うとんのにデータシートすら読まずに昔のつもりで回答してる。
ま、俺の勝手な想像だけどね。
0982774ワット発電中さん
垢版 |
2019/02/15(金) 00:16:21.29ID:0WScxoT6
>>967
LEDに限らず、外部機器のon/offは、慎重にやるんですよ。
LATに直接書いてももちろんon/offできますが、
その出力をon/off操作する箇所が、プログラム全体で見て複数箇所出てくることはよくあります。

その複数箇所で、それぞれが好き勝手に LAT...=1 とか LAT...=0 とかやると、
いったんonし、プログラムの別の箇所ですぐにoffになったり、
LEDならチラチラするだけで済みますが、シリンダーバルブとかの駆動だと
最悪、人が死んだりするんです。
そこで、お利口な方法として、
On/Offするのは、プログラム一巡のうちの、特定の1カ所だけで出力するようにします。
プログラム各箇所のon/offの要求は、変数に書くようにして、
みんなで書き込んだ結果を、考えて最終的にポート出力するんです。

また、LEDのon/offの状態遷移とは何のことか・・・と言ってる人がいますが、
文章を良く読みましょう。2値=on/offで出力する限りLEDに中間はありません。
「on→offの変化途中」というのは、最終的な判断としてoffにするのだけど、
offするまでに条件を取り込むような期間や状態のことです。
on中 → offへの移行中 → off中 → onへの移行中 →... という
管理上の状態変化のことを言っているのです。

コードを書け書けと言っている人がいますが、たぶん書かないと思いますよ。
書け書けと言っている人は、知らないから手本を見せてくれという観点ではなく、
書ける門なら書いてみろ。こてんぱんにしてやる、というのが見え見えです。
あなたが重箱の隅をつつくように質問攻めにすることは容易に想像できますし、
書くのにも時間が掛かる出、めんどくさいのです。
あなたは、答えはわかっているくせに、知らないふりをして聞く。意地が悪いです。
0983774ワット発電中さん
垢版 |
2019/02/15(金) 00:19:38.47ID:0WScxoT6
誤記訂正

>書ける門なら書いてみろ。こてんぱんにしてやる、というのが見え見えです。
  書けるもんなら

>書くのにも時間が掛かる出、めんどくさいのです。
  書くのにも時間が掛かかるし、めんどくさいのです。
0984774ワット発電中さん
垢版 |
2019/02/15(金) 00:34:23.43ID:0WScxoT6
連騰すみません

>>959
難しい言葉や用語、横文字を並べていますが、
「おれば詳しいんだぞ、スゴイだろ」って言いたいんですよね?
でもね、本当にスゴイ人は、そんな ひけらかすようなことは、しません。

誰も頼んでいないのにアセンブリ言語で書いて、CPUも違うし。
間違いがあっても 誰もわかんねーだろ、と思って、得意げに書いているかもしれませんが、
いくつか間違っているようです。注意しましょう。

周囲から スゴイねって言われる人は、間違いなく もっと謙虚なんですよ。
0985774ワット発電中さん
垢版 |
2019/02/15(金) 00:35:10.80ID:0WScxoT6
俺もアホだ。
誤記訂正
連騰→連投
0986774ワット発電中さん
垢版 |
2019/02/15(金) 00:45:04.18ID:n0rBJcZ7
>>967
ポートレジスタを変数とみなせるだけの処理だけならそれでも良い。
同じ LED をウィンカーとして点滅させているのかハザードとして点滅
しているのか、ドアロック解除で点滅させたのか、はたまたソフトウェ
ア PWM で明るさを調整している最中なのかなど、ポートレジスタに
のみ覚えさせておくとだんだん厄介になるもんだ。場合によっては
条件が足りなくなって破綻する場合もある。
なので、「今、こうしたい」という状態を変数に作っておくと処理が分か
り易くなる場合が多い。ポートレジスタだけでいこじになってソフトを
作ればある程度までは作れるとは思う。
0987774ワット発電中さん
垢版 |
2019/02/15(金) 00:56:10.55ID:IhPQfsUu
マイコン固定で機能拡張なんて考えない
変数使うのはやだ
ってなら勝手にやればいいんじゃん。
否定されても我が道を進め。
ただ、後から助けを呼ぶなよ。
0988774ワット発電中さん
垢版 |
2019/02/15(金) 00:59:01.45ID:ikLDViKH
>>982
同意します。

空PINにいきなり出力して、オシロやロジアナ当てて、デバッグすることはあるけど、
入力、出力はなるべく1箇所でまとめてから、しかも、PIN代替が容易なように
マクロで記するのが普通だと思ってます。

あんまり条件決めうちで書かれた、プログラムは、完成に近そうで、なかなか品質があがりませんね。
0989774ワット発電中さん
垢版 |
2019/02/15(金) 00:59:52.04ID:OKqTN0AU
>>986
>「今、こうしたい」という状態を変数に作っておくと処理が分かり易くなる場合が多い。
よくわかりません。
具体的にはどういうことでしょう?
例えば、winkerとかrockとかhazardとかいう名前の変数ってこと?
0990774ワット発電中さん
垢版 |
2019/02/15(金) 01:16:01.48ID:mlBpZvSQ
>>982
>プログラム各箇所のon/offの要求は、変数に書くようにして、
>みんなで書き込んだ結果を、考えて最終的にポート出力するんです。
よくわからないなあ。
みんなって誰?
考えてってどういうこと?

コードに関しては、書いたものが出て来ない以上話にならないのが現実でしょ。
出してコテンパンにされるなら元の理屈があいまいだったってことでしょう。
コード書いてPICに書き込んでなんぼなのに理屈だけ語られても無意味だと思う。
理屈だけでPICが動くなら誰も苦労しないんですよ。
0991774ワット発電中さん
垢版 |
2019/02/15(金) 01:58:14.42ID:0WScxoT6
>>990
もういい加減に、素直になったらどうですか。
答えはわかっているくせに...
0992774ワット発電中さん
垢版 |
2019/02/15(金) 02:04:55.22ID:hQQbL1mM
>>991
その返答って、
具体的なコードにはできません。
という意味にとらえていいわけですね。
ただの机上の空論だと。

それならわかりました。
ありがとうございました。
0994774ワット発電中さん
垢版 |
2019/02/15(金) 07:01:59.20ID:qUi/yid0
>>959
すげえなこいつ。
自己申告ながら、3時間かけて誰も見ないAVRのマシン語のコードを書き、わざわざPIC初心者スレに貼る。
筋金入りの荒らし、真正のAVR厨、掃き溜めのゴキブリってやつだな。
冷静に考えりゃ、どっかからのコピペなんだろうけど。

いや、そうでなきゃ、逆に悲し過ぎる。
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 148日 14時間 12分 10秒
レス数が1000を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況