初めてのPIC 0x12
■ このスレッドは過去ログ倉庫に格納されています
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 では、質問どうぞ〜っ >>21 調歩同期通信機能のことだとわかってるくせに。いぢわるだね。 ありがとうございます。 選択のページで探してみました。余裕で113個あります とか出ました。 多過ぎますが、型番の法則があることが、なんとなくわかりました。 16F72 → 16F722とか726とかが よく似ています。 ありがとうございました。 >>21 すみません、なんと言えば良いのでしょうか? 仮にUARTと言ったとしても、ESUARTでないと云々...とか言いそうですね。 >>22 いやいや、電圧レベルとか色々あるじゃない。 そもそも、RS-232C じゃなくて、CCITT V.28/DIN 66259-1 とか ANSI/TIA/EIA-232-F とかなんだし。 >>25 >そもそも、RS-232C じゃなくて、CCITT V.28/DIN 66259-1 とか ANSI/TIA/EIA-232-F とかなんだし。 世間ではそれをRS-232Cって言うんだよ >>23 用途次第では、ポートをパタパタで良いと思うが。 >>26 俺は詳しいんだぞって言いたいだけじゃないですかね? 座右の銘が「若い内の苦労は買ってでもしろ」 じゃ無い人はPICなんてやらないほうが良いんだけど avrに興味が無いんじゃしょうがないね みんなCQ出版と後閑氏と秋月の所為や 昔も使いづらいと云いながらH8使ってたやろ Arduinoじゃない素のAVRだって面倒やで MCCを使わない素のPICも面倒だと思うようになってきましたよ。楽な方にはすぐに慣れる。 >昔も使いづらいと云いながらH8使ってたやろ そうかなあ。使い易さは相対的なものだろ? 3048とかTinyが流行った頃、他に10個ぐらいまでの少量購入が容易で、 コンパイラもある程度まで無償で使えて、 ネット情報も乏しい中、ガイド本、記事があって参考にできた ようなマイコンって他にどれぐらいあったろう。 >CQ出版と後閑氏と秋月の所為 CQじゃなくて技評だろ? たしかに単行本は技評ですね。 でも継続的に記事が載ってるのはトラ技かな。 質問なのですが、こちらの板で良いのかわかりませんが、違うようでしたら誘導お願いします。m(_ _)m MPLABでトラブってます。 マシンはWindows7,MPLAB v4.15,XC8 v1.45 アイコンダブルクリックでmplab起動→起動して各ウィンドウ表示してスタートアップ画面になり初期化でプロジェクト読み込みが始まり 右下に読み込みの進行度を表すプログレスバー(Opening Projects)が出てきて、終わったら操作できるようになると思うのですが このOpening Projectsが13%で止まったままになり、既存のプロジェクトの操作及び、新規プロジェクトの作成が出来ません。 https://i.imgur.com/9dZXv6S.jpg https://i.imgur.com/K0XxQE0.jpg https://i.imgur.com/zE0M7ua.jpg 左にあるプロジェクトウインドウの各プロジェクトはイニシャライズ中で中が見えない状態 この写真で何故かタコ改プロジェクトだけ開けている。 タコ改もダッシュボードの情報は無い 新規作成及びテンプレートを開こうとするとwaitingで画面そのままでフリーズ 3ヶ月前も全く同じ現象に陥り、再インスト、システムの復元してもダメでバージョンアップしても全く変化無く発狂しながらスタートアップのOpen Sampleからなんか選択したら作成成功して開いたので、それ以降普通に戻ったのですが 今回はOpen sampleではwaitのままになって固まるだけ 今回は再インストとかはしてません。 なんかのログか設定ファイルがへんな状態なのではとデタラメでuser/appdata/local/mplab_ide/Cache/dev/v4.15/varのdatとか消してもダメでした 対処法ご存知の方ご教授をお願いしますm(_ _)m >>37 その問題に遭遇したことはないけど、ぐぐったらこんな情報が。 http://microchipdeveloper.com/faq:71 インストール直後のケースと永続性ファイルが壊れているケースについて書かれていて、 この場合は後者かも。 そこからリンクされているのか下記↓ Reset MPLAB X IDE to its Default State http://microchipdeveloper.com/mplabx:persistence-data >>38 ありがとうございます!家帰ったら覗いてみます! >>38 全消しからの再起動してみましたがダメでした。。 デフォルト状態で起動→openprojectで開いてみる→10%で止まる サンプルで開いてみる→プロジェクトウインドウにサンプル現る!おお!と思うも束の間インジケーターは10%で止まっている→このまま保存して再起動→先程のプロジェクトウインドウに登録されたサンプルが空っぽで何も無い 新規作成→waitingのまま進まない 結果は変わらずでした。 最新のV5.05にアップデートして前からのバージョンの設定ひきづかず起動→変化なし10%で止まる 前バージョンアンイスはアイコンがパソコンが紐付けわからない時のアイコンになっていて 実行しようとすると有効な32bitアプリじゃねーわとかほざいて実行してません。 なんか私のパソコン側の問題のような気がしてきました。。 >>40 64bitアプリを32bit環境で動かしたみたいになってるね。 >>40 プロジェクト・フォルダのあるドライブが異常に1票 別ドライブにコピーしてそこから開いてみては? >>40 Windows で GodMode にしてない? Netbeansではクラッシュするとか聞いたことがある 1.chkdsk掛ける 2.フォルダ/ドライブの権限もってるかを確認 3.管理者になってるか? これかな。 https://www.microchip.com/forums/m1064179.aspx ここの#17にパッチが紹介されているけど効いてるのかな。 #25あたりにnbproject ? に関わる問題が残ってるようなことが書かれてる。 MPLAB SNAPを発注したものだから、5.0 にアップデートしようと思ってたけどちょっと待つことにしよう。 あ。かぶってた。 MicrochipのWEBサイトで上の列のProductsやApplicationsをクリックしたら ほぼ文字だけの画面に切り替わって戸惑う。(ChromeとFirefox)前からこんなんだっけ。 あと、AVRがMPLABXで扱えるようになってたのは知ってたけど、XC8でサポートするようになってたのか。 秋月と言う店で売られているこれ↓について質問させて下さい http://akizukidenshi.com/catalog/g/gK-05499/ こんな感じのコードを書いたのですが、RB5に取り付けたスイッチ(ONでGNDに接続)の状態に 関係なく常にAの処理に入ってしまいます void main() { ANSEL = 0; ANSELH = 0; ADCON0 = 0; WPUB = 0b00100000; INTCON2bits.nRABPU = 0; if (PORTBbits.RB5 == 1) { // A } else { // B } RABPUでweak pull-upsを有効にした直後にポートの状態を見ているのがまずいのかとも 思ったのですが、Documentを見てもどれ位間をおけばいいのかと言った事は書かれていないか 見つけられませんでした。 RB5につないだスイッチの状態に関係なくAにしかいかない理由を教えて頂けませんでしょうか >>49 TRISB5の入力設定がないけど、それで大丈夫なんか? >>50 初期設定でInputだからいいんじゃない? それでも俺なら明示的に宣言するけど。 それより、ループするでもなく、チャンスは起動時の一回切り? スイッチ押しながら起動したときだけだよね、Bへ行くのは。 >>48 >AVRがMPLABX すまん詳しく。デバッガとかはどうなるの? >>41 ,42,43,44,45,46,47 >>40 です。ご心配かけました治りました!! DVD再生もエクスプローラーの挙動もおかしいし、パソコン悪さしてんだろうと mac(操作も分からんので置物)あるのでmacでmplabインストしようと思ってましたが、紹介されてますmicrochipのフォームを全部みると、これぞまさに同じ現象です! レスで私の現象に一致する対策と思われそうな奴をピックアップ @パッチをあてる Aプロジェクトフォルダの名前を変える Aを試しました。まず名前を変えてからmplabx v4.15起動→左のproject windowはno projectで何もないのを確認→終了して閉じる→エクスプローラーでMPLABXProjectsフォルダが作成し直されてるので削除。 →名前を変えたものをMPLABXProjectsに直す→v4.15起動→左のprojectwindowには何も無いのを確認→Open projectでプロジェクトを開いてみる→インジケーター止まらず開いた!! 新規作成もしてみる→waitingにならずにサクッと作成される! この状態でアプリを終了→Closing projectのインジケーターでフリーズせずサクッと終了→もう一度起動して先ほどのプロジェクトが読めているのを確認 ※設定ファイルやら消したりしてたので副作用?デバイスの固有のレジスタやらが分からず波線になってCtrl+クリックで飛べない。 →認識はしてるので一度ビルド通すと、波線消えて再起動後も現れない v5.05でも試したら、5.05もちゃんとプロジェクト読めるようになりました。 ※こちらは上記のレジスタを認識しない状態にはならなかったです。 ありがとうございました! ちなみにWindows7 64bit Godmodeではありません。 管理者です。ショートカットには権限者で起動に設定してます。(してるしてないに関わらず不具合は発生) >>40 です。将来の人用に置いておきます。 ●起動時のフリーズ?及び終了時のフリーズ? 起動時の初期化動作のプロジェクトの読み込み途中で止まってしまう。(Opening Projects) 10%や13%など新行途中で止まっている この状態だとプロジェクトが読めてないのでプロジェクトウインドウの各プロジェクトはInitialise...で中身が見れない。 当然ダッシュボードには何も無い ※一部のプロジェクトは観れるものがある場合有り またFile-Open Project..で開く、サンプルから開く等をしても止まる。 新規作成してもwaitingで止まる(実際は作られてMPLABXProjectsフォルダに作成されている) アプリを終了しようとすると、Closing native projectsのバーが出てきて、ずっと消えずタスクマネージャーで強制終了しないといけなくなる。 対策 for v4.15〜v5.05 @パッチあるならあてる Auser-appdata-local-mplab_ide-Cacheの中身 user-appdata-roaming-mplab-ide-dev-versionの中身 これらを全て削除。 Bアプリが保存しているプロジェクトフォルダの名前を変えて→起動して中身空なのを確認して終了→フォルダの名前を元に戻す ※@〜Bという順番の意ではなく、対策@、Aの意。 Aで治った!@で治った!という人がいます。 MPLABXのキャッシュって起動毎に結構容量食ってるんだな 俺の環境でuserDirとcacheの二つで260MBも使ってる しかも起動やビルド毎に書き込んでるわ SSD運用だから、RAMdiskでやった方が 精神安定上良い気がしてきた ちょっとメモリ買ってくる >>57 自己書き換え出来る品種は、昇圧回路内蔵してる。(書き換え速度に差は有ったかも) 高電圧かけるのは、書き換えモードに移行させる為 の意味が大きい。 >>58 すいません PICじゃないけどAVRとかも高電圧をかけなくても焼き込み出来るって事は 内部に昇圧回路を内蔵してるから高電圧をかけなくても焼き込みできるって ことなんでしょうか? >>59 高電圧の要らない不揮発性メモリーは、昇圧回路内蔵してる。 もうAVRはMicrochipの持ち物だから仲良くしようず 「昇圧回路の節約したから」で説明できるのかな。新しい(といってもかなり前からだけど) PICは低電圧書き換えモードもサポートしているわけだし。 低電圧プログラミングが許可されていない設定のときは、高電圧をかけないと外的要因では書き換えられることはないし MCLRピンを入力ポートとしても使える。 (この場合は、MCLRピンを入力ポートとして使う外部回路にちょっと注意が必要だけど) MCLRの高電圧が低かったりすると、データ保持期間が短くなったりしますか? 許される範囲で高いほうがいいんでしょうか >>64 昇圧回路内蔵していない古いPICはなるかもしれない 昇圧回路内蔵してる新しいPICは前述のとおり単なる通常動作と書き込みモードとの切り替え信号に過ぎないからちゃんと書き込みモードに移行できるかそうでないかしかない Arduino IDEから書き込めるようにしないん? みなさん、PICには何を使って書き込んでいますか? マイクロチップの純正品が5000円するのを見て二の足を踏んでいます Pickit3一択 昔は秋月よりマルツの方が安かった PIC縛りって言う訳でもなければSTM32なら500円以下だよ。 >>68 今はPICKIT3。 MPLABX 5 からMPLAB SNAP(2000円切り)が使えるはずなんだけど、SNAPは買ったものの 5に上げるのに二の足。 >>70 最新のマプラブXって5なのか うちのマプラブはいまだに2.2とか使ってるわw PIC縛りを考えないなら、ブートローダ内蔵のマイコンから選択すると世話がない。 PICでもロット縛り考えなければ、発注時に書き込み依頼すればタダ 1万個くらいでもなんとかなるだろう >>68 中華PICkit3クローン、送料込み1200円程度。 中華製品ってどんな悪意を持った仕掛けを入れているかわからんけどな。 >>76 そう思うなら買わなきゃいい、お前の自由。 なんだ>>76 は電子工作入門者・初心者の集うスレでも後ろ向き発言ばっかりしてる人じゃん。 マイコンの開発装置に何か仕込んだ所で何美味しい事あるんだよ。 書き込んだPICが勝手にネット接続してデータを送り続ける。スゴいテクノロジー。 ついぞ考えるのは CODE PROTECT で PIC に書き込んだ CODE をネット経由で盗む、だな。 それは、gpioしか使ってなくても何か盗めるのか? >>84 PicKIT 互換と銘打って ターゲットデバイスに書き込むときに CODE を盗んで隠し持っておき、トロイの木馬がこっそり吸い上げる仕掛けをイメージした。 やるならWIFIモジュールを積んだ基板の時の方がかくじつだな オラクルがJDK有償化するから IDEとかどうなっちゃうんだろ? >>77 秋月のPICkit4の在庫でさえ600個程度なのにそんだけ売れてるなら良さそうだね。 ポチッたわ。 >>89 ランタイムまで有償化とか気が狂わない限り問題無い。 >>91 良く知らんけどJABAは11からランチタイムも有償化になるんじゃないんだっけ? JABA10までが無料だと思ったけど違うの? >>91 一般向けのダウンロード無くすっぽいから実質JRE有料化だな まあ、金払うのはJDK使う側なんだけど んで、JDK使って作ったアプリはJREをくっつけて配布ってのが標準になるっぽい まあ、openJDK使ってりゃいいんじゃねって感じではあるんだがな >>92 ランチタイムわろた 今一般に配ってるJREは8で、これが無料版ラスト 9, 10はあんまり使われないままサポート終了で、実質8の移行先は11ってのが現状 11はサポート有料のオラクルJDKとサポート無しで無料のopenJDKに分離 ってことなんで、IDE作る側がオラクルJDK使って料金をエンドユーザーから徴収するか、openJDKで今まで通りのどっちを選ぶかってことになるんだと認識してる まあ、まだオラクルの気まぐれで変わることが無いとは言えない気もするがな もう自作するしかないな 赤の他人が作ったコンパイラも信用できないし、 ハンドアセンブルで頑張るしかないか いやいや、そもそも基本となるハードウェア自身が信用できない ロジックICでCPUを作るか? だが、ロジックICが仕様書通りにできている保証はないよな ディスクリートでやるか? トランジスタは信用できるだろうか? いっそリレーの方がいいのではなかろうか? 一部のリレーはスケルトン構造になって中にコイルと鉄片と接点しかないのが分かるから そういうのを使って組んでみるか >>94 Javaはな。メモリリーク起こすのなんとかして欲しい。 こっちは使う側だけど、アプリ屋さんが凄く苦労してる。 >>95 もう手垢のつきすぎたネタで、何にも面白くない。 書くならデータセンター様のラックにでも実装してwidows 10走らせてからにして 初心者歓迎!!(老人会) ・データシート読んだ人に限る ・データシートに書かれている事以上の事は答えられません ______ /::::::::::,,:::::::::::::::::::::ヽ /:::::::::::,,,::::::::::::::::::::::::::::::ヽ /::::::::::::::,,,,:::::::::::::::::::::::::::::::::::ヽ、 |::::::/⌒ ^ ⌒ \:::::::::::::::::::::::::ヽ. PICは初心者向けではないことを見抜けないとPICを使うことは難しい |:::::| /ヽ::::::::::::::::::::::| |:::::|\ / ヽ::::::::::::::::::::| ヽ:::|<(| こ(> \|ヽ:::::::::| .. ヽ| h J:::::::::| . \ L ヽ::::::/ . \ー―┘ |:::/ __\__/ /V_____ /;;;;;;;;;/ く / ∧;;;;;;;;;;;;;;;;;; >>102 > レベルの低い初心者が増えただけ レベルの低くない初心者とはどの程度の人のこというの? これぜひ知りたい この辺が問題の本質かも >>105 半田付けもせずarduinoとブレッドボードでLチカする初心者とか >>106 ちょっと書き方がわるかったか 「レベルの低くない」初心者とは、と書いたんだけどな 正しい初心者 望まれる初心者 こうあってほしい初心者 に訂正します クリスマス用のLチカを作成中 元ネタはhttp://www.geocities.jp/orange_denshi/led-part2.html#star (そういえばYahooジオシティーズ来年で廃止になるらしい、こういう昔っぽいページもなくなっていくんだな) 秋月で円形のユニバーサル基板を買ったのでそれにLEDを並べてみたら20個でも行けそう(オリジナルはLED10個) https://i.imgur.com/mGiQKY5.jpg 2.54mmピッチだとどうしてもきれいな星形にならない、1.27mmピッチだとそこそこきれいになりそう 量産するつもりはないが基板屋に注文してみたくなった それよりプログラムを改造しなくちゃ点滅パターンもちょっと増やすかな >>105 他のマイコン触ってるけどPICは初心者とかかな? 食わず嫌いも割といるし。 >>109 手持ちにいっぱいあったから12F629 A/Dもコンパレータも使わないしI/Oだけ5本あればいいからもっと安い12F509とかでもいいんだけどね… 元ネタのHEXそのまま入れたらとりあえず10個だけ点滅したけど、20個用に改造したやつは点滅がめちゃくちゃだw さてテストプログラムでも作ってのんびりやるか >>101 >PICは初心者向きではない たしかに。 しかし、使い始めてまだ良く分かっていない人全員が PIC初心者だ。 MPLAB Harmonyは所謂 RTOSなんですかね? Taskの箇所にプログラムを 記載するみたいですので LED10個のLチカがうまくいくのに+10個の20個Lチカがめちゃめちゃなのはなんでなのか? しばらく悩んだけど基本的なミスがあることにやっと気づいた MPASMはデフォルトの数値表示が10進も16進もあり得ると… 16進になってるのに気づかず10進のつもりで11から20個目でのLEDコントロールしてたから…10個まではうまくいくのに11個以上はメチャメチャ こんなことにやっと気づいたおマヌケな経験でした >>116 エスパーすると電流の吸い込み吐き出しの絶対値の総和には上限がある。 守らないと暴走する。 >>118 エスパーするまでもなく、>>116 は記述上の問題だった、と解決済みってことじゃないのですかね。 もうずいぶん長くMPASMを使ってないので、「デフォルトの数値表示が10進も16進もあり得る」というのが実感としてはわからないですが。 mpasmのDefault radixはMPLABXの場合はこんな感じで切り替えられる https://i.imgur.com/g66LdpX.png よくテーブルで addwf PCL,F retlw 8 ;Index0 retlw 14 ; 1 retlw 1 ; 2 retlw 2 ; 3 こんな風に書くけど retlw 14 ; 1 が十進の14なのか十六進の14なのかはDefault radix次第です 明示的にD'XX'や0xXXなどの指定をすれば間違いないですが、大量にテーブルを書く時などD'XX'や0xXXを省略したいときにDefault radixを確認しておかないとハマります こんな人が住んでるんだから、こわくて質問できないわ 370 自分:774ワット発電中さん[sage] 投稿日:2018/08/14(火) 01:31:45.22 ID:wxHVQjQL [2/5] >>369 初心者でも最低限データシートは読めよ 初心者を免罪符にして甘えんなボケ 549 名前:774ワット発電中さん[sage] 投稿日:2018/08/22(水) 03:53:44.84 ID:8jF5McIM データシート見て理解出来ないならPICは使いこなせない 電気の素養の無い本当の初心者ならArduinoに逝け 635 名前:774ワット発電中さん[sage] 投稿日:2018/08/27(月) 03:41:46.21 ID:djjibUpr コピペすら出来ないならPICなんてやめた方がいいよ。 ホントに、質問しっぱなし、事後報告無しのヤツばっかだねえ。 アンチが湧いてることと質問のマナーの悪さとは関係あるんかねえ。 >>121 怖がることはない、無視すればいいだけ。 そこらで吠えてる飼い犬と一緒。 むしろひもでつながれてるだけの飼い犬より安全かも。 ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる