初めてのPIC 0x24 ※顔文字は禁則事項です!
.
_ _ PICをさわるのは今日が初めて、という超初心者のためのスレです。
(O>――<O) PIC選び、PICを使った回路は、誰でも最初は不安なものです。
/ (・) (・) ヽ 恥ずかしがらずに何でも聞いてください。速攻で教えてくれますよ。
○ /▼\ ○ 質問のしかたは、初心者質問スレの発言1を見てくださいね。
|(ヽ二フ ) |
/  ̄ ̄ ̄ ヽ
f ヽ / | PIC関係のスレは、レベルに合わせて以下のスレもありますので、活用しましょう。
ヽ \ / ノ ・PIC専用のスレ
| \_ )(_/ ! 本家本元のPICスレです。口の悪い人もいますが、楽しくやってるみたい。
| | ここの話がわかるようになれば、あなたはもう一人前のPICerです。
| | ・マイコンソフト 悩み事相談室
| | ̄ ̄| | マイコンソフトやツールの質問は、こちらでどうぞ。的確な回答があります。
(_ノ ヽ_)
質問するときは…
・PICの型番と開発環境を明記しましょう。
・プログラムは、レス内に直接書き込まず下記を利用しましょう。
http://codepad.org/ https://pastebin.com/
・解決したら結果報告しましょう。
・ここはPICマイコンのスレです。AVRの自慢話は「AVRスレ」でお願いします。
回答者の先輩は…
・威張らず、偉そうにせず、上から目線にならず、優しく答えてあげましょう。
・顔文字はやめてください。回答内容と顔文字の使用は別問題です。
ハード、ソフト情報
・統合開発環境 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
・PIC一覧、スペック検索
ttp://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1005
ttp://www.microchip.com/maps/microcontroller.aspx
・初心者はPIC16F1以降の型番で始めると無理なく始められます。
MCCを使えば、最初からPIC32で始めるのもありです。
・プログラムの書込みには書込器が必要です。
予算に応じてPICkit4、SNAPなどを購入しましょう。
ttp://akizukidenshi.com/catalog/g/gM-13854/
eBayやAliExpressで買えるPICkit3の中華クローンも十分な性能が報告されています。
直近スレのご案内
0x15 https://rio2016.5ch.net/test/read.cgi/denki/1567831628/ 2019/09/07〜
0x16-0x19 欠番です
0x20 https://rio2016.5ch.net/test/read.cgi/denki/1596523661/ 2020/08/04〜
0x21 https://rio2016.5ch.net/test/read.cgi/denki/1617716381/ 2021/04/06〜
0x22 https://rio2016.5ch.net/test/read.cgi/denki/1636738259/ 2021/11/13〜
0x23 https://rio2016.5ch.net/test/read.cgi/denki/1652634500/ 2022/05/16〜
では、質問どうぞ > では、質問どうぞ
PICの良い所はどこですか? >>1
乙
>回答内容と顔文字の使用は別問題です。
よく言ってくれました。ありがとう。 >>3
ネット上の作例が多いのが良いと思います。
先人のたくさんの情報が心強いです。 mega328を使っているArduinoの作例の多さは?
(作例という言葉が適当かどうか分らんけど)
先人ってオジーチャン達の事?
以前、「私は20年間PIC一筋です」って自慢してたオジーチャンいたねw 良い所は? って聞くのほとんどが、ケチをつけるための質問であることは学ぼう。
どんなものでも、たいていの利点は、何かが欠落した見れば揶揄の対象にすることができる。 じゃ、PICの不利な点はと聞けばいいのかな?
ちょっと禅問答っぽいから、次回からは私みたいなアホでも分るように
もう少しかみ砕いてシンプルにしてください。 >>14
スレタイに「※顔文字は禁則事項です!」と書いてあるのに、
なぜわざと使うの?
そう書いてあるスレくらいは、使うのをやめたらいいのに。 >>14
スレ立てる時に「恋のミクル伝説」を聞きながら立てたから間違えじゃないぞ
\(^o^)/ ←スレ立てた人 >>17
絵文字って自分の環境(専ブラ)だと表示できるんだけど
janeとか使ってる人は「・」とかに見えちゃうんだよ〜 悲しいよね・・・
せっかく犬の絵文字打ってくれたのに残念・・・ 前スレの95円の御方は↓元気にしてるだろうか?
https://rio2016.5ch.net/test/read.cgi/denki/1652634500/967
この御方から色々学びたいと思ってたのだけど、全然遊びに来てくれない( ;∀;)
もっとちゃんとお茶菓子とか出しておけばよかった(*´з`)ブッチュ--
STM32L010F4P6(95円) vs PIC32MX110F016(100円)とかで色々と比較してみたかった
試しにPIC32でLチカしといたんだけど
「MPLAB Harmony 3 Configurator」ってのはちょっと異世界だった こういう初夜とかいうワードを嬉々として使う不潔な大人には絶対なりたくないと思った!・・・けど、
気付いたらもうなってた!(^p^) (そういやぼくもなにげに下ネタ使いまくってたわすまんすまん) 下ネタにも上品な下ネタ、下品な下ネタとか
笑える下ネタ、笑えない下ネタなどと色々ある。
下ネタを扱うのは難しいな、上級者向きだと思う。 ↑初めてのPIC32(ただし夜ではなくて昼間)でした\(^o^)/
なんてのはどう? 国葬で外国要人を巻き込んだ大規模クラスターとか生じたりしてな;しらんけど 僕はドローンもってないから、ドローン飛ばしたりしても
入手経路とかで足がついてお縄になるだろうと思うからやる人いないと思うけど、
でも 本当に普及していたら大量生産過ぎて犯人を同定できなかったりするのかな;
後で云々、という着眼点に立つならば 逆に
国葬推進派も 後日 人道犯罪への加担とかいうことで
お縄にならないのかなぁ。。。
あとは思想抜きで事務的な問題としても、直前のオリンピックですら贈収賄で逮捕されてるのに
度胸があるというか 学習能力がごにょごにょ その なんというか・・・知らんけど(^p^; PICもあれかな、仮に犯罪に使われても
大量に出回り過ぎてて足がつかなかったりするのかな?
それとも 公表してないだけでメーカー解析に回せば
個体識別からの流通ルート推定とかってピンポイントでわかっちゃったりして;しらんけど(^p^; >>26
⊂⊃ ⊂⊃
⊂ \ /⊃
\\ /⌒ヽ//
⊂⊃ (( \( ^o^ ) ))
/| ヘ 空も飛べるはず
//( ヽノ \\
⊂/ ノ>ノ \⊃
レレ スイスーイ ⊂⊃
彡
ちょっと飛んでくる \(^o^)/ <「5chからきますた」 そうか、ジャックバウアーに気を付けてな・・・;しらんけど(^p^; >>28
仮に犯罪に使うなら・・・
自分でもいつ買ったのかわからない古いPICを使えばいいんじゃね?
もしくはAliで入手できる 本物のSTM32C8T6(なぜかIDが合わない??)←絶対足がつかない
ともかく
PICを援助することを条件に交際してはイケナイ!!
※一般的に援助交際とは、成年者が未成年者に金銭や高級なブランド品などを渡して、性交および性交類似行為をすることをいいます。
PICは高級なブランド品にあたる可能性があります\(^o^)/
PIC乱用は「ダメ。ゼッタイ。」 PICなんて 品薄のコネクタやICと違って そこら中(※)に
転がっていると思っとったが そんなとこまで品薄現象が波及しとるんか・・・しらんけど
※ネット通販界隈 秋月から32MZがまったくなくなってしまった・・・
もうダメなんじゃね MicrochipがディスコンしないのってPICだけでしたっけ?
ほかのリニアとかLDOも対象? 1815さんをはじめ各社悪びれずディスコンしまくるなか
マイクロチップさんは(一部シリーズであろうと)ディスコンしないんかすごいな
土曜の夜だぜヒャッハー(うそです 明日は月曜日です)
>Microchipがディスコンしない
今となっては都市伝説に過ぎないのでは。もともと出どころがはっきりしない話だったし。 PICのオープンドレインを持っているPICは、
どのようにして調べれば出てくるでしょうか?
通常I/Oを、L出力←→入力 にすればできるよ、とかではなくて、
本当のオープンドレイン内蔵を探しているです。 >通常I/Oを、L出力←→入力 にすればできるよ、とかではなくて、
>本当のオープンドレイン内蔵を探しているです。
つまり電源電圧より高い電圧をON/OFFしたい、ということ?
何VぐらいをON/OFFしようとしてるんですか? ODCONxレジスタを備えているものなら、オープンドレインが使える、みたいな感じなんかな? ありがとうございます。
さすがですね、その通り3Vの電池駆動のPICで、12Vくらいに耐えて欲しいです。
PIC12F15...のデータシートを見たのですが、
pin の表に Open Drain = OD と中期がありましたが、表中になかったのです。
また、MicroChipのセレクターのページにも、
open drain の選択肢を見つけられなかったのです。
16F84のようにRA4とか あるのかな、と思ったのですが。 >>42
datasheet読むと、多くのPICは最高5.5V超えるなとありますね。
12Vは分圧するか何か必要では。 ・12Vに耐えてほしい
・出力が0V←→12Vで振ってほしい
ということになると、外付けトランジスタは必須だと思います。
マイコンのポートが高い電圧に耐える、ということは、シリコンの面積を増やしてしまいコストを押し上げます。
コスト競争が厳しいマイコンだと、多くの需要を見込めなさそうな機能のためのコストを上げることはあまりしないのでは。 12Vは無理にしても、その昔のOpenDrainのピンは、
たった1本だけど、8.5Vまで行けた。結構重宝したんだけどね。
今の品種では、なかなかVDDを超えるのは無いみたいですね。
ありがとうございました。 基板にPICだけ乗ってるのが美徳なんだろうか。 たまに見るな 武器を持っていると使いたくなってしまうんや!
平和の為には持たないことがたいせつなんや!
という、軍事力放棄を謳う勢力みたいな論理やな。
他者は心の鏡というから、軍事力放棄論者の心の中の、
なんとも獰猛かつ残忍な事よ;しらんけど(^p^; 正規分布の両端はなんでもあり。たまにあるものはなんでもあり。
って高校のときの先生が言ってたな。 >>45
データシートを見なおしていたらPIC16F628AのRA4も上向きダイオードがなくて
Nchトランジスタだけの出力で、高い電圧に耐えるみたい。
あたらしいものにはないですね…。 何で絶滅したんやろう… 静電気に弱かったりしたのかな? 32bitマイコンなんて8.5V入力どころか5V動作品すらレアだしな あまり電圧が低いのはノイズに弱そうでイヤだな。
電池駆動でも無い限り、5V品があるなら5Vを使いたい。
12Vでも24Vでも構わないw おもに使うマイコンの電源電圧ってどんなもんなんでしょ
5V(一部の制御、USBのバス電圧そのまま派、伝統的Arduino派)
3.3V(メインだよなという認識派)
3V(リチウムコイン電池派?)
1.8V〜3.2Vで動作しないと(乾電池2本そのまま派)
俺はあれこれ考えるのが面倒なので、マイコンはほぼ3.3V。
あと「3.3Vが終わりを迎えつつある」ってどれぐらいの状態を指してるんかなって気もする。 1970年代からあるTTLの7400シリーズは5V単一電源で未だに流通している。 携帯用AC-USB(5V) アダプタが
ひろく流通しているのは マイコンうーざーへの恩恵も大きいのかもですな; >>65
おいやめろ! \(^o^)/
電電板から女子が逃げる
※以下環境依存文字含む
🌸🍀🏵🍁🍃🌸🍁🍃🌸🍁🍃←花とか草とか飾っておしゃれにしようぜ
𝓟𝓘𝓒 𝓜𝓲𝓬𝓻𝓸𝓬𝓸𝓶𝓹𝓾𝓽𝓮𝓻 ←文字もおしゃれに >>66
じゃ、女子向きなオナグッヅでPICを使って何かする話する?🥳🤱🧑🍼
だからこういうのをゆるスレでやるべきなんだよなあ なんだろう 良心回路とか乙女回路を未実装なので おなごの趣味はようわからぬが
・美顔器(コロコロすると同期してPICでピカピカLEDを無駄に点灯・・・)
・シックスパッドなんたら(高圧高周波パルスで不随意運動さして勝手に脂肪燃焼するとかいうやつ)
・ムダ毛処理マシーン??機構不明><; >>67
https://rio2016.5ch.net/test/read.cgi/denki/1663608718/267
これを応用すれば作れる気がする \(^o^)/
「ゆるスレ」←頭の緩い私向けのスレですねわかります💦💦
あと「低周波オナニー」用の装置をPICで作るとか? >>68
感情生成型パワーアクセラレーター「エンゼルハート」を実装しましょう
\(^o^)/ <「きゅいーんくるみですぅ」 自分で振っておいていい加減怒られるな
ちなみにゆるPICスレは私がたてましたwww
この話題やめるかゆるPICスレでダベるのも良いし節度は持ちましょうね(自分への戒めを含む >>68
手元にある除毛器(ローラーが回転して毛を挟んで抜くタイプ)はバッテリーインジケータやら
スロースタートや回転速度の制御に何かしらのコントローラが使われてる
PICの介入する余地は有りそうだ
https://i.imgur.com/OpT1cu9.jpg
↑これは回転すると金属のプレートが毛を挟む動きをする そういうこうぞうなのか・・・2SC1815ちゃん足もがれちゃうん?(;ω;` かわいそす
そういや電気刺激で痛みをごまかしてくれるのとかあるらしいですな・・・ むむむ; >>72
へーきへーき!
フレンズによって得意なこと違うから!\(^o^)/ そうか。ところで、どのフレンズがどういう得意な特徴を持ったケモノなのか?は、もちろん大切なことだけれど、
まじめなはなし、メーカーというのは顧客のニーズに応えなきゃイケないと強く思うんよ・・・
ぶっちゃけた話、AIB○が終了してもうたのは、イエイヌのフレンズがもつ特徴であるところの
バター大すこ という要素をスポイルしたからなんぢゃね?説(^p^) >>76
AIB○はaib○になって今も
S○NYは早く「HAND MAIDメイ」みたいなのを実用化してくれよぉ〜
動いて喋るお人形さんで遊びたい\(^o^)/ 表情筋が動いて喋るお人形さんに
冷たい表情で汚いものを見る目でなじられたい!(^p^) ID:/8GbsSao
ID:FvZHw+eU
同一人物の予感。
PCと携帯で書込か >>79
/8GbsSao(スマ○)=v1laF61b(PC)だが
一人二役で2次元キャラやお人形さんとしゃべる趣味は有るけど
ここで自作自演する趣味はないぞ \(^o^)/ どちらも変態で「目クソ鼻クソ」だけど、
(^p^) のほうが\(^o^)/よりも少しだけ変態度が高い 顔文字批判している人は顔文字フォビアなんだろう。脳の構造の問題なんじゃないのかな。少なくとも理屈ではないと思う。
以前に蓮フォビアが話題になったことがあるよな。
○○フォビアに全部したがっていたら、掲示板なんて成立しない。 ひょっとして彼は、
顔恐怖症なのかもしれないね;しらんけど(U) ← 顔を隠してちんぽ隠さず PICスレだけに
PICture的に顔文字恐怖症を緩和するアプローチ
加筆でチューリップとかに脳内変換する、どやぁ! (U)ぼろん!!
咳をしても一人、という自由律句があったが。
ちんこ文字やめろ! の大合唱を期待してボケて見てもひとり・・・(U)ぼろん!!
かおもじやめろ!とかげひんなのやめろ!とか主観的好悪に過ぎないのではあるまいか
自らが準拠する文化の文脈ではxxだ、という価値観の中で、彼も顔文字やめろと
叫び続けているのかもしれないね、しらんけど(^p^; >>86 むごんふぉびあ
>>87 ぼうそうふぉびあ
>>88 おげふぃんふぉびあ
>89 おじょうひんふぉびあ
>90 すれていたいふぉびあ
>91 のけものじょうたいふぉびあ
>PIC のいまんずぼとるねっくふぉびあ(どやぁ 直販サイトでの価格が、日本円だとえらい値上がりしてるな。
少し前まで110jpy/usdくらいで計算されてる感じだったが、
さっき見たら150jpy/usdくらいになってる。
usd価格はわいが見た奴だと変化なかった。 スレッドタイトルにも書いてあるのに、顔文字やめないの? >>95
わざとやってんだよ。話題にするな。無視が一番。 >>94
天罰! エンジェルラビィ/UNDER17(桃井はるこ)
「罪を憎んで人を憎まずあなたに審判下します!! 魔法のバトンで…エンジェルラビィ あうあうあ あうあうあそれがわたしのくちぐせあうあうあ あうあうあ言葉にならないけれど ...」
↑なんかこれ思い出した・・・ \(^o^)/ 「顔文字」って単語が禁則なんでしょ?
じゃなければ具体的にどの記号がだめなのか書いてくれ ※顔文字は禁則事項です
↑
顔文字という三文字をNGワードに設定しろ、という
珠玉のアドバイスだと思うぞ・・・しらんけど(^p^;
ちなみに94は俺ではない どういう甘言で初心者をだまくらかせば
PIC沼にひきづり込む事が出来るだろうか?
みんあで考えやう(^p^) >>101
「PIC初心者熱烈大歓迎質問スレ」を立てようず\(^o^)/ PICからはじめて変なクセをつけるよりも
素直にARMを使え
と思う いらない、このスレも無くして1本化してもいいくらい 顔文字ジジイが、エロと親父ギャグで、凍り付かせるから、誰も書き込まなくなったんだ クセがあるのはわかるけど
クセがあるものを使うとクセが付くってのには同意できない らんりつじゃなくてテンプレ修正&似たスレは統合、という方向で検討するのもアリさん引越社(^p^) >>107
ROM/RAMが少ない
CPU性能が低い
解説サイトのコードのレベルが低い
==>
流用性の低いコードになる _delayを使ったコードがたくさん有るが
これらは全て参考にする価値のない糞コードと思って良い スレ一覧表示時にPICが先頭にあれば並んで見やすいのだが PICしか使ったことが無いヤツが多いのも
PICのコードの質が低い理由 PIC8と比べてARM32の方が素直は判らなくもないが
32bit ISAの中でARM32が素直かは結構疑問 PICは今なお入門用によく使われている、ということですね。
まあそれだけ、ほかのプラットフォームになんらかのマイナス要因があるのだと考える方が、深く考えるきっかけになるよね。 >>113
MIPSの方が素直だけど圧倒的シェアでARM シェアと教材として適当かはあまり相関しないだろう
シェアを考慮するとスーパーカオスのAMD64が有力候補になってしまう シェアってカテゴリで分けないと意味をなさなくなるし、金額ベースなのか数量ベースなのかも前提にしないと。
それとは別に、ビギナーが選ぶものと、教育教材用とは、重なる部分もあるけれど同じではないし。 ARMにシェアで対抗出来る32bitMCUなんかない PICがMCU入門に向いてない理由
・世の中にあるサンプルコードが糞
・ROM, RAM, CPU, 周辺,全てがチープ
・エラッタが多い
・安価なボードが無い、少ない
・PICマニアの民度が低い ・サンプルコード自体がないか少ない
・過剰機能で高価格かあるいは低価格品があっても売り切れで入手不可
・(仮にエラーが露呈しても)ERRATAが発行されてるのか?よくわからん
・安価なボードが検索にはHITしても品切れなどで買えない
・民度が低いマニアは確かにいないかもしれないがマニア自体がそもそも存在未確認
こんなNUCLE○とかじゃね? しらんけど(^p^ PICのデータシートの見方がわからないです。
↓この画像を見てください。
https://imgur.com/5in4A5n.jpg
https://imgur.com/Xwp0Msm.jpg
表中の(1) (2) (3)などの注記番号の説明が、表の下に書かれています。
英語なのでGOOGLEで翻訳して、画像に貼り付けました。(訳の4と5は反対です。私のミスです)
翻訳された文章を読んでも、何を言っているのかチンプンカンプンなんです。
4. 網掛け部分は代替入力を除く。
・「代替入力」とは、どのような意味でしょうか。
・「代替入力を除く」の意味がまったくわかりません。
5. 代替入力は、ドット シェーディング エリアから除外されます。
ドットシェーディングとは、点々のついた網がけ部分だと思います。
・「ドット シェーディング エリアから除外される」という意味がわかりません
・「網掛け部分は代替入力を除く」は、どのような意味でしょうか。
原文Alternate inputs are excluded from dot shaded areas.
おわかりになる方、すみませんが、教えてください。 >>112
Yes、そもそも色々なCPUを使ったことがあれば8ビットPICなんか選ばない
私みたいな早とちり人間のフライングスタートでも
すぐに、あこりゃダメだ、と終わりにしてAVRに乗り替える >>127
詳しく見てないけど。
内蔵ペリフェラルの入出力のピンを選べる機能が付いているが、
ドット、または網掛けになっているピンにはその機能がマッピングできない、ということでは。
データシートのPPSのレジスタの説明と照合してみて。 >>129
ありがとうございます。アドバイスを元に調べてみました。
仰るとおりでした。
>4. 網掛け部分は代替出力を除く。
「代替」とは、PPSという機能でI/Oピンを引っ越すことを言うようで、
「代替出力」とは「出力ピンの引っ越し」と読むとしっくり来ました。
「代替出力を除く」というのは「出力ピンの引っ越し禁止のピン」という意味のようです。
>5. 代替入力は、ドット シェーディング エリアから除外されます。
4.が出力について説明しているのに対し、5.では入力について説明しているようです。
「ドットシェーディング」とは、点々のついた網がけ部分のことですが、
4.の細かい網がけと違って、荒い点々の網がけのことを言うようです。
4.だけダメなピンと、4.も5.もダメなピンがあることに気づきませんでした。
>・「ドット シェーディング エリアから除外される」という意味がわかりません
「除外」は「できません」と読むと自然に理解できました。
その他、
(1) は、「デフォルトではココに割り当ててありますが、引っ越し可能です。
表の最下部'IN'の欄に、まとめて書いてありますので
PPS機能を使って適宜自分で割り当ててください」
(2) は、「全ての出力ピンは、どこにでも引っ越しできます。
ですからデフォルトの割り当てはありませんので、
表の最下部'OUT'の欄にまとめて書いてあります。
PPS機能を使って適宜自分で割り当ててください」
(3) は、「双方向信号のピンですので、入力と出力を分けることはできません」(あったりめーだがや)
だと思います。
お陰様で、納得できました。ありがとうございました。 >>123
大変参考になります。ありがとうございます\(^o^)/
ですが抽象的なので具体的な例を詳しく聞きたいの
>世の中にあるサンプルコードが糞
これは書籍等の事なん?それともメーカー提供の情報なん?
どのぐらいの範囲の情報でどの様な対象(相手)との比較なん?
(低収入で書籍とかあまり買えないから良く知らないんだ・・・・)
>ROM, RAM, CPU, 周辺,全てがチープ
「チープ」という表現は適切でないとおもうの
用途に応じた具体的な比較対象を用いてデメリット等を教えてほしいの
>エラッタが多い
そうなん?(;^ω^)
>安価なボードが無い、少ない
「無い」・「少ない」の境目は・・・・
普通に各種評価ボード売ってるように思うんだけど
なんでなん?
>PICマニアの民度が低い
PIC民の民度が低いんじゃない、僕の民度が低いんだ\(^o^)/
まさか入門用にZ80を勧めてるんか・・・
たしかにバスの構造やらを意識できるから入門用にいいかもしれないが
今時だとハードル高いきがするの・・・ >>131
○コード
Web上のアマチュアコードが特にひどい
_delayが糞コード生成の大きな原因
はじめから応用が効く一般的な作りにするべき
○チープ
チープゆえに応用が効く一般的コードをとりづらい
ROM/RAMをケチる見通しの悪いパズルコードが多くなる
チープゆえにアセンブラを勧める人もいまだにいる
○エラッタ
CPUの規模に対してエラッタが多すぎる
回避出来ずスペックを満たせないような致命的な物もあるし
公表されてない物も多く存在する
○安価なボード
安価なボードが無い為
DIP&ソルダレス構成のホビーユーザーが多い
ハード、ソフト両方自分で作る必要があって敷居が高い
○民度
PICしか知らずPICを崇拝してる人が多い
視野の狭いユーザーになる危険がある >>133をわりと本気で書いているとしたらバカじゃないですかね。
狭い視野でものごとを判断して、自分が感じたことを正しいって思う傾向が強そう。 >>133
>_delayが糞コード生成の大きな原因
他のCPUでは、どのようなコードを書くのでしょうか?
__delay以外で書くなら、タイマー割込を毎回しようするのでしょうか? >>135
いろんなCPUを長年使ってきた上での意見、感想です
>>136
タイマー割り込みが必要な時には使うけど
大抵は使わないで処理すると思います ごくごく普通の時間管理
こんな基礎も知らない人が普通にいるのがPICスレ、PICユーザー
MCU入門に向いてない理由のひとつ >いろんなCPUを長年使ってきた上での意見、感想です
> >世の中にあるサンプルコードが糞
> これは書籍等の事なん?それともメーカー提供の情報なん?
> どのぐらいの範囲の情報でどの様な対象(相手)との比較なん?
>(低収入で書籍とかあまり買えないから良く知らないんだ・・・・)
という質問に対して
> ○コード
> Web上のアマチュアコードが特にひどい
> _delayが糞コード生成の大きな原因
> はじめから応用が効く一般的な作りにするべき
という、答えを書くようなことがおかしい。
どれだけいろいろなCPUをどれだけ使ってきても、狭い視野でものごとを判断して、
自分が感じたことを正しいって思う人はいる。 > >_delayが糞コード生成の大きな原因
>他のCPUでは、どのようなコードを書くのでしょうか?
>__delay以外で書くなら、タイマー割込を毎回しようするのでしょうか?
これに対して
>タイマー割り込みが必要な時には使うけど
>大抵は使わないで処理すると思います
も 噛み合っていない。
「_delayが糞コード生成の大きな原因」というわけだから
_delayが使われているような場面で、相当のことを、_delayを使わずにどう実装しているのか?
という質問なのでは? >>140
その通りだと思う。
_delayが糞コードの原因なら、他のCPUのときはどのようにして時間待ちをするの?
初心者が _delay を多用するのはあると思うけど、
他のCPUでは、どのように処理するのか知りたいな。 PICを否定する人がわざわざPICスレにやって来るのが謎だな 入門者が広がれば、それだけで平均レベルは落ちる。
たとえば、射撃競技は事実上、ちゃんとした競技者しか存在しない。だから平均レベルはちゃんと競技者に要求される水準に一致する。
広く普及している、野球やサッカー、あるいはマラソンなどは平均レベルはそれだけで低くなる。
職業レベルから入門者までが広く、同程度の割合で自分のコードを公開していると仮定すると、入門者まで広く普及しているマイコンは
そのコードは平均レベルが落ちる。これは当たり前のこと。
おまけに、一部を除けば職業レベルの人が積極的にコードを公開する傾向は低いはず。
自分のWEBサイトでの公開は、自分の勉強を兼ねていたり、アマチュアの立場で発信している人が多くなるので、よけいにその傾向が強くなっても自然。
その部分を見て「PICは」と一般論のように語るのは、あまりに考察が浅い。
前にも似たことを書いたけれど、公開されているコードの平均レベルが低いのは、入門者も含めて広く普及していることの現れでもある。
どんなマイコンでも、ひろく普及すれば平均レベルは低くなる。
逆説的になるけれど、平均レベルが低いマイコンは、平均レベルが低くないマイコンより、入門用に選ばれる理由があると考える方がいい。
あと、比較は同じカテゴリでするべきなので、カテゴライズを合理的に定義してから比較を論じてほしい。
8ビットマイコンと32ビットマイコンは、カテゴライズの定義によっては同じカテゴリに入ったり、別のカテゴリになったりする。
その考え方が違えばそれだけで議論はかみ合わない。まずはカテゴライズ。続きはCPUの比較スレでやって。 マルチタスクが走らないCPUは周辺入出力制御用であってシステム制御用ではない
つまり用途が異なるのであって、単純に同じレベルでは比較できない。
いわば、父親と母親のどちらが子育てに重要か、と比べるようなっもの
↑どう? 斬新な意見でしょ?w 別に。
今日昨日始めましたって人のコードがdelayまみれであってもそれはそれで仕方ない、知らないんだろうから。
100kbps超えのシリアルを文字落ちなしで受信したいんです〜LED光らせながら。
とかなら割込み使ってよって話になる。
その人なりの学習曲線尊重してやれ。趣味ならな。
人間まで1/0になってしまってはいかん。 そういう風潮も向いてない理由
はじめからdelayなんか使わなきゃ良いわけで それだいたいArduinoにも当てはまるだろ
低効率なコードで「Arduinoは遅い」言う奴はたくさんいる コンパイラが糞
CPU止めないdelay命令を用意しないのが悪い
ということでラダー最強 >>146
例えばdelayを使わない方法は、どのようぬ書くのでしょうか? 結局おすすめのマイコンってPIC以外何があるの?
DIPが使える、はんだ付けできるSSOPなども重要
ライタが売られている
開発環境がMPLABX以上に便利
周辺回路(タイマ、UART、I2C等)が潤沢にある
消費電力がせいぜい数mAまでかつそれなりの速度が出る
秋月などにも売ってる
豊富なラインナップ
最近出ているもの
おすすめがあるなら教えてほしい。
調べるのに苦労してるので、調べればというのはなしで
ARMってDIPある?周辺回路充実してる?
AVR?最近出てる?
いまいち頭の中がアップデートできてない。 秋月に売ってる
DIPもSSOPも同型がある
豊富なラインナップ
この時点でPICしかないんじゃね? >>133
>PICがMCU入門に向いてない理由
↑これが前提条件だとして
まず入門に向いてる具体的なMCU(型番やシリーズ等々)を出したうえで
より具体的な比較をした方が良いんじゃないのだろうか?
↑だとしても
「PIC以外に入門に向いてるMCUが有る」と言う意見には賛同できるが
「PICがMCU入門に向いてない」という意見には賛同できない
>Web上のアマチュアコードが特にひどい
>_delayが糞コード生成の大きな原因
これで学び始めたからと言って、その後もひどいコードを書くかは個人の問題じゃないのだろうか?
delay以外の手段もすぐに習得するとおもうのだけど?
入門書等を読むと多くは中盤より手前でTimer等の使い方の解説出るし
PIC(や他のマイコン)の入門を目的としたサイトでもTimerの使い方は有ると思う
PICに限らず初心者向けに単純な機能や回路の動作テスト等のコードを紹介する場合に
シンプル(余計な行を使わない)にするためにdelayは問題ないと思う >133
>チープゆえに応用が効く一般的コードをとりづらい
>ROM/RAMをケチる見通しの悪いパズルコードが多くなる
それを入門者が参考にするのだろうか?
入門者なら小規模・単純なものを参考にすると思うのだけど
>CPUの規模に対してエラッタが多すぎる
個人の感想としては良いのだけど根拠が弱いと思う
他のマイコンのErrataが無いのか未知なのかも含めて比較できるものなの?
>安価なボードが無い為
公式で出てるのじゃ駄目なのか?
DIPとソルダーレスブレッドボードじゃ駄目なのか?
そもそも、安価なボードとは?
>PICしか知らずPICを崇拝してる人が多い
↑これはPICに限った話ではないと思う(AVR,ESP32,Arduino,STM32でも見る)
↑以上の理由で、否定するには根拠が薄いとおもうの
たぶん\(^o^)/ >>152
> ARMってDIPある?周辺回路充実してる?
LPCなら。
> AVR?最近出てる?
買収後の製品ならある。
> いまいち頭の中がアップデートできてない。
スマホのSOCでも追っかけてるイメージなのだろうが
それより全然息の長い世界だよここは。 ちょっと気になってGoogleトレンドみたら
https://i.imgur.com/2WfleV7.png
Webで入門情報が検索されてるのってPICとArduinoが主みたい
AVRとSTM32や他は・・・・/(^o^)\ 中華のN/B製品だってSMD化が進んでいる中でDIPというかTHD要求は流石に時代遅れじゃね?
教育・試作目的なら既製MCUボードを使えば良いだけの話だし ID:g8Ohk4vb
>少しは自分で調べれば
>おまえわかってないだろ
書けないことの言い訳けですね。 >>152
> 周辺回路(タイマ、UART、I2C等)が潤沢にある
> 消費電力がせいぜい数mAまでかつそれなりの速度が出る
これも結構無理ゲームで潤沢なIOを使おうとすると消費電力が増え
それなりってのが何処か分からんが速度出そうとクロック上げると消費電力が比例して増える。 >中華のN/B製品だってSMD化が進んでいる中でDIPというかTHD要求は流石に時代遅れじゃね?
電子工作の分野での先進国の中国を引き合いに出すのはどうなんだろう。
作ることに対してリスペクトをするならば(ならばだよ)、私たちが同等のものを同等の生産性で作れず
中国から買っているとしたら敬意を払うべき。
>教育・試作目的なら既製MCUボードを使えば良いだけの話だし
良いだけなのかそうでないのかを決めるのは>>158ではなく、たくさんの大勢の個別の一人一人。
自分の判断で世間がそれで良いと思うのは、自分が正しい判断ができる人だと思うような妄想があるのでは?
自分の想定に反して、現実がより多く入門用教育用にPICを使っているのだとしたら、
自分の想定が間違っていると解釈する方が良いと思う。
その上でほかのものの方が良いと考えるなら、現時点で入門用教育用にPICを選んでいる人が納得するような
代替案を示せばいいのに、そうはせずにほかのマイコンの自分が考えるメリットだけを主張してしまっているんだよなあ。
相手が求めるメリットを提供しないといけないのに。 > > 周辺回路(タイマ、UART、I2C等)が潤沢にある
> > 消費電力がせいぜい数mAまでかつそれなりの速度が出る
> これも結構無理ゲームで潤沢なIOを使おうとすると消費電力が増え
いつかは何かが逆転するかもしれないが、現時点では同等のことをすべてCPUコアで
やろうとすると、たいていの場合、かえって消費電力が増えるよ。
てか、UARTをUARTペリフェラルを使わずにソフトだけでやってごらんよ。 PICはペリフェラル弱いし
ワットパフォーマンスも最低レベル > > ARMってDIPある?周辺回路充実してる?
> LPCなら。
「LPCなら」は「DIPある?」と「周辺回路が充実してる?」のどっちにかかっているんだろう。
「DIPある?」だとしたら、現時点の情報をどれぐらい知っているんだろうって気がする。(ストレートに
言えば、「古い情報にもとづいて言ってないか?」だけど)
「周辺回路が充実してる?」だとしたら、なぜ「LPCなら」とLPCに限るような言い方になるのか不思議。
ことさらほかのARMマイコンに比べて、LPCが周辺回路が充実しているとは思えないが、
LPC「なら」と書いたのはなぜなんだい? >>165
おまえ、自分の意見があるならストレートに書いた方が良いぞ
意見がないならダラダラ長文書くな >>152
>秋月などにも売ってる
>豊富なラインナップ
矛盾してね?秋月のラインナップなんてお世辞にも豊富ではないと思うが >意見がないならダラダラ長文書くな
君はアホかね? 書いてあることまるまる意見だ。 >>168
>>165がお前の意見????
君はアホだ >矛盾してね?秋月のラインナップなんてお世辞にも豊富ではないと思うが
個人的には、DigikeyやMouserを探せばもっと広い選択肢があるだろうと思うが、
「秋月で買える」というのは割と大きいウェイトを持つらしい。
そのあたりについては、つまらない皮肉や揶揄抜きで「秋月で買える」ことが大きいウェイトになることを考察する方が良いと思う。
少なくとも「秋月に通える特殊な人」限定でもなく日本全国一般論で考えるなら論理的には「秋月で買える」はとても弱い条件
だとは思う。でも、これが強い条件になりうる人もいるのかもな。
・Digikey、Mouserは趣味では使えないと思っている(誤解)
・6000円に満たない場合の送料2000円がとても高く感じられる(これはあるかな?)
・配送に4~5日かかるのが苦痛(これもあるかな?)
・そもそもクレカは持ってない。代引きで買えないと使えない(これもあるかな?)
・海外通販というだけで障壁を感じる(一度乗り越えたら壁は消えると思うんだが) 秋月ねぇ。
たしかに言われてみればそんなに重視するほどのこともない。 そんなに重視するほどのこともない項目
秋月、DIP、5V 発送に時間がかかる。
DigikeyとかMouserも使ってるよ。
送料はたしかに高い。
あとは、なんだろう。言い訳みたいなもんだけど、
流通がちょっと特殊だから他にないものが買えたりもする。
昔は安いってのがあったんだけど、最近はそうでもない気がするし。
なんか地方のローカル新聞みたいなもので、つい読んじゃうんだよね。
だから使う頻度が高いのはある。 DIPは譲れないです。ごめんなさい。
初心者にSSOPのはんだ付けをさせることは無理ではない。
ただ、その良否の確認を全部するのは、ほぼ無理ゲー。
マイコンボードを買うのも、ちょっとカスタマイズしたものを作りたいときは
どうするのよって感じ。
実装を別会社に任せることはできるけど、はんだ付けもさせたいとなると、ねぇ。 もりあがってきた\(^o^)/
>>159
Yes! \(^o^)/ さすがですね、よくわかっていらっしゃる
僕を殴るならもっと強い言葉で殴って欲しいの
そんなに具体性の無い文章じゃ痛みを感じなくてちょっと寂しいよぉ
>>164
PICのペリフェラル(周辺モジュール)は優秀だとおもうの
電力制御(例>DCDCコンバータ、定電流ドライバ)やパワー半導体の制御に都合よい機能が豊富
ADCのノイズも少ないしVFR(Fixed Voltage Reference)の誤差も少ない
ADCのレール付近も誤差が少ない
CLCとか組み合わせるとCPUでやる事が殆ど無くねぇ?って事もあるし
たぶん\(^o^)/ まあ、モータドライバとか、QFNだったりもはや手はんだできないものも増えてきてるんで
どこかのタイミングで、そのICだけ実装会社にはんだ付けしてもらって使うようになる日も来るかもしれない。
来ないでほしいけど、金はかさむし。 重視しなくていいのは、重視しなくて済む人の立場に過ぎないと思う。
>>170で書いたような秋月を選ぶ理由は、俺にとってはどれも重視する必要もないものだけど、
だからといって重視するほどのことはない、とは思わない。
事情は一人一人違うものだし、その結果が選ばれている理由なんだし。
DIPは、変換基板も要らず、専用基板を作る必要もなく、市販モジュールを使う必要もなく、
そのまま0.1インチピッチのユニバーサル基板、ICソケット、ブレッドボードに使える。
プリント基板でも低価格量産向けの片面基板でも作りやすいというメリットはあるしね。
5Vは一定の支持はありそう。もしこれが取るに足らないものなら、部品メーカーは5Vをサポートしない。現実はサポートしている。
自分がそれを必要とするかどうかは、横に置いていいと思う。 >>175
どういう用途を想定しているのか全く判らん。SSOPのハンダ付けなんて
パートの素人工員ですらやっているのを無理ゲーとかやる気ないだけじゃね >>179
DIPのはんだ付けでも、教えても難儀する人がいる。信じられないのだとしたら、経験不足。
ものごとのできるできないを、やる気の有無で片付けるのは危険。 >>176
ごもっとも。
PICのペリフェラルは優秀。
欲をいえば、16Fシリーズが全部16bitだったらよかったのにと思う。
dsPIC33とか買えって話ですが。消費電力上がるし、14pinなんてなさそうだし
5Vサポないし、ほんと12Fとか16Fがそのままの形で16bitだったらと夢を見ます。
5Vは、前述のモータドライバに使いたい機能。
モータドライバは5Vで動かさないとパワーが出ない。
え、モタドラのロジックのみ3.3VにするためにマイコンとそのロジックをTO92
あたりのLDO3.3Vで生成する?
なんかやだなぁ。
>>179
書かせる?初心者ですよ。例えば出前授業にやってきた小学3年生の学生に
SSOPのはんだ付けをさせられますか。しかも、温調なしの普通のはんだごてで。
形状も普通のペン型のやつ。フラックス・・・はつければいいのかもしれんけど。 ナニナニでいいだろ、って、たいていは、相手の事情を考えない自分の事情での発言だしね。 >>181
そりゃArduinoで十分な案件だろ。小学生にMPLABX使わせて開発させる気かよ 日本の技術は世界一とか言ってるうちに、全てを失った。
もう無理。
日本は滅亡する。 >>184
ここで小学生はたとえで出しただけで、たとえば大学生がMPLABX使ってPICの勉強をするという発想はなかったのか
それもArduinoでいいの?
大学生回路読めないんだよ。それなのに回路の一部にマイコン入れても、
マイコンには電源とグランドピンってものがあってね、とか説明にならないのよ 統一教会:「日本の技術は世界一」
統一教会:「リピートアフターミー」
自民党:「にほんのぎじゅつはせかいいちぃぃぃぃ!!いやっはあああぁぁぁ!!!」 経済活動と直接結びつくノーベル賞と違い、フィールズ賞は国の力が大きく影響する。
今年韓国人がフィールズ賞を受賞したが、日本人は30年以上受賞していない。
これは学問に力を入れた国と入れなかった国の差を直接示している。 あいつらピンなんて全部同じで、どこにつけようがちゃんとマイコンは動くと思ってる。
だからブレッドボードにDIP刺して、ジャンパをつけたり、LEDつけたり、
ICSPの回路つけたり、もしくは秋月のPICKit2もどきのゼロプレッシャーソケットにさしてプログラムさせて、という作業を行う必要があると思ってる。
なわけでDIPがいるのです。
そんな授業やめてしまえというかい?それもありかもしれんけど。 統一教会は日本において、学校で三角関数を教える必要は無いと説くが、韓国では全く逆のことを言っている。 >>189
DIPで良いよ。
おっちゃんはそう思うよ。 >>186
工学/電機系の大学生が温調はんだゴテを使えずSSOPのハンダ付けも出来ないのは
日本の将来的にかなりやばいな
もっとも大学生の教材ならマイコンメーカーの評価ボードで足りるとは思うが
DIP前提な時点で低周波信号縛りになるしインピーダンスやスキューは問題になるまい 低い周波数で限界が来るから、安い測定器で、限界を体感できるのでは? >>192
ありがとう。
温調はんだごてが使えないのは金銭的な面から。
SSOPのはんだ付けができないのは学生のスキル不足。
予算も足りてないけど学生の学力もだいぶ低いね。
年々顕著になってる。
>>194
安い測定器しかないからちょうどよいかも。
はんだごてはRX-802ASがコテ先セットで全員に配られるといいんだけどなぁ・・・・夢だな。 >>189
それ対症療法だよね
その学生はなぜそのような誤った知識を正しいと信じているの?
改めるべきはそこじゃないかな 日本のGDPの7割以上をサービス業が生み出している。
すなわち、GDPが低いということは、介護職員の給料が低いということでは?
そして、介護職員の給料を上げても、石油は買えるようにならない。 いまこそ、自民党、そしてその背後にいるアメリカへ反旗を翻し、工業回帰を図ろうではないか! >>196
ごめん、それも私が例として出したものに過ぎなくて、
人によって理解度が違うから、改めるべきは、学生のモチベーション向上とか
基礎学力の向上あたりが、ほんとは正しいと思ってる。
基礎がないと、何もできないから。
モチベーションがないと、やってくれない。
そんなわけでこの2つを推します。
1000で割ればいいじゃないっていったら、筆算で1000で割ろうとする人が横行する時代ですよ。
補助単位変えればいいだけなのに。 そもそも「入門むきのMCU」ってあたりから派生した話題なので
対象の人物像は
・電子工作も初心者である可能性を考慮する
・年齢は幅広い(小学校高学年〜年寄り)まで想定する
・「電気/電子」学校に通ってる物は場合によっては対象から外れる可能性がある
・趣味で始めるという可能性が高いので最初はあまり予算をかけないで始める
・身の回りに詳しい人間がいない(結果、書籍・Webで情報を集める必要がある)
こんな感じじゃないだろうか?
だとして、入門時点ではDIP&ソルダーレスブレッドボードや
マイコンボード&ソルダーレスブレッドボードが最適になると思うの
もちろん入門後はレベルを上げていけばいいと思う >>195
RX-802ASまで行かなくてもFX-950とかならもう少し安いし
中華のT12コントローラにHAKKO T12コテ先を付けるという手もある
最悪FX-600とかだって非温調よりは圧倒的に良い
>>199
そもそも工学の実践的な補助単位の使い方ってどこで習うんだ?
キロとかは義務教育で出てくるけど工学で使用するのに十分な内容ではなかったような・・
あと日本の評価制度の問題もありそうだね。テストで1000を1.000kと書いて○をもらえるかな? >>201
FX-600ね・・・どうもありがとう。
今のはんだごてを買ってる人にどれくらい予算があるか聞いてみます。
そういえば、たしかに大きなものとか小さなものは習ってないかも。
今度から1年生を教えるときに注視しとこう。
でも、キロとかミリが使えないのです。小学校で習ってるはずだと思うんだけど。
ところで1000を1.000kで○がもらえるかはともかく、有効数字の問題もあって難しい。 独り言だけど、
入門用MCU、実用MCUとか議論に何の意味があるのかね
目的によって選択するだけのことだし。
何のマイコンから始めてもさして変わらんし。
どうせMCUやコンパイラにユーザーが合わせるだけだろう? 学校教育は枠内で終わることが前提になっているものなので、さまざまな要因でとりこぼしが蓄積する。 >>202
義務教育だとキロとかミリくらいは習うはずだけどホビーの電子工作だってピコからメガくらいは珍しくもないし
IT系なら上が更に広がってテラなんかも普通に使う
自分は学校でその辺を埋める部分を教えてもらった記憶はないな。忘れているだけかもしれないけど
精密作業をメインとしないなら国内系ならHAKKO FX-600かgoot PX-280あたりかな
ちなみに中華系で
ttps://アリエク/item/1005003373147424.html
みたいなペン型のT12コントローラもある。コテ先温度計が必須(校正がガバっている個体がある)だったり
チャタりやすかったりと難点はあるものの、性能的にはFX-951/FX-950-α相当の実力がありFX-600やPX-280より上
ホビーや教育用なら十分だと思う。アダプタを含めてもステーション型より持ち運びやすいのも○
というかHAKKOもこのタイプを出せば良いのにと思う。作業性はステーション型の方が良いけど常設前提だし
値段以前に学生が購入するにはかなり向かないだろう(中華のT12ステーションも同様) 初心者に中華は無理だろう。
そしてプロは中華を避ける。 結局、糞delayの代わりにどんな方法を使っているのか、 わからずじまいだったね。 まさかNOPを使えとか、forで回せとかじゃないよな。 文字液晶のライト信号の時間待ちに、新しいやり方が導入できるかと思ったのに。 DIPジャナイトーのひとは秋月など並んでるのは
産業用のおこぼれが回ってるに過ぎないって事を忘れてる。
産業界でもはやDiPの需要ない。 >>209
もし、産業用のおこぼれでDIPの需要がないなら、
なぜ、今なお新製品でもDIP品が製造されていて、秋月でもDigikeyでも並んでいるんだろう。
量産製品向けにも一定の需要があるから半導体部品が製造されていて、
それの一部が小売り市場にまわってきているのだと考える方が自然だと思う。
自分が知っている量産市場だけでDIPの需要がもはやないと考えるのだとしたら浅い。
自分の隣近所のオッサンオバチャンの趣味傾向で世界のトレンドを推測するのと同じように浅い。
具体的なDIPを使う量産用途を知らなくてもいいし知る必要はなくていい。どうせ世の中のすべてのことは知りえない。
部品が現時点で製造されているのは、自分が知らなくても、量産の用途があるからと考えればいいのでは。 >結局、糞delayの代わりにどんな方法を使っているのか、 わからずじまいだったね。
delayを批判していた人は、特に代替案もなかったんだろう。
まっとうなことも書けずにうやむやにしてしまっている。 ああ確かに「DIP品積極的な需要ばない」が正しいかもな。
昔からあるもので今も一定量のオーダーがあるものを細々と古い生産設備で作る。
LTも半導体危機の前から長かったし価格も高い。
元の質問の人は新規品種が欲しいって事だし、そんなのあるかよって答えになる。 DIP+ブレッドボードによるマイコン開発を推奨しているマイコンメーカーはないはず
ブレッドボードの特性上、外部発振子やプログラミングインターフェイスの安定動作が難しいからな
書き込み時にヒューズビットが化けでもしたらチップによってはゴミになりかねない
ブレッドボードを利用した開発でもマイコン回りだけは基板に実装した方が良いと思う >ああ確かに「DIP品積極的な需要ばない」が正しいかもな。
>:
>元の質問の人は新規品種が欲しいって事だし、そんなのあるかよって答えになる。
わりと新しめのPIC16F18126/18146でも、(PICじゃないけど)AVR128DA でもDIPの
ラインナップがあるのにな。
遠い将来まで考えればDIPはいずれなくなるだろうけれど、現時点の入門用を論じるときに
どこまでの遠い将来に終焉することを考慮するかなんて、人それぞれにまかせればいい。
「DIP品積極的な需要ばない」は「山を見て木を見ず」に過ぎないし、
「そんなのあるかよって答えになる」は、>>212が情報に疎いことを説明している。
量産向けの傾向で電子工作や学習の材料を選ばないといけないことなんてない。
量産品にユニバーサル基板が使われている割合なんてとても小さいけれど、
電子工作や学習の材料としては普通に使うよね。 >>213
個人的にはブレッドボードは苦手だし、自分の実験には使わない方が良いと思っているが、
要領よく使っている人もいるし、組み換えや使いまわしが多い教育用には別の観点もあるだろう。
アクシデントで発生するデメリットの評価は得られるメリットとのバランスで考えないといけないし、
同じデメリット、メリットでも用途次第で評価も変わるから、部外者にはわからないこともある。
ところで、メーカーが推奨する使い方にいつも従うなら窮屈だぞ。
チップコンデンサはコテ作業が事実上できなくなる。 自分の主観でしか考えられない人が意見を言っても受け入れられない。
故障品需要とかあるわけだし、必要とされてるからあるという考え方は出来ないのかね。 PICを使う理由探しなんかしてないで
もっと世界を広げた方が良いぞ >>208
あなたがやってる方法を書けば良いだけですよ
例えばただのLED点滅でdelayや割り込みを使っているわけでもあるまい 基本的な事を初心者に教えない風潮が
PICが初心者に向いてない理由のひとつ 毎度思うがDIPホビー秋月 の人たちって数のこと頭に無いよね。 >例えばただのLED点滅でdelayや割り込みを使っているわけでもあるまい
この2つ以外の方法があるの?
1. timer startする main()で仕事する timer割込に呼ばれる LED処理して戻る
2. 待ちたいところで__delay_ms()などを呼ぶ
・__delay_us(200);
3. 待ちたいところでグルグルタイマーで待つ
・for(a=0; a<254; a++){ NOP(); }
・while(a-- <254){ NOP(); }
・if(a-- <254){ NOP(); }
2. と 3. は動作上同じことなので、1つと考える。 >220
俺みたいにコテ先ブルブルしながら手ハンダする人の数? >>221
500個のキャラがバラバラにアニメーションしながら動き回る
こういうの考えてみ?
アニメの画像を何ms後に変更すればいいか、とか考えるとdelayやループ以外の何かを思いつかないといけない それがわかると、1個や2個のLED点滅も同じ考えで作れる
そうなったときに、初めてdelayって糞だなってわかる ID:8MBCLFYc は話をそらそうとしているね。不誠実です。
単純に時間待ちをする部分における、delay以外の方法が問われているよ。
他に同時に何をするかとか持ち出さなくていいです。それは別の話。 どういう内容から説明していくか、という道筋の上で
タイマー割り込みなんぞがしょっぱなに触れねばならぬ話題とは
ぼくは思わんよ。
delayとかNOPで済むよう段階で無理にタイマー割り込みを闇雲に濫用するのは
初心者に対して適しているとは思えんがなぁ・・・
1m秒とか10m秒周期とかで割り込み発生させておいて
共用するのは便利ではあるけど必須というほどのものでもないと思うよ。
馬鹿と鋏は使いようというけど
delayやGOTO文とかもまた然り、じゃね? >>225
>単純に時間待ちをする部分における、delay以外の方法が問われているよ。
>他に同時に何をするかとか持ち出さなくていいです。それは別の話。
まったく同感です。
ちょっとしたパルス幅を作りたいときとか、usオーダーの待ちは、その場でグルグルします。
タイマー割込でもない、delay()でもないとなると、何でしょうかね。
そもそも1msとかのtimer0を走らせておいて、mainでflagを立てて、
timer0で毎回flagを確認して、規定値から--して、0になったらup_flagを立てる。
mainでは毎回そのflagを見て時間待ち終了とする、
みたいなのはやったことあるけど、細いパルス作る時にそれは無いだろうし。
ポーリングしてる段階で、delay()とあんまり変わらないと思う。
あとはmainの先頭でタイマ待ちして、タイマupしたらmainを上から下まで1周のみ処理し、
再び次のタイマupを待つ、というのもあります。
状態遷移っぽく使えて まるでFPGAみたいに、クロック毎に動作するmain()。
これも気に入って使っていたけど、処理時間のためにmain1周の時間が速くできず、
10ms毎の処理しかできなくて、やめた。
delay()の代替手段を知っているような書込内容なので、ぜひ教えて欲しいと思っています。 >>227
あなたは今までどうやってたの?
ただのLEDの点滅処理 本当に知らないヤツがいるようだね
ごくごく普通の時間管理 PICがMCUのソフトの学習に向かない事が
大変よくわかります 基本的な事項を知らない人
煽れば答えを得られると思ってる人
知ってても教えない人
根拠なく自分の技術は凄いと思ってる人
根拠なくPICは優れていると思ってる人
PICユーザーはこんなのばかり >>228
>あなたは今までどうやってたの?
>ただのLEDの点滅処理
LEDの点滅だけだったら、__delay_ms()でやっています。 基礎の基礎を知らないようなヤツが居座って偉そうにしてるスレ
他にあるか? >>233
LEDの点滅だけの為にCPUを使うの?
あり得ない仮定を前提としたコードに何の意味がある? PICを使っても基礎の基礎すら習得出来ない
これが現実 もう一度書いておく
PICがMCU入門に向いてない理由
・世の中にあるサンプルコードが糞
・ROM, RAM, CPU, 周辺,全てがチープ
・エラッタが多い
・安価なボードが無い、少ない
・PICマニアの民度が低い >>233
君はカップラーメンに湯を注いで3分待つ間に何してる?
なーんもしないやつがdelay TIMERの割り込みとなんら変わりないんだが、
割り込み無効にしておいて
TMR2 = 0;
TMR2IF = 0;
TMR2IE = 0;
TMR2ON = 1;
while(TMR2IF == 0);
TMR2IF = 0;
みたいなことはできるぞ。
割り込みと違って、わずかにジッタが発生する可能性があるが。 信頼性や再現性の面でもブレッドボードはユニバーサル基板に劣る
少なくとも電源(パスコン)、プログラミングインターフェイス、外部発振子は基板(ユニバーサル基板可)に実装すべき
義務教育等で実装に際してスキル的な不安があるのであればArduino Nano的なのを利用した方が良い
高等教育以上で電機系を取っているにもかかわらずその程度の実装すら出来ないのは別の意味で問題があるし
大学でメーカーの設計ガイドラインガン無視がふさわしいとも思わない 入門用に適さない、というデメリットがこれだけある、という主張なわけだけど、仮にそれが事実だとしても、
ソースコードの平均レベルを押し下げるぐらいに入門者が使っているのは仮でもない まさに事実。
とすると、デメリットを上回るようなメリットがあるのだろう、というのが結論ということになるね。
あるいは、ほかの環境が、入門用としてPICに及ばない要因があるからだろう。 >>238
>なーんもしないやつがdelay
LEDの点滅だけという前提で、他にすることが無いから、
delay()で良いのではないですか? >>240
一面で評価をしたら一面での結論にしかならないよ。
あなたでも、ブレッドボードを選ぶ人の立場で選択をすれば、おそらくブレッドボードを選ぶことになる。
いや、それでもブレッドボードは選ばない、と言うかもしれないが、それはブレッドボードを選ぶ人の立場になっていないからだよ。 日常生活は、基本がマルチタスクで動いている。それと8ビットマイコンを同列に語るのはちょっとあたまおかしい。 もしLEDの点滅以外の処理を追加したくなったら
大幅にコードを変えるの?
バカなの? >LEDの点滅だけの為にCPUを使うの?
>あり得ない仮定を前提としたコードに何の意味がある?
LEDの点滅だけにdelayを使うことは、「LEDの点滅だけの為にCPUを使う」とイコールではないよな。
LEDを点滅させるのにマイコンを使っている例が「ない」と言えるのかな?
自分がしないことと、世の中でそれが行われていないかどうかは、同じにしてはいけない。 少し機能を追加するなら小幅にコードを変え、大幅に機能を追加するなら大幅にコードを変えるのは当たり前。
もっと大幅に変えるなら、マイコンも変えることになるだろう。どのあたりまでを想定するかは条件次第。 delayで点滅処理なんか書いたら
少しの機能追加でも大幅変更だろ LEDを点滅させたいのですが、と初心者が言えば、マイコンを使えと多くの人が言うのにね。 今日も盛り上がってる \(^o^)/
PIC信者としてはとても嬉しいぞ! >>250
ちょっとのことで大幅に変更が必要になるようなdelayの使い方しか想定できないなら、
ちょっとのことで大幅に変更が必要になると考えるしかないのでは。
個人的には凝ったことをするなら、ほかの選択肢を考えるけれど、入門でそもそも凝ったことをするかな、って気がする。
特に学校や実験スクール、クラブなどで、いろいろな取り組みの中でのマイコン体験だったら、どこまで踏み込むかは
とりまく諸条件、指導者や本人次第でいろいろ。
それにさ、delayやそれに準じるソフトウェアループの待ち時間関数が、一部の人が執拗にディスるぐらいに本当に害悪が
あるものだとみんなが考えているとしたら、いろいろなマイコンの標準的なライブラリには含まれないさ。 >>252
「喫煙者の権利も守ろう」と言ってる弁護士は喫煙者だ。って考える人なのかな?
単純すぎないか?
「喫煙者の権利も守ろう」と言ってる弁護士が嫌煙者であっても不思議はないわけだが。 知っているか知っていないかのイチゼロの話をする人は相手にしないよ。 >>256
僕は知らないので、是非詳しく教えてください。\(^o^)/ 用意されているんだからgets使えば良いじゃないくらいナンセンスな理論だな
一般的に望ましくない副作用を評価していない。知っていて無視しているのかもしれないが 重要なのはイベントドリブンになっているかであってdelay()の有無ではない
またdelay()の使用により望ましくない副作用が発生しないなら問題にはならない >>259
そんな寂しい事いわないでよ〜 ( ;∀;)
学ぼうとはしてるんだよ、頭が悪くて中々覚えられないんだよ〜\(^o^)/ gets()は新しい規格だと標準ライブラリから外れたんじゃなかったか。
sprintf()やstrcat()とかもそのうち外れるかな。(さっき調べたら、snprintf()も非推奨って話があった)
ライブラリの安全性が議論されるのは良いけれど、小さいマイコン向けのコンパイラが「規格」についていくと
矛盾もでてきそう。 getsってfingerでやらかした奴だっけ?
記憶がない getsはC11で排除されたがC11縛りのプロジェクトってどのくらいあるんだろうね >>262
じゃあさ、簡単な3重奏のプログラムをdelayで実現してみて
音楽データはmidi形式で3つ与えられてるとして
その3つを同じタイミングで再生するの
もちろん3つは同じ楽譜ではないし64分音符まで表現できるように >>262
いやこいつ
PICのプログラミング経験ほぼゼロだろ 262さんは、
delayを用いることで副作用が生じない用途には
delayを用いる事は問題とならない
(つまり delayの有無はダメプログラムであるかどうかの試金石として用いるのは
妥当とは言えない)と仰ってるのであろうとおもうから
delayに一切の副作用は生じ得ないと言っているわけではないでしょう。
にも拘わらずdelayで三重奏のプログr・・・いや、ストローマン論法は
どうかとおもったが、三重奏の内容が固定内容ならdelayで問題ないか(^p^;
>>270
Aだけ渡されて作った後に
B渡されたら既にAのみプログラムが破綻するじゃんw
そういう作り方がdelayの副作用 2つの事を同時に出来るんですか?って言った人が居たって聞いた LEDのパターン点滅とか
キーのサンプリングとか
よく使う定型文で
1回作っておけば使い回しが効くのにねえ
メインループでも割り込みでもスレッドでも
PICでもAVRでもARMでも
ほとんど同じコード
糞コードを参考にしちゃったら
毎回考えないといけないね >>268みたいなのってPIC以外の作例貼ったらPICじゃないとか言い出しそうw ディレイ処理って、
クロック数が希望するだけ進んだら処理する
以外の方法は無いよね?w
冗談はともかく、少し変ったSWチャタ除去用ディレイ処理のサンプル
https://pastebin.com/ZYFYsR3S by D.G. ぼくが使ってた頃のPICはスタックの深さやファイルレジスタの空間が
(H8とかに比べて極端に)少なかった印象だけど
きょうびのPIC使いはMIDIファイルとかPICで扱ってるん? ごいすー
あれか、dsPICとかつこうとるん? もうやめよう、この話。
またいつもの方向に行くだけだと思う。 大学生のはんだゴテの話が出ていたけど実習でT12コントローラを作れば一石二鳥じゃね
電圧変換、安定化電源、増幅回路、半導体スイッチング、フィードバック制御、ユーザーインターフェイス、校正・・・
等々結構な要素を学べかつ実用的なガジェットだ 上にリエントラントな関数が書かれている。
PICではなさそうだし、こいつの書いた関数でもなさそうだが、MPLABXで割り込みからもノーマルでもアクセスする関数って、最近のでは勝手に関数のコピーが作成されるんじゃなかったっけ。まあグローバル変数を参照してればそれはコピーされないと思うが。 ディスパッチャ君はスレッドセーフという概念も勉強しないと delayに準じるようなしくみで時間待ちをすることは、特に初期化段階では多用されるしね。
それにLED点滅のようなとっかかりのところで、点滅周期を変える方法として最初に使われる手法としても一般的。
Nucleoやmbedを使った学習をしているところでも最初はそんな感じだよ。
PICに限ったことでもないのに、これをPICに関連づけてPICを批判する材料に使うのは「日本人はウンコをする。汚い」って言ってるようなものだ。
PICに特に多い、と屁理屈を言う人もいるけれど、初学者が使う手法だと考えれば、PICでマイコン入門をする人が多いことの裏返し。
PICでないマイコンで入門する人が多くなれば、同じようにそのマイコンでdelayとそれに準じる手法が使われる例が増えるだけのこと。
PIC16のようなプアなマイコンが入門用としても人気があることにいら立ちを感じる人がいることも理解できるが、
だからといって、こじつけも含めてPICのまずいところを責めても、そうやって責める人の人間性が露わになるだけじゃないですかね。
PICが選ばれているのはPICのメリットが理由なんだし、そのメリットは部外者は分かる必要もなくて、選ぶ人が考えればいいこと。
ほかのマイコンが選ばれるように、ほかのマイコンが変わればいいんだよ。
特に指導者が、妥協も乗り換えの苦労もなく、よりよいものに乗り換えられるような環境やサポートがあればいいのではないのかな。
そうすりゃ晴れて、ほかのマイコンでdelayが使われるコードがPIC以上に大量に出回るようになるよ。 遠回りしないではじめから普通の方法でやればいいんだよ >>285
ほかのマイコン「○○」で「初期段階が永遠に続くのが○○ユーザー」と言われるようになるといいね。 データシートの「たった○○個の命令」ってのを思い出した
自虐の方向が同じ >>285,286
今日も興奮してるみたいだけど、何か良い事でも有ったのかい?(#^^#)
何を語るにしても、もう少し「具体的な・説得力の有る・十分な根拠に基づいてる」を意識して書かないと
主張してる内容に関係なく薄っぺらく思われると思うの
発言者に十分な信用が有れば短い文章でも説得できると思うが、匿名掲示板では信用が無いので薄っぺらい発言では不十分だと思うぞ!
たぶん\(^o^)/ >>272
PICぐらいのコストなら 処理上の
必要数に応じて基板上に二個三個と
タスク数相当の石を実装すればいいんじゃね?
PICのPは周辺回路のP、周辺で いごき 支えるのが
ペリフェラルの本懐というものでせう(^p^)カカカ 例えばこのプログラムの処理時間いくらか?って計算する処理するだろ?
時間測定して引き算して結果出すとか
そうやって時間計測できるなら
次に、LED点灯時間を〇秒にしたいってときに
delayなんか使わずに、その時間計測システムと比較命令で実現できるだろ?
そしてそれはいちいちループかけたりCPUを止めずに出来るってわかるだろ?
そうすると自由度が一気に拡がって複雑なことを同時にいろいろできるようになる タスクディスパッチャ爺さまが
尻尾巻いて逃げる程に浅い
PICのスタック深度なまんな(^p^) おもちゃのロボット動かすときに
各関節を同時にどれだけ動かすかって独立して計算して止めてる
それってカウントして比較して止めてることを同時実行してるだけ
そのカウンタを時間に替えるだけなのに
なんで時間の制御の場合だけはdelayが幅を利かせるのか? 最初からそうすればいい、って言う人がいるけれど、段階を踏んで学習する方が結果的にいいことが多いんだよな。
だから小学校、中学校、高校と、同じことがらについて、繰り返し、でも、より深く学習するんだ。
自分や自分の周りの人の学習の成功体験をもって、こういう学校のやりかたを非効率的だという人がいるけれど、
学校で教えてみたら、いろいろな人がいて、ダルい学校のやり方に一定の経験則の裏付けがあるんだなとわかる。
それに、マイコンのセンスがない人や、マイコン自体を学習したくない人だってマイコンを使いたいと思うわけだしね。
ヘタなプログラムがあふれるのは、そういう多様な人に受け入れられている証拠。
Arduinoでも、Nucleoでも、初学者向けの最初のプログラムがソフトウェア遅延をつかったLED点滅が多いのは、
それが大多数向けの平凡な入門プログラムとして優れているからだと思う。 技術とかどうでもよくてただ人より高い位置にいて見下したいだけだよな >>294
一番最初のコードはDelayでも良いけど
そんなのは最初の5分で良い
頭が悪くてもせいぜい1日
せめて2日目からは普通に使えるコードを書こうよ
簡単なんだから
基本の基本は10分で学べる
箸の持ち方を教えるのに
「最初はグーで持てば良い」って言い続けてる感じ >>297
たとえば、その実例コードを見せてもらえませんか? 最初がBASICで今風なパラダイムの理解に苦労した自分としては
いくら簡単でも技術的な合理性に乏しい入門ルートはオススメしかねる
問題を先送りしているだけだしな PICの本を読んでいて質問があります。
↓この回路を見てください。
https://imgur.com/vAeIIoa.jpg
技術評論から出ている後閑先生の本のOP AMPの説明のページです。
質問は
1 「上書き入力選択」の上書きとは、何のことでしょうか。
2 出力の手前にあるスイッチは、どんなときに使用するものでしょうか?
(回路で、OP AMPの出力を切断するときがわかりません) 上書きに関わる信号がORx?と思ったら、オーバーライドだった…
後閑先生、オーバーライドを上書きって翻訳したのかな?
書籍で疑問に思ったらデータシートを見よう。Override control って書いてあって、
- Forced tri-state output (出力遮断強制)
- Forced unity gain (ユニティゲイン強制)
って説明がついてる。
>回路で、OP AMPの出力を切断するときがわかりません
ORM0を1にして、ORPOLが0のときは、ORSELで選んだ信号が1のときに、
OP AMPの出力が遮断されます。 C++でオーバーライドはクラス継承して機能を付加するニュアンスで用いられますな。
字引にあたると 乗り潰すとか 乗り越えるとか 覆すとか 無効にするニュアンスが示されていますな。 そういやPICが入門用としてひろくつかわれている理由のひとつが、相対的に良質なテキストがたくさんあることだよなあ。
特に後閑先生の功績って大きい。PICだけでなく、電子工作そのものの入門ガイドとしても使える本も出してる。
この先生のおかげで、学校やサイエンススクールの電気系の先生の手間がどれだけセーブできてるかとか、
なんもわからん、WEBの情報の探し方もわからん、っていう初心者がよりどころにできているとか偉大だと思う。
彼がいなかったら、電子工作をしてる人はもっと少なかったんじゃないかと思う。
今は、Arduino が幅をきかせつつある領域だけどな。(こっちは中学生、高校生の作品を見てるとPIC以上に遅延多用の
プログラムがたくさん出てくる。割り込みとかタイマーとか使わなくても、そこそこ書けるからだろね) >>304
上書きでも通じないことはないような機能だけど、できるだけ原文の単語の意味は使った方がいいと思うんだ。
レジスタの名前もオーバーライドと覚えていたら、ORxを連想しやすくなるし。 >>298
入門に向くと主張して人に教えてもらえば良いんじゃない?
私は書かないよ
何の得もないから >>303
ありがとうございます。
>後閑先生、オーバーライドを上書きって翻訳したのかな?
ですよね。
上書きは、後閑さん誤訳ということですね。ありがとうございます。
>- Forced tri-state output (出力遮断強制)
>- Forced unity gain (ユニティゲイン強制)
>って説明がついてる。
はい、それは読みました。
外部抵抗で決めたゲインを何かの要因で
x1倍に切り替える、出力をHi-Zにする、というのを、強制というなら、
それはそうでしょうけど、
実際に、
そうしたいときって、どのような使い方を想定しているのでしょうか。
・x1倍 過大入力が来たときに、ゲインを下げたい時?
・Hi-Z 外部のピークホールドのような回路で、次回更新するまで縁を切りたい...?
わからないです。 >特に後閑先生の功績って大きい。
まったく同意です。
日本語訳になっているだけでも、とても助かります。 >>307
>私は書かないよ
>何の得もないから
はい、わかりました。 ごかん先生の本は幾冊かは持っているはずけど 読んだ記憶がないなぁ・・・; いま手元にあるPIC 系の本 いずれも未読
・PIC活用ガイドブック(ごかんせんせい)
・PICマイコンでつくるインドアプレーン(たなかせんせい)
・PICによるホームコントロール工作入門(なかおせんせい) PICファンのみなさん、どうかPICを一生使い続けてください
そうしていただければ他のCPUユーザーの優位性が続きます 技術立国中抜きコンサルタントで1チップマイコンそのものがが廃れちゃったりして。。。 x1倍 余分にピンを消費したくないときとか
DAC等の単なるバッファとして使用するとか
PICって3.3Vで使うことが多いこともあって、増幅することが多いとは限らなくて。
さすがにマイクつなげたりする時はゲイン上げるけど。
HiZこれはそもそもそのピンをOPAMPとして使わないときは
HiZにしとかなきゃいけないからじゃない?
GPIOの時はHiZ
オペアンプ入りのPICを使ったことないか。
私はいつもMCCで使ってるから、設定にはそれほど詳しくないけど。
にしても177XのOPAMPはけっこう入力複雑だねぇ。
PICのOPAMPは電源電圧から考えるとけっこう優秀。
価格面でも。 このオーバーライドの多さ、選択肢の広さにはびっくり。
そもそも何の略だっけ。
CCPとCPWMはいいとして、CxOUTってコンパレータだっけ、CLCだっけ
LCxとCOGxもだれか教えてくださーい、顔文字のひと。 >そうしたいときって、どのような使い方を想定しているのでしょうか。
>・x1倍 過大入力が来たときに、ゲインを下げたい時?
>・Hi-Z 外部のピークホールドのような回路で、次回更新するまで縁を切りたい...?
>わからないです。
そのPICを使ったわけでもないのですけど、たとえば
x1…単にボルテージフォロワとして使いたいとき、外部ピン経由でのフィードバックがいらない。
HiZ…スリープ時に外部フィードバック回路に電流が流れないようにする。 >>315, 317
どうもありがとうございます。
お二人の説明で、ずいぶん理解が進みました。
>- Forced tri-state output (出力遮断強制)
>- Forced unity gain (ユニティゲイン強制)
この場合のForceは、強制とは考えない
私の予想ですが
・OP AMP出力とI/Oピンの切り離し機能
仰るとおり、OPAMPの出力をピンから切り離す機能だと思います。
disableでOP AMP7
全体をoffにすれば、入出力セレクタ回路から切り離され、
I/OピンはOP AMPやCpmparatorから浮きます。
しかしOP AMPの出力をコンパレータの入力に内部接続の選択もできるので、
OP AMPをまるまる機能offにはできない、そんなときこの縁切りを使います。
切り離されたI/Oピンは、さらに別のI/Oピンとして使うこともできそうです。
・x1倍に切換る機能
仰るとおり、OPAMPの出力を内部で直接(-)に接続したいときに使う機能だと思います。
余分にピンを消費せずに済み、
(-)に接続されていたピンは、他のI/Oとして使用可能(未確認)
PICの品種によってGBWが 2MHz、3.5MHzと、2種類あるみたいです。
10MHzくらいあると、もっといろいろ使えるのですが、ちょっと残念です。
でも、定番のLM358, 2904系より10倍高速で性能も良いので、
工作に便利に使えそうです。
みなさん、ありがとうございました。 >>318です。
すみません、間違ったことを書込みました。
Hi-Zにすれば、内部接続でコンパレータに接続できる、というのは間違いでした。
>>300のブロック図を見ると、コンパレータへの接続より上流にSWがありました。
すみません。 PICでストップウオッチを作りたいのですが、
Timerモジュールを使って以下の手順を考えました。
1 TMR値=0にして
2 GPIO start入力ピン→→→Timer0スタート
3 GPIO stop入力ピン→→→Timer0ストップ
4 TMR値を表示
という感じなのですが。
Timerモジュールのブロック図を見てもTMR1H,TMR1LのRESET端子がみつかりません。
どのようにして0にすれば良いでしょうか。(スタートストップもよく分からないんですけど) >>320
MCCを使ってる場合は[ TMR1_WriteTimer(0); ]で0を書き込める
直接の場合は[ TMR1H = 0 ; ] & [ TMR1L = 0; ] で0を書き込み
MCCの場合は[ TMR1_StartTimer(); ] [ TMR1_StopTimer(); ]でON/OFF
直接の場合は[ TMR1ON = 1; ] [ TMR1ON = 0; ]でON/OFF
↑は[ T1CONbits.TMR1ON = 1; ]でも可能 タイマー止める
HとLレジスタに0を書く
タイマー開始する >>320
PICの世代によっては16bitタイマーにバッファーが有るのでH,Lの読み込み&書き込みの順番に注意が必要
【書き込み】TMR1H → TMR1L の順
【読み込み】TMR1L → TMR1H の順
この順番逆だと正しくない値が書き込まれたり読み込まれたるするから要注意!
たぶん\(^o^)/ みなさん、ありがとうございます。
なるほど、0を書けばいいんですね。ありがとうございます。
ということは、途中の値 0x1234を書いたら、そこから加算(減算?)できるんですね。
ありがとうございました。大変よく分かりました。
(ゲートICのフリップフロップで作るときは、
リセット端子をLにできたので、同じかなと思い込んでいました)
スタート、ストップの関数もあるんですか。便利ですね。
ということは、読み出し、書換えもできそうですね。調べて見ます。
本当にありがとうございました。 >>324
それはひどいですね。
PICはPIC16(L)F1773/6-I/SP です。
ありがとうございました。 >>326
PIC16(L)F1773/6-I/SP だとTIMER1等にはバッファーが無いので、読み書きには注意が必要かな!
タイマー停止中(またはバッファー付きの機種)の読み書きなら問題ないけど動作中の場合
16bitのタイマーの値を8bit,8bitで2回に分けて読むのでタイムラグでカウントアップすることがある
なので動作中に読み出す場合は(停止すると都合が悪い場合)カウントアップの有無をソフトウェアで処理する必要がある
(書き込みは停止中してから行えば良いと思う) LHの順で読んで、Lをもう一度読み込んで変化してたらHを再読み込みしている ストップウォッチとして使う時に、どのくらいの精度が必要なのか、
それと、どれくらいの時間を計測するのかで話が変わってきます。
とりあえず、普通に売られているストップウォッチくらいの時間を
8M程度のクロックで計るということで以下の話を進めています。
タイマを止めたりしていると、誤差が増えるのでラップタイムなど継続して計る、
もしくは長期間計るために時間をコントロールしようと
タイマを止めて書いたり、TMR1の値を変更することは推奨できません。
TIMER1は16bitですから長い時間計れそうですが、高クロックで動かした場合、
たかが知れています。ピリオドレジスタがないため、TMR1を指定時間待たせるためには
0~0xFFFFまで回し続けるしか誤差なく測定するのは困難です。
TIMER2などのピリオドレジスタ(PRx)があるタイマーを動かして
20msなどの時間で正確に割り込みがかかるようにし、
タイマー割り込みで変数をカウントアップしていくのが長い時間正確に計るための秘訣です。
(TIMER1でもできないことはありません。CCPのOutputCompareのスペシャルイベントトリガを使うと、CCPRxを超えた時点でTMR1が0になります。)
あと、水晶発信子をつけるのをお勧めします。
PICの内蔵発振はそれほどにはずれませんが。 要求精度を先に決めれば。
60秒ぐらいまでの時間を0.1秒単位で測るなら0.1%ぐらいの誤差で十分。
ってことは、セラミック振動子ではヤバいかもね。 >>329
ありがとうございます。
ラジコンなどの趣味競技の1着2着3着を数値で出してみたいと考えています。
精度はさほど必要なくて、1着2着3着の差が数字で出れば
0.1秒違っていてもいいと思っています。
>タイマー割り込みで変数をカウントアップしていくのが長い時間正確に計るための秘訣
ありがとうございます。
16bitあるので、startは必要ですが、途中で16bitのカウンターの値をcopyができれば
stopは無くても良いかな、と思い始めました。
byte単位で取ると繰り上がりが...のお話もお伺いしましたので、要注意ですね。
数値は計算無しにそのまま0.00秒とか得られると都合が良いので、
分周(プリスケーラ?)の合わせた水晶の周波数にするのもありかと思います。
最長時間は10msのタイマーにすれば、655秒まで測れますので十分です。
データーシートを見ていたら、Timer0(8bit)のオーバーフロー信号を
Timer1(16bit)で数えることもできそうなこともわかりました。
いろいろと教えていただいて、ありがとうございました。
PICは参考本も多いし品種も多いので、入門者には嬉しいです。
全部C言語でできるので、プログラムも楽しめそうです。 8bitや16bitのタイマーの値を32bitや64bitに拡張すればいい キタキタ、質問者が聞いてもいない事まで規定して「ねばならぬ」口調で語り出すオッさん達。 質問自体もただのネタ作りの為で
本当に知りたいわけでもないし サッカーのボールにチップ仕込まれてたってのもガセだろ
かりにボールやラジコンカーにチップ仕込んだとして
着順やライン通過判定に使える精度をどうやって出すんだよ >>332
成功することをお祈りしております。
がんばってください。
わからなくなったらまた戻ってきてくださいね。 >>338
ありがとうございました。
プログラム、作ってみます。
また教えてください。ありがとうございました。 初心者向けの実質的な質問スレだしね
自分でやっているところに割り込んでくる、教え魔、○○警察と一緒にするのはアホだと思います。
それに該当するのは、PICをディスりに来る行為でしょう。 ズレるだけなら構わないけどさ、安いセラミック振動子がたまたま不良品で
発振しなかったことがあってトラウマだってのは俺だけではあるまい・・・
>ねばならない
ゲームは一日一時間!!(^p^) わざわざ相談に来てアドバイスを受けておいて「教え魔」とか
さすがPICスレ PICスレのプロ素人、教えられ魔さんパネェゼ!!(^p^) >>343
発振したかどうかってどうやってやってます?
素直に質問です そういうときはオシロスコープですん なんかすみません; >>346
オシロがなくても、プログラムで既知の周期でLEDを点滅させて、その通りになるかどうかでも。
オシロがあっても、発振子の足にプローブを当てたら条件もかわってしまうので。 オシレータの足って、ロジックのみで来てないのよね?たしか。
LPにしたらなんか、OUTも100kΩくらい挟んで設計してあるんだよね?
発振ってけっこう大変だった記憶がある。 32.768kHzの水晶で時計を組もうとしたらコンデンサの値に注意はいるね。
適当だと、月差1分ぐらいは簡単にずれるし。 >>348
> オシロがあっても、発振子の足にプローブを当てたら条件もかわってしまうので。
まさにここを危惧してた
数pFでも効いてくると思うし >>353
なので、直接ピンには触らずに、(確認のために一時的に追加するバッファでなく)もともとついているバッファなり、
それがないなら、マイコンの回路を通ったあとで確認することになります。
発振条件が厳しいとかそうでないとかは、発振余裕度の検証方法とかが水晶屋さんの技術資料にあるのでぐぐって。 “発振してるかどうかの確認”ならxーtalの脚にぢかにプローブ当ててるぞ(^p^) クリスタルだけど各極20pFのコンデンサで発振失敗したこどないけどね。
ユニバーサル基板でもプリント基板でも
PICでも他でも >>346
発振しているかの確認なら、ラジオでその周波数を受信して、
マイコン電源on/offで受信もon/offするなら、それでOKです。
正しい周波数を見るのでしたら、
PICのOSCxx(NOTゲートの出力側)ピンに高抵抗を繋いでそれをOp AMPでバッファして
オシロで波形OKを確認した後、周波数カウンターで測定ですかね。 その手の問題は
1)どういうわけかプログラムが動かんぞ
2)そもそもクロックは出てるんか?
3)オシロで確認
ですしおすし (暴論)プローブ当てて発振しなくなるような基板なら、そのうち勝手におかしくなる。 なんか変だな、動かないな、と思ってプローブを当てて確認したらちゃんと発振してるのに。 水晶とCPUのピンンとの距離を5p程度にしたら発振が不安定になった。
解決策・・・発振器から供給した USB HOST、Ethernet、特殊な用途
くらいしか思い浮かばない USBはデバイスでも必要じゃないかな。デバイスによっては高精度内蔵オシレータとか、
ホストに合わせるタイプのがあるけど。PICのUSBデバイスのクロックはどうだったけか。
今はセラロックで良いような用途だったら、内蔵でもそこそこ大丈夫だし、外付けが必要なのは
時間精度が必要な場合に限られるね。
ArduinoのUNOの本家とかはセラミックオシレータ。それで世界の多くの人がまあまあ使っているところを
見ると、多くのアプリがそれでいいということなんでしょう。 >>365
お!確かにUNOのクロックはセラミック発振だ
USB用のATmega16U2は水晶なのに・・・
どうせ付けるんだったら水晶にしてくれればいいのに・・・ PIC16F1454もホストに合わせるようになってますね。 USB規格書にもデバイスの48Mクロック源は
セラロックで良いと書いてある。確か。
市場がそれを超えるモノを求めるならそれはそれ。 USB LS 1.25%
USB FS 0.25%
USB HS 0.05% USB 2.0 HighSpeed 対応の PIC ってあったっけ。
1.1 FullSpeed 対応は見かけるけど。 >>368
PIC16F1454は私のお気に入り
後継を望む ディスコンにもなってないのに後継を望むとはこれいかに 秋月で買えなくなるのはディスコン
異論は他一店だけ認めるw >>376
値上げしたけどまだ売ってる
もうちょっと値上げしたらBluePill, BlackPillに全面的に移行する 10年もUSB搭載8ビットが出てない
8ビットじゃなきゃ他行くし この10年で8ビットMCUになんか進化ある?
ヨソでも構わない。 8ビットに求められる価格帯で、高速で大量のデータを扱うのはバランスが悪いのでは。 変化と進化って違うし、何が変化で何が進化なのかは恣意的。
どの程度の変わりようで変化・進化とみなすかも、恣意的なものだしね。 こんな違いはあるけれど、って言っても、挑発的ともとれる「なんか進化ある?」だったら、
「そんなの進化に入らない。次」ってなる雰囲気いっぱい。
原因作っておいて、無能呼ばわりはおかしい。
リアルでもなんらかの(地位的や心理的な)優位な立場を使って、自分が下とみなしている人に
こういう吹っ掛け方をしてそう。 それを業界では「枯れた/mature」って言うんだわ。
供給さえ続いてたら何も問題ない分野。ま、供給出来てないから問題なんだけど今。 USB機能付き8ビットマイコンの供給ができてない、ってことはなさそう。 とりあえず老害と言っておけば、面倒な思いは低減できると思ってる人いるね。 過去の風習に固執し、モヒカンと肩パッドの流行が来たときに良心を捨てられないのが老害
柔軟に変容して ヒャッハーして火炎放射器で汚物を消毒できるのがナウなヤング
おまいらもし将来その時期が来ても、老害がいなかったら
いったいだれにヒャッハーするや? だから、貴重な資源としての老害を みんなでたいせつにしやう(^p^) 昔バラした扇風機のリモコンが4ビットだったな
きっと10年どころじゃない進化をしてるだろう >>376
> 秋月で買えなくなるのはディスコン
割と同意
気軽に買えるから使ってるだけだし 幾ら老害とか吠えようが月1000個も使わない
ホビイストの意見が省みられる事ないけど。 さあみんなぁ! 老害の捨て台詞コンテスト、はっじまっるよ〜!!!(^p^)
おめーによませるエラータはねえ!!! 400
知らんがな
知らんて
知らんわ
知っとるけ 老害ワード一覧
8ビット/PIC/DIP/秋月/5V/小ピン ルネのターゲットボードにクリスタル乗せた奴はクリスタルの足にオシロのプローブを当てるだけで発振が止まるw
CLの値が良くないんだろうか >CLの値が
ターゲットボードは水晶はついてなかったっけ。あとから自分で追加されました?
傾向としてCL(負荷容量)の小さい水晶だと、ぶら下げるコンデンサの容量も小さいのでオシロのプローブの容量も影響が大きくなるし、
インバータの入力側と出力側でも変わる。
それと32kHzのオシレータの場合、駆動力も抑えるようになっているので、インバータの出力側も影響が出やすい。 >>403
基本的に外部発振子は非搭載
ttps://www.renesas.com/jp/ja/products/microcontrollers-microprocessors/rx-32-bit-performance-efficiency-mcus/rx-family-target-board-target-board-rx-family 素人です。
水晶発振回路を自分で組んだこともありません ぼくも水晶発振回路童貞です!! しまった! うそうそ ドドド童貞ちゃうわ(^p^) 僕もないな〜
天然水晶はAmazonとかで買えるけど、加工とか電極を付ける方法よく知らないや
暇な時に一度ぐらいは作ってみたいな (;´Д`_)
( つ 彡⌒ミ 前髪切らないで
「 ( ・∀・)
|/~~~~~~ヽ 生やせと言われたら困るけど
切らないのは楽勝だろ(^p^)どやぁ FT-243の水晶だったらネジ緩めれば中の水晶片取り出せる。
水晶が高価だった前世紀では削って周波数変えてた人もいたと聞いた。 石英ってクソ硬いけど金剛砂とかで研げるんかな・・・? ダイアモンドやすり? 南米の水晶髑髏は、回転工具も無い時代にどうやって作ったのか
方法が不明のためオーパーツ(あうとおぶぷれーすあーちふぁくと、場違いな骨董品)扱いもされる謎の工芸品。
印度のジョーンズさんも謎解き大変だな頑張れ;しらんけど(^p^; CQ出版から出ていたアマチュア向け工作技術の本に載っていたような記憶がある。
カーボランダム(金剛砂)研磨剤をガソリンかベンジンのような液体に分散させて、
上澄みの粒子の細かい部分を分離したものをガラス板の上で広げ、5円玉で水晶片を
抑えつつゆっくりと研磨するとか言う方法だった。
研磨しすぎて周波数が高くなってしまった場合は・・・赤チンを塗ったら周波数が
下がる、ただし経年劣化は保証できないとかいうことだった。
詳細内容が知りたいなら古本を探してみるよ。 ごえんだま摩耗させるの犯罪の様な…しらんけど(^p^; 字面そのままでしか表面的に解釈しない人いるしなあ。
「知らんけど」を「本当に知らないと表明している」と意図的に表面的に解釈してるんだよな。
こんにちは、って言ったら、「それでこんにちはどうしたんだ」って噛みついて、してやったり、って思ってるんだろうな。面倒ダナー。 発達障害は文脈からおふざけなのかが判断できない。
これが顔文字の人を嫌う理由だと思われる。 発達障害や認知症でなくても
ストレスによる極端な睡眠不足でも認知能力が低下して思考が極端になることが有る(経験済み)
もしかしたら環境に恵まれてないのかもしれない
ストレス→睡眠不足→ストレス→睡眠障害→ストレス→認知障害→作業効率悪化→睡眠障害悪化→以下、悪循環
やがて鬱病に・・・
早い段階で手を打たないと、抜け出せなくなるぞ そうだ そうだ!!
・・・顔文字の途中で改行しないで、
行数制限が顔文字の途中だった場合、
前の行に続けるか、顔文字の直前で改行する、とゆーことじゃなんけ?>禁則処理
例)
しらんけど(^
p^;
↓
しらんけど(^p^;
違うというのならどういう意味か教えてくれ(^p^) 考えるな・・・
(432のなかに 顔文字を)
かんじるんだっ!!ΣG(”∀” ) マイクロチップの8BITのPICを使っているのですが質問さしてください 公式のオフィシャルドキュメントをみると「条件AのときはXを、条件Bのときはαを
設定する事」って公式ドキュメントに記載があってそのとおりに実装したつもりなんで
すけど、実際に公式ドキュメントどおりに実装したら全然動かなかったんです それで「おかしいなぁ?どこまちがえてるのかなぁ?」って検索して調べたら同じPI
Cを使ってる例があって、それをみたら条件BのときでもXを設定していたんです そんなはずは無い!公式のオフィシャル公式ドキュメントではαを設定するのが正
しいはずだ!と思ったんですが試しにそのサンプルどおりにXを設定したら、確
かに動くようになったんです!そんな馬鹿なと思って何度もコードを読み返しまし
たがやっぱり条件BのときにXを設定していて、それでちゃんと動くようになった
んです マイクロチップのPICにはエラッタが多いちゃん言うのは事前に知っていましたが公
式のドキュメントにも記載ミスが多かったりするんでしょうか?もしそうなら、ドキ
ュメントの改訂版とか誤記訂正集のようなものはないんでしょうか?ちなみに参考にし
た公式のオフィシャルドキュメントはマイクロチップのページから直接ダウンロードし
てきたものです メーカーに質問して誤りだったら次回改訂してもらおう >>446
メイカー(ここではマイクロチップ)に直接質問できるようなフォームってありまし
たでしょうか?もしあるならメイカーに質問さしてみたいです そこに質問しても場当たり的な回答しか来ないよ。体験済み。 >>449
どこのメーカーでも第一回答はデータシートの解説みたいなことが多いと思う。
そこから踏み込んで質問を繰り返さないと。 繰り返しても奴らの目線は客の問題を解決する事じゃなく、ISSUE をいかに早く閉じてもらうかに向いてる。
少なくともうんこ💩 コミュニケーション能力が低いことって自慢になるんだっけか。 >>454
突然どうした?
コミュ力に自信が無いの? シリアルコミュニケーションは大抵のPICにそなわってるぞ!きっと。しらんけど(^p^; PIC10F200 110円
多分コスパ最低CPUだよな? マイコンのコスパのコストは、マイコン自体のコストと、流通にかかわる費用で決まるしね。
小売店の1個売りだったら、店員さんが、1個1個梱包勘定するコストの割合が大きくなるから、
もともと低価格なマイコンは、1個買いだとコスパが悪くなって当たり前。
趣味でコスパを議論するときって、購入価格は自分の作品に対するレギュレーションみたいなものだよな。
自分に課すルールだから、判断基準も自分ルールでやればいいし、他人と共有するのは難しかろう。 自分で「俺の電子工作は秋月で買えるもので作る」みたいないルール作ってるんだろね。
広義(あるいは原義) の「スポーツ」は実利に繋がらない「息抜き」のことなんだけど、
自分ルール作って電子工作するのって、すげえ「スポーツ電子工作」だよな。
しかも自分しか使わないルールって点で、他人とも交わらない、孤独なスポーツだ。 どうでもいいじゃん、人それぞれで。
うちはDigikeyも使うけど。 >しかも自分しか使わないルールって点で、他人とも交わらない、孤独なスポーツだ。
だね。
10kΩ1種類しか使わないアンプ とか やってみたい やだぁ❤ お父さんたら血のつながった10歳の実の娘を孕ませたい❤ 孕ませてボテ腹にしたいって、
アナルの奥までじゅっぽし入った直径5cmガチガチおちんちん❤❤ からドロドロザーメンを
ビュービュー中出ししたいっておちんちん (PIC PIC) させちゃってる❤❤❤ microchip.com落ちてる?
MPLAB拾ってこようと思ったのに
(´・ω・`)ショボボボーン >>464
数年前50円くらいじゃなかった?
使いみちなくて
10個くらい眠ってる PIC10F222が45円
PIC10F200が110円
私も50円くらいの時に10個くらい買った
普通に買える汎用CPUの中で最弱 MPLABのcharの符号がバラバラなんだけど
何これ
XC8(PIC, AVR) : 符号無し
XC16 : 符号有り
XC32(MIPS) : 符号有り
XC32(ARM) : 符号無し 型のサイズ int, double, long double
XC8 16, 32, 32
XC16 16, 32, 64
XC32 32, 64, 64 処理系が違ったら仕方ない
Cの仕様では処理系依存になってるんだから C言語にバラバラにしなきゃいけないなんて仕様は無いけど 32ビットのMIPSやARMはそれぞれの慣例に従ったとしても
PICの8ビットと16ビットで変える必然性は全く無い 「処理系依存」は「バラバラにしなければいけない」ではない。
それはともかく「PICの8ビットと16ビットで変える必然性は全く無い」という理由は何だろう。
ただ単にID:cHKg9cyoは同じであるべきだったという願望を一般論としての必然性にすり替えようとしているだけじゃないのか?
だからおそらく「全く無い」と言い切ってはみたものの「全く無い」ということを証明するとはできないだろう。 単純にダサい
同じメーカー、同じブランド名、同じ開発環境なのに統一出来ないところが
統一してないよりしてた方が良いのは当たり前
バラバラの方が良いと思うヤツはいない というか今時intとかchar使ってる時代遅れ(知恵遅れ?w)おんの?
PICのコードなんか全部 uint8_t とか int16_t しか使ってへんわw >>487
組み込み系は、その通りだと思うよ。
intはループ変数程度、charはシリアル通信くらいだな。
intをけちってcharで使うと移植性は悪くなる。 >>486
マイコンのメーカーが出すコンパイラは、そのマイコンでメーカーが想定している用途を反映していて自然。
だから、8bit PIC で doubleが倍精度でないのにも、商業的な合理性もある。
逆にいえば「それはダサい、16ビットPICと揃えるべきだ。8ビットPICでも倍精度を使いたい」というニーズが相当数あるなら
「8ビットPICでも倍精度を使いたい」という人向けに、サードパーティのコンパイラが対応すると考えていい。
「どれぐらいのコンパイラが、自分の希望をサポートしているか」で、自分の希望がどれぐらい一般的なものかどうかを判断できるよ。 >>490
想定してる用途によってcharの符号有無が決まると
へ~ >>487
ダサいって言ってる人が指摘している不一致は浮動小数点だしね…。 文字列はUTF-8で符号化して、UniCodeだろ。 >>493
>>479
>>478で整数型の符号の話が出てた。>>492は訂正。
コンパイラは、一つの設計思想のもとで作られたものでもないので、
不統一な部分があって当たり前。
それぞれに歴史があるので、デフォルトをある時点で揃える方が弊害がある。
バラバラなのがダサいとしても、それをマイコンベンダーがそれをダサいと思って
あるときに統一して、従来のユーザーを混乱させることもまたダサい。
charに関しては、文字表現(ポインタを使ったゼロ終端文字列表現を含む。ここに揚げ足をとるとは根性がダサい)、
に使うもので、何かにキャストすることもなく、演算に使うべきでもないのでは。
このあたりは stdint で解決するべきことだと思う。 ID:H4H4dphj が何をしたいのかはっきり表明していないのが問題。
自分が期待する話の着地点を提示せずにテクニカルな話をするのはおかしい。
ダサいという個人的感想を持っている、それはわかってるよ。
期待している着地点はどれ?
(1)ダサいという僕に共感してほしいの。
(2)ダサいからMicrochipに直してほしいの。
(3)その他(______________) 他者は心の鏡という言葉は侮蔑の方向性で用いられることが多いけれど、
↑の御仁が 会話の着地点を模索しつつ建設的な会話に終始する知的生命体だからといって
他人も自分と同じだと無意識に期待してしまうのは、残念ながら根拠に乏しい想定と言わざるを得ないんよな
妊活に励む夫婦がいる一方で、これは世界中の全女性に向けた膣外射精や!とかほざきながらオナニーしている子もいるんやで;しらんけど(^p^; そもそも処理系で違うデフォルトに依存するコードを書くのが間違い
符号を気にする使い方をしているなら明示的にsigned, unsignedを付けるべき 共感でも反感でもOK
解決策は求めてない (困ってない) デジタル時計作りたい
なんかいいのおせーろ下さい
7セグのLED がええっす! 以下の関連部品があればゼロから作れる。(あとプログラムも)
7セグLED表示器
AC100Vからの基準クロック取り出し回路
AVRやPICなどのCPU
時計の基本形が出来たら、センサーでLEDの明るさを変えたり、
温度・湿度表示や音声読み上げを追加したり、
やる気さえあれば遊び方tはアイデア次第。 そりゃ時計が欲しいなら時計を買ってきた方が早くて安い
でもここはPICスレだからな、PICを登場させないとダメだろ?w >>501だけじゃ何を求めてるのかわからん
こういう質問に真面目に答える必要はない というか、元質問は「時計が欲しい」ではないしね。
キットから入るのは悪くない。
特に、マイコンを使った装置のキットは「半田付けして動いた」で終わらずに
そこを足場にして、作る楽しみをスタートできる。
まずはマニュアル通りに作って動かす。
・回路をなぞって、読み解きながら自分オリジナルの回路にすげ変えていく。
・マイコンのプログラムをオリジナルなものにしていく。
キットを使わずに最初からやろうとすると、入門の人にはハードルが高すぎるよ。 勘違いしてる人がいるようだけど
初めての電子工作でも初めてのマイコンでもなく
初めてのPICのスレだから だから>>502は「PICのもあるし 好きなの選びなされ」って言及してるんじゃないのかな?
PICユーザーとしてのソリューションを出せばいいのに。 >>511
何でもかんでも英語なんだ。
手段と言えばいいのに。
アジェンダ 式次第だろう
エビデンス 記録だろう
普通に日本語で言えよ >>511
お前>>510の意味を何も理解してないな >>512
あなたは「プログラム」は日本語で言わないの? そういえば大昔に見た資料に「目的算譜」とかの単語が出てきたビックリした事があったなたな。 ・・・ってことは、だ。要は、ハッキング可能な 回路図・そうすコード付き
PIC応用製品 完成品時計(奇麗な 射出形成の 市販時計に見える様な筐体)というのを
秋月さんとことかで販売してれば理想的なんじゃね?
筐体には PICKITとか用の接続端子とか
機能拡張に備えたデジタルあいおー端子用の
穴とかコネクタとかプラグが用意してあると
その時計自体を制御用マイコンとしていろんな用途に使えると思うんご!(^p^)
市販の電波時計とか アルゴリズムが謎過ぎてストレス抱えたりするけど好きなだけリトライとか出来るようになればそれだけでも付加価値になると思うんご 電波時計、設置に適したところを選ぶのも難なのよな。
とりま課題として 電波時計信号強度の可視化
a)二行キャラクタ液晶
b)スマホアプリで確認
みたいな機能を誰か実装してくんろ(^p^ >>522
台湾は北京語で香港は広東語では?
返還で変わったのかな? >>522
台湾、香港、大陸は日本という主張だと思って良いのかな? 外来語をつかわずに日本語で言えよ。
と言っていた本人が別のところで「プログラム」って言ってたので
「プログラムは日本語にしないの?」って聞いたわけだが、
おそらく別の人が「式次第」かなあって言ったわけ。
で、ほぼ誰の目にも明らかだと思うけれど、
「(日本語じゃないけれど)プログラム は 台湾・香港なら程式で、大陸(北京とか?)なら程序って言うんだぜぇ」
って話が広がったんだよな。
でも、
[全体]−[ほぼ誰も]
のグループの人の一部(ID:P6LE2ldKだけど)は、「日本語でどう言うか」に留まってたものだから
「台湾・香港なら、日本語で程式、 大陸なら日本語で程序」って言ってる、みたいな解釈になったんだろな。
なんかおかしいなあ、って思ったら、多くの人は前提が変わってるのでは? と自然に切り替えた解釈を試みる
わけだけど、そういうのが苦手な人もいる。
切り替えができるのは、多くの人が、自分のポジションの常識以外に複数のあるかもしれない常識を持ち合わせていて、
状況にフィットするものを選ぶ能力があるから。
でも、複数の常識とか前提とかが苦手な人はそれが難しい。予定が変わるとひどくうろたえる人がいるけれど、
それも予定という前提が変わったことに対応することが難しいから。
できるなら、前提が変わった話をするときは「変わるけれど」と言っておくと、こういう人が混乱せずに済む。 近くの海辺に行って砂を一杯集めてくる。
(以下略) ムーブメントを買わずに、たとえばステッピングモーターと歯車で作るとして、
歯車ってどれぐらい自由に選択して入手できるんだろう。
昔、機械系の仕事をしてたときは、協育ギアのカタログで選べたけれど、
WEBで見たら、樹脂ギアが軒並み購入できなくなってるみたい。 サーボモータって何度動くんだろ?
サーボ3つでなんとなく作れそうw PICを使うなら
DCモーター & ロータリーエンコーダーとか プラギアは3Dプリンタ。
家庭用でも売れ筋モデルの精度あればモジュール0.5からいけるぞい。
減速ギアも自由自在だし。
CADで歯車モデルをパラメータ入力で生成するだけ。 ( )y-~~( ´)y-~~( ´-)y-~~(´ー`)y━~~∑( ゚Д゚)y━~~スゲー!! MPLAB X は、漢字を含むパスは まだダメなのでしょうか 学校や職場によっては管理者の理解がなくて、漢字でのユーザーフォルダ強制だったりするんだよな…。
MPLAB Xでは試したことないが、Eclipseがダメだった。 自分の漢字名フォルダにプロジェクト置いといて(=A)どっか漢字入らないフォルダ(=B)作っといて
BにAを指すリンクを張る windowsでも標準UIが無いだけで仕組みはある。 mklink /D ですね。
なるほど、これだとうまくいくかも。機会があったらためしてみよう。
と思ったが、漢字名を強制されるような環境で、ユーザーフォルダ外に
「漢字入らないフォルダ(=B)」
を作らせてもらえるかどうかも壁ですね… junctionを使えばフォルダを作る必要がなくて他のフォルダ名に見せかけられるので
可能と思うが管理者権限でやらせてくれるのかな >>547
そういう職場で、MPLABとかのソフト使う機会有るのかな? 管理者が偏屈、ってパターンは割とあるよ。
「類推されない方が良い」って理由で社内ホスト名が延々学者の名前だったり。 >>554
むしろ、ないと論理的に考えられる理由が乏しい。
直接の関係は全くないけれど、電気電子板でも
「いまどき日本語フォルダが使えないソフトなんてないだろう」
みたいな思い込みをしてる人がときどきいるしね。
逆説的煽りだとしても、背景にそういう考え方の人がいるからそれが成立するわけだし。 >>556
なんでMPLABは漢字のパスが使えないのでしょうか?
日本なんて相手にしてねーよ、ということ? >>554
それな、いったいどういう職場なんだろうw 自分の常識でよその世界を判断する人がいることは確か。 日本どころか「一文字が複数バイトだなんて…シラネ。」だろう。 >>559
確かとかじゃなくてそれが当たり前
自分の脳内以外はよその世界 他人は自分と同じ考え方ではないと考えるよ。
そうでないと、世の中はありえないことで満ち溢れることになる。 >>555(さーばのはなし)
>ホスト名
源氏名という奴ですね(^p^) 初めてデバッガーを使います。タイマー割込の中の変数の値がデバッガーしたいです。
マイコンはPIC24F32です。デバッガーにPICKit4を買ってきました。
main(){.....} では、ブレークポイント(BP)の設定や、変数watchが出来たのですが、
Timer1の中にBPをセット(行番号をクリック)すると、以下のようなメッセージが出てきます。
(英訳しました↓)
現在のデバッグツール設定で使用できるハードウェアブレークポイントリソースが
1つあります。ステップ オーバー、メインへの実行などのデバッグ操作には、
空きブレークポイントリソースが必要です。
ソフトウェアブレークポイントを有効にしますか?
質問は、この説明の意味が分かりません。
1. ブレークポイントの ソフトとハードとは、何でしょうか?
やりたいことは行番号のところで停止して、変数の内容が読めれば良いです。
2. 上の文章は、
ソフトとハードの両方の方法ができるけど、
PIC32じゃないんだから、ハード方式は1個しか使えないよ。
ソフトならいくつでもできるからそっちを使う?
という文意で正しいでしょうか?
宜しくお願いします。 ハードウェアブレークポイントはチップに内蔵された
デバッグ用ハードウェアがPCとブレークポイントに
設定したアドレスを逐次比較して一致したら実行を
停止させる。
チップの中のハードなのでもちろん上限がある。
すでに何か(知らずのうちに)設定されているので
削除してしまえばまた新たに設定出来る。 ソフトウエアブレークポイントは指定したアドレスにブレークを発生させる命令を挿入する。上限はないが実際の開発では
無闇に10も20も張る事ばない。 >>567
ありがとうございます。
そういうことですか。
初めからブレークポイントするハード回路が入っているPICに対してだけ
使用される言葉ですね。
ソフトウェアブレークポイントは「goto 自分」みたいな命令を、
アセンブラレベルで挿入してコンパイルするのですね。よくわかりました。
だとすると、ソフトウェアブレークポイントだけあればいいようにも思いますが、
なぜハードウェア...があるのでしょうか。時間を正確にしてデバッグしたいというとき
必要かもしれないですが、多くの場合は、ソフトウェア...だけで良いですよね。 ソフトウェアブレークポイントは設定/クリアのたびにフラッシュの書き換えが発生する
書き換えが出来ない場合(品質やエリア)には貼れない
ハードウェアは単純なブレーク以外の機能があったりする 逆にハードだけで十分と思っている。
ブレークポイント掛ける時は恐らくここに来るだろうと
当たりを付けてから走らせるので、数の少なさは気にならない。 ブレークポイントで ハートブレイクが発生して
そこから デバッグ用システム割り込み処理へ向けて
処理がセンチメンタルジャーニーするんですね(^p^) >>546
まだダメどころか、さらにダメになった。
XC8のコンパイルが終了しないのでPICに書き込めない。 >>575
ブレイクしたら状況をしっかりチェックしましょう。
もしかしたらハートブレイクホテルに1泊する事になるかもしれませんが、
正しく修正すれば幸せなリスタートが待っています。 step in
step out の違いが分かりません うんこ入れるとか上級者すぎるだろとおもったが、
叢生菌が死滅したり偏って健康を害すレベルになった人の腸内環境を
健全化するために健康な人の液状大便を注入する治療があるらしいな;しらんけど(^p^; >>579
ネタなんだろうが、
関数の行でブレイクしてStep inすれば関数の中をステップ実行する。普通にステップすれば関数を実行してそのレベルの次の行で止まる。
関数の中をステップ実行してて「あ、もうこの関数見なくていいや上のレベルに移りたい」って時Step outすれば関数の残りを実行して上のレベルの次の行で止まる。 Step in …… 他人のプライバシーを根掘り葉掘り聞きだそうとするやつ
Step out …… 人が大事な話をしているのに「あーはいはい...」といって早々に切り上げようとするやつ 会社でPICを使うことになり 初めて使うのですが、
MPLAB X 4.0を使用し、シュミレーターで動かしたいのですが、
main.cのファイルは読み込めるのですが、
main.c内で使用する ヘッダファイル の読み込みが上手くいかないせいか、
ヘッダファイル内で使用されている変数が参照できず
シュミレーターで動かしている状態です。
元はMPLAB IDE ver8.3位で作成されたファイルを
MPLAB X 4.0でインポートし使用しているのですが
インポートは出来、シュミレーターは動いたのですが、
ヘッダファイルが参照出来ません。
どなたか分かる方がいましたら
教えて頂けないでしょうか? なんで今頃4なん、6.05でいいじゃん
ついでに実機で、LEDでもつけて動かしてみればいいんじゃね?
LEDなければオシロで見ればなんとかならない?
8bitマイコンだよね?
16bitとかはexternなしでヘッダに変数書くのは反則だと思う。 そう、私はデバッガ使わないおじさんなのです。
内部の計算はLEDやオシロの出力へピンの信号を出す、
複雑な値を表示したければUARTもしくはI2C等で液晶に出力、
そもそもSPIとかI2Cとか外部との信号のやりとりは
オシロやロジアナで見るしかないと思うのですが。
デバッガを持ち出さないといけないときって、どういう時があるのか、
私にはわかっていなくて。 >>588
色々と使えるようになっといた方がいいぞ やはりIOで見たりオシロ使うのがいいですよね
分かってはいるんですが、
社内でも誰も知らないプログラムで、
シュミレーターがあったので、ブレイク貼って止めてまたRUNしてとかしながら数値見れたら解析が楽かと思いまして mainは変数値を参照出来たのですが、ヘッダファイル内の変数が反映されてないみたいで
最新のMPLABを入れたらインポートが上手くいかなかったので、あえてインポート出来る以前のバージョンを使用しています。 このPCもIPEがなぜか三種類ぐらいインスコしたままになってるけど
先日久々にICD3を使って書き込む作業が発生したが
現行最新のIPEだと(ICD3を)認識すらしないのか・・・
てことで ふたつ古いバージョンのIPEで作業したんご。
どうりで古いバージョンを削除してないわけだ・・・
新しいバージョンでも対応してりゃ削除できるだろうに。
マイクロチップのユーザーって地球規模でいると思うけど
累計したらどんだけの資源を浪費させてんのかな?しらんけど(^p^; マイクロチップ(という会社名、PICの製造元)のユーザーって地球規模でいると思うけど
(マイクロチップ社 が最新版ソフトで古い環境を非対応にすることで
地球上各地のユーザーが古いソフトウェア環境を削除できない事態に晒され、
PC上で浪費される資源の量を)累計したら(マイクロチップ社の判断の影響により、
マイクロチップ社は)どんだけの資源を浪費させてんのかな?しらんけど(^p^; まぁたしかに現代文も古文も酷いもんだったが
ドイツ語やフランス語は単位落としたので
それに比べればましだぞ?
もんぺとくわ〜 あざぶじゅばん〜 他人の日本語をディスる発言をする人が、
他人をディスる資格ありと見做せるぐらい立派な長文(といっても10行ぐらいでさえ)を書いてるのはまれ。
ぼろが出ないように、短いコメントで憂さ晴らししてるんだなって思う。 以下は、文法的な修正が必要な可能性がある文です。
「日本語の成績悪かっただろ」
修正案:
「日本語の成績が悪かったんじゃない?」
「日本語の成績が悪かったんじゃないか?」
「日本語の成績が悪かったでしょう?」
「日本語の成績が悪かったのではないでしょうか?」
「日本語の成績が悪かったのではありませんか?」など 他人から見て綺麗な文章を書ける人は才能のある人。
仕事でも、部下の日本語に添削を入れる管理者の言うことを聞いていると、よけいに客が混乱する事態も珍しくない。
文章表現について、特別な才能の上にそれなりの訓練した人でもなければ、
客に分かる文章=自分に分かる文章
だと思ってしまうこともある。
ここは文章書きについての才能に恵まれた人が集まるスレじゃない。
ヘタな書き手もヘタな読み手もあたりまえ。
コミュニケーションがうまくいかないときはコミュニケーションで補えばいいのでは。 そもそも日本語の成績っていうところに違和感
日本語なんて科目はなかった そういや民族学校ではなんて言ってるんだろうな
ていうか、授業に科目自体無かったりするのかな?しらんけど(^p^; すぐれた医者や数学者でエッセイ作家としても活躍してる人がいるけど
まぁ頭が良くないと短くて分かりやすい文章は書けないだろうな 電電板では誤解されないようにと詳しく書くと
「長すぎて読む気がしない」と言われるし
そうかといって誰にも読んで貰えるようにと短くシンプルに書くと
「何が言いたいのか分からない」と言われるw
自分が書きたいようにうに書くのが一番 >>605
詳しく書く その書き方がヘタなんじや?
インデントと箇条書きを使って詳しく書くんだよ
あとは送信する前に読み返すこと 一筆啓上
火の用心
お仙泣かすな
馬肥やせ(^p^) そうそう。学会の一流教授が書いた専門教科書が、一番わかりやすいね?? PIC初心者です。MPLABXでプログラムを作り始めたのですが、
...(520) ... necer called というワーニングが一杯出るのですが、
ワーニングレベルを-3から0にしたら出なくなりました。
0でやってもいいのしでしょうか。皆さんはいくつでやっていますか?
あと うるさいので、C99 もC90にしました。良いでしょうか?
ご指導宜しくお願いします。 それでいいんじゃない?
たまに有意義なワーニングが出るのでそのまま使ってるけど。 ありがとうございました。
おかげで無事にプログラムが動きました。
FPGAではwarningはほったらかしですが、PICはwarning無しで作ってみたかったです。 すいません。今までESP32でちまちま作っていたのですが
知り合いから模型に組み込めるサイズのLチカを作ってほしいと依頼されました
サイズ的にPICでやるかなあとなったのですが
PWM出力で明るさを変えられてC言語対応で 出来れば独自のIDEでは無くて PlatformIOを使えるPICってどんなのがありますか?
ESP32みたいにシリアルで書き込めればいいのですがどうもPICってそういうのが無くて書込気もいるみたいですが
書込気もなるべく安いのがいいです >>612,613
その条件ならAVRの方が向いてると思う
AVRならブートローダーを書き込めばArduinoで開発できる
(↑その場合はシリアル書き込みできる)
PlatfomIOのPlatformsでAtemlAVRをinstallして
BoardsのPlatformフィルタでAtmel AVRを選択すれば使用可能なAVRの型番を調べられる アナログ時計を作ってみたいんだけど
秒を60個のLEDで回すにI/Oが足らないっす
10カウントを6カスケードとか?
なんかマイコンはpic使うけど周辺I/Oもマイコン使うのがええすか? >>616
目で見るための(つまりスタティックに点灯していなければならないわけではない)
60個のLEDを駆動するのにいくつのポートがいるのだっけか。
デューティが下がればピーク電流も大きくなるし、それも制約要素になるわけだけど。
ポートで直接駆動したら、多角形の辺と対角線に双方向にLEDを入れるテクニックが使えるので、9本のポートで制御できる。
でもデューティは下がるしポートの電流に制約を受けるし。
ダイナミック点灯の要領で、アノードコモンにしてカソードは8ポートで直接駆動
コモンを74HC138+PNPトランジスタで駆動したら、64個のLEDを合計11個のポートで制御できるのでは。 >>616
SPIやI2C接続のIOエキスパンダ―とか、74HC595のような出力レジスタ付きの
シフトレジスタを使う方法もあります。
出力ポートを拡張するだけなら74HC595が簡単かも。
SPIと同じ方法で使えて、1個で8ビット拡張できて、直列につなぐことができて、
秋月でも安く買えるし。
この場合、マイコンからは出力ポート3つで、いくつでも出力ポートを増やせます。
データシートにはタイミングチャートも載ってるけれど、内部の等価ロジック回路を
見る方がわかりやすいと思う。 あんがとあんがと(・∀・)
MAX7218とかいうドット表示できるのを見つけますた
これだと8x8=64点の制御ができるなと(;´Д`)
ってどうマトリックスを書くかまたハマりそうだw
いやもうちょっとあがいてみる 別に144pinのPIC使ってもええんやで、もったいないけど >>620
なんだかんだ言っても、結局HC595が1番便利だよ。
・595が値を記憶してくれるので、ソフトのダイナミック点灯処理の負担が無い。
・LEDのコモン駆動のトランジスタが不要
・部品入手が容易。MAXIM使ったら、部品入手が大変 >>622
74HC595使うと接続はSPIになるの?
つか595ならたしかに手元にあるなw >>621
そんなのもうPICじゃない(;´Д`) >>623
595のシフトレジスタのクロックがSPIのSCK。
一番マイコンに近い595のDINがSPIのMOSI。
595の出力レジスタのクロックが、SPIのCS#。
SPIのCS#と違って、シフト中は、CS#がHでも構わない。シフトレジスタに全部送ってから↑が発生さえすればいいです。 MAX7218じゃなくてMAX7219でしょ、Aliでも7Seg8桁とか8x8ドットマトリクスLED付きで安く出てる
まさかICM7218のほうじゃないよね?こっちは結構レトロだから 技術的に可能か不可能か判断する為の質問をします。
RF-Explorerと言うUSB機器の本体を改造せずにシリアル信号を取得する事は可能ですか?
PICにはUSBホストの機能が有る品種があるみたいなのでソレで可能でしょうか?
PIC24FとかPIC32MXでシリアル信号を抽出する事を記述した書籍は無いでしょうか? >>627
まず「RF-Explorer」という商品名だと複数該当する可能性が有るので、メーカー・型番等を含めて詳細を提示した方がいい
「RF-Explorer」のワードで検索上位の調べたけど、CP210xのUSB信号を扱う可能性が高い
CP210xだとして、USB通信が「CDC」じゃなくて「Vendor Specific」
PIC32等で「Vendor Specific」にも対応可能らしいので技術的には可能だろうけど
現実的には時間・手間=コスト的に難しいと思う
>PIC24FとかPIC32MXでシリアル信号を抽出する事を記述した書籍は無いでしょうか?
詳しくないし、調べてもないけど、日本語の書籍で探すのは難しいと思う
PICのUSBだけでなく、USB全般の書籍も複数読む必要があると思う
まあ、自分は詳しくないのでこの様な回答だけど、手軽な手段が有って簡単に出来るよって回答も有るかもしれない CP2102/9が使用されているとして、ドライバとかプログラミングの手間を考慮するとパソコンで受けてパソコンからシリアル出力するのが楽そうに見える
linuxのドライバもありそうだから、raspberry piの様な品物でも出来るかもしれない >>628
>>629
製品は小型スペクトラムアナライザ RF Explorer−3G Comboです。
PCに接続するとデバイスマネージャーのCOMポートに繋がる奴です。
Silicon Labs CP210x USB to UART Bridge(COM5)
こんな風に繋がっている奴です。
PIC24FとかPIC32MXとCP2102 USB-TTL変換アダプター組み合わせとかでもムリかな?
パソコンで受けるのが簡単そうなのは判るのだが今回のテーマはひたすら軽くだから。
やりたい事は下記の様にしたいのです。
RF-Explorer〜PIC24F〜CP2102 USB-TTL変換アダプター〜HC-05 BTモジュール
HC-05 BTモジュール〜CP2102 USB-TTL変換アダプター〜PC
発案の切っ掛けは、検索ワード「ポンプチェッカー infutest2000 無線化に挑戦」。
スペアナをドローンで飛ばしたら面白そうな出来るかもと言う妄想なのです。 627だけど解決法が見つかりそうかも。
Arduinoのホスト機能を使ってシリアル通信する記事を見つけた。
その記事はFTDIのチップを搭載する奴だったがSilicon Labsのライブラリーが有れば?
「CP210x Android driver - Silicon Labs Community」とか有ったわ。
自己解決にはまだ遠いけどArduinoを使用する方式を模索しようと思います。 >>630
正直なところ、本体を改造しないと言うような趣旨に反するけど
本体開けてUSB変換前のUARTを直接出した方が楽だと思う
↑改造ならUART → ESP32(Bluetooth) → PC
>>631
Android:スマートフォンで使用率の高いOS
Arduino:マイコンのプラットフォーム なぜスペアナ全体を飛ばす事を考える? A/D変換した奴をESP32で飛ばせば良くないか? >>633
受信タワーの建設前に調査をするには伸縮ポールが付いた電界強度測定車や高所作業車が必要。
双方共に購入するにしてもレンタルするにしても劇高いからです。
地上高測定棒にしても全長が6m位しか無く建築物高+地上高測定棒の高さしか測定不能。
しかし、超小型スペアナ+BTモジュール+基盤ログペリをドローンで運用すれば?
建築物の助けが無くとも地上高50mの受信点調査も楽勝と考えたからです。 >>632
すいません。Arduinoのホスト機能を使ってを模索したけど難易度が高そうです。
そして見付けました。検索「PICのUSBホスト機能を動かしてみる(CDC-Basic編)」です。
24FJ64GB002にホスト動作のさせてシリアル出力をUSBに変換してPCで通信。
コレのUSBに変換する部分を排除してHC-05 BTモジュールすれば出来るかもです。
最初はコレでシリアルを取得してCP2102 USB-TTL変換アダプターに直結して実験します。
お騒がせしました。 あれ、なんか違う?
あんまりよく読んでなかったけど。
とりあえず、モノは違っても、できそうではある。 >>636
>>638
本体を無改造と言う縛りなら新たにスペアナを購入すると言うのも手ですね。
RF EXPLORER 3G+ IOT ARDUINO+ARDUINO本体+USB CP2102
PDFマニュアルに 「to PC - you should get a USB CP2102.」と有った。
ココから推察するにPCアプリには「USB CP2102」の縛りが有る予感。
RF EXPLORER 3G+ IOT ARDUINO+ARDUINO本体+HC-05 BTモジュール
HC-05 BTモジュール+USB CP2102+PC
コレで通信出来るかもです。でもPICの記事を発見したのでコレから実行します。
検索「PICのUSBホスト機能を動かしてみる(CDC-Basic編)」 ・PC側ソフトで対応
・中継機を使う案
・USBプロトコルアナライザ
中継機を作るのが簡単では?
Nucleo F446REならUSBホストとUSBデバイスと両方使える
TK-USB1N/TK-USB2NみたいなのでNucleoにUSB端子を生やす まあこれは当たり前すぎて問題ないんだろうが、
通信してる時間と、データを取得する時間と区切っておかないと
Bluetoothの電波をもろにセンシングしてしまうよね。 Aliの12F629買ったら5個中2個が同じところでベリファイエラー出る。3EFFが3EFBになっちゃう
digikeyで買ったやつはでない。イレースはできるしほかのHEXだと通るよくわかんない助けて
ただの不良? ライターはTL866CS 考え得る可能性としては、三個はかけているのなら、
電源がちゃんと安定して動作しているのか確認するのがひとつかなぁ…知らんけど(^p^; >>644
Aliで3個も書き込めるPICが届いたのだから大当たりだね
FLASHメモリの故障について説明します
壊れたFLASHメモリの場合、個々のビットを0に設定することができなくなることがあります
これは、劣化や書き込みの耐久性を超えた場合などが原因です
また、0が1に変わることもあります
しかし、FLASHメモリが壊れていても、イレースは出来る場合が多いです
初期値として、すべてのビットが1に設定されているため
FLASHメモリを削除すると、すべてのビットが1にリセットされます
HEXによって無事に書き込める場合は、故障したビットに1を書き込んだ場合だと思われます
ベリファイによって書き込みが正常に完了した場合は、そのビットが正常に動作していると判断されます 639だけど早速トラブルが発生。
検索「PICのUSBホスト機能を動かしてみる(CDC-Basic編)」でコンパイルが出来ない。
info: Configuration "default" will build with toolchain "XC16 v1.30" at "C:\Program Files\Microchip\xc16\v2.00\bin".
これはインストールされたコンパイラとプロジェクトで設定されたコンパイラが異なると言う事?
旧タイプのコンパイラを探したが無いのでソースの修正が必要と言う事だろか?
それとも何処かにこっそり旧タイプのコンパイラが有ったりしないだろか? もう別のバージョンが入ってる、ってんなら
コンパイラが見つかるように
Toolchainの設定し直しで良くないか? 639だけど古いバージョンが有った。
「Go To Downloads Archive」から入れば有りました。
お騒がせしました。 >>646
ケーブルとかポート変えても同じだった
>>647
021hだったか
>>648
なるほどこれは買ったらだめだたいして安くないし
あとdigiのと見比べたらBG0とBG1とかいうのが入ってないっぽい 639だけどコンパイルしたら「Loading completed」に成ったんだけどコレでOKなん?
「プロジェクト名\dist\default\production\」これのフォルダー下に下記のファイルが出来た。
ELFファイルとHEXファイルとMAPファイルとXMLドキュメント
後はチップに書き込みすればOKなんだろか? HEXだが、どうやって書き込むんだ?
そこは大丈夫か? 硬直化した組織だと
「書き込みファイルが送られてないんですけど…
拡張子elfって何ですか?」
とか聞かれたりするぞ。 elfかもしれんが、PICKit2でもIPEでもHEXなのではないだろうか?
(2で悪かったな)
MPLABXは何を書いてるかわからんし。
おま環?それともPICが古い? いや、最近のツールは僕も持ってないが
最新のソフトウェア環境だと旧ツールが使えないのは、
おそらくマイクロチップさまのスタンスは↓こういう感じ なんやろうか・・・(´A`;
>>660
うわっ、恥ずかしっ。と言われそうだ。
問答無用で5Vを勝手にかける、とかいろいろ問題はあるけど、
秋月のPICKit2互換ライターが便利すぎて、手放せない。
デバイスファイルを勝手に変えて使ってたけど、
最近のはVPPも12Vから9Vに変わってるし、新しいのには対応できないのかも。
PICKit4も使ってるけどね。 質問です
5Vで使えるPIC24Fってありますか?
5Vで使える32MHzで以上で動く16bitマイコンを探しています。
PICKitを持っているので、なるたけPICで槍たいです。 >>662
PIC24F32KA,PIC24F16KA,PIC24F16KM,PIC24F08KM
このあたりのワードで検索してデータシート確認してみて >>663
ありがとうございます。助かります。
どうして、すぐにたくさんの候補が見つけられるのはなぜでしょうか?
スゴいと思います。 >>664
他にもPIC24FVとかdsPICにも対応機種ある 別人だけど、digikeyでpic24→マイクロコントローラ を検索しておいて、動作電圧が5Vを含むもの、クロック周波数(速度)32MHz以上、必要があれば取り付けタイプ・パッケージあたりもチェックして絞り込み。
こんな感じですかね。
マルツでも似たような検索方法が使えた気がします。 >>666
ありがとうございます。
デジキーがありましたね。調べて見ます。
昨晩、マイクロチップにも検索選定するページを見つけました。
ありがとうございました。 >>667です
PICの型番を教えてもらったので買ってきたので、やってみました。
しかしLEDチカチカで躓いています。教えていただけないでしょうか。
ピンに出力ができません、というかコンパイルが通りません
画面コピーを張ります
https://imgur.com/biv6CK0.jpg
Timer1という関数の中でRA0につないだLEDを点滅させたいです。
buildすると、写真のようなエラーが出ます。
13行目で「エラー 必要 宣言 または .の前に(」という意味だと思いますが
コンパイラーのヘッダーファイルの2015行目に宣言されていますし
後閑さんの書き方で書いているので間違っていないと思います。
昔は RA0 = 1; で良かったと思うんですが。今回は何が悪いのでしょうか。
MPLAB6.05 コンパイラーはXC16 Ver2.0 です。
今日ダウンロードしたばっかで新しすぎるでしょうか。
PIC24FV32KA302の28ピンDIPを使っています。
あと、C99からC90にする設定と、
ワーニングレベルを0にする設定はどこにありますでしょうか。
Production --> Set Project Configのなかをさがしましたが出てこないのです
よろしくお願いします >>668
LATCAbits.LATA0
プロジェクトプロパティだったかな? ありがとうございます。動きました。
LATCAbits.LATA0ではなくて、LATAbits.LATA0でした。
どうもありがとうございました。
ヘッダファイルには大文字で書いてあるのに小文字でないと通らないって、
変な感じがしますね。
File--->project propertyは、Production--->と同じ画面が出てきました。
C99 C90の選択は、ネットで見るとXC8のものが多く出てきて、
XC16の記事は1つも見つけられませんでした。
どうもありがとうございました。これでLEDがon/offできます。
SW取込みとRS232の接続、EEPROMまで進みたいです。
その前にMMCの使い方を覚えないといけませんね。
どうもありがとう LATABITSは、変数の型名で構造体のexternされている変数名がLATAbitsですね。
C90,99は、XC16だと無いみたいです。 >>672
ありがとうございます。お詳しいですね。スゴいと思います。
その後、また分からないことが出てしまいましたので、聞いても良いでしょうか。
PIC24FV32KA302 28ピンDIP型ですが、RA4, RB4が出力になりません。
次の方法で確認しています。
設定は、MCCのピングリッド表示機能で、全部outputにします。
除外ピンは、水晶発振器、MCLR, UART2-TXD, RXD の4本です。
Generateして、mainには、 __delay_ms(500); を入れて全I/Oの1 0を繰り返します。
IOにはI/Oピンに全部LED+抵抗を付けて、確認できるようにしました。
ICSPも自分でTRISを書き直して直してLEDチカチカしました。
全体が綺麗ですが、RA4, RB4だけ付きません。
調べて見ると、隣同士のピンで第2水晶のピンです。デホルトがアナログになっているのかも。
しかし、MCCはグリッド表にも個別の設定にも、出力でセットしています。
しかし生成されたファイルを見たら #pragma SOSCSRC?=ANAになっています。
質問なんですが
この設定を自分でアナログからデジタルに書換したいのですが、
ANAの反対の言葉はどのような表記をすればよいでしょうか。
MCCの設定のセカンダリ発信にチェックは入れていません。なのにANAになります。
MCCというのはそういうところまで面倒をみてくれれば良いと思うのですが、
やってくれないのでしょうか。 >>673
だからarduinoにしとけばいいのに。 余りにも簡単にできてしまうより、
ちょっとだけ意地悪してくれるところが
可愛いと思います。 ↑
今流行りの悪役令嬢系作品マニア
ツンデレ属性を拗らせたりすると発症するらしい。 >>673
MCCは、判らないけれどCONFIG bitでSOSCを無効にすれば行けるんじゃないだろうか >>673
MCCはけっこうバグがある
おかしいと思ったらデーターシート見てMCCが吐いたコードが合ってるか確認が必要 PICは半導体不足の影響受けてないくらい潤沢に見える chatGPTにxc8で書けるか聞いたら
書きやがったwwすげー(;´Д`)
タイマー0でLチカでけとるw >>684
自分も試してみた\(^o^)/
ChatGPTのGPT-3.5だと微妙だったのでGPT-4で出力してみた(動作は未確認)
【Q.】
PIC16F18326を使いタイマー0でLチカするコードを書いてください(コンパイラはXC8)
【A.】
こちらはPIC16F18326を使って、XC8コンパイラ向けに書かれたタイマー0を使用したLチカのサンプルコードです。
PICのデフォルトのクロック周波数を使用しています。コードは適切なピンにLEDが接続されていることを想定しています。
以下のコードを参考にしてください。
https://codeshare.io/MNLYPQ (出力されたコード)
このコードは、デフォルトの内部オシレータの周波数である500kHzを使用して、タイマー0の割り込みを利用してLEDを点滅させます。
この例では、RC0ピンにLEDが接続されていると仮定しています。必要に応じて、他のピンに変更してください。
また、LEDの点滅速度を変更するには、プリスケーラやタイマー0のカウンタ値を調整してください。
上記のコードは以下の手順で動作します:
セットアップ関数で、内部オシレータを500kHzに設定します。
RC0ピンを出力に設定し、LEDをオフにします。
タイマー0の設定を行い、割り込みを有効にします。
割り込みサービスルーチン(ISR)がタイマー0の割り込みを検出した場合、LEDの状態を切り替えます。
メインループは空ですが、割り込みによってLEDの点滅が制御されているため、何も実行する必要はありません。
このコードは、XC8コンパイラでコンパイルしてマイクロコントローラにプログラムすることができます。
使用するハードウェアに応じて、適切な設定とピンアサインメントを選択してください。 >>685
試しに動作確認したら、コンパイルできなかったので、3回ほどChatGPTで修正した
しかし、コンパイル出来るコードが出力されなかった
仕方がないので、もう一度新規にLチカのコードを出力させる
1回エラーがでたけど、エラーコードを教えたらコンパイル出来るコードが作成された
試しに書き込んだら、無事にRC0でLEDが点滅しました\(^o^)/
1秒あたり約486回・・・(汗)
ChatGPT(GPT-4)が出力したコード
https://codeshare.io/4e0XO3
【ChatGPTに】
Q.動作テストしたところ、1秒あたり約486回点滅しました
A.すみません、割り込みのタイミングが正しく設定されていなかったようです。
LEDが1秒間に約1回点滅するようにタイマー0の設定を調整してみます。
以下のコードで、タイマー0の設定を調整してください。
https://codeshare.io/QnNY1m
【ChatGPTに】
Q.修正しても1秒あたり236回
A.申し訳ありません。16ビットタイマーを使用して、正確な1秒間隔で点滅するように修正しました。
以下のコードを使用してください。
https://codeshare.io/N3rYv4
コンパイルできないコードが出力される・・・(終) >>687
手元にある関係で、PIC12F1572やPIC16F18326などを使用しました
質問例
PIC12F1572で1秒間隔でLチカするXC8コンパイラ用のコードを書いてください
Lチカには割込みを使用してください
何度かコードを出力して試してみましたが、期待通りに動作したものはありませんでした
使用実績の多いPIC16F84を指定した場合は、正常に動作するコードが出力されるかもしれませんが、それについては試したことがありません
そちらはどの型番で試しましたか? >>689
そうでしたか
やはり知名度の高い機種だとうまく出力される可能性が高いですね >>686
やっぱりこういうのってグーグル検索で出てきたのを適当に改変したコードが出てくるのか?
学習データの中に雛形が入ってるんだろ? >>691
ChatGPTの例で考えると自動に近い形でGithubやWebサイトのソースコードの中で
OSSの中でライセンスの種類が明確で利用可能な物を学習してると思う
※ただし、重要度のパラメータは低い値に設定されてると思う
プログラム手段や基本的な事は教科書の様なテキストでライセンスをクリアした物や
ライセンス提供を受けた物を選定して学習してるはず
※このようなデータはWebとかと比べると重要度が高い値に設定して学習してると思う
上記の様な手段で学習したデータをさらに手作業で強化学習することでより正しい回答になる可能性を高めてる
PICの場合、型番が多すぎて情報が収束しないから正しいコードが出る可能性が低い・・・
PIC16F84とかだと情報が多いからマシみたいだけど・・・
ATMEGA328PやArduinoだと正解のコード出力する可能性が高いね mplabじゃなくてArduinoIDEで開発とかできるの? >>694
>>692の最終行について( )内の補完をしたのでは。
「Arduinoだと(話の前提となっているPIC12F1572やPIC16F18326などの)正解のコード出力する可能性が高いね」 秋月で売っててずっと前に買った
「新居浜高専PICマイコン学習キットVer.2」(PIC16F886採用)を持ってるんだけど
水晶発信子だけ変更すればPIC16F18857で動かせるらしい(Ver.3になる)。
それで最近ようやくPICマイコンをやってみようかと思ったんですが
買ったまま放置してたPIC16F18877(40pin)もあるし
ゆくゆくはブレッドボードでもいろいろとやってみようと思ってます。
この状況だと水晶発信子とPIC16F18857を別途購入してまで
部品を変更する意義ってありますか?
PIC博士の方々助言お願いします。 >>696
>この状況だと水晶発信子とPIC16F18857を別途購入してまで
>部品を変更する意義ってありますか?
素の状態(ver.2)でいじり倒してから考えれば良いと思う 趣味の電子工作の「意義」を
他人に聞いても意味ないだろ Ver.3の機能が使いたいんならいいんじゃない
この学習キットはPICの書き込み機能はないんだよね?PICKitとか持ってるのかな?
このキット見てると昔あった4ビットのこんな感じのマイコンのおもちゃを思い出すな
マイコンと言いつつ自分でプログラミングできずにファームの機能でしか遊べないやつ… >>696
Ver.2とVer.3は同じ基板だから出来ることは同じでは? 後閑先生がPIC18FQシリーズの本を出しているようですが、
このシリーズのデータシートがいままでのMicrochipのデータシートと
見栄えが違うんですが、何かあったのでしょうか?
例えば秋月の以下の製品の
ttps://akizukidenshi.com/catalog/g/gI-15941/
のマイコンのデータシートの35ページとか36ページの「→」
今までのでは見たこと無い。 PIC16F152シリーズなどの新しい世代のデバイスに手を出したいんですが
PICKit3は非サポートのようです
デバッグ機能は要らないんですが互換プログラマってあるんでしょうか? PICkit3持ってるならPIKkitminusがサポートしている
PICerFTも最新バージョンでサポートしたようだが
個人的経験として低電圧書き込みでどハマリしたので最近使ってない
どちらも16F152xxでは確認してないので成功したら報告あると嬉しい 見切り発車でMouserで購入したPIC16F15213とPIC16F1523が届きました
純正PICKit3とPIKkitminusを使ってどちらも書き込めました!
参考までにPIC16F1523のDIP版は数が出ていないのかエラッタにすら載っていない初期リビジョン(0x2002)でした
SSOP版は最新でした ちょっとUSBでCDCのシリアル通信(USB関係のMCCがあること)やりたいけどPICKIT3で書き込めるお勧めありますか? 今どきUSB開発を新規でPICでやるのがそもそもお勧めじゃないような…… 16F1454か18F14K50か、MCC対応は知らん、 2年ぐらいまえだけど、PIC16F1459でCDC使った。CDCはMCCが対応してた。 >>711
ありがとうございます。
バスパワーで動作すれば、自社製品のシュミレータ(ダミー)を作ろうと。
ベンダーとプロダクトIDは任意に定義出来ればですが。 >>714
あります。
ルネサスのマイコンを使った産業用装置で持ち歩けないのでダミーでPCに接続画面出して販促と考えてます。 外部にI2CのEEPROM(5ピン)のSCL,SDAを、プルアップしてPICと配線しました。
I2C設定をMCCで設定しようと思って、後閑さんの本を読んで勉強しています。
本には「マスターモードの場合」と「スレーブモードの場合」と分けて書いてあります。
このマスターとスレーブのモードというのは、どのように使い分けるのでしょうか。
どんなときにマスターとして設定すればよいのか、
どんなときにスレーブとして設定すればよいのか、さっぱりわかりません。
また「マスターに設定する」という意味はPICをマスターにするという意味だと思いますが
本の説明文には「次はスレーブ側のCuriocity HPCボードのプログラムをMCCで製作します」
と書かれています。
I2C線で接続されたスレーブ部品をMCCで設定できるのでしょうか?
宜しくお願いします >>716
I2C接続のEEPROMを使用する場合は
EEPROMの大半がスレーブに固定されているはずです(そうでないと都合が悪いです)ので
PIC側は自然にI2Cのマスターモードで動作することになります。
I2Cのスレーブ側は通信が受動的に行われるため
1つのマイコンと複数のセンサーなどがある場合(センサー等の部品の大半はスレーブ固定)
マイコン側が必然的にマスターとして動作し、センサー側がスレーブとなります
本の内容について具体的な理解はありませんが
おそらくその本では2つのマイコンを用いてI2C通信が行われていると推測します
2つのマイコンを使いマイコン間でI2C通信を行う場合
マスター、スレーブの選択は都合の良い方で良いと思います >>717
ありがとうございました。
>おそらくその本では2つのマイコンを用いてI2C通信
なるほど、そういうことですね。納得しました。
さらに、PICはマスターのほからスレーブにもなれるんですね。
そういうことでしたか。なるほど、ありがとうございます。
>2つのマイコンを使いマイコン間でI2C通信を行う場合
>マスター、スレーブの選択は都合の良い方で良いと思います
それでしたら、本の言うこともよく分かりました。
1対1でしたらクロックSCLを出す方がどちらでもよいですね。
ありがとうございます。
あと、もしご存じでしたら教えていただけないでしょうか。
I2Cで1対多((マスター0,スレーブ1,2,3)の場合、
0-1, 0-3などはマスターがクロックを出せば良いと思いますが、
1-2, 3-2 とかマスターが絡まないときでもクロックが必要なので、
自分は情報やりとりに関係ないのに、マスターがクロックを出してあげるのでしょうか。
それとも、親とセンサー1,センサー2,センサー3という関係ばかりで、
子同時が会話することはない、という理解でしょうか。 最新のMCCによるI2Cの作例って、どこかにないですかね?
どの本もどのブログもMCC古くて、画面全然違う。
TRBというのが出てきて、
難しくて頭がついて行かない。 厳しい事言うが、データシート読め、
いくらコード生成もどきでも無知に使える様には出来てない。 >>720
MCCが出力するのI2C用のコードは難解な部類に入ると思う
I2Cの仕組みを理解しててPICのデータシート読めても難解よ
MCCのコードを理解するより正直MCCに頼らないでI2C用のコード書いた方が楽な位よ スピードに拘らなけれはGPIOでI2Cを制御する。
I2Cの勉強になるよ。 >>722
>MCCに頼らないでI2C用のコード書いた方が楽
そうだよね。
・スレーブアドレスを<<=1する
・REAなら ||= 1する
・書き込む
・ACK待つ
・データ1バイト目を書き込む
・STOPコンディション どうせ使わないクロックストレッチを無視すれば簡単になる >>725
クロックストレッチって、MCCソースに出てくるリトライ回数のことでしょうか? >>726
検索すりゃいくらでも解説あるが
要するにスレーブ側でSCLをLに引っ張ってマスター側にビジーを伝える仕組み
ほとんどのデバイスは使ってないけどBQ27532とかは使ってたりする >>721
そのデーターシートとは、マイコンのデーターシート?
それともMCCのデーターシート?
MCCの吐くコードの説明って、ヘッダーファイルの物だけでは? 質問あります。
相手のPICから、UARTで文字データが出力され続けています。
S|||||||PS||||||||PS||||||||PS||||||||PS||||||| と、START bit 後すぐにSTOP bitが来ます。
~~~~S|||||||||P~~~~~~S|||||||||P~~~~~~S||||||||P のような文字間の切れ目がないです。
これを「後から電源onのPIC」で受信したいのですが、PICの受信モジュールで判別できるのでしょうか?
1度文字化けしたら、最後まで合わない様に思うのですが。
まだ試していません。 >>729
スタートビットのHからLになるエッジでサンプリングが始まり中間タイミングで拾うだけだから問題なし。 8ビット1ストップビットパリティなしで0x2Cを連続して送ったら
0001101001000110100100011010010001101001000110100100…
になるけれど、うっかり途中から受信を始めたら0x62の連続になる、みたいな心配?
0010001101001000110100100011010010001101001000110100…
それはありうる話。 調歩同期通信のレシーバはスタートビットで同期を取るのだから
スタートビットが定まらない送信パターンは調歩同期と呼べないのでは? >>729
連続送信の場合、文字列によっては、1度文字化けしたら最後?まで合わない
理由として、正常なスタートビット位置を見失うため
送信側と受信側で対処する必要がある
送信側は一定のブロックを送信したら、1文字分以上の時間を空けて次を送信
※これでスタートビットの位置が正常に検出できる
また、送信する文字列(データ)にも工夫して、受信側で受信が正常にできてるか検出できるようにする >>734
名前の国語辞典的な解釈は横に置いておいて、隙間なしのつめつめの調歩同期送信をするのは、
相手となんらかの手順のやりとりをして(リクエストがあったらレスポンスを返すとか)、
一連のカタマリのデータは詰め詰めでも、カタマリとカタマリのあいだはアイドル期間を設けるとかして、
「うっかり途中から」とか「ずれてしまったら」とかが発生しにくいようにしたり、発生してもリカバリしやすいように工夫するよね。 みなさん、ありがとうございます。
>正常なスタートビット位置を見失うため
ですよね。H→Lの変化は何度となく現れるのですから
1文字分Hが続けば同期が取れるので、その後は脱調するまでOKなことは
容易に想像されます。しかしそれが無い場合は、途中から参加したらわからないと思うです。
余裕という人もあればダメという人もいて、どちらが正解なのかな、と
思いますが、正しく受信できない可能性があることはわかりました。
みなさんありがとうございました。 すみません、
PICのUARTだからダメで、ST32のUARTならOKとか
そういうことは無いですよね? >>739
たぶんそう。調歩同期通信そのものの動作だし。 >>739
そりゃ、UARTの原理的な現象なのだから
ST32(おそらくSTM32)でも同じ
>START bit 後すぐにSTOP bitが来ます。
これ説明としては逆じゃない? stopの直後にstartって事だと思うが
>S|||||||PS||||||||PS||||||||P , ~~~~S|||||||||P~~~~~~S|||||||||P
この手の説明には一応、意味を書いた方が良いよ
S(start bit) , P(stop bit) , |(data bit) , ~(idol) >>735
>使用するマイコンチップのデータシート
そうなんかなあ。
もとの人が知りたいのは、TRB のことなんだと思うけど、それってデータシートに書かれているようなことなんだろうか。
調べてみたら生成コードの中で使われている構造体みたい。
ぼくの環境のMCCでは出てこないキーワードだけど(古いのかな?) >>741なにもしてないときのアイドルは IDLE だ。推しのIDOLじゃないよ。 >>743
ほんとだ、「完璧で究極のIDOL」の方使ってる (*ノωノ)
734さん、推しときます やー。ぼくは、ずっとずっと間違ってきた漢字の間違いを、近所の小学生に指摘されたことがあったんだよな。
お客さんとの打ち合わせでホワイトボードに間違って数十年…。(多分パソコンだと変換に委ねているから間違ってない) >>745
気づいてない間違い怖いよなぁ、最近だと必要に応じて文章を作成した後に
chatGPTで「以下の文章をチェックして、間違いが有れば指摘してください」+「文章本体」
とかでで確認したりする
さっき自分の書き込みもchatGPTで確認したらidolがidleに修正された
>最後の説明における「S(start bit) , P(stop bit) , |(data bit) , ~(idol)」の部分で、「idol」というのは「idle」のタイポではないでしょうか。アイドル状態を指している場合、「idle」と書くのが正しいです。
AIに「タイポ」言われてちょっとワロタw >>738
途中から受信だけでなくノイズなどの理由でストップビットやスタートビットを読み損なった場合
そこから後ろは同期エラーで全滅だな 世の中には、TXさえも75kのプルアップとダイオードで引っ張る構造になっている糞UART ICもあるからなCH340とか 調歩同期はしばらく放っておけばどこかで正常になるよ。
データパターンによってフレーミングエラーが続くようならUARTの受信を
一度止めてから再開するとかすればどこかで正常になる。 >>748
CH340Kのことだろか。目的があってそういう構造になっているってことはないのかな?
糞なんちゃらって話はときどきあるけれど、目的にあってないものを選んでいるケースがある。
メーカーは、それなりの人が協議してすげえ初期投資をしてICを作ってる。
ぼく自身も含め、そのへんの存在でしかない いちユーザーの印象の方が正しい確率はひくいと思ってる。 秋月にあったCH340データシートを読んでみたら
・省電力のために弱いプルアップにしてある
・ハイスピードで通信したい場合は適宜プルアップしろ
みたいなことが書いてあった そもそもドライブする側に直列ダイオードがなければ、外部でプルアップする必要もない。
CH340Kはデータシートをチラ見した限りは、CH340と接続されるマイコンが別電源のときの動作を考慮したものっぽい。
CH340Kに電源が入ってなくて、マイコンだけに電源が入っているとか、その逆とか。
でも、これが成立するためには、CH340KのTXDの直列ダイオードのどちら側にも、
VCCに接続された保護ダイオード、寄生ダイオードが入っていてはいけないことになりそう。
秋月に売ってるんですね。試しに買ってみるか。 PICがなんだSTMがなんだ やれコード生成だ、やれアセンブラだCだと
言ったところでチップのデータシートも見ずに組み込みシステムができるかよ。 MCCが生成したコードの話なのに、MCCで設定するレジスタの話か何かと勘違いした人が、マイコンのデータシートを見ろって言ってたような気がする。 ♂「初めてだから優しくしてね」
♂「僕も初めてだから大丈夫だよ 」 >>758,759
♂ x ♂ (≧∇≦)
経験上、初めて同士より、どちらかに経験者がいた方がスムーズに事が進むと思うの 少し前のUARTの受信の件は、結局うまく受信できないというのが答? >>763
>>729の話?
延々と同じバイトが詰め詰めで送られてきて、何かのアクシデントでずれてしまったような場合は戻らない場合があるよ。
いろいろな値が送られてくるケースなら、いずれ矛盾が生じて、そのうち正常になる可能性がある。 戻らないじゃなくて戻すんだろ
ズレていることすら区別つかないんならそれはもう論外 詳細が書かれていない質問だし、ズレていることを区別できない場合があることは排除できないしね。 中古本で「PICマイコンでつくるインドア・プレーン」が売られているのを発見しました
この本を読めば、PICマイコンでドローンが作れるようになるっという本でしょうか? CQ出版社 PICマイコンでつくるインドア・プレーン
で検索すると、CQ出版社のこの本のページが見つかって、そこに目次やページサンプルが載ってるよ。 >>766
文字間の隙間がないのに、どうやって戻すんですか? >>771
化けた値とストップビットまでのオフセットの関係を予め求めておいて
その時間だけ待てばいい
パソコンなら難しいがそういう泥臭いタイミング制御できるのがマイコンの利点だろ
取りこぼしが多くてもいいなら
脱調検知したら1ビットずらすことでどこかで戻る >>771
>文字間の隙間がないのに、どうやって戻すんですか?
それを>>766のぼくに聞くないで。特定条件だと戻らない、って言ってるんだし。
たとえば、0x20の羅列がずーっと来ているときに、
・それが正しく0x20の羅列なのか
・実はずれて化けて0x02の羅列に見えているのか
を判定できるのは通信仕様の作りようでしかないと思う。
たとえば送信側と受信側で「0x20以外は8バイトを超えて連続しない」という取り決めを作っておいたら
0x02の羅列が続いたら「おかしい」と判断できるから、いったん受信を停止して再開することで修正ができるかもしれない。 受信したビット構成が不正だとオーバーランエラーや
フレーミングエラー、パリティエラーが発生するから
これらを利用しましょう 元質問は、まったく通常の8-n-1の場合な気がするし、事前の取り決めなど無い前提に思える。
>化けた値とストップビットまでのオフセットの関係
と言うけど、化けたことはマイコンにはわからないことでしょ?
期待するデータではないと判断できるのは人間だけ。 だからそれは論外だって言っただろ
良い悪いじゃなくて俎上に載らないの >>778
それはつまり「必ず戻せるわけではない。戻せない条件がある」ということですね。 判別できないんだから戻せないも何もないって話だが?
1ビットずらしていけば必ず戻せるとも言える
でもそんなの意味ないでしょ >>729の質問は「PICの受信モジュールで判別できるのでしょうか? 1度文字化けしたら、最後まで合わない様に思うのですが」だし、
それに対しては「判別できないケースがある。そのケースでは、最後まで合わせようもないことがある」が結論だと思う。
>1ビットずらしていけば必ず戻せるとも言える
合っているかどうかわからないケースで戻せるのかな? 最後まで合わせようもないことがあるが最後まで合わないことは避けられる
何も変なことは言っていないが?
それとも1/2の確率で無益なレスを続けるのと
有益なレスと無益なレスを交互にするのが同じだとでも? 「最後まで合わせようもないことがあるが最後まで合わないことは避けられる」
「で、合っているかどうかわかるのですか」
「神様ならわかります」
そうか、これが変ではない仕事場があるのか。 UARTで確実な通信をするなら、チェックサムやエラー訂正符号をつけるのが確実だよな コマンド&レスポンスみたいな形にするだけでもかなり違うしね。
送受信の手順を自分で決められるなら、一方的な隙間なしの連続送信は避けられるなら避ける方がいい。 UARTでどの程度の対応をするかは、
結局、その通信データがどの程度重要かどうかで決る。
ハード、ソフト共に何重にもエラー対策しても
リトライして最後までエラーになる場合も考慮しないといけないし。
結構めんどうな問題だと思う。 通信エラーの発生が問題になるような状況下ではUARTの連続送信という通信手段自体が不適当じゃね
SPIやI2Cなどのクロック同期式の通信手段の方が適している 調歩同期は長いケーブルを介した機器間通信で使われるものだしね。 ありゃ。へんなこと書いてた。
調歩同期は長いケーブルを介した機器間通信でも使われるものだしね。
でした。 間違ってと不都合な通信ならパリティ付けるなり
ブロックチェック符号付けるよね〜 昔標準的に使われてた8251なんてスタートビットの立ち下がりエッジを
みていなくてレベルだけだったのでエラーになるとなかなか回復しなかった。
PICのUARTが立ち下がりエッジを見ていれば結構回復は早いと思う。
もちろんパターンにも依存するが。
8251が立ち下がりエッジを見ていないのはブレークキャラクタを受信するためなのかな。 皆様方にはUARTについて色々と御不満お有りでしょうがw
信号線1本だけでで複数装置と通信出来る有り難みがあったりします。
(RS485はコンプリメンタリの2本で、信号の種類としては1種)
これからも使われ続けるでしょうね。 >>797
いつの時代の話よ
だいぶ古いやつのことでしょ 私の言ってるPICの送信エラッタってのは
TXREGに2回書くと、TXIFが0になるんだが、
バッファが残っているのにTXIFが1になって、
バッファを上書きし、送信データがおかしくなる現象のことを指してるんだがあってる?
18F26K22とか、古いPICではあった。
TRMTを見て送信が完了してから次のを書けば問題ない。
他にPICのUART関係では、PIC32MXのエラッタが有名だな。
レジスタに書くタイミングと、割り込みのタイミングが一致した場合、
割り込みから帰ってきてもう一度レジスタを叩いてしまうらしい。 ダブルバッファだからバッファが空けばTXIFが1になるのは正常動作なんだけど
TXREGが空の状態で送信が終わってTSRが空く瞬間に書き込むとTSRとTXREG両方に
書き込まれて2回送信してしまうというやつだよね。
普通文字列などを送信するときはTXIFが1になってすぐに書き込むから
そのタイミングにはならず意外と引っかからないね。
中途半端に時間が空いたときは最初の文字を書くときだけTRMTをみればよさそう。 え、そんなのあるの?
私のは
while(..){
while(TXIF == 0);
TXREG = x;
x++;
}
みたいなコードで、バッファがあるのにTXIF==0をすり抜けて
1,2,4,5
みたいな結果を送信してくるんだけど。 なるほど。
>>801が今でもあるUARTの送信バグってことでいいのかな。
できれば現象が起こる型番を教えていただけませんか? エラッタあり PIC16(L)F1574/5/8/9
PIC専用のスレ Part54で報告あり PIC16F1459, PIC16F1454, PIC16F18313
エラッタが存在しないものも同じバグを持っていて、同時期に設計された
ものは共通の可能性が高い。
バグがあってももエラッタ出てないし、修正してもエラッタを改版してるとは
限らないので現状は分からないね。
PIC16(L)F1717/1718/1719 ではRevision A1で修正されてるみたい
4.1 Duplicate Transmission の項目
https://ww1.microchip.com/downloads/aemDocuments/documents/OTH/ProductDocuments/Errata/80000653D.pdf >>804
どうもありがとうございます。
最終的には自分で動かして確かめてみるしかないですね。
確かめるのけっこう大変そうだけど USB HIDのプログラマブルゲームパッドを作りたいので
マイコン
PIC32MX210F016D ttps://akizukidenshi.com/catalog/g/gI-05851/
開発環境
vscode+Rust
デバッグ
シリアルデバッグモニタ
プログラマ
自作4-phase ICSPライタ
ドキュメント
PIC32MX1XX/2XX Family Data Sheet (DS60001168L)
Section 27. “USB On-The-Go (OTG)” (DS60001126F)
PIC32 Flash Programming Specification (DS60001145AA)
PIC32 フラッシュ プログラミング仕様 (DS60001145R_JP)
こんな感じの開発を考えているんだけどマイコン周りで他に読んどけ的な資料とかありますか?
USB周りのデバイスモード関係の解説が少ない気がする。DS60001126FもOTGとあるように
ホストモードが中心に見えるし どう見ても初めてのPICじゃないと思うんだが
どこまで経験があって何が初めてか書かないと >>808
サンキュ。サンプルコード集?があるのか。見てみます
>>809
積極的にPIC系を選ぶこともないし持っているのは秋月のセールで買ったPIC32MX210F016Dだけ
PIC系の開発自体初めて。他社マイコンの開発経験はあります MLAは時期によって入っている物が違うから、旧バージョンもチェックして 開発経験者ならMLAのhid_joystickを雛型として使えば割と簡単だと思う でもRustなんでしょ
まずはCのサンプルが動くことを確認してからの方が無難かと おお、開発環境を見落としてたわ
でもライブラリを使ってるわけでもなし、肝はPICをどう設定するかってことだから
Cからのポーティングもできる人間ならチョチョイなのでは PIC32MX210F016Dは色々と問題があるから苦労するぞ C32でコンパイルしたら最適化が効かなくて016に入らなかったとか MLAのhid_joystickを見ています。USBの割り込みハンドラは一つでその中で割込み要因を判別するタイプか
サスペンドとレジュームは空っぽに見えるけど実装されていないのかな
というかUSBの仕様によればサスペンド時は〜500uAらしいけどこれメインクロック止めないと無理だろ・・・
もっとも無視しても実用上問題ない機能ではあるけど
PIC32MX210F016DへISPで書き込むのに使えそうなアダプタって
・PICkit
・SNAP
・中華のPICkitもどき
・JTAG対応のDAPLink
・JTAGアダプタ(WCH-LinkEは持っている)
・自作ライタ
くらいですかね?
PICkitは流石に単発で使うには高価、SNAPも今や4000円程度とそこそこする
中華のPICkitもどきも3〜4千円程度?と互換品のわりにそこまで安くないし Raspberry PiとかArduinoを持ってれば付加部品少々で書き込めたような デバイスによる違いが大きいことを除けば
PICの省電力モードはそこまで癖が無いと思うけど
アプリケーションにも依るが自分は省電力モードを前提に書いてる Raspberry Pi Picoベースのプログラマがあれば・・・と思ったけど
ttps://github.com/MCJack123/pico-icsp-programmer
こんなのしか見つからなかった
>>818
Arduinoはあまり使わないですし5V系(UNO R4と中華Mega2560もどき)しかありません
Raspberry Piは1B+、4B、ZeroがありますがPCベースの開発では使いにくいそうに思います
>>822
サスペンド時電流〜500uAはコンプライアンステストの項目にあるにもかかわらず
アプリケーションノートなどの具体的な実装情報は多くないように見えます
データシートやマニュアルにサスペンドやレジュームについて、何らかの記載が
あればいい方で、下手すると全く触れられていないとか、バスパワーでの使用は
非推奨というマイコンもあるようです
また根拠不明で2.5mAまでOKみたいな解説も見かけますし(MLA内のサンプルも該当) 車載のマイコンだと、待機時は何mAまで許されるのかな。
海外旅行から帰ってきたらバッテリーがあがってしまったとか、ありそう。
キーレスの受信機は間欠受信だと操作性が悪く感じるので、常時受信でしょうね。 PICごときの電力で車のバッテリーがあがるわけが無い 安物のOBD2の機器でバッテリーがあがることがあるな。 アドバイスがあっても、あれはつかえない、あれはいや、あれはこんなデメリットがある、って言ってる人ってかまってくれるのを楽しんでるね。
すべてを前向きに検討するべき。
ついでにいえば、相手してくださってる人の延べ人件費を考えれば、2万円たらずの正規品なんて安い物。 Pickit4もAtmel Iceもとんでもなく高くなってるのね
ビックリしてる
Pickit5のアナウンスされてるけど販売はまだですか? >>829
円が・・・
マルツの通販だと2種類(どちらもPICKit5)が出てきて
そのうち1方は購入できるみたい
¥17,113.8 ー> ¥18,825.17(税込)
多趣味で家庭がある人は厳しい出費かもね >>830
ホントだマルツにありますね
数年前だとこんな感じでした
↓
MPLAB PICkit4
¥5,700 (税込) 秋月電子通商
MPLAB SNAP
¥1,740 (税込) 秋月電子通商
Atmel-ICE-PCBA 基板のみ
¥5,858 Digi-Key
Atmel-ICE-Basic
以前は7000円くらいだった
¥11,000 (税込) 秋月電子通商
Atmel-ICE Full Kit
¥15,000くらい >>831
この価格は2019年ごろメモったやつです pickit3を未使用で3個まだ持ってますが、まだサポートされますよね? あくまでワシの経験だが、VOlかVOHがスペック外になってしまう。
壊れはしなかった。 スペックって0.6Vとか0.7Vとかでは?
そんなにドロップするの? 保証値と実際の値は違うしね。
それと、実際にやってみて得られた値が、いつもこれからも期待できる値だと思ってはいけない。 しねしね君はいつも分かった風を装って問題解決に貢献しない
タヒねに読み替えた方が精神衛生に良い >>835
AVRのマニュアルに
Exposure to absolute maximum rating
conditions for extended periods may affect
device reliability.
つまり色々な要素(過電圧の程度や時間など)があるので
何ともいえないってことかな。
壊れ方れ方も色々あるでしょうね。
一見壊れていないように見えても、
もしかしたらマージンの低下とか、
時間経過と共に損傷領域が拡大していくとか・・・
昔、CPUの電源ピンに間違えて24V掛けたときは
一瞬でパッケージが割れ、イヤな臭いがしたので
これは壊れたナと迷うこと無く判定できたw >>835
大丈夫です。
半導体は、基本的に電圧と熱です。
電流は熱の要因ですので、半導体が加熱しないうちに収まれば壊れません。 IOピンで直接ドライブする場合SPICEのモデルってどうしてる?
LTSpiceのプリセットにある適当なNMOSとPMOS組み合わせているけど
まあ当てにはならない IOピンで直接ドライブする場合SPICEのモデルってどうしてる?
LTSpiceのプリセットにある適当なNMOSとPMOS組み合わせているけど
まあ当てにはならない メーカーや品種によってはIBISモデルが提供されていることがある
LTspiceでIBISモデルを使用するのは問題が多そうだが LED以外の直接駆動って言ったら
チャージポンプとか圧電スピーカとか? Tiktok LiteでPayPayやAmazonギフトなどに交換可能な4000円分のポイントをプレゼント中!
※既存Tiktokユーザーの方はTiktokアプリからログアウトしてアンインストールすればできる可能性があります。
1.SIMの入ったスマホ・タブレットを用意する
2.以下のTiktok Liteのサイトからアプリをダウンロード(ダウンロードだけでまだ起動しない)
https://tiktok.com/t/ZSNfGFL7M/
3.ダウンロード完了後、もう一度上記アドレスのリンクからアプリへ
4.アプリ内でTiktokで使用してない電話番号かメールアドレスから登禄
5.10日間連続チェックインで合計で4000円分のポイントゲット
ポイントはPayPayやAmazonギフト券に交換できます。
家族・友人に紹介したり、通常タスクをこなせば更にポイントを追加でゲットできます >>850
TikTokから見れば4000円は小銭か プログラム初心者です。質問さしてください。
MPLAB , XC16 で Cを作っています。
外部のスイッチの1,0を8bitのAにセットする書き方で、
A = 0;
A |= (SW7<<7);
A |= (SW6<<6); ・・・ という書き方はできたのですが、
A = { } で1行で代入できないか試しているのですが、エラーが出ます。
たとえば
A = { SW7, SW6, SW5, SW4, 0, SW2, '00' }; のようにです
こういう書き方はできないのでしょうか?
もうひとつすみません。
8bitを2進数で表現するときは、どのように書けば良いでしょうか
16進数の0x12→00010010とかです。
宜しくお願いします コウシャは0b00010010だな
前者は共用体で出来そうかな? 配列や文字列は1行で初期化できるけど1行で全体を代入できないのと同じようにそれを1行では無理じゃね?
関数を作るかC++ならできるかもXC16は使ったことないからわからんが
もしかしてPascalとかやってた?Pascalには集合型があるけどな >>853 854
ありがとうございます。
0b00010010 0bですね。なるほど、ありがとうございます。
1行では書けないみたいですね。
共用体ですか。本には構造体と共用体というのがありました。
勉強してきます。
ありがとうございしまた。 しっかり読んでないが、ビットフィールドで駄目かい? A = SW7|SW6|SW5|SW4|SW2;
ではだめかな #define SW7 0x40 等と定義しておくとAに右辺の論理和である0xf4が入る。組み込みプログラミングの基本。 >>859
bitを落とす時はどのような記述になりますか? MPLAB X IDE 6.15 XC16 PIC24FV32KAで、コンパイルがエラーが出て困っています。
手順は以下の通りです。
新規プロジェクトを作成
MCCでピン設定、クロック設定、タイマー1割込を設定して、Generate します。
そのままBuildすると、以下のfailが出て、エラーで進みません。
nbproject/Makefile-default.mk:207: recipe for target 'dist/default/debug/test.X.debug.elf' failed
nbproject/Makefile-default.mk:85: recipe for target '.build-conf' failed
nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed
MCCで設定だけしてmainもそのままでBuildしたのに、errorを出します。
「あなたの生成したままで、何も変更してないよ。なぜエラーなの?」と言いたくなります。
何か解決方法はありますでしょうか? >>861
IDEをアップデートしたら、直りました。ありがとうございました。 >>861
そのエラーメッセージって、分かりにくいよね。
ハッキリerrorと出るのはいいけど、レシピが...と言われたって
分からん。ネット探しても触れられていないし。
IDEのコンパイラって不親切だと思う。 switch文のcaseの値に変数って使えないんだね。
初めて知ったよ。 >>860
picでは1ビットならビットフィールドを使うのが普通だが、複数ビットなら
A = A & 0xfc;
とすればビット0と1が落ちる。これは
A &= ~0x03;
と同じ結果になるので
A &= ~( SW1 | SW0 );
とすればよろし。 ていうか>>857のように1行で書くことができるか?という話じゃないの? xc8 2.40 でコンパイルしたものより、xc8 2.46 でコンパイルしたものの方が小さくなる傾向にあるね。 Makefileで何をしようとしてエラーになってるのかを見もしないのか? >>852
ビット単位で読むのでなく、例えばレジスターRAをバイト単位読む方法ではいかんの? >>872
SW入力はRAポートに全部ある訳ではないから。