PIC専用のスレ Part 59 エラッタの話題も歓迎
______
/Microchip ./|
/ ( ゚∀゚) / | アセンブラのアの字もわからない
|~ ̄ ̄ ̄ ̄ ̄| /. 超初心者からHEXが読めてしまう
|/Z./Z./Z./Z_|/ || 鬼プロフェッショナルの為のスッドレ(#゚Д゚)だ!モ゙ルァ
||. ||. ||. ||
.
大人気のPICマイコンのスレ
なんといっても情報が豊富だし、開発環境も多いし、パッケージも豊富
使いやすくて、しかも安い。やっぱりPICだよね
例の如く基本リンクね
http://www.microchip.com/ マイクロチップ本社(Microchip Technology Inc. )
http://www.microchip.co.jp/ マイクロチップ テクノロジー ジャパン 株式会社
http://www.microchip.com/maps/microcontroller.aspx Microchip Advanced Part Selector (Maps)
またーりやっておくんなまし
種類が多くてワカランって人は上記パーツセレクタで、機能から最適製品を絞り込もう!
教えて君はとりあえずGoogle( (p)http://www.google.co.jp/ ) くらい使おう
テンプレ内の秋月小売価格も在庫が捌ければ、次の仕入れからは昨今の為替相場変動にならって
適宜価格改定されてます。ここの表記価格とは違うかもしれないのでそのつもりで
回答者する人の注意
. 最初に回答したい気持ちは分かるけど、質問者の内容を、落ち着いてよく読もう。
質問者する人の注意
. あなたの周囲しか通じない変な省略語は使わずに、なるべく詳しく説明してね
前スレ:
Part 58 https://rio2016.5ch.net/test/read.cgi/denki/1526808360/
Part 57 http://rio2016.5ch.net/test/read.cgi/denki/1517669525/ シリアル通信のバッファは8ビットで考えたい。
文字列関数はcharで扱いたい。
そんなジレンマを抱えているのでは。
パソコンアプリの場合だと、通信そのものは8ビット単位なのに、
文字列の内部表現は基本が16ビットということもあるけれど、
マイコンだと通信単位も文字列も8ビットであることが多いと思う。 だから文字を数値(整数)と思わなければ
そんなジレンマ存在しないよね、と
シリアル通信のバッファは8ビットで考えたい。
数学関数はfloatで扱いたい。
そこに何のジレンマもないように ありがとうございます。
strcpyとかの文字列関数を記述したら、warningだかerrorになってしまい、
それて゜質問しました。
char, unsigtned char, signed charが全部別物とは、参りました。
自分自身の取り決めみたいですね。
LCD表示器とか、2ch目のprintfのようなところで、XC8でstring関数が使いたいだけなのですが、
unsigned char count = 0;
signed char temp = -20;
char moji[11] = "PIC18F1234" と、このように決めてやっさて行きたいと思います。
printf( #1, "Hello" );
printf( #2, "GoodBy" ); のように、出力先が決められるコンパイラだといいのですか。 ジレンマを抱えてはいけない、という結論に導かねばならないってことはないしね。
charをfloatで譬えるのはかまわないが、たとえはたとえでしかない。
ANK文字だけを扱う環境下なら、実質的に「通信で使うバッファ内のデータ列」≒「文字列」ということもあるだろう。
必要に応じてキャストするだけでもいいのでは。 いや、キャストするななんて言ってないし
floatだってキャストするだろ?
文字列の場合だけ「キャストする『だけ』」みたいな
特別視をする必要がないと言っている
間違った解釈をしているから訂正したのであって
主義主張の正しさについて議論する気はない たとえば、シリアル通信で送られてきた文字データ列を、内部の文字列を前提としたポインタにキャストして成立するのって、
ANK文字をはじめとして、シリアル通信で扱う文字と、内部の文字の文字コードが同じであるという特殊な場合に限られています。
そのばあいだけに使えるので、部分集合なケースであると思います。
floatのバッファのポインタに、整数として意味を持つ整数配列のポインタをキャストするのはしたことがありません。 floatの例は整数からの変換じゃないのでは?
floatが整数でないようにcharも整数ではないと思え
ってのが>>310の話なので。 string系の関数を使うという文脈なのでバッファのポインタの話だと認識していました。
その上で「floatだってキャストするだろ?」とあるように「する」と書かれているので、そうなのか、と思った次第です。
floatのキャストの話はポインタの話からは外れています、ということでしたらそれでいいです。
短文メッセージのやりとりなので、文脈の解釈が明示的に行われないことはやむをえません。
値の話になりますが、文字取得の関数では、戻り値は文字ですが、int型の場合があります。
その場合は、int型変数で受けて、あとからchar型変数に代入することになります。
わりかし機械に近い部分のプログラムができるC言語だし、整数と文字は意識して行き来するのではないかと思います。 センサの時系列データとかfloatだってC++でいうところのreinterpret_cast使うよ
そして使える条件があるのもANK文字と何ら変わらない
自分がやったことないからといって想像で書かれてないことを捏造するのは良くない 変数とポインタのキャストは違う、後者は記憶領域を無理矢理指定するからな。
あとキャストしてもどうにもならないのがビッグとリトルのエンディアンだな。 charは数値じゃないの?
PICのXC8で、
x = 'A' + 1とかよくやるんだけど。
これは文字を数値とみなしているとは言わないのか?
なんかWindowsのC#ですら同じ演算をしたことある・・・
int data = str[i] - 'A' + 10みたいな
やり方間違ってるのか? 究極的には合理的に期待通りの動作をするのなら、間違いではないのでは。 >>322
バイナリ数値から文字数値(?)に変換するときの使いますよね。
Aから上は困るんですけど。 正しいかはコードの意図が分からないと評価できないが
少なくともC#ではcharは整数型と区別されたので
コードはともかく理解としては間違いだと思う C#の世界だと、エンコーディングの概念が入ってきて、それをライブラリに任せるのが前提じゃないですかね。
マイコンで同じ考え方を適用するかどうかは条件次第。
前提となる条件を細かに設定せずに一律に間違いというのはおかしいし、もちろんいかなる場合でも
間違っていないというのもおかしいと思います。
ポータビリティの話を出す人もいますが、ポータビリティも絶対的に高い優先度の正義でもありませんし。 NULLは整数の0か?ってのと同種の問いかと
やっとCにもnullptrが導入されるんだね char変数一つで一つの文字を管理できるとは限ってないし、そういう場合は範囲判定とか足したり引いたりシフトしたりのような
演算の対象になると思います。 >>322
"0123456789ABCDEF"[n]
とかやったりする
要するにテーブル
8bit PICだと普通にやった方がいい 環境がMPLAB X IDE6.15 XC8 2.45
PIC18f2320 pic programer +で書き込んでいるのですがちゃんと書き込めません このプログラムを書き込んでるのですが、なぜかこうなります
一度フラッシュメモリを消去して書き込んでみたのですが、こうなります
原因を教えてください やれやれ、コンパイルしてるプロジェクトが違うだけでは?
太字のプロジェクトがコンパイルされて転送されるよ。 0340 すいません、太文字で書いてあるプロジェクトもこれと同じプログラムです。 >>330
書き込みがうまくいかないなら、MPLAB X IDEのOutputに
何らかのエラーメッセージが出てると思うのだけど
その部分のメッセージ位はわかるように画像を上げてほしい
あと、PIC書き込み装置とPICの接続状態の画像(写真)もあったほうが良い
あと書き込み時の電源供給状態
書き込み装置からの供給 or 他からの電源供給 Arduinoから電源供給してるのかな?
「こうなります」と>>337にかいてあるけど、その「こう」がどんな状況なのか、みっちり説明されてない。なぜだー。
写真にくわえて接続図も必要。撮影の角度や照明で不完全になりがち。手書きでもいいから、接続の様子を相手に伝える誠意を見せよう。
めんどうだろうけれど、答える人は質問者のために時間も労力もかけている。質問者がめんどうさを避けることは許されない。 最初から問題解決する気がないんでしょ
騒ぎたいだけ
時間の無駄 すいません、ありがとうございました。pickit3を使って書き込んだらうまくいきました。
ありがとうございました PICKit3とPICKit4、書き込める対象のPICコレだ
みたいな一覧表になってるページってありますか? すみませんが、どこにあるか教えてください。
Microchipのホームページの中でしょうか? >>348
ありがとうございました。
自己解決しました 17000円もするPICKit5って、何者でしょうか?
PICKit4ではダメなのか。 PICKit4と5に大きな価格差ってあったっけ。
ダメとか以前に、4は製造中止とのことなのでそのうち入手できなくなると思う。 ありがとう。PICJit5ができた理由は、AVR対応でしょうか? >理由
そこはぼくはわからない。使えるもの、入手できるものを使う立場でしかないし。
デバッガではなく、PCを使わないでプログラマとして使うときに、Bluetooth接続でスマホで操作できる、という話は
どこかで読んだ。ぼくは、個人的にはそういう使い方を現時点では想定しないのであまり関心はない。
pickit4 pickit5 compare
で、ぐぐってみたらわかることもあるのでは。 先日ネットの繋がらないところでMPLABとMCCを起動したら、
ネット無しではダメと言われ起動しませんました。
そういうもんですか? MPLAB X IDEはオープンソースのNetBeansとかいうのがベースになってるからじゃない
Xの付かないIDEなら違うのかな >>355
試しにPCのネット無効にしても普通に起動してMCC Classicで生成できたから何か環境によるんじゃね? >>356 357
ありがとうございます。
ネット無かったら起動してやらねーよ、とメッセージが出たので、
Wifiつないだら出来たんです。
おれかんですかね。
ありがとうございました。 秋月でPICkit5の扱いが始まったな
特段安いということもなく買う予定もないが I2Cバスにスレーブ8個の制御基板をPIC16F88で作ったけど
SSPCON2レジスタが無くてサブルーチンでエラーが出てハマった
88のI2Cはスレーブだけなんだな 使えね~(笑)
16F886で基板を作り直すか くそ~
https://i.imgur.com/SavSx9b.jpg マスターなんかソフトでいいだろ
クロックストレッチをはしょれば楽ちん >>361
ソフトI2Cも検討したけど
スレーブ1個ならいけるだろうけど8個なのでハード的なトラブルを恐れている
ポートをオープンドレインにできないよね >>363の
「出力を0にしておいてTRISのビット制御でオープンドレイン出力を作れる」
ということが>>362に伝わったのかな? >>364
理解してるよ
入力でハイインピをオープンドレイン代用にするんだろ
もう作り直しているからソフト対応は辞める方向で PCIバスのサスティンドトライステートだな。プルアップ抵抗必要な、 >>367
基板切断がキレイだけど、どうやって切断してる?
切断面もヤスリかけてるね。さらに角部もC面取ってる。
やるな。 なかなかこうは綺麗に切れないな。
ブロワで温めておいてからハサミでばちーんって切ってるけれど、断面はささくれてしまう。
もっともささくれることで、ヤスリ仕上げもさくさく進む。 >>368
>PCIバスのサスティンドトライステートだな。
>>363の方法は、ごく単純なオープンドレインですよ。
おそらく昔ながらのI2Cの話題なのでそこまで要求はされてないはず。
(プルアップは前提だし) >>370
サンドペーパーを貼り付けた木の板で仕上げると楽に研磨できるよね。
基板の端部はそのままでもいいかなと思うけど、角部はケガするので
C1〜2で面取りしてます。
ユニバーサル基板の切断位置も、ひとそれぞれみたいですね。
穴で切る人もいれば 穴と穴の間で切る人。 > 穴で切る人もいれば
穴列で割る・・・横着者もいますよ。カッターは入れるけどね。
> サンドペーパーを貼り付けた木の板で仕上げると楽に研磨できるよね。
建築屋とか建具屋とかでは基本ですね。ロールのやつだと糊も付いてて便利。 >>369
基板の両面に刃の厚いカッターで切れ込みを入れて割る
ガラエポでも問題なし
お騒がせしました
やっと1/8完成しました
https://i.imgur.com/2dGIPLH.jpg >>374
写真見ました。スゴいですね。
オシロはDL-1740、半田ごてはFX-888Dじゃん。 この写真のどこからオシロと半田ごての型番がわかるのか・・・
PICKitは見えるけど3か4かわからない。3か? 医師になるのは、めちゃくちゃ簡単だよ。
どんな医大でも家試験の合格率7割以上はあるし、自治医大以上ならほぼ100%。
弁護士の場合は難関ロースクールを卒業しても、家試験を通るのは10%程度。
医師国家試験の合格率ランキング見てみ。
一番低い杏林大学ですら、79.4%。
奈良県立大以上の偏差値の25校は95.0%超え。
これのどこが難関試験なの?
医学部に学費を支払える財力のハードルが高いだけで、医師にはバカでもなれる。
弁護士、司法書士、会計士、英検1級あたりは、バカには絶対に無理。
まとめると
医師国家試験→バカでも受かる。しかし、医学部6年間で1,000万以上かかる学費のハードルが高い。
司法試験→ロースクール卒業しても、合格できるのはごく一部。非常に難関な試験。
司法書士→ロースクールに行かなくても受験できるが、難易度は司法試験並み。
英検1級→英語がずば抜けて優秀でないと合格できない。英語の偏差値100必要。(実際にはそんな偏差値はないが)
会計士→おそらく、最難関試験か。会計大学院修了者の合格率は7.6%しかない。
不動産鑑定士→鑑定理論が地獄。単体の科目としては最難関の一つ。経済学などは公務員試験より簡単か >>378
赤いUSBケーブルが見えてるから、3確定でしょ。
それより、赤と黄色の湾曲した物が何だかわからない。
ルーペの樹脂フレームのようにも見えるが、
2つも必要とは思えないし。 本筋と違うところで特定に走るのは詮索趣味。運が悪いと田舎ぐらしで遭遇するやつ。ほどほどって大切。 ストーカーは瞳に映った景色で部屋を特定するらしいけど
ハンダに映り込んだ画像を解析して個人を特定されたりして >ストーカーは瞳に映った景色で部屋を特定するらしいけど
本当にそんなこと出来るんですかね? 5chに写真上げると隈なく見られるから
・机の上を掃除をする
・余計なものを排除する
・撮影後よく確認する
・必要最低限の解像度に下げる(もしくは故意にピントをずらす)
上記の様な手順を踏んでから写真うpしないといけない( ;∀;) ・位置情報を消す
逆に匂わせでわざと見せてるケースも PICKIT5高いと思ったらPICKIT4も高く(倍くらい)になっている
2019年春のを見たら五千〜六千円くらいだった 秋月で買ったときは六千円もしなかったのに
今15700円もするし最新のPICkit5は17800円 秋月でPIC16F18444-I/Pの取り扱い始まったけど
要望の受け入れ基準がよくわからんな
老朽取替というには新しすぎるし新規で使うには特長がない
それより低コストの16f152シリーズもっと普及してくんないかな >>388
ぼくもそれをあえて入れる意義がわからなかった。
ただ、PICはプログラマというかデバッガがやたら高くなったな。SNAPでも結構なお値段になってしまった。
新規参入の減少に加速がかかりそう。
というか、Microchipも入門者がPICを使うことを期待してないような気がする。 未だにこのクラスの新製品が出るほうが驚き
新規の回路設計で採用されることはあるんか? 389だけど、PIC16F18444 は、いままでの PIC16F のいいとこどりの総まとめみたいなチップという気もする。
USBは載ってないけど、PIC16F でUSBをやる事例がへってきたのかな。 PICって、一体何種類あるんでしょうか?
多いですね >PIC16F18444
え? と思ってググったら本当にあった。
何桁まで増やすんだよ。
わしの時代はPIC16C84とかシンプルじゃったぞ。 F84ではなくC84を持ってくる辺りが本物のお爺ちゃん感ある 私の「初めてのPIC」は16F84で、
それがそのまま「最後のPIC」になってしまったw 12Cや16Cが付くやつはたいていワンタイム品で開発は別途窓付きが必要ていうイメージがあったけど
16C84は窓付き品じゃなくても消去できるんだったな ワンランク下の16C5x、定番ペリフェラルしか載ってない16C6x、ADC載ってる16C7x、EEP-ROMで窓無しの16C84。
実にシンプル。プリンタポートで書き込みしたものよ・・・ >>399
「ケ」の文字がもう1つだね。縦線の最後は左に曲げた方が良いと思うな。 18444なんとなく買ってみたw
なんとなくあたりを見回して10点LEDレベルバーを見つけたので買ってみた
8ピンpicならどうドライブしたらいいのか悩んでる
18444なら足は足りるが8ピンならどうすればいいのか?! 4ピンあれば12個のLEDをコントロールできる。
3ピンでも多少の事に目をつぶれば同様にできる。
もしくはhc595を好きなだけ繫げ PIC10F200の3I/O+1Inputで6個のLEDと1個のスイッチを制御するのは定番だな もはやシフトレジスタとかカウンタICよりマイコンの方が安かったりするんだがね >>405
少ピンマイコン工作にそれはヤボじゃないですか。
制約のもとで作るスポーツ的な楽しみや、型を重んじる芸事の世界に通じるものだし。 >>406
それは野暮 の それとは、何を指しますか? >>407
「それ」
は
「『もはやシフトレジスタとかカウンタICよりマイコンの方が安かったりするんだがね』というコメント」
です。 部品コストと実装面積の制約のもとで作るスポーツ的な楽しみだってあるんで夜露死苦 むしろ侘び寂びの世界だな
ちょっと黒ずんだリードとか光沢のないセラミックパッケージとか… HC595も普通に使うとData, Shift Clock, Latch Clockの3線いるけどこれを2線や1線でやるやり方とかあるし工夫する余地はいくらでも