初めてのPIC 0x0f
■ このスレッドは過去ログ倉庫に格納されています
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 さ、質問どうぞ〜っ 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 64MHzで動くんだー 外部クリスタル16MHzの4倍? PC用だと遠い昔でも1.5倍位が限度だった フラッシュアクセスタイムとか調整した? >>795 16MHzクリスタルの4倍だよ。 趣味とは言え不安だから8MHzクリスタルに換装しようかと。 MCCで設定出来てしまうのが謎。 DSスペックは温度とか電源電圧全域の保証範囲 局所的にはOCで動作する のかも >>793 PWM用とかに、周辺機能だけ64MHz入れられるだけだと思うが。 >>786 早速遊んでみました イメージががRAMに展開出来ないので 8分割して8回描画して8回転送って感じにしました でも描画よりも転送に時間がかかっちゃって 1FPS位しか出てません ピンの都合で8bitがバラバラになってしまったのが主な原因です ピンの並びをキレイにして、 16分割してダブルバッファリングすれば DMAが使えるんで、 これを目標にしてみます このLCDの場合、 タッチパネルがLCDと共通ピンで非常に使いにくいです データ転送の隙間でペン位置を見ないといけない 素直に4pin独立で出しておいて欲しかった >>803 楽しそう。 テキストの逐次転送とか、画像でも部分的リフレッシュならFPS上がる? もちろん部分更新ならFPSは上がります 全画面フルカラーだと コントローラー最大の15MHzでも30FPSが最大 全画面フルカラーの動画再生で使うようなモジュールでは無いんでしょうね これは剥がすと見えなくなっちゃう系のシートじゃね? 12*4=48MHz 液晶表面のは保護用だから、ケース加工後に剥がす予定だよ。 保護シールのことだろ。 本題に無関係のどーでもいいことをチマチマうるせえよな。 わざわざ書く神経がクソだわ。 >>803 ピンがバラバラなままでソフト書きでなんとか30FPS出せました 出せたところで何をするかは決まってないんですが 素直にピン配変えろって聞こえてきそうだが こういう無駄な最適化は楽しいね アセンブラで書いたら1バイト転送あたり MIPS 10命令 ARM 6命令 になりました MIPSはアドレッシングが貧弱なのと PICのポート設定の問題で 命令数が多くなってしまった どちらもポート順がバラバラで2グループにまたがったピン配で、他の(同じグループの)ポートはいじらない データは転送データそのまま という条件 PICだとポート設定が SET, CLR両方を使うか INVで反転しないとダメなんですよね アセンブラで命令数は減って 命令の依存関係にも気を使ったんですが C++とほとんど時間は同じでした たぶんメモリ帯域の問題と思います >>819 キャッシュとメモリアクセスはどうやってるの? .macro lcd_write_bulk_even n lw TEMP, \n(DATA_PT) sw CLOCK, (LATA_INV) xor DATA_B0, DATA_B0, DATA_B1 sll TEMP, TEMP, 4 addu TEMP, TABLE, TEMP sw DATA_A0, (LATA_INV) lw DATA_A0, (TEMP) sw DATA_B0, (LATB_INV) lw DATA_B0, 4(TEMP) xor DATA_A1, DATA_A1, DATA_A0 .endm .macro lcd_write_bulk_odd n lw TEMP, \n(DATA_PT) sw CLOCK, (LATA_INV) xor DATA_B1, DATA_B1, DATA_B0 sll TEMP, TEMP, 4 addu TEMP, TABLE, TEMP sw DATA_A1, (LATA_INV) lw DATA_A1, 8(TEMP) sw DATA_B1, (LATB_INV) lw DATA_B1, 12(TEMP) xor DATA_A0, DATA_A0, DATA_A1 .endm こんな感じ このマクロをループ内に8個ずつ交互に並べる 大文字なのはすべてレジスタの#define 命令キャッシュもデータキャッシュも有効 LATA_INV / LATB_INVのキャッシュは無効 送信データはRAM上でサイズ的にキャッシュからは追い出された状態 ARM(STM32)だと偶数奇数を分けなくてよくて、命令もこれだけ str r6, [r5] ldrb r7, [r0], #1 str r8, [r5] ldr r8, [r2, r7, lsl #2] str r9, [r5, #0x400] ldr r9, [r3, r7, lsl #2] >>818 MIPSは、 対象のビット だけを書き変えられるようになってるから 先輩方の高いレベルの雑談は、本スレでお願いします。 ここは、僕たち初心者が質問するスレです。 俺は詳しいんだ、凄いだろと言う雑談は、 あっちのスレでお願いします。 元データにXORをした方がいいですね これで9命令に .macro lcd_write_bulk_even n lb DATA0, \n(DATA_PT) sw CLOCK, (LATA_INV) xor DATA1, DATA1, DATA0 sll TEMP, DATA1, 3 addu TEMP, TABLE, TEMP sw DATA_A, (LATA_INV) lw DATA_A, (TEMP) sw DATA_B, (LATB_INV) lw DATA_B, 4(TEMP) .endm SWL命令で1命令減る けど部分書き換え命令だから遅いかな こんな簡単なアドレス計算に2命令も使うとか MIPSはやっぱりいまいちだな アドレス計算は頻出するんで 命令の美しさとか犠牲にしてでも アドレッシングはリッチにしておくべきだったと思う x86だとアドレッシングがリッチすぎて (バランスが悪すぎて) 普通の計算にもLEAを使ったりする アドレッシングで余分に時間がかかったりしない その為のハードウェア演算回路 ARMならCortex-M0でもメモリアクセスノーウェイトなら1クロックでアドレス演算含めて読み書きできるし x86なら1クロックで(コアあたり)2個のロードと1個の書き込みが同時に出来る PIC32はMZ搭載のM5150コアでも加算とシフトで2クロック使ってしまう まあそれでも、 アドレス計算に何命令も使い その計算したアドレスのメモリにアクセスするのに何命令も使い その各命令に4クロックも使う8bitよりかは遥かに高速だけど >>833 例にCortex-M0出してるが Cortex-M0は演算で使えるレジスタの数に制限があるのを知らんのか? 大部分の演算命令では8個のレジスタしかアクセスできないぞ Cortex-M0はThumb-2の16bit長の命令とほんの少しの32bit長の命令しかない 32bit長の命令はたったのこれだけ BL DMB DSB ISB MRS MSR UDF ちなみに>>823 のコードはCortex-M0ではアセンブルできないぞ LDRやSTR命令でR8-R15は使えないし、 ldrb r7, [r0], #1 ldr r0, [r2, r7, lsl #2] ldr r0, [r3, r7, lsl #2] なんてアドレッシングも使えない str r0, [r5, #0x400] これもオフセット値が5bitまでしか使えないのでオフセット値が大きすぎてエラー どうで、ここ数日間、某スレで暴れてたAVR信者だろうな 某スレで見たがPICスレでエラッタエラッタ言って暴れてるのもどうやらAVR信者っぽい いやいや、 >>823 はCortex-M0じゃないから M4のコードで実際に正しく動作してる あっちのスレを見れば おれがPICマニアということはわかると思う PIC10からPIC32MZ EFまで守備範囲 ARMもx86も詳しいけど >>835 はM0のコードと勘違いしたのか 読解力のないヤツ >>841 そうじゃないだろ >>833 がCortex-M0とM0+がCortex-Mのなかでも特殊なのを知らなかったということだ だからCortex-M0を出してきてる >>823 のコードはCortex-M3以上なのは見ればすぐにわかった Cortex-M3、M4、M7はARMv7-Mだが、Cortex-M0、M0+はARMv6-Mだからな ARMに詳しいならこれくらい知ってるはずだ M0/M0+ M3/M4 M7 この3グループ、中身は全く違う そんな事は知ってる M7はスーパースカラ M5150よりもずっと格上 だから、M0、M0+はサポートしてる命令が少ないわけ Cortex-M3、M4、M7とはプログラミングの仕方が変わってくる >ARMならCortex-M0でもメモリアクセスノーウェイトなら1クロックでアドレス演算含めて読み書きできるし ARMに詳しいならなんで特殊なCortex-M0を出ししてきたの? Cortex-M0がCortex-M3とサポートしてる命令が違うことを知らなかったんじゃないの? >x86なら1クロックで(コアあたり)2個のロードと1個の書き込みが同時に出来る なんのx86のことを言ってるかわからないがPC向けのx86だろ? Sandy Bridgeとかか? いずれにしてもマイコン用のM4KやmicroAptiv、M5150と比べるようなたぐいのものじゃないな リアル基地外2人をあぼーんしたら一気にすっきりしたw コーディネータの指図に従って動く人なら、コーディネータや客が指定するいろいろな CPUを使えるようになってる必要があるかもね。 でも、自分の裁量で作れる人にとって、いろいろなCPUを学んでいることは特別に大切なことじゃないよね。 どのCPUを使ってるかは、ファッションじゃねえし。 MPLAB X、PICKIT2が使えるのはVersionいくつまででしたっけ? 多少の脱線話はしょうがないがやり過ぎだろ このスレで解ることはPICは初心者向きではないって事 >>863 初心者向けの理由や根拠にはいろいろな側面がある。 そもそもスレタイの初心者にも多面性がある。 なにかにつけ、肯定も否定もしない場合には理由はいらないけれど、 否定するときぐらいは根拠は書くべし。 そうでなければ、その根拠の解明をめぐってやりすぎの脱線が始まるおそれがある。 >>865 PICを否定する根拠を問うてはいない。「PICは初心者向きではない」ことの根拠。 根拠が書かれていないのであれば、PICは初心者向きではないという結論に意味はないし 根拠がある、とだけ書いて逃げている>>865 の主張にも意味はない。 根拠に乏しいものを信用せよという態度も、それを信用できるという態度も、 デマの拡散をするタイプの情弱だろね。 嗜好、選択の自由、それそれがすでに持っているもの、 それらを含めて、否定できるだけの根拠はちょっと考えにくい。 PICそのものへの否定であれ、初心者むけではないという結論であれ、 ただの白紙からの演繹的な判断や嗜好にすぎないことが多い。 最低限、嗜好の多様性は守られるべき。(それとも北朝鮮みたいな統制が好き?) >>866 初心者自体が明確に定義できないから意味無し PICと一括りに否定している辺りに「あ、こいつ知らない奴」ってのが読める 否定的意見を潰すんじゃなくて 肯定的意見を言えば良いのに ここが良いとかここが便利とかここが優れてるとか >>866 私は嗜好の多様性や選択の自由なんて問題にしていない。 初心者が始めるなら、8ビットPICよりも可能性の高いCPUで、と思っている。 その方が初心者も興味が持続するのでは無かろうか? 今ならArduinoでいいじゃないか、安いし。 >>868 ご存じの通り8ビット〜32ビットPICは全く別物のCPUだが、 このスレでも分別していないし、混乱の要因だ。 同一ブランド名を割り当てるマイクロチップテクノロジの常識を疑う。 いやぁ、ちょっと問題だったな、PIC関連スレでArduinoを薦めてしまった…… 「今ならArduinoでいいじゃないか、安いし。」は無かった事にして下さいw >>869 別に肯定的意見なんていらないのですよ。 ここに来る人は(否定する野次馬をのぞけば)それぞれに肯定的理由があるから来てるんだし。 否定派も肯定的理由を聞けば納得するだろう、という主張もありますが、そんなことを言ってる人が本気でそう思ってるとしたら甘いですね。 テレビであるタレントの顔を見るだけでムカムカする、と言ってる人に、その人がいかに美人なのかを説明したって心変わりはしません。 初めてスレだから 始めら前にちゃんと悪い面は知っておいた方が良いよな >>866 >>865 とか>>867 のような書き方をする奴とは議論にはならないだろ ああ言えばこう言うの逃げを打つだけなので相手をするだけ時間の無駄 >>873 >テレビであるタレントの顔を見るだけでムカムカする、と言ってる人に、その人がいかに美人なのかを説明したって心変わりはしません。 CPUの好き嫌いとタレントの好き嫌いの判断は同じような範疇なのでしょうか? そんな訳の分からない、曖昧な理由で使うCPUを決めているのでしょうか? 私にはそうは思えません。 PICを嫌っている人は嫌いな理由がちゃんとあります。 それは美人/不美人の判定のような感覚的なものではありません。 たとえば私の場合、いくつか8ビットPICを嫌いな理由がありますが、 一つだけ挙げるとすれば、タイムスライスが出来ない、です。 5 :774ワット発電中さん [sage] :2018/05/02(水) 01:20:40.75 ID:qrQAGo28 PICは他メーカーの同規模のMCUに比べて非常にエラッタ(バグ)が多いので注意 機能が使い物にならないものやスペックの性能が出ないものも多く存在する メーカーが把握しつつも公開されてないなかったりする 6 :774ワット発電中さん [sage] :2018/05/02(水) 01:28:19.06 ID:qrQAGo28 本当にPICが適切か良く考えてから選びましょう 主な競合MCU 8bit AVR / STM8 16bit RL78 / MSP430 32bit STM32 / LPC / Kinetis / RX ○○ができない→○○を使おうとしている人には貴重な情報。 ○○が他のCPUに比べて多い→他のCPUと比較した根拠が必要。 エラッタに関しては、他のCPUと比較したときの客観的データが出てきたことがない。ばかばかしい。 逆に、特に直接のメーカーサポートが受けられないアマチュアユーザーの場合、 国内外で自分が使っているときに知りえた情報を掲示板に書くようなようなユーザーが アンチも含めて多いPICはエラッタ情報を共有できて良いんじゃないかとさえ思う。 俺も仕事だとほかのCPUを使ってるけど、そこで知りえた問題はネットに書いたりしないよ。 そういう意味ではアマチュアユーザー「も」多く、掲示板を含めたネットでの情報交換が活発な CPUは悪くはない。 仕事で使ってて バグで全く使えない機能を堂々とスペックとして謳ってるのはPIC以外にある? おれはPICしか知らん いずれにしろここはPICのスレだから 他のマイコンのバグはスレチ 見つかったばかりのバグならともかく 何年も前からわかってる問題でも PIC10 OR PIC12 OR PIC16 OR PIC24 OR PIC32 2600000件 STM32 7600000件 (PIC10 OR PIC12 OR PIC16 OR PIC24 OR PIC32) (エラッタ OR errata) 543000件 STM32 (エラッタ OR errata) 25800件 👀 Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b) >>878 > 国内外で自分が使っているときに知りえた情報を掲示板に書くようなようなユーザーがアンチも含めて多いPIC 客観的データをよろしくね >>879-880 >他のマイコンのバグはスレチ もし、その態度で逃げるつもりなら、他のマイコンとの比較の上で否定的な表現はするべきじゃないと思います。 >バグで全く使えない機能を堂々とスペックとして謳ってるのはPIC以外にある? その部分については、なんだかなあ、という気はするけど下のようなことはあるかもね。 ■意図的に直さない PICについては、異常だと感じるほどに修正に慎重です。 コンパイラも古いものも長期間にわたってダウンロードできるようにしています。 ICでもソフトウェアでも、「何かを直したら、別の何かがおかしくなっている」というのはわりとよくある話です。 現状で動いているアプリケーションがある以上、別の何かをおかしくしてしまうリスクを避けるという 意図があるのかもしれません。(というのは想像だから、違うだろ!って思った人はメーカーに聞いた方がいい) 大昔のマイコンでも(値段は高くなっても)製造は維持しているものが多いのがPICの特徴のひとつです。 それを使っているアプリケーションの動作を変えない、変える恐れのあることを避けるという思想があっても不思議ではありません。 データシートの記述を修正する代わりにエラッタ情報をメンテしているふうなところはあります。 それは企業風土に近いものがあるように思います。 ■全く使えないのか、その使い方なら全く使えないのか、まあまあなら使えるのか もし、ある種の使い方ならまあまあ使える問題であって、割と多くの人がそのある種の使い方でええやんと 思うものなら、まあそんなもんじゃないでしょうか。 回避策が掲示板で共有されてて、「俺の使い方なら、それじゃダメなんだよ」って言う人は他のCPUを選べばいいし、 「まあええやん」と思う人は、まあええのではないかと思います。 あと、その人の環境次第という面もありますね。 ・AというCPUにはバグがあって、やや性能を落とした使い方をしないといけないけれど、情報も豊富で、よく知っている人がまわりにいる。 ・BというCPUにはバグは明らかにはなっていない。誰かが根拠を示さずAよりマシだと言ってる。まわりに使っている人がいない。 ・BというCPUにはバグは明らかにはなっていない。Aほど情報は豊かではないけど、よく知っている人がまわりにいて、使い方について教えてくれる。 ほかにもいろいろなパターンがあるでしょうね。 >>882 何かと比較して多い、と言ってるわけではないので、客観的データはないよ。 いろいろと検索していて、ふだんから「PICは自分が期待する基準において情報の絶対量が多い」と 感じている人は同意してくれればいいし、 「PICは絶対的に情報が少ない」と感じている人は同意してくれなくていい。 でも、PICの情報は良い意味でも不幸な意味でも、日本全国の傾向をすくえば 相対的には多い方じゃないですかね。 >>883 バグ自体を直せなくても広告は直せるだろ >>886 シングルスタンダードで通せる人なんていないし、求める方がおかしいのですよ。 誤解されているかもしれませんが>>881 はエラッタの数の客観的データではありません。 あえていえば、ネットにでてきたキーワードのカウントです。 >>887 その理由に関心がある人がMicrochipに問い合わせをすればいいのではないですか? 俺は潔癖症でもないのでそのあたりはどうでもいいです。 ことほど左様に初心者にはハードル(not敷居)が高いPICでしたとさ。 先輩方の高いレベルの雑談は、本スレでお願いします。 ここは、僕たち初心者が質問するスレです。 俺は詳しいんだ、凄いだろと言う雑談は、 あっちのスレでお願いします。 シッテル披露する奴は人の話を聞かないもんだよ 披露するのが目的 基本スルーがセオリーなんだけど 披露自慢人が複数いると まぁ、こうなるわな ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.4 2024/05/19 Walang Kapalit ★ | Donguri System Team 5ちゃんねる