16/02/29 12:41:58.92 ToYoFX99.net
質問主の質問から外れるけど
>1だとグローバル変数が多くなったり
8bitのPICはグローバル変数が基本。
Cで開発する際もauto変数や関数引数は極力使わず、全部globalな変数にする
これが8bitのPICをCで開発する際の大原則
388:774ワット発電中さん
16/02/29 13:27:33.54 KNAr32Vc.net
>>377
staticにすればglobalにする必要はない。
できればだが。
389:774ワット発電中さん
16/02/29 14:06:08.82 dk8uarxL.net
割込中で3msの仕事をしないと、だめじゃない?
割込10msで
メイン100msで回っていたら、
おしまいだよ。
390:774ワット発電中さん
16/02/29 14:25:07.80 5+D+pZVG.net
>>375
1だとdelayが使えない?
391:774ワット発電中さん
16/02/29 16:33:24.01 KNAr32Vc.net
>>379
メインで100ms喰ってる処理だったら、3msで応答することができても、
たいした仕事はできないだろう。
392:774ワット発電中さん
16/02/29 18:41:37.05 C5orRggt.net
>>377
何で?
393:774ワット発電中さん
16/02/29 19:16:12.70 D+KyBMFt.net
>>377
>これが8bitのPICをCで開発する際の大原則
初めて聞いた、誰が言ってるの?
394:774ワット発電中さん
16/02/29 19:34:41.99 T+z9tKme.net
全部グローバルってバカにも程がある
395:774ワット発電中さん
16/02/29 20:49:30.42 WY0sKMWi.net
>>384
PICってローカル変数はどこに確保されて、データ渡すのどうやってやるの?
396:774ワット発電中さん
16/02/29 20:59:39.85 T+z9tKme.net
>>385
PICかどうかは関係なく、ヒープやスタックだよ
397:774ワット発電中さん
16/02/29 21:11:13.24 WY0sKMWi.net
>>386
8bitPIC前提ってわかって言ってるよね?
398:774ワット発電中さん
16/02/29 21:37:09.81 T+z9tKme.net
>>387
C言語だってわかって言ってるよね?
ハードウェアスタックの話とかしてないぞ
399:774ワット発電中さん
16/02/29 21:50:08.72 YoOHfRtH.net
エスパーが集うスレはここですか?
400:774ワット発電中さん
16/02/29 21:56:31.45 xAqfiVEs.net
いいえ、となりです。
401:774ワット発電中さん
16/02/29 22:43:37.42 Z3Q/dXbE.net
>>382
8bitのPICはハードで持ってるスタックは関数呼び出し時のアドレス保持にしか
使えない。だからauto変数や関数引数なんかは全部ソフトウェアスタックという
仕組みで実現されるんだけどこれがとんでもなく遅い
>>384
そう思いたければそう思えばいいんじゃないですか?
もっとも>>386を見る限りちょっと理解されて無い方なのかなって気がしますが
402:774ワット発電中さん
16/02/29 22:45:40.81 Z3Q/dXbE.net
回答くださった方ありがとうございました
1案を推す方と2案を推す方両方いてそういう面ではどっちでもいいのかなと
言う気がしましたが、最終的には>371氏のアドヴァイスに従って割り込み処理内での
記述は極力最小となるように2案で行こうと思います
403:774ワット発電中さん
16/02/29 22:51:48.72 53dOIb0S.net
C18だと
#pragma udata XXX=0x500
unsigned char a[16];
unsigned char b[16];
unsigned char c[16];
って書くとaもbもcも0x500番地から後ろに確保されるけど、XC8で似たような事は出来ない?
いちいち番地を個別に計算して
unsigned char a[16] @0x500
unsigned char b[16] @0x510
unsigned char c[16] @0x520
って書くしかない?超面倒なんだけど
404:774ワット発電中さん
16/02/29 23:34:02.30 EYimkQxv.net
8bitのPICはローカル変数でもコンパイル通すとグローバルで確保されてるでしょ
お前らmap見たことないの?
405:774ワット発電中さん
16/03/01 02:53:13.73 EGW6SqPk.net
じゃあ一時変数はできるだけ共用したほうがいいのかな
406:774ワット発電中さん
16/03/01 03:32:25.69 +nuxyVH0.net
先輩方、雑談は あっちのスレでやってください。
スレリンク(denki板)l50
先輩たちがそんな難しい話をしていると、僕たち初心者が質問できません。
407:774ワット発電中さん
16/03/01 04:14:56.65 A1lDyzoV.net
そろそろモンスター初心者が出る頃だと思ったよ
408:774ワット発電中さん
16/03/01 06:23:28.22 gQFmbsgP.net
>>391
関数の再起呼び出し有効にしないと、スタック的にはならない。
ローカル変数は、関数の中でだけ名前有効で、領域は使い回しされる。
409:774ワット発電中さん
16/03/01 08:06:12.32 slkkQndX.net
本スレは基地外が常駐してて、このレベルの話だと発狂されるからなあ
410:774ワット発電中さん
16/03/01 11:46:23.25 gbr8whUY.net
でも、あっちのスレでお願いします。
そんな高尚な議論されていると、僕ら初心者が質問できません。
スタックとか番地とか、聞いた事無いです。
411:774ワット発電中さん
16/03/01 16:09:40.98 3rDL/r+E.net
ここは「PICを使うのが初めて」の人向けのスレであって、「マイコン全般について初心者」の人のためのスレではないような気がするぞ。
初心者スレでまず聞いてみて、それがPIC特有のものなのかどうかを考えるところまでは自分でやろうな。
412:774ワット発電中さん
16/03/01 20:44:11.57 +q1enbEu.net
というかスタックと番地が分からないのはマイコン以前にC言語初心者やろ
なんや?Hello Worldから教えなあかんのか?
413:774ワット発電中さん
16/03/01 20:49:48.37 OEdazA65.net
>>402
C言語以前にマイコン初心者の気もするが。
printf("Hello World"); はわかっても"Hello World" の理屈がわかんないだろうね
414:774ワット発電中さん
16/03/01 20:50:51.16 o3zohPsR.net
>392
2案だったら割り込み処理すら不要のような
>PIC専用のスレ Part47
>961 :774ワット発電中さん:2014/07/27(日) 02:20:11.93 ID:d9hhcZX6
>midrangeのPIC等で良く聞く割り込み処理で疑問があるのだが
>割り込みで行いたい処理が重い場合(あと即効性が不要の場合)
>割り込みルーチン内ではフラグだけ立てて、実際の処理は
>メインルーチン側でフラグをみて処理するとよく見るのだけれど。
>各割り込み要因フラグ(T0IF,INTF,RBIF等)は、条件が満たされれば
>GIEや各割り込み許可(T0IE,INTE,RBIE等)フラグに関係なく
>セットされるのだから、わざわざ別のフラグを用意して割り込みルーチンで
>セットせずとも、メインルーチンで割り込み要因フラグをチェック
>していればいいんだよね?
415:774ワット発電中さん
16/03/01 22:02:14.18 gbr8whUY.net
>>401~>>404
いい加減にして、あちらスレに移動をお願いします。
416:774ワット発電中さん
16/03/01 22:25:42.53 +ggA9U/P.net
>>405
安価もまともに出来ないのか
417:774ワット発電中さん
16/03/01 22:26:33.59 e8mcf3eG.net
>>404
そんなわけない
418:774ワット発電中さん
16/03/01 22:29:57.23 IPwNmbpL.net
>>1->>407
419:774ワット発電中さん
16/03/01 22:30:45.55 wx8IPi4i.net
質問できないと言いつつ質問しない自治厨ウザ
420:774ワット発電中さん
16/03/01 22:31:24.84 6pE1n0xE.net
>>1-407
421:774ワット発電中さん
16/03/02 00:12:11.58 lyWEbU2t.net
>>404の書いてることは正しいと思うんだけど
>>407はそんなわけないという
メインで割り込み要因フラグを監視して
検出したら処理前にクリアするって方法って他のマイコンではよくやることなんだけど
PICでできない理由あったっけ?
422:774ワット発電中さん
16/03/02 00:36:48.15 ECknCTKq.net
説明のためにフラグだけの話に簡略化したんだよ
いちいち突っ込むな
受信レジスタからリングバッファに転送したりPWMに次の値を入れたりカウンタを+1したりフラグだけで終わるかって
423:774ワット発電中さん
16/03/02 01:01:22.94 U/iv+qfm.net
>>411
出来る出来ないの話じゃなくて
それじゃタイマーの割り込みフラグさんの立場がねえじゃんという話
つまりどっちでもいい
しいて言えば後々分かりやすい方で
424:774ワット発電中さん
16/03/02 01:46:43.63 8qTLaPOk.net
>412
>受信レジスタからリングバッファに転送したりPWMに次の値を入れたりカウンタを+1したりフラグだけで終わるかって
この内容ってどこから出てきたの? >367,392の2案に対しての手段なのに
なぜ関係ないリングバッファやカウンタを+1する話になるんだ?
425:774ワット発電中さん
16/03/02 02:26:21.20 UmqJU1lQ.net
質問主が書いてもいない条件や状況を勝手に追加してあれはダメだこれはダメだと
好き勝手に喚くのが常套手段ですからw
426:774ワット発電中さん
16/03/02 10:20:33.36 RGWeAT/g.net
PIC、マイコン共に初心者レベルです。
普段はunix系OSでCプログラミングしてます。
PIC32MZ EC STARTER KIT (PIC32MZ2048ECH144搭載)
URLリンク(www.microchip.com)
↑これの動作実験検証を依頼されたのですが、
パッケージに「Download Demonstration Code」の記載があるけれども、
該当するようなコードがMPLABで見つかりません。
ぐぐっても探せませんでした。
Harmonyにサンプルコードらしきものがありましたが、キットの
搭載PIC32では動作しない模様…
どなたか、デモやサンプルコードがある場所ご存じでしたら教えて下さい。
とりあえず動作するコードがあれば、あれやこれやとわかると思うのですが、
そのとっかかりすら掴めない状況で困ってます。
スレチだったらごめんなさい。
現在の環境
・Windows7Pro32bit
・PIC32MZ EC スターターキット
・MPLAB X Ver3.25 + XC32 Ver1.40
・Harmony Ver1.07プラグイン
427:774ワット発電中さん
16/03/02 12:15:26.74 dAlXqvol.net
タダでお仕事丸投げとはいい根性してますね
428:774ワット発電中さん
16/03/02 16:16:21.09 8HrNsaVv.net
なんで?
情報が得られればラッキーだし、得られない or 間違い情報でも、自業自得だし。
なんで仕事のことだと、そんなに目くじらを立てるの? → >>417
429:774ワット発電中さん
16/03/02 16:29:18.34 0pA/TpYE.net
なんで仕事のことだと、ムキになって反論するの? → >>418
430:774ワット発電中さん
16/03/02 17:00:27.08 8HrNsaVv.net
別にムキになってなんかいないけど。
何かいやな事でもあったの? → >>419
431:774ワット発電中さん
16/03/02 21:14:11.77 0OFgsP6t.net
>>418
お前が欲しい情報を教える奴はそれなりの労力を使って得た筈
それをタダで得るどころかそれを使ったお前は報酬を得る訳だ、
非難されて当然。
432:774ワット発電中さん
16/03/02 22:13:58.25 8HrNsaVv.net
いや、そう思う人は、教えなくていいんじゃないの?
俺のお陰で、お前がもうけを得るのが気にくわないという、小さい器の人?
433:774ワット発電中さん
16/03/02 22:30:34.20 K6RsYYqK.net
締め切りはいつまで?
434:774ワット発電中さん
16/03/02 22:51:37.83 3k3KZhXb.net
死ぬまで
435:774ワット発電中さん
16/03/02 23:07:20.63 MGOYVg0g.net
お前が報酬を貰ったとして、顰蹙を買わない方法は、
その情報をより分かりやすい形に纏めてそのボードに興味がある人たちに伝える事だな。
後に続く人たちが同じ所でつまづかないように。
436:774ワット発電中さん
16/03/02 23:13:45.43 8HrNsaVv.net
>>425
何が言いたいのか、ワケがわからん。
437:774ワット発電中さん
16/03/02 23:32:02.38 8RTi4+XW.net
pickit2用のデバイスファイルで新PICに対応した物無いかな?
pickit2を復活して遊ぼうとしてるけど、
調べると公式は1.62.15が最後?でPIC24FJ系の追加改造版があった
URLリンク(jared.geek.nz)
他にコレ押さえとけって新PIC対応ファイルない?
438:774ワット発電中さん
16/03/03 08:24:13.38 ZVWP1fZp.net
>>422
見事な盗人根性ですね
439:416
16/03/03 09:21:01.70 eHVT5Hio.net
なんかメーカーが提供しているハズのデモ用コードを探しているだけなのに
えらい言われようされている…
とりあえず
URLリンク(www.ys-labo.com)
こんなん見つけて付属のLEDピカピカさせる程度には動きましたよ。
キット付属の液晶に文字表示させてみたり、TCP/IP使った通信してみたかった
んだけどね、ハードル高すぎですわ。
だらだらと検証も出来ないので、使えないボードとして突き返します。
お目汚し失礼しました。
440:774ワット発電中さん
16/03/03 09:39:02.20 FLCf2tMT.net
なるほど、2ちゃんで回答がもらえないと「ハードルが高すぎ」で
「使えない」のですね。
そんな調子なら、さっさと足洗って別の道に転職した方が
世のため人のため、なにより自分のためにも良いと思うよ。
441:774ワット発電中さん
16/03/03 09:50:58.89 j44YBkvb.net
初心者スレで、もめないでください
よく知ってる先輩は、教えてあげればいいのに、
なんで意地悪するんですか?
いじめをするなら、出て行って下さい。
442:774ワット発電中さん
16/03/03 12:03:51.58 M7XS2jUA.net
同業者との競争が厳しいからイジメたいのかもしれない
そっとしてあげよう
443:774ワット発電中さん
16/03/03 12:11:29.48 vkFQf82p.net
勉強不足棚に上げて居直り、挙句に「自己解決しました」と毒吐き捨てセリフ。
掲示板で嫌われるフルコースだな。
444:774ワット発電中さん
16/03/03 12:26:48.29 lF/P49Jz.net
「Lチカは出来たから壊れてないけど詳しい使い方分かんねーから」って正確に言って返却しろよな
おれには使えないとはっきりな
445:774ワット発電中さん
16/03/03 13:26:07.31 Y7svIr2p.net
>>434
意地悪なんだね、君
446:774ワット発電中さん
16/03/03 13:43:00.14 uOgSIQK5.net
バカは人のせいにする生物
447:774ワット発電中さん
16/03/03 14:51:03.53 RiMW9a50.net
>>429
え、やっとみつけたのがそこなの?
日本語のサイト限定か?
海外のフォーラムからのリンク先にすぐ使えるサンプルがゴロゴロしてたけど…。
448:774ワット発電中さん
16/03/03 15:03:32.33 Y7svIr2p.net
だったら教えてやればいいのに、なぜ教えないんだ
449:774ワット発電中さん
16/03/03 15:06:23.43 RiMW9a50.net
>>429を読んで教えなくて良かったと思った
ええ、私は了見が狭いですw
450:774ワット発電中さん
16/03/03 16:45:18.76 mTqB3XO5.net
416「こいつ使えないッスね」
依頼主「ああ、こいつ使えないな」
451:774ワット発電中さん
16/03/03 18:33:20.27 NVwIDO06.net
というかなぜunixしか触ったことのない奴が
ハイクラスPICの動作検証の仕事を受けてしまったのか
同じソフトでもF1とショベルカー並に違うもんなのに
452:774ワット発電中さん
16/03/03 19:17:19.26 rzmUEVUu.net
リストラのターゲットに無理難題wを押し付けるアレだろ?
453:774ワット発電中さん
16/03/03 23:08:20.01 F8/3R2Xo.net
>>441
いまどき、unix系でcしか使ってないやつのレベルなんて高が知れてるということ。
454:774ワット発電中さん
16/03/04 01:41:49.00 ZS4B9H8g.net
おれも一介のWindowsプログラマなのにいきなり組み込みで動画付きフォトフレームみたいなもの作れとか言われたことあったな
もちろん完成しなかったよ
今なら手段は色々思いつくけどデコーダとか考えると時間の無駄だわ
Winタブが変に普及して良かったわ
455:774ワット発電中さん
16/03/04 02:33:41.90 2WGXL5TL.net
ここで質問するような事では無い様な気もしますがPIC工作の資料にかかれてたので…
5msかかる処理を「repeat every 8ms」って書かれてた場合
5ms Proc - 3ms Idle - 5ms Proc - 3ms Idle - 5ms Proc ・・・
でいいんですよね?先輩が
5ms Proc - 8ms Idle - 5ms Proc - 8ms Idle - 5ms Proc ・・・
だと主張するんですが・・・
456:774ワット発電中さん
16/03/04 03:21:17.78 1zfmgxa3.net
>>445
スレチだが暇だから答える
"every 8ms"は英文を素直に読めば「8msごとに」実行だから前者だと思う。
先輩は「8msの間隔をあけて」と解釈したのかもね。
でもそれなら"at 8ms intervals"という風に書くと思うので。
英文だけではなくて、ハードを含めた他に示されている仕様や条件からもよく読み取ってください。
457:774ワット発電中さん
16/03/04 03:29:14.51 x+LPtgEu.net
>>445
every 8msという表現なら後者です
つまり処理と処理の間を8msあけろ、と言う意味です
458:774ワット発電中さん
16/03/04 05:51:56.10 brZ51gzi.net
先輩登場?
459:774ワット発電中さん
16/03/04 10:16:15.02 YikbjIwg.net
MPLABXで出力イメージ名って変更できないのか。
ググったらビルド後マクロでDOSコマンドでコピーする方法があったけど
ブートローダー込みのunified.hexに対応できない。うがーっ
460:774ワット発電中さん
16/03/04 10:55:30.04 pyeyFp5X.net
今から、PIC24FJ64GB002でBT接続で遊ぼうと思っている
arduinoにUSBシールドの方が禿げないかな。。。
461:774ワット発電中さん
16/03/04 12:05:31.98 reedTp7l.net
日本語で
462:774ワット発電中さん
16/03/04 12:13:57.62 NkLnszYJ.net
>>449
makeファイルを編集すれば良いと思う
463:774ワット発電中さん
16/03/04 14:24:16.24 YikbjIwg.net
>>452
makeって編集しても自動生成で元に戻っちゃわね?
~\MPLAB.X\nbproject\Makefile-PICxxxxx_PIM.mkは修正しても戻っちゃう
でもヒントになって一応汚い方法で解決した、
Loadablesにブートローダーを設定した時のmakefileで増えるhex作成(hexmate)を
ビルド後マクロのDOSコマンドにコピーして自力でhex作成、Loadables設定は消した。
464:774ワット発電中さん
16/03/04 21:03:10.64 NkLnszYJ.net
>>453
自動生成をオフにできたはず。
465:774ワット発電中さん
16/03/04 21:16:04.62 YikbjIwg.net
>>454
うーむ、自動に慣れると面倒そうだねw
設定や構成をちょこちょこ変更しているうちは自動がいいかな
プロジェクトが落ち着いて微修正だけになったら良いかもしれん
466:774ワット発電中さん
16/03/06 05:09:11.88 kORd0frT.net
初心者ですが教えてください。
PIC24FとPICKit3でICSPで書き込んでいます。
回路を作ったので、早速書き込もうとPICKIt3を認識させました。
PICKit3は認識できたのですが、その先のPICを認識しません。
当然プログラムも書けません。
回路は、ICSPのPGED, PGECのピンもI/Oとして使いたいので、
にデジタルトランジスタ(PNP)を付けています。
PIC PGED------------(B)デジトラPch(E)------ +5V
デジトラは東芝のRN1201(4.7k-4.7k) です。
467:774ワット発電中さん
16/03/06 05:55:00.07 Tqn+WTJI.net
PchのデジトラとかPNPのデジトラとか大丈夫かよ。
そこに原因があると思うならデジトラを外してやってみたら?
468:774ワット発電中さん
16/03/06 06:18:52.78 OJ2i4PE8.net
デジトラって言うのはよく分からないけどとりあえずそれが壊れてるかもしれないから
外してみたら?それで問題なく動くようならデジトラが壊れてるって事でしょ
469:774ワット発電中さん
16/03/06 07:05:44.02 B7WT6HaR.net
PGC/PGDって双方向通信でダイオード入れるのもNGじゃないっけ?
470:774ワット発電中さん
16/03/06 09:42:28.98 OoCgFVOy.net
PNPのデジトラのBは内部抵抗で5Vにプルアップされてるねぇ
471:774ワット発電中さん
16/03/06 09:59:28.03 J5fe6bIP.net
>>456
PCEDに、最初に特定のビットパターンを送って、書き込みモード等に入るから、プルアップしてはだめ。
472:774ワット発電中さん
16/03/06 09:59:34.98 rshvqe1e.net
473:>>456 書き込みの配線はあってるの? 外せるなら一度全部の配線を外して確認してみてはいかがかと
474:774ワット発電中さん
16/03/06 11:51:58.78 JfAnGWFA.net
MAPLAB-Xの使い方で分からないところがあるので教えてください
PICに温度センサーを繋いだ場合と湿度センサーを繋いだ場合で
core.cは共通、温度センサの場合は ondo.c を使用、湿度センサの場合は temp.c
を使用します
1
475:つのプロジェクトフォルダにこれらをまとめる場合、MAPLAB-IDEだとプロジェクト ファイルmcpを複数作ってcore.cとondo.cを含む proj1.mcp と、core.cとtemp.cを含む proj2.mcpを作る事で対応していました 同様の事をMAPLAB-Xでやるにはどうすればいいんでしょうか?
476:774ワット発電中さん
16/03/06 15:24:47.15 Gp863c7o.net
>>456です。
みなさん、ありがとうございます。みなさんのアドバイスのおかげで、
無事に直りましたので、結果をご連絡します。
1. 書込出来なかった原因
私の配線ミスで、ICSPの線のうち本がGNDに落ちていました。
直したら、あっさり動きました。トホホ。
2. PNP(Pch)デジトラの影響
デジトラがあっても、無くても、失敗ゼロで書込が出来ました。
でも、波形を見ておかないといけないと思い、手持ちのオシロで波形を撮りました。
URLリンク(imgur.com)
上側の波形が、デジトラ付きの状態です。
デジトラの内部抵抗と、PICKIt3の内蔵抵抗の綱引きで、2Vくらいに浮き上がる期間がありますが、
PICKit3の出力Bufferが起動すれば、デジトラがあっても、完全にGNDまで落ちています。
下側の波形が、デジトラを外した状態で、もう2Vの浮き上がりは見られません。
この期間は、PGCとPGDの線は、PICKIt3の内部で4.7k程度でpull downされているようです。
>>461の言うように、プリアンブルっぽい動作をすると予想しますが、
出力Bufferを使わずに行うとは考えにくいので、もしかしたら、
あの期間だけなら2V浮いても良いのかもしれません。
でも、PICKit3が何をしているのかわかりませんので、ICSPと関係無いピンに変えました。
ICSPの信号線は、専用で使って、触らないほうが良いかもしれません。
みなさん、どうもありがとうございました。
477:774ワット発電中さん
16/03/06 18:26:59.12 Tqn+WTJI.net
>>456
RN1201はNPNトランジスタだけど本当に大丈夫なのかな?
それからバイポーラトランジスタにPchはない。
478:774ワット発電中さん
16/03/06 18:52:15.41 Gp863c7o.net
すみません、間違えました。
RN2201でした。
デジトラでも、PとNはあるので、Pchという言い方はアリだと思う
479:774ワット発電中さん
16/03/06 18:53:40.37 HUo3DXoX.net
アリ、ナシでいえばナシ
PNPもNPNもバイポーラですからキャリアは正負両方あるので
480:774ワット発電中さん
16/03/07 02:28:47.97 EmWUGMgX.net
>>464
個人でそのオシロ持ってるのか?
481:774ワット発電中さん
16/03/07 04:14:44.29 r2dayf91.net
今時個人でオシロやロジアナ持ってても珍しくもなんともないだろ
482:774ワット発電中さん
16/03/07 05:11:46.89 FvSqBKTA.net
>>464
デバッグにも使えるから、ピンに余裕有れば、専用にしておいた方が良い。
483:774ワット発電中さん
16/03/07 15:35:34.65 3B5FGGEB.net
PIC18+XC8で開発をしています
シリアル受信データが最上位1bitがフラグ、下7bitが値のような場合に今までは
a = (x >> 7);
b = (x & 0b01111111);
みたいに書いてaの値で条件分岐していたんですが、先輩から「このような場合は
ビットフィールドを使った構造体をストラクトして使ったほうがオプティマイザが
オプティマイズドしてくれるのでより上質なバイナリになる」と指摘されました。
実際さまざまな角度から検証した結果、ビットフィールドを使った方はBTFSS命令を
使ってよりスマートな最適化がされていました
484:774ワット発電中さん
16/03/07 15:36:08.53 3B5FGGEB.net
さてここからが質問の本題です
485:774ワット発電中さん
16/03/07 15:39:22.60 3B5FGGEB.net
こういう感じの「コンパイル後に出力されるバイナリの最適化具合まで想定した
上でのより良いC言語でのコーデングノーハウ」みたいなのが集め
486:られている ページはありませんでしょうか? あるいは「こういうケースではこっちの記述をした方がコンパイラがより最適な コードをオプティマイズドする」みたいなコード例が集められたサイトです
487:774ワット発電中さん
16/03/07 15:50:19.93 jkPWbvtZ.net
教える事も先輩の仕事の一つなのでどんどん聞くべし。
488:774ワット発電中さん
16/03/07 16:50:34.55 NXluu/Ga.net
質問です。教えて下さい。
Cで、
a = (x >> 7);
と記述すると、実際のPIC CPUでは、どのように処理されるのでしょうか?
真面目に7回シフトするのでしょうか?
それとも、
7bitシフトするようなアセンブラ命令があるのでしょうか?
489:774ワット発電中さん
16/03/07 17:07:32.59 u7jx4Nys.net
>473 そういうページの、存在を知らない
>475 よくしらんけど、ローテート命令七回実行するだけじゃないの?
ていうかそもそも、7ビットもシフトせんでも
a = (0 != (0b10000000 & a)); て書けば済む話だと思うけど…
490:774ワット発電中さん
16/03/07 17:14:30.31 NXluu/Ga.net
>>476
ありがとうございます。
僕もそう思いました。and取って、0か否かで良いと思います。
491:774ワット発電中さん
16/03/07 19:26:03.76 7Kb3creI.net
16ビットシリーズだとバレルシフタ持ってるので1個のシフト命令になるんかな
8ビットシリーズだと、オプチマイザの仕事次第な気がする
人間オプチマイザ的にはマスクしてからキャリ込みの左ローテート2回とか、ビットテスト命令とか?
492:774ワット発電中さん
16/03/07 19:33:03.06 1wIC/M9Q.net
>>478
バレルシフトになるよコンパイラがアホじゃなければ
a代入条件式に渡すだけならif (x&0x80)だけでいいし
つーかアセンブラ出力確認すれよ
493:774ワット発電中さん
16/03/07 20:17:02.30 NXluu/Ga.net
なるほど、<<2 は、賢いやり方ですね。
494:774ワット発電中さん
16/03/08 03:08:47.97 E9MRYZKO.net
XC8で
「hex contains code that is located at addresses that do not exist」
という警告が出るのですがこれは無視しても構わないんでしょうか?
というかなぜこの警告が出るのか全く理解出来ないんです
495:774ワット発電中さん
16/03/08 06:41:19.08 aN8434cc.net
有り得ないアドレスにコードが置かれてるからそれ注意してくれてるんだろ。
CPUの型番指定間違ったとかないか?
496:774ワット発電中さん
16/03/08 06:53:32.68 NDYDCxHE.net
質問失礼します
PIC16F1827マイコンの2端子から極性が反対の波形のPWMを出力したいと思っています
データシートを読む限り、ステアリング機能で出来るんじゃないかと考えたのですが、出力が反転しません
PSTRレジスタでP1AとP1Bの出力を有効、極性はCCPxの<1:0>で設定するとあるのですが……
PSTRxCON = 0x03;
CCPxCON = 0x9D;
レジスタは上記のように設定しています
どこが間違っていたのでしょうか、あるいはステアリング機能以外が必要なのでしょうか?
497:774ワット発電中さん
16/03/08 08:22:24.22 JiYhI1t6.net
>>483
CCPxCON = 0x9C;
じゃない?
P1AがoffのときにP1Bがon(="H")つまりもともと反転となるから、
それを反転させる必要はない
498:483
16/03/08 12:21:34.98 ROEarpKY.net
>>484
0x9Cで動作させてみましたが波形は反転しませんでした。
念のため9C~9Fまで試しましたが波形は反転せず。
ハーフブリッジではないのかとも思いシングル出力やフルブリッジも試してみましたが駄目でした。
オートシャットダウンやディレイ機能は試していませんが……やはりステアリング機能では駄目なのでしょうか?
補足すると、欲しい波形はオシロスコープ観測でGNDラインを重ねた時に反転した波形同士で長方形のような形になる波形です
499:774ワット発電中さん
16/03/08 12:59:36.60 LVzW5HD3.net
>>481
プロセッサ間違えて選択してるとかそういうミスは無いの?
500:774ワット発電中さん
16/03/08 13:33:46.24 Y3b8HjOT.net
MPLABXにやっとしたんだけど、
clean and build build main project
clean ってどうゆう意味なの
501:774ワット発電中さん
16/03/08 14:40:42.94 FM7097wu.net
>>487
普通のビルドは変更されたソースのみ再構築
クリーンビルドは全て再構築
例えばソースファイルをバックアップから戻した時(=ソースが古くなる)
普通にビルドすると「ソースは古いから再構築不要だな」ってスルーしちゃう。
502:774ワット発電中さん
16/03/08 15:04:32.78 aN8434cc.net
MPLABだってそれ位あるだろ
503:774ワット発電中さん
16/03/08 16:49:32.22 Y3b8HjOT.net
>>488
どうもありがとう
504:774ワット発電中さん
16/03/10 14:23:19.43 oTPZsLmn.net
URLリンク(www.microchip.co.jp)
「日本語資料」の一部がリンク切れしてるんだけど
問い合わせフォームにメールアドレスを入力するのがイヤなので
誰か代わりに報告しといて
┗リファレンスマニュアル
┗PIC24F
┗【70195C_JP】PIC24F ファミリ リファレンス マニュアル、セクション 35. 専用タイマ付き出力コンペア
┗リファレンスマニュアル
┗dsPIC33F/PIC24H
┗【39723A_JP】dsPIC33F/PIC24H ファミリ リファレンス マニュアル、セクション 19. I2C (Inter-Integrated Circuit)
┗アプリケーションノート
┗【01202B_JP】'01202B_JP' AN1202 - PIC10F を使用したキャパシティブ センサー
┗製品パンフレット
┗【70324E_JP】dsPIC デジタルシグナル コントローラ
┗製品パンフレット
┗【39754J_JP】PIC24 マイクロコントローラ ファミリ
505:774ワット発電中さん
16/03/10 14:25:43.31 cWEB+UwR.net
適当な捨てアドにしときゃいいんですよ(棒)
506:774ワット発電中さん
16/03/10 18:19:32.73 kXbJ+06S.net
誰も読まない日本語資料なんて…
507:774ワット発電中さん
16/03/10 18:59:49.02 rIGv88Vt.net
まだ使い物になるだけ良いって、某AD社日本支店のサポートは普通に英語の資料で帰してくるぞ。
しかも日本語の資料では丸々削られてる記述とかあって笑えない…。
さらに、案件で専属一人で付くんじゃなくて、来たメールを来た順番で処理してる模様、前のメールの履歴を付けないと同じ答えが返ってくる。
マイコンじゃないけど、もっと大掛かりなサイズでサポートしてた身分としては信じられないほどお粗末だった。
情報共有とかできないって、どんなチームだよって感じで。
英語ができて本社で直に教われるとかでもそれを国内に戻ってきて展開できない時点でおかしいと気がつくはずだと思うんだけど、足の引っ張り合いでもしてんのかと。
508:774ワット発電中さん
16/03/11 19:58:44.07 3fcPFUk+.net
節電のためにスイッチのプルアップ抵抗を100KΩにしたんですが、どうなんでしょうか
100KΩの抵抗というのは?
最近どうもスイッチ反応が悪いんでこれが原因なのか疑ってるんですが。
509:774ワット発電中さん
16/03/11 20:15:44.10 9ySykZ8L.net
最近→抵抗値の問題ではない気がするが気になるなら変えたら?
510:774ワット発電中さん
16/03/11 21:25:15.53 S/zUcbJJ.net
>>495
スイッチにはある程度電流流さないと、接点の接触悪くなりやすい。
511:774ワット発電中さん
16/03/11 22:05:00.20 GquPTMP9.net
>>495
余ってるポートがあればポートを使って読むときだけプルアップする
方法もあるよ
512:774ワット発電中さん
16/03/11 22:23:28.15 LrQoY/Gm.net
>>495
PICの内部プルアップが数十kΩ相当だから、異常に高いわけじゃない�
513:ェ高すぎるのもあまりオススメはしない ところで消費電力を気にしての選定との事だが、相当の頻度で押されるスイッチなのか? PICの入力端子は電流をほとんど吸い込まないから、プルアップに電流が流れるのはスイッチを押している間だけだぞ
514:774ワット発電中さん
16/03/11 22:55:14.87 3fcPFUk+.net
>>499
> PICの入力端子は電流をほとんど吸い込まないから、プルアップに電流が流れるのはスイッチを押している間だけだぞ
え、そうなの
じゃ100KΩは別に10KΩの抵抗でもよかったのかな
515:774ワット発電中さん
16/03/11 22:58:46.29 3fcPFUk+.net
>>498
> 余ってるポートがあればポートを使って読むときだけプルアップする 方法もあるよ
それって内部プルアップのこと?
516:774ワット発電中さん
16/03/11 23:30:50.92 08PfB9p0.net
>>501
よく読もう。
抵抗アレーのcommonにポートから5Vを供給するんだ。
スイッチを取り込むときだけね。それ以外はOFF
517:774ワット発電中さん
16/03/11 23:40:59.53 3fcPFUk+.net
>>502
なーるほど、それはいいアイディア
どうもありがとうございます
518:774ワット発電中さん
16/03/12 02:25:59.27 +x9rnrla.net
>>500
例えば18F1XK50の入力リーク電流は5nA(typ.)、100nA(max.)となっている
仮にプルアップを1桁上の1MΩにしてもスイッチ電流はuAオーダーでリークはその1~3桁下だ
入力リーク気にするなら、デバイス自体の動作電流から気にしなければならないレベルじゃないかな?
詳しくは使用するデバイスのデータシート見てくれ
519:774ワット発電中さん
16/03/12 04:31:58.73 wZg5A+jJ.net
delayが使えなくて一週間悩んでたけど、どうやらMCLRの接触不良が原因だったようだ
他の機能が大体使えてたし、回路側の問題とは思わなかったから気づくのが遅れてしまったよ
初心者は問題の切り分けができないからマイコンボードを買ったほうがいいかも
520:774ワット発電中さん
16/03/12 05:10:14.84 Bq+enMte.net
なんでMクリアの接触不良でディレーが使えなくなるのか全く理由が分からない
あのディレーって無意味な命令を繰り返し実行して時間を稼いでるだけでしょ
521:774ワット発電中さん
16/03/12 05:51:37.14 wZg5A+jJ.net
>>506
俺に聞かれてもわからんよ
522:774ワット発電中さん
16/03/12 05:55:24.45 BmiL3Rtc.net
>>ID:wZg5A+jJ
delayが使えなくてその理由がMCLRの接触不良らしい
その際に他の機能が大体使えてた
ありえない
どっちかが勘違い
523:774ワット発電中さん
16/03/12 06:24:15.97 Bq+enMte.net
>>507
あのさ
そういう考え方と言うか思考というか、止めたほうがいいよ
理由はよく分からないけど何とかなったからまあいいや。そういうのって良くないよ
言っちゃ悪いけど多分君の生き方、人生もそうなっちゃってるんじゃないかなって思う
ちゃんと理由を考えて、こうこうこういう理由でダメだったんだなって考えられるように
しないとそういういい加減さは君の生き方にまで悪い影響を与えるよ
524:774ワット発電中さん
16/03/12 06:32:30.21 F7VzaDJL.net
多分学生だろ
社会人になる前にそういう癖は直しておかないとまずいよ
525:774ワット発電中さん
16/03/12 07:41:10.67 lN0TUubo.net
説明が付かなくて気持ち悪いと思わない時点で終わってる
技術者にはならん方がいい。当人も周りも苦労するので
526:774ワット発電中さん
16/03/12 07:48:20.44 x5FoESRF.net
>>511
そんなこと言い出したら、宗教を信仰するなんて出来なくなるぞ?
527:774ワット発電中さん
16/03/12 08:37:41.99 +hI2V9N2.net
>>512
神様とか運とか血液型のせいでマイコンや機器が動作しませんって言うやつはマジやめてほ
528:しい いるんだよそういうの、しかもかなりの割合で。
529:774ワット発電中さん
16/03/12 08:38:09.13 YfRmZ1V3.net
MCLRが不安定で数ミリ秒動くうちにリセットされる状態だったとか?
530:774ワット発電中さん
16/03/12 08:40:21.70 3P5Kq1Z3.net
すぐいらいらしちゃうんだからっ
おつかれさまでした
531:774ワット発電中さん
16/03/12 09:20:27.74 3gYpt3Xd.net
>>513
底辺だからじゃないの?
532:774ワット発電中さん
16/03/12 10:03:33.70 Gjubt0iE.net
バグや配線ミスは一つだけってことはない
コツコツやれ
533:774ワット発電中さん
16/03/12 11:45:37.62 kbp474pC.net
MCLRと__delay()の関係が、どうしても知りたい。
534:774ワット発電中さん
16/03/12 13:44:55.54 LV3lL25r.net
.
昔、ラッピング線でハンダ付け不良をさせたことがある。
潤工社のAWG30のジュンフロンラッピング線、よく使うんだけど、
付ける前に予備ハンダメッキが必要。
でも配線に熱中してくると、それを忘れて直接付けてしまうことがあった。
いつも接続したあと引っ張ってハンダ付け確認しているけど
ヤニで固まっていて、引っ張っても取れないだけで、実際には電気抵抗が
大きく、導通していなかったというもの。泣いた。
いちいちハンダ上げしてから接続するのも面倒だけど、我慢して使っていた。
ある日、友人から、アメリカ製のラッピング線の話を聞いた。
予備ハンダ無しに、そのままハンダ付けOKらしい。
買ってやってみたら、まさしくその通り。すごく便利。 以来、そればっかり使っている。
535:774ワット発電中さん
16/03/12 15:56:54.30 I1jtTW6x.net
PICにスピーカーを繋いでPWMで音を出してみた。
タイマー割り込みを使って、音色なんかも変化させて遊んでる。
初老でも楽しい。
ところで、一点質問。
スピーカーとGNDの間に直列にコンデンサを挟んでみたら、音が大きくなった。
余計な直流を通さなくなるのは分かるけど、音が大きくなる理由が分からない。
アナログの世界なのでプログラムロジックとは違うけども、理由が知りたい。
536:774ワット発電中さん
16/03/12 16:15:20.05 aRaHeLC5.net
そうですか
537:774ワット発電中さん
16/03/12 16:26:01.29 3P5Kq1Z3.net
最近釣り系質問流行ってるからなぁ
538:774ワット発電中さん
16/03/12 16:44:56.94 I1jtTW6x.net
サーセン。
539:774ワット発電中さん
16/03/12 17:00:24.13 QvmCVlwp.net
>>520
片方をGNDに繋いでたってことはシングルエンド出力だったわけでしょ
それがコンデンサ入れることでGND側も作動っぽく電圧が変動するわけだから
スピーカーに掛かる電圧も特定周波数部分は増幅されて多分低音域は大きく聞こえたんじゃないかと
正逆位相のPWM2つでスピーカー鳴らすのに近いことが起きてる
540:774ワット発電中さん
16/03/12 17:02:08.83 3P5Kq1Z3.net
そんなバカな
541:774ワット発電中さん
16/03/12 17:11:05.57 I1jtTW6x.net
>>524
参考になる
542:774ワット発電中さん
16/03/12 17:23:19.89 I1jtTW6x.net
コーンがアクティブに戻るという認識で合ってるかな
543:774ワット発電中さん
16/03/12 17:31:26.45 LV3lL25r.net
>>520
PICとSPは、コンデンサなしで直接つないでいるの?
そもそもが、コンデンサを入れた上でスピーカーをつなぐべきだと思います。
Cを入れると差動で動くとか、そういう事はありません。
544:774ワット発電中さん
16/03/12 19:26:05.07 3P5Kq1Z3.net
>>526
いやいや
>>520
スピーカーにDCがかかった状態だと、ボイスコイルの振幅が片側にバイアスされた
状態で駆動されることになるので、場合によっては振幅限界に達して音量が小さく聞こえたり
歪みの原因になる可能性がある
なので、普通はCを入れてDCカットして使うか、PWMx2を逆相駆動してBTLにしないとだめ
釣りだったら数す
545:774ワット発電中さん
16/03/12 20:02:39.97 I1jtTW6x.net
片押しキャリパーでコーナリング侵入前にブレーキをダフるようなものですか。
546:774ワット発電中さん
16/03/12 20:06:57.40 I1jtTW6x.net
なかなかそういう情報ないので、参考になった。
あたりまえのようにコンデンサ直列に繋ぐ絵ばっかりよく見るけど、
その理屈がどこにも見当たらないので。
普通のアナログ信号のオーディオだとACでバランスするけど、
マイコンのパルスだとひっついたまま戻ってこないので、
ちょいと戻してあげるということなのか。
547:774ワット発電中さん
16/03/12 20:25:24.43 LV3lL25r.net
>>531
>その理屈がどこにも見当たらないので。
少し考えればわかるので、書いてないのだと思うよ。
スピーカーは、直流でも動く部品なので、
1) +電圧でスピーカーの紙は出っ張る
2) 0Vでスピーカーの紙は真ん中
3) -電圧でスピーカーの紙は引っ込む
5Vと0Vしか出せないマイコンでは、上記の1)←→2)の間を動作することになる。
よって紙が均等に前後しない。
548:774ワット発電中さん
16/03/12 21:47:58.39 eQ6lCNaj.net
これから始めようという者ですが
アセンブラ用のレジスタ名の定義ファイルの名前はどのように知るのでしょうか?
MPLABのマニュアルや使う予定のマイコンのデータシートを調べても見つけられません
それともアセンブラ用のそのようなファイルは存在しないのでしょうか・・・?
使う予定のマイコンはPIC16F1937です
549:774ワット発電中さん
16/03/12 22:49:15.09 zxlblE60.net
>>533
28章
550:774ワット発電中さん
16/03/12 22:56:34.43 d/VWGvgG.net
>>533
インストールフォルダのmpasmxの中とかは掘ってみた?
551:774ワット発電中さん
16/03/12 22:59:29.40 oHMLt//i.net
>>532
均等に前後しないことによる弊害は何も無いよ。
音声信号を忠実に再生しようということじゃないからね。
コンデンサを入れて均等に近づいたから音が大きくなったってわけでもない。
ここまで誰もインピーダンスを語らないところが、アナログに暗いスレ住人の特徴かな。
音が大きく感じたのは、耳につく帯域の虚部がコンデンサでキャンセルされたから。
552:774ワット発電中さん
16/03/12 23:00:15.72 eQ6lCNaj.net
>>535
ああ!なんかいっぱいファイル見つけました!この中からそれっぽいのを探せばいいのか・・・!
ありがとうございます!
553:774ワット発電中さん
16/03/12 23:07:42.52 d/VWGvgG.net
>>537
自分はCしかやらないんですが、まず、
Microchip/MPLABX/mpasmx/MPASMXMasterIndex.htm
から始めるのが筋かという気はします。
554:774ワット発電中さん
16/03/12 23:17:50.51 eQ6lCNaj.net
>>538
成程
ひとつ利口になりました
555:774ワット発電中さん
16/03/12 23:26:49.18 Gjubt0iE.net
Hの時にコンデンサに充電された電気がLの時に放電されて負電圧をスピーカーにかける
程よい容量なら直結の時より振動板が大きく動くと言うわけ
556:774ワット発電中さん
16/03/12 23:35:21.38 3P5Kq1Z3.net
>>540
それをカップリングというのだが...
Cをシリーズに入れてDCカットする意味はそれ以外の何物でもない
後半の
> 程よい容量なら直結の時より振動板が大きく動くと言うわけ
の意味はよくわからない
容量は通したいカットオフ周波数に応じてスピーカーの負荷インピーダンスとの関係で決めるだけ
557:774ワット発電中さん
16/03/12 23:37:59.66 oHMLt//i.net
>>540
不正解
558:774ワット発電中さん
16/03/12 23:42:08.88 3P5Kq1Z3.net
うーん、あなた>>536もイマイチ言ってることよくわからないけどね...
559:774ワット発電中さん
16/03/12 23:44:02.63 oHMLt//i.net
出力されてる周波数でのスピーカーのインダクタンスと、直列に加えたコンデンサで直列共振(つまり虚部がゼロ)となれば最大音圧が得られる。
わからないならしょうがない。
560:774ワット発電中さん
16/03/12 23:46:40.04 3P5Kq1Z3.net
>>544
そう言ってくれればわかるw
561:774ワット発電中さん
16/03/12 23:50:15.74 3P5Kq1Z3.net
ただ>>536について一つコメントさせてもらうと、
何も弊害がないというのは言い過ぎ
結局DCが重畳されたPWMそのままを入れるのは、ボイスコイルの振動が
オフセットするので、限られた振幅範囲(ダイナミックレンジ)を有効に使えないので
結果的に実用的な音圧レベルの最大値が制限される
またそもそもDC電流をボイスコイルに流し続けるのはよくない
562:774ワット発電中さん
16/03/13 00:00:10.55 gAY3stss.net
わかってくれてありがとう
ただ
限られた振幅範囲をめいっぱいドライブできるほどの能力がPICには無いので
DCカットの有無だけの違いなら全く弊害は無い。
1ポート30mA程度しか流れないのでそもそもフル振幅のドライブは無理。
で、鳴らさない時は流さないようプログラムすればボイスコイルに負担は無いしそもそも壊れるほど流せない。
563:774ワット発電中さん
16/03/13 00:02:36.93 e3XktBDo.net
>>547
なるほどね
確かに今回の案件に関しては、そういった設計検証をした上で
カップリングのCを外すという判断をするなら、それもありだとはおもうね
564:774ワット発電中さん
16/03/13 00:46:23.06 LKqd63Ty.net
でも、スピーカーにDCは、良くないよね
565:774ワット発電中さん
16/03/13 02:19:37.71 22mN0803.net
>>541
直列LC回路は、共振周波数で電流が最大
566:774ワット発電中さん
16/03/13 16:26:20.42 LKqd63Ty.net
スピーカーに直流印加は、いけません
567:774ワット発電中さん
16/03/13 16:52:30.39 T/HlBPO2.net
圧電ブザーも入れた方がいいのかな?
部品点数少なくする意味で省いてたけど
568:774ワット発電中さん
16/03/13 17:09:21.10 LKqd63Ty.net
圧電も入れるべき
569:774ワット発電中さん
16/03/13 17:31:53.79 gAY3stss.net
>>552
PICで直接駆動ならスピーカーはどうでもいいが、圧電サウンダは必ずDCカットが必要だよ。
カットしないとマイグレーション発生の可能性が出てくる。
570:774ワット発電中さん
16/03/13 17:46:58.73 esVoarL8.net
>>554
そこで言うマイグレーションて何?
>マイグレーションとは、移行、移転、移住、移動、乗換などの意味を持つ英単語。ITの分野では、ソフトウェアやシステム、データなどを別の環境に移転したり、新しい環境に切り替えたりすることを意味することが多い。
571:774ワット発電中さん
16/03/13 17:56:27.03 9oENPODG.net
>>555
なぜマイグレーションだけで検索しようと思ったの?
572:774ワット発電中さん
16/03/13 18:39:54.52 gAY3stss.net
めんどくさい人だなぁ
URLリンク(www.fdk.co.jp)
573:774ワット発電中さん
16/03/13 18:48:12.93 XgaV/bWM.net
LCDに表示する際のC言語の記述について疑問があるのですが、
お詳しい方のアドバイスをお願いします。
現在、LCDの使い方を学ぼうとネットで見かけた作例を再現しています。
現在、下記のページのコードを理解しようと思っています。
URLリンク(www8.plala.or.jp)
この中でchar buf[16]と宣言したbufと言う配列ですが
measurement()関数で得た値を表示するのに、下記のように
記載されています。
msec = measurement(mode);
LongToStr(msec, buf);
buf[12] = 0x00;
buf[11] = buf[10];
buf[10] = '.';
Lcd_Custom_Out(2, 1, buf);
最終的にはLcd_Custom_Out(2, 1, buf);で表示されますが、
Lcd_Custom_Out(2, 1, buf);で表示される場合、どのような挙動になるのでしょうか?
buf[16]で書いた内容は、LCD上でbuf[1]からbuf[16]まで自動的に順番に読み込んで
表示されると言う事でしょうか?
配列で宣言しているのにLcd_Custom_Out(2, 1, buf);の中では配列で必要な[]が無いので
疑問に思っています。
また、上記の例では、
buf[12] = 0x00;
buf[11] = buf[10];
buf[10] = '.';
この3行と
LongToStr(msec, buf);の関係も良くわかりません。
LongToStr(msec, buf);のmsecは、buf[]の何番目に読み込まれるのでしょうか?
574:774ワット発電中さん
16/03/13 18:52:15.02 T/HlBPO2.net
>>553>>554
銀マイグレーションというのか、壊す可能性があるのね。
PWMの出力ダイレクトで鳴ったからOKと思ってたが
バグとか変なタイミングでリセットされたりとかで流れっぱなしになると嫌だな。
575:774ワット発電中さん
16/03/13 19:01:41.82 T/HlBPO2.net
>>558
配列10,11,12の処理は小数点1桁を追加しているのだと思う
12345 → 1234.5
最後の0x00は文字列の終わり
[ ]無しは大雑把に言えば「全部渡す」という事
その配列の先頭のポインタを渡している、
576:774ワット発電中さん
16/03/13 19:12:23.99 gAY3stss.net
>>559
オレ最初は知らなくて、圧電サウンダは早めに壊れるもんだと思ってた。
577:774ワット発電中さん
16/03/13 19:38:12.14 XgaV/bWM.net
>>560
大元のページで
URLリンク(www8.plala.or.jp)
小数点以下一桁の表示となっているので、
buf[12] = 0x00;
buf[11] = buf[10];
buf[10] = '.';
なのですね。
得たデータの数字に対して、小数点以下二桁なら、
buf[12] = 0x00;
buf[10] = buf[10];
buf[9] = '.';
で、良いのでしょうか?
それと[]無しで配列を全部渡すと言う事だったのですね。
手持ちのC言語の解説本やコンパイラのヘルプでは解りませんでした。
全部渡すと言うことは、Lcd_Custom_Out(2, 1, buf);で2行目の1列目に
表示と指定していますが、そこから、bufの配列数の分だけ並べて表示と
言う認識で合ってるでしょうか?
578:774ワット発電中さん
16/03/13 19:58:01.51 T/HlBPO2.net
>>562
上 小数点2桁にするならbuf[11]=buf[10]; buf[10]=buf[9]; buf[9]='.'
つまりは1文字ずつ移動させて、空いた所にピリオドを入れている
下 惜しい、「配列数の分だけ」ではなく、配列の0x00まで表示する。
両方ともC言語の基礎的な本なら文字列・配列・ポインタなどで説明されていると思う。
579:774ワット発電中さん
16/03/13 22:23:54.84 esVoarL8.net
>>557
>(9)圧電サウンダに直流電圧を加えないで下さい。
>圧電サウンダ(圧電振動板)に直流電圧を加えると、銀マイグレーションが発生し絶縁抵抗が低下して機能を果たさなくなる事があります。
これかー
お手数お掛けしました
電子関係の用語って一般用語と別の意味で使われたりよく判らないわ
この場合の銀マイグレーションも意味は判らないんけど
壊れるってことだけは理解した
580:774ワット発電中さん
16/03/13 23:07:45.19 XgaV/bWM.net
>>563
ありがとうございます。
教えていただいた事を元に書籍やWEBで調べてみます。
581:774ワット発電中さん
16/03/14 06:28:49.15 WMIFuEPQ.net
>>564 この場合の銀マイグレーションも意味は判らないんけど
どうして調べようとしないの?
移行、移転、移住、移動、乗換であってるよ。
URLリンク(www1.coralnet.or.jp)
582:774ワット発電中さん
16/03/14 11:06:14.24 Icm9vyi2.net
>>564
よくわかんないけど、この場合のマイグレーションは、
分極だと思う。交流駆動を想定した部品に直流をかけると、
部品中で均等に分布していた何かが、
どちらかの電極に吸い寄せられて、具合が悪いということ。
この「何かが移動すること」をマイグレーションという。
マイグレーションの別解には、ソフトウェアのバージョンアップのことを
マイグレーションと呼ぶ。
キットにも、マイグレーションにも、いろいろあるんですよ。
583:774ワット発電中さん
16/03/14 12:53:59.91 wG8Paz6v.net
>>547
出力ピンの2本だけ100mA流せる品種もあるから大音量もいける
このあたりの対応の細かさはさすがPIC
584:774ワット発電中さん
16/03/14 15:19:25.66 ku9p8TUX.net
1つのSPIに3つのスレーブ(SDカード、別PIC、モーター制御IC)を接続すると
SDカードの初期化が失敗する、何が考えられるだろう?
・各スレーブのCS(SS)を全てHighにしてプログラム最初のSD初期化で失敗する
・スレーブ1つならどれも正常動作する、2つだと時々失敗、3つだと高確率で失敗
・SDカードの電源間に0.1uFや、各信号線を10KΩプルアップしても変わらず
・試しにSDカードを別のポート(SPI2)に接続すると問題なく動作する
・3秒毎にリトライ処理するうちに稀にSD初期化成功すると、その後は何も問題なく動作する
・別PICの配線を30cmぐらい延長すると2つでも高確率で失敗、3つでは成功しない
・SDカードの失敗内容はバラバラ、コマンドがタイムアウトしたりエラー通知だったり。
症状的に別PICのによって入出力信号の減衰か競合などが起きて
SDの初期化がおかしくなっている気がするが、何をどう調べれば良いか行き詰まってる。
585:774ワット発電中さん
16/03/14 21:15:41.45 Icm9vyi2.net
>>569
>1つのSPIに3つのスレーブを接続すると
これってどういう状況?
SPIって、1対1じゃないの?
/CSで切り替えているのなら、SDカードの出力が ひ弱 だとか、反対に
/CSで非選択中では、どこかの出力が生きてるとか
586:774ワット発電中さん
16/03/14 21:50:56.79 ku9p8TUX.net
>>570
URLリンク(www.geocities.jp)
これと同様にSDI/SDO/CLKを3分配、CSは個別です。
試しにSD以外のスレーブ(「別PIC」と「モーター制御IC」)のCSを直接VPPに
接続しても変わらなかったので、CSの切り替えミスではなさそう。
別PIC側のSSPCONもスレーブでSSを使う設定にしてあります。
ご指摘通り、SDの出力がひ弱かどこかの出力が生きていると予想したのですが
普通のテスターぐらいしか持ってないので原因を判断できない、
仮定して対処しようにも対処方法を知らないので適当にプルアップしてみたりの状況です。
587:774ワット発電中さん
16/03/14 22:17:50.28 8f61lapt.net
>>571
SDカードはCSでなく、クロックの有無で選択する。
588:774ワット発電中さん
16/03/14 22:30:40.55 Icm9vyi2.net
>>571
>普通のテスターぐらいしか持ってないので原因を判断できない、
オシロがあると、HとLの中間もわかるので、解決が速いと思うけどね。
589:774ワット発電中さん
16/03/14 23:04:06.34 MLmQwO3Z.net
HとLの中間が、どんな波形になってれば正常と言えるのか
きちんと判定できる目が無いと、結局のところ良否判定はできないわけです
リンギング、なまり、中間値あり、いろいろあるからねぇ
590:774ワット発電中さん
16/03/14 23:14:43.04 8pH7TUa/.net
信号自体が正常なのかロジアナ・レベルではチェックした?
591:774ワット発電中さん
16/03/14 23:52:59.93 ku9p8TUX.net
レス感謝
>>572>>575
SDライブラリ内でCSを切り替えた後1バイト送信(強制クロック切り替え)する処理はあります。
ただ実際にこれが正確に動作しているかは調べ切れてなかったです。
PICKIT2の簡易ロジアナがあるので、これで可能な限り追ってみます。
前に簡単に調べた時は正常時と異常時で波形が大きく逆転するような違いは無かったですが
クロック落として上記のような1コマンド1クロックまで精査すれば解明するかも。
>>573>>574
オシロ必要ですね
簡単な直結回路しか作ってないので必要性も感じてなかったけど、
こんな行き詰まりが長引いて悩むぐらいなら買っちゃった方が幸せかも。
あとは現在唯一の正常な方法=SPIを2つに分けてしまうかも。
設定上も分けた方が良いんだけどIOピン数が足りなくなるので
一回り大きな石にするとか含め色々考えてみます。
592:774ワット発電中さん
16/03/15 01:50:01.77 7NEnkaCO.net
PICの内蔵EEPROMで、3日間悩んで解決したので、人柱として報告しておきます。
MPLAB 8.92です。
書込のテストとして、
main{
wri
593:te_eeprom( 0, 0x1234 ); // 0番地に0x1234を書く write_eeprom( 2, 0x5678 ); // 2番地に0x5678を書く // printf("0=%04x ", read_eeprom( 0 ); // 0番地を読んで表示 // printf("2=%04x\r\n", read_eeprom( 2 ); // 2番地を読んで表示 while(1){} // 待機 } として、eepromに書いて(書いたつもり)、ソースを変更して main{ // write_eeprom( 0, 0x1234 ); // 0番地に0x1234を書く // write_eeprom( 2, 0x5678 ); // 2番地に0x5678を書く printf("0=%04x ", read_eeprom( 0 ); // 0番地を読んで表示 printf("2=%04x\r\n", read_eeprom( 2 ); // 2番地を読んで表示 while(1){} // 待機 } として、電源on。正しく書かれていれば、ターミナルに 0=1234 2=5678 と表示それる予定。 ところが、
594:774ワット発電中さん
16/03/15 02:35:42.63 MdS0ueU6.net
>MPLAB 8.92
人柱?
今頃?
Xの3.26で頼むわw
595:774ワット発電中さん
16/03/15 04:20:43.45 TQk/RcYK.net
>>578
相変わらず人間が小さいな。
どんなVerでも関係ない。無駄なことなど1つもない。全てが有用。
情報として内容を聞いておけば良い。
596:774ワット発電中さん
16/03/15 04:29:11.52 +u/bhsJ6.net
じゃ、あんたに任せるから、頼むわ
597:774ワット発電中さん
16/03/15 04:38:21.36 BXTx9WRG.net
>>579
今更マップラブ・イデア使ってる奴なんかいない
みんなⅩに移行してる
そんな中でイデアの8.92固有の問題とか書かれたところでもはやそんな情報は
誰も欲して無いし何の役にも立たない
598:774ワット発電中さん
16/03/15 05:23:35.13 O4sbalVL.net
581「マップラブ・イデアはグラディェーションしちゃったよ」
だそうです
599:774ワット発電中さん
16/03/15 08:26:50.43 1AZoaipm.net
Xなしは保守用だよね
600:774ワット発電中さん
16/03/15 10:16:19.58 ofl71mqA.net
みんなXで苦労してて、なんとか他人を沼に引きずり込もうとしてるんだね
601:774ワット発電中さん
16/03/15 10:34:07.39 TQk/RcYK.net
無理して X 使う理由がわからない
602:774ワット発電中さん
16/03/15 12:13:50.48 7+DjHVxm.net
最初期のXは確かに惨かった
あと糞重すぎてやってられんかった
しかしバージョンアップを重ねて問題ないレベルに安定したし、その間に
マシン環境も良くなって今使う分には安定度も速度も全く問題ない
未だにXが重くて辛いようなゴミマシン使い続けてるユーザは別として、それ以外の
ユーザがXを忌避する理由が正直分からん
603:774ワット発電中さん
16/03/15 12:17:54.72 NtPzdkBo.net
新しいものはまず否定して掛かるのが老人だし、
16F84でLチカしかしない人にはX関係ないよなw
604:774ワット発電中さん
16/03/15 12:31:15.70 1AZoaipm.net
自分はむしろXの方が快適だわ
605:774ワット発電中さん
16/03/15 13:02:46.34 F2nBkFE2.net
Xのがいろいろと便利だよね
ただ古いバーションのCCSが使えないのが難点
606:774ワット発電中さん
16/03/15 13:58:33.83 jyIn24/t.net
UTF8が使えない時点でね
607:774ワット発電中さん
16/03/15 14:39:41.89 nry4XeSE.net
ID:TQk/RcYK
>無理して
って、最初からX使ってます。
実際問題、8.92なんて掘らにゃ出て来んでしょw
608:774ワット発電中さん
16/03/15 16:20:03.50 /zgT1crY.net
>>577
ところが、 の後が気ににる。
609:774ワット発電中さん
16/03/15 19:17:24.80 J0cFhifk.net
1~1.5mほど離れたPIC間で通信したい、
具体的にはただのリモコン(ジョイパッドみたいな物)
SPIやUART直結では遠いよね?
610:774ワット発電中さん
16/03/15 20:23:03.95 vrTVqN0H.net
>>592
コンパイルが通りませんでした><
611:774ワット発電中さん
16/03/15 21:25:14.90 lhryq9jb.net
>>593
出力側に抵抗入れて9600bpsくらいならいけるんじゃないかな。
オシロがあればわかりやすいけど結構なんとかなるよ。
612:774ワット発電中さん
16/03/15 23:31:23.45 p
613:78daEVV.net
614:774ワット発電中さん
16/03/15 23:46:16.12 J0cFhifk.net
>>595
9600でも十分そうです、超連打しても毎秒300バイト程度か。
「出力側に抵抗を入れ」というのは、
送信側(TX端子の直後)に数十~数百Ωの抵抗を直列で入れる事でしょうか?
615:774ワット発電中さん
16/03/15 23:55:27.13 J0cFhifk.net
>>596
信頼性は不要です、まるで伝送できないと困るけど、
ボタンやジョイスティックの情報なので1割ロストしても多分違和感ないでしょう。
趣味でちょっと操作部を離したい程度の構想なので、
危なそうなら50cmぐらいに短くしてもいいか程度です。
あまり本格伝送するとリモコン作成がメイン回路になってしまいそうなのでw
616:774ワット発電中さん
16/03/16 00:07:02.83 CHPhINjn.net
で、>>577はどこ行っちゃったの?
617:774ワット発電中さん
16/03/16 01:10:51.11 ZspRFoj9.net
>>594
カッコが足りないなw
618:774ワット発電中さん
16/03/16 01:40:48.23 hIB6Z18y.net
>>598
PS/2(昔のキーボードとかマウスとかつなげてたヤツ)はTTLレベルで16kHzクロックのシリアル通信
1~2mぐらいなら行けるっしょ
ダメっぽかったらツイストペアのシールド線でも使えば大丈夫。多分。
619:774ワット発電中さん
16/03/16 01:55:22.50 frJD41R8.net
パソコンのパラレルポートがTTLレベルだから2~3mは可能だろ
620:774ワット発電中さん
16/03/16 03:18:41.71 k5pd38nP.net
>>577です。
続きを書いている時に寝てしまいました。
でも、書き込むのはやめます。
本質と関係のないツールのバージョンのことで馬鹿にされたので、腹が立ってきました。
Xでなくて悪かったな >>578
621:774ワット発電中さん
16/03/16 03:53:09.72 CHPhINjn.net
>本質と関係のないツールのバージョン
大間違い。
622:774ワット発電中さん
16/03/16 07:49:42.08 CbVNQa9u.net
>>603
救いようのない馬鹿だな
623:774ワット発電中さん
16/03/16 08:07:19.31 3T5+UqqU.net
ライトイネーブルしてなかったとかいうオチでは?
624:774ワット発電中さん
16/03/16 12:04:46.11 l/I+8okH.net
僕もMPLAB IDE 8.92しか使っていないのですが、MPLAB Xは、
バグとか問題ないのでしょうか?
いつかは変わってしまうから、そちらに移行しなければと思っていますが、
このスレの評判を見ていると、きいいかと思ってしまいます。
・今まで8.92で作ったCのソースは、何もせずにそのまま流用できるのでしょうか?
・8.92と、かなり操作性が違うのでしょうか。
・MPLAB Xの使い方について書かれた、本やwebサイトがあれば教えて下さい。
625:774ワット発電中さん
16/03/16 12:30:31.08 ZHA5joHM.net
ソース 変更なしでok プロジェクトはコンバートが必要
操作法 基本的には変わらない。対応する操作はすぐ見つかる筈
626:774ワット発電中さん
16/03/16 12:34:16.18 6jVSaA75.net
>>607
だからMPLAB Xが出て何年経ってると思ってるの…
627:774ワット発電中さん
16/03/16 12:53:03.49 l/I+8okH.net
>>608
どうもありがとうございます。
ソースがそのまま使えるのは嬉しいですね。
#include "xxxx.h"など、ヘッダーとかを入れ替えなければならないのか心配していました。
割込の __attribute....なども、よさげなんですね。
どうなってもいい別のPCに Xをダウンロードして、一度やってみます。
ありがとうございました。
>>609
ありがとうございます。
>だから
だからって言われても、以前どこかでアドバイスもらいましたか?
この件について、僕は初めて質問していますので、だから と言われる理由はないと思います。
>何年経ってると思ってるの…
知りませんよ、そんなこと。
8.92の資産がそのまま使えて、バグが無ければ、
今年でも去年でも関係ありません。何年経つかには興味ないし。
質問者にとって何の情報も得られないコメントですね。
いつもそんなコメントしているんですか? >>609
628:774ワット発電中さん
16/03/16 12:53:41.78 xpiJ+5/l.net
Xを嫌ってる人って、他の人の昔の製作例をコピペする人くらいでしょ
629:774ワット発電中さん
16/03/16 13:26:52.37 lqFBfrSH.net
だったらそのまま8.92使い続けてればいいだろ
なにこのアスペ
630:774ワット発電中さん
16/03/16 14:03:23.73 NQ2EbSE2.net
ID:l/I+8okH
開発環境をむやみに更新する必要は無い
そのこととあんたがいままで情報収集を疎かにして来たこととは別
尋ねていることは自分でやってみりゃすぐに分かる事ばかり
フリーの環境でリリース後もうだいぶ経過しているのにもかかわらず
何のアンテナも張っていなかった自分を棚に上げて
突っ込まれると逆切れする自分をどう思うのかな
そのままずっと一人でそこに立ってろ!
631:774ワット発電中さん
16/03/16 15:10:31.31 l/I+8okH.net
だったら、>>612, >>613 は、Xで何も問題が出ていないとでも言うの?
632:774ワット発電中さん
16/03/16 15:16:28.45 IG9T6IuD.net
>>614
何も問題が出ていない開発環境がこの世に存在するならぜひ教えてください。
633:613
16/03/16 15:28:36.60 +3CAAW+/.net
>>614
情弱をカミングアウトしたあと、突っ込まれて逆切れ、そして最後は屁理屈をたれはじめる
フル装備の予想通りの反応ですね
もう一度だけ書きますね
自分で試してみたらいかがですか、ただで配ってるんだから
634:774ワット発電中さん
16/03/16 15:53:53.87 To6KJvjr.net
>>613
新しいデバイスは使わないの?
635:774ワット発電中さん
16/03/16 16:07:37.26 l/I+8okH.net
>>617
新しいデバイスは使わないつもりです。8bitは3年前に捨てました。
よく使うのは、PIC24FJ256かHJ256です。dsPICも使いません。
外部バスの使える品種を試してみたいと思っています。
あとは、code configratorを試してみたいです。
636:774ワット発電中さん
16/03/16 16:15:02.98 l/I+8okH.net
>>615
>何も問題が出ていない開発環境
それはないでしょう。
でも、不具合が多いか少ないかは、あると思います。
Verを重ねた環境のほうが、不具合は少ないみとは容易に想像できますよね。
>>616
>自分で試してみたらいかがですか
だから、一度試してみますよ。それが何か?
自分で試せば良いという考え方を持ち込んでしまったら、
世の中に質問など1つもなくなりますよ。そういうこと言ってます?
このスレに質問禁止と書いてあるわけではないし、IDEの質問がNGとも書いてない。
>>613と言い、>>616と言い、質問者に何の情報ももたらさない発言は、
あなたの程度が知れますよ。
637:774ワット発電中さん
16/03/16 16:16:25.38 l/I+8okH.net
仕事に戻りますので、もう返事できません。
638:774ワット発電中さん
16/03/16 16:22:50.82 lqFBfrSH.net
今日一番の笑いどころw
『仕事に戻りますので、もう返事できません。 』
639:774ワット発電中さん
16/03/16 16:23:42.16 scVN61tG.net
ID:l/I+8okH
情弱をカミングアウト
突っ込まれて逆切れ
さんざん屁理屈をたれる
さっそうと去って行く
かこいいなw
640:774ワット発電中さん
16/03/16 16:25:16.89 scVN61tG.net
>>621
わらっちゃだめよw
尊敬の念をこめて敬礼したまま見送るのw
641:774ワット発電中さん
16/03/16 16:53:23.93 hv3xIYi5.net
>>ID:l/I+8okH
>自分で試せば良いという考え方を持ち込んでしまったら、
>世の中に質問など1つもなくなりますよ。
この人、出来る範囲で試してみてから、その結果を踏まえて質問する、というあたりまえの感覚が無いんだな。
それでなんでマイコンとかいじってるんだろ。
642:774ワット発電中さん
16/03/16 16:53:49.07 /hyVEPhq.net
ID:l/I+8okH
ハイハイ。二度と来ないでね。
643:774ワット発電中さん
16/03/16 18:43:31.00 VoaweSI5.net
PICに50msecと100msecのパルスが入った場合の見分け方を
考えているのですがタイマーを使わずに処理する簡単な方法ってあるでしょうか?
全く別の話題でこのスレの上のほうに出ていた、>>315の方法で出来そうにも
思うのですが、この場合時間の計算が良くわかりません。
本を読むとPICでは1命令でクロックの4サイクルの時間と見かけますが、
これは、アセンブラでの話でしょうか?Cでどのコンパイラでも4クロック分の時間なのでしょうか?
アドバイス、また、作例の紹介などよろしくお願いします。
644:774ワット発電中さん
16/03/16 18:54:24.40 lqFBfrSH.net
ボーリングでもいなら1周期1ミリセックのるーぷの中で
入ry区ポートを監視して入理ィクが変かした時に
ループをんんしゅうしてかで判断すえばいい
645:774ワット発電中さん
16/03/16 18:54:32.22 qXIH5HOX.net
>>626
雑な判断でいいなら適当なdelay入れてカウント数だけで判断すれば?
while(1) {
if( !SW1 ) {
SW1count++;
}
else {
if( SW1count> 50 ) {
100msの処理;
}
else if( SW1count>1) {
50msの処理;
}
SW1count = 0;
}
その他の処理(処理時間1ms以下)
__delay_ms(1);
}
646:774ワット発電中さん
16/03/16 20:29:41.49 l/I+8okH.net
今日一番の笑いどころw
→ >>627 何言ってるかわかんない
647:774ワット発電中さん
16/03/16 20:43:52.98 nIzF94ms.net
焦りすぎ&めんどくさがりすぎ&スマホ乙
648:774ワット発電中さん
16/03/16 21:10:20.75 ZHA5joHM.net
だいたい>607はIDEが変わっただけでソース変える必要があるとか考えちゃう奴だしな、
ロードランナーのマイコン版なんだろう。
649:774ワット発電中さん
16/03/16 21:12:28.66 ooZ1zwf/.net
>>629
なんの情報ももたらさないレスおつw
650:774ワット発電中さん
16/03/16 21:14:32.22 qpxwTLri.net
Xを一度でも試していたら>>607みたいな書き方にはならんわな
651:774ワット発電中さん
16/03/16 21:34:25.48 l/I+8okH.net
>>626
タイマー割込を使わないで、という条件だと、結構厳しいものがありますね。
50ms, 100msの監視以外の処理が、どれだけの時間かかるかで、
50ms, 100msを取り逃してしまうので。
>>628のようなソースで、なんとかなりそうですが、
「その他の処理(処理時間1ms以下)」という条件が、ついて回ります。
タイマー割込が使えない制約があるのか、
使ったことがないので不安なのかわかりませんが、
ここはぜひ、タイマー割込を使ってみてください。
簡単な設定で、驚くほど正確に制御できます。
あるいは、マイコン外部のハードウェアに「クロック」みたいなものが用意できるなら、
それもまた簡単です。そのクロックを、外部割り込みにつないで、その割り込みごとに数値を加算。
メインで数値を評価すればよいですし。
外部割り込みを使わなくても、メインでなんとか監視するように工夫すれば、実現できます。
また別の方法では、
外部に抵抗とコンデンサで充放電回路を作って、それを使って、粗い時間信号にすることもできます。
・出力ピンをL→Hにする。充電が始まる。
・CRの接続点を入力
652:に取り込んで、L→Hに変化したら、出力をLにしてコンデンサを放電・・・・ を繰り返します。
653:774ワット発電中さん
16/03/16 22:19:58.97 4ximpyTl.net
>>626
あなたの環境がわかりませんが、
MPLAB X IDEで言えばデバッグの機能の中にストップウォッチがあるので、
ループにブレークポイントを仕込んで繰り返し時間をシミュレートすることが出来ます。
50msか100msかという大雑把でいいなら、
プログラムを書いてみて実際に1つカウントする時間を計って閾値とする数を決めれば十分かと思います。
654:774ワット発電中さん
16/03/16 22:21:44.96 4ximpyTl.net
すみません>>628のコードが前提です。
>50とかの50の決め方の話です。
655:774ワット発電中さん
16/03/16 22:35:27.04 pwX2FVBd.net
二度と来ないでねと言われて
�
656:]う人はいないだろうね
657:774ワット発電中さん
16/03/16 22:45:48.23 l6Nq0zQ2.net
>>626
8bitのPICなら4クロックでアセンブラ1命令を実行。
Cの一文は必ずしもアセンブラ1命令にコンパイルされるとは限らない。
>>636
>>626は1~2msのループだからそのまま>50でよいはず
658:774ワット発電中さん
16/03/16 22:48:03.03 85NEifxY.net
俺>>607とは別人だけど、昔、Xを試してダメダメで、環境をIDEに戻すのに苦労したから、いまだにXにはあげてないな。
IDEで困ってないし、ソースとコンパイラが同じでも、makeの既存設定やリンク条件変えられてバイナリが変わって再評価も嫌だしな。
それ以上のメリットがあれば考えるが、X使ってるやつの話聞いても、そんなにメリットがあるとは思えない。
IDEもサポートされてないわけじゃないし。
OSも石橋叩いて渡らないほうだから、環境をころころ変えてく人とは合わないんだろうけど。
659:774ワット発電中さん
16/03/16 22:49:21.59 l/I+8okH.net
>>636
「その他の処理(処理時間1ms以下)」の1ms以下というのは、どのように処理しますか?
「その他の処理」のところで、while(SW2 != on){} とか、されたとき、
1ms程度以内で脱出する方法が必要ですよね。変数置いて if(w++ > 0x1234){ exit }
みたいな感じでしょうか
660:636
16/03/16 23:21:50.29 TtXmXijD.net
>>638
はい、「その他の処理」のところが1ms未満ならいいですね。
質問者がアセンブラとCとの扱いの違いをお尋ねなので、
CでもIDEのデバッグ・ツールを使えば時間の勘定はある程度出来ますよという話です。
処理を追加して1msでなくなったときに仮に5msだったら<10でいいのかというと
<8かな<11かなとかを大雑把に決めるのにストップウォッチは有用なので。
まあ、アセンブラな人に言わせるとちゃんと計算しろよってことでしょうけど。
661:774ワット発電中さん
16/03/17 04:59:58.39 ur39617t.net
>タイマーを使わずに処理する簡単な方法
タイマーを使うのが簡単なんだけどね
662:774ワット発電中さん
16/03/17 05:19:37.93 HEVAezMh.net
Xを使う人 = 環境をころころ変えてく人 = チャラ男 = 頭悪そう
だってよーwww
663:774ワット発電中さん
16/03/17 06:42:40.91 8PfcmGq6.net
MPLABだけが IDE とか思い混んでる時点でこいつの頭の悪さが露呈してるわ
664:774ワット発電中さん
16/03/17 06:43:10.47 8mopgBcq.net
>>626
>>638も書いているけど、アセンブラレベルの話。分岐命令とかは2サイクルだったりするし、
サイクルを自分で計算したうえでアセンブラでプログラムを組むしかないだろうね。
コンパイラのバージョンが変わって吐き出すコードが変わる事もあり得るし。
他にはタイマー割り込みは使わなくてもタイマーの数値は利用できるから
タイマーを自分で監視する方法もあると思う。
665:774ワット発電中さん
16/03/17 14:01:29.53 Py52SkTQ.net
質問
Xじゃなくても新チップ使えるの?
666:774ワット発電中さん
16/03/17 14:33:28.67 PPQW4CMU.net
>>645
>アセンブラでプログラムを組むしかない
え?
667:774ワット発電中さん
16/03/17 14:35:21.12 nF2o+026.net
>>646
何を持って新チップというのでしょう?
668:774ワット発電中さん
16/03/17 14:38:21.95 NmOkXuNP.net
アセンブラ以外は認めない
MPLAX 8.92以外は認めない
84A以外は認めない
669:774ワット発電中さん
16/03/17 16:15:15.65 A5/4QXQz.net
今日、pickit3買って
もう、ファーム飛ばした(泣)
670:774ワット発電中さん
16/03/17 17:05:04.20 nF2o+026.net
>>650
僕は予備を買ってある。夜中に壊れたら困るし。
671:774ワット発電中さん
16/03/17 17:24:38.44 5KU/3Yx/.net
うちのpickitは出先でデバッグとかすると、帰ってきてから良く蒸発している
同じ客先に行って筐体をバラスと、なぜか発見したりもする
たまに12Vかけたりしてるから仕事がきつくてバックレてるのかもしれん
気がつくと2�
672:ニ3あわせて4台くらい持ってる
673:774ワット発電中さん
16/03/17 17:49:31.93 eHPRMr9K.net
何度も飛ばしたと思ったことあるけど結局使えるようになってる不思議なやつ
674:774ワット発電中さん
16/03/17 17:57:17.89 8PfcmGq6.net
>>649
お爺ちゃん、晩ご飯もう食べましたよ
675:774ワット発電中さん
16/03/17 18:38:13.63 mosStzmR.net
pickit2が壊れたら3を買おうと思っていたのに今日まで買う機会のない俺
676:774ワット発電中さん
16/03/17 18:40:28.59 WZd225o1.net
>>650
ボタン押しながら、USB 挿してもだめ?
677:650
16/03/17 19:24:32.20 A5/4QXQz.net
>>656
駄目です
全LEDが点灯しっぱなし
aliexpressにファーム修復用に10ドル位の安い互換機注文しました
678:774ワット発電中さん
16/03/17 20:41:38.04 8mopgBcq.net
>>647
Cでもタイマーを使わずに正確に時間を測ることが出来るならCでもいいだろうけど。
アセンブラよりもめんどくさそうだなぁと。
679:774ワット発電中さん
16/03/17 21:01:45.18 M9oiVCYC.net
壊れたときのために中華パチモンを買ったけど
まだ一度も壊れてないというか
普段パチモンの方を使ってるw
680:635
16/03/17 21:11:43.56 P6Tla8Qb.net
>>658
>アセンブラよりもめんどくさそう
自分はアセンブラできないんでどっちがとか比較は出来ないです。
適当にコードを書いてからStopwatchを使ってシミュレートして結果を見て微調整です。
どうせインストラクション・サイクル以上に細かくは調整できないんだからって感じです。
今の話の50msだの100msだのって大雑把でいいなら全く問題ないです。
681:774ワット発電中さん
16/03/17 22:21:21.19 5KU/3Yx/.net
>>658
Cでも、とか2回も繰り返すって、あなたの中ではよっぽど大事なことなんですね
682:774ワット発電中さん
16/03/17 22:40:20.13 sDSnVIJm.net
>>658
Cでは正確でないという根拠がわからない。
どっちにしたってHEXになってPICに書き込まれりゃ
それ以上でもそれ以下でもなく言われた仕事を繰り返すだけでしょ。
ということは1サイクル分長くするか短くするかってだけのこと。
それともアセンブラだと何かすごい方法でもあるの?
683:774ワット発電中さん
16/03/17 22:55:29.68 Aes4giMf.net
>>662
コンパイル結果のコードが完全に予測できるとはさすがです
684:774ワット発電中さん
16/03/17 23:47:58.30 sDSnVIJm.net
>>663
残念ながら、それは私が予測するんじゃなくて、IDEのシミュレータが予測します。
685:774ワット発電中さん
16/03/17 23:53:23.72 Hvpah7VF.net
50msか100msかっていう程度の話じゃ、1命令サイクル毎に
調整できなくたってかまわんわな。
てか、ループ回数で時間測っているとその間別の割込みを
受け付けることもできなかったりするし、かえって不自由。
686:662
16/03/18 00:01:31.23 K75ENWrz.net
>>665
そうです。
本当のところは質問者にタイマー割り込みを使うことを勧めるのがいいと思います。
でもどんな事情なんだかわからないし。
アセンブラのことはよく知らないのでこれを機に便乗して質問させてもらってます。
687:774ワット発電中さん
16/03/18 03:19:04.04 s6GOoUK6.net
IDEのシミュレータだって予測なんかしてないよ
コンパイルしてバイナリ(HEX)になったものをシミュレートしてるだけ
Cで問題になるのは、コンパイルオプション変えたりリするとシミュレーション時と結果が変わってくる事がある
特にこういう時間待ち系のループなんてのは、最適化でバッサリ削られちゃったりする場合もある
客観的に見れば、単に時間潰しで意味も無い繰り返ししてるだけだからね
個別の、たとえばこういう50msと100msを弁別するというコードを書いてシミュレータで検証して
それでOKになったとしても、他の部分を書いて全体として動かした時に、速度的に厳しくて速度優先で
オプティマイズするとか、コード量が多くてサイズが厳しいからとサイズ優先にしてみたりすると
最初のシミュレータでの検証が意味を成さなくなってしまう事もある。
コンパイラがバージョンアップして出て来るコードが変わってくる事だってある。
コンパイルされてバイナリになってしまったものが突然速くなったり遅くなったりなんて事はもちろん起こらないけど
同じソースをあるプログラムに組み込んだ時と別のプログラムに組み込んだ時。同じプログラムを別のPC環境で
コンパイルした時。同じプログラムを5年後にもう一度コンパイルした時に、結果が変わってくる事もある。
そんな「運が良ければ動きます」みたいなコードを書いてちゃダメ。
だからアセンブラで書きなさい・・・って話ではなく、出て来るコードが変わり得るコンパイラを使うなら
・タイマ割り込みを使う
・フリーランカウンタ値を見る
・delay()系の速度を保証された関数を使う
といった、コンパイラが吐き出すコードに依存せずに常に同じ結果が得られる方法を選択すべき
688:774ワット発電中さん
16/03/18 03:42:55.92 thipX1Ge.net
>Cで問題になるのは、コンパイルオプション変えたりリするとシミュレーション時と結果が変わってくる事がある
>特にこういう時間待ち系のループなんてのは、最適化でバッサリ削られちゃったりする場合もある
最適化されると問題になる部分だけ最適化しないようにすればいいだけでは?
689:774ワット発電中さん
16/03/18 04:32:20.56 K75ENWrz.net
>>667
オプションを変えたり、コードを書き変えたり、コンパイラがバージョンアップしたり、
別のプログラムに組み込んだ時はシミュレーションし直せばいいってことですね。
ええ、もちろん、言われなくてもそうしますとも。
それと、幾度も言ってるように、>>626が
>タイマーを使わずに処理する簡単な方法ってあるでしょうか?
って言ってるからその前提で話をしてるんですよ。
タイマー割り込みを使うなら、そもそもアセンブラである必要性も皆無でしょ。
690:774ワット発電中さん
16/03/18 05:18:24.42 3wZ+fePf.net
>>667
シミュレーションってのは予測のこと。
コードがチップに書き込まれてブートアップしたときにどのように動作するかを予測してIDE上で模倣する。
最初の2行を読んだだけで続きを読む価値がないことがわかる。
691:774ワット発電中さん
16/03/18 05:26:12.44 VyGQITRV.net
>>626
>タイマーを使わずに処理する簡単な方法ってあるでしょうか?
ありません。タイマーを使ってください。
692:774ワット発電中さん
16/03/18 05:33:34.31 s6GOoUK6.net
>>669
>シミュレーションし直せばいいってことですね。
>ええ、もちろん、言われなくてもそうしますとも。
だから、その考え方がダメだって言ってんだけど。
シミュレーションしなおさなきゃいけない所が10ヶ所になったら、コンパイラがバージョンアップするたびに
10回シミュレーションするの?
コンパイラが更にバージョンアップしたら、もう10回しなおすの?
何回もシミュレーションしなおして、毎回OKだったらそのうち「まぁずっと大丈夫だったから多分そのままでもいいよね」
ってなるよね。人間どんどんサボる事覚えるから。
もっと時間が経ったら、シミュレーションし直さなきゃいけない事も忘れるよね。人間だから。
で、ある日大規模なバージョンアップがある訳さ
で、「何だかわからないけど動かなくなってしまったコード」が手元にあって途方に暮れる事になる
そんな事になるぐらいなら、最初から現物合せなんてしなくても良いコード書いとけばいいじゃん。
50msと51msとか、ごくわずかなマージンしか無いのなら現物合せで合せ込まないと仕方ない場合もあるけど
50msと100msみたいに倍半分マージンがあれば、きちんとタイミングを考慮したコードなら無調整で行ける。
693:774ワット発電中さん
16/03/18 05:34:25.67 s6GOoUK6.net
>>670
シミュレータが「予測」しているのはハードウェアの動きであってCコンパイラが吐き出すコードを予測している訳ではない
694:774ワット発電中さん
16/03/18 06:10:34.91 B0lpFJKr.net
>>673
>シミュレータが「予測」しているのはハードウェアの動きであって
つまりシミュレータは予測してるんですね?
あなた
>IDEのシミュレータだって予測なんかしてないよ
って書いてますけど、いったいどっち?
それから、
>Cコンパイラが吐き出すコードを予測している訳ではない
ハードウェアの動きはコードによって決まるんですよ。
動きは予測してるけどコードは予測しないってどういうことです?
コード無しにどうやって動きを予測するんです?
695:774ワット発電中さん
16/03/18 06:44:15.57 6j4MaTIK.net
>>672
高々50ms、100msを区別するだけのコードで、
>シミュレーションしなおさなきゃいけない所が10ヶ所になった
場合を想定し
>ある日大規模なバージョンアップがある
ことを予測した上でコードを書きなさいと、
>タイマーを使わずに処理する簡単な方法ってあるでしょうか?
と聞いてる初心者に勧めるわけだ。
なかなか壮大なスケールですね。
本当にそういう日がやってくるといいですね。
そして、その程度のソースで途方に暮れなかった喜びをぜひ噛み締めてください。
696:774ワット発電中さん
16/03/18 06:44:52.18 gnl1GVLs.net
Cがあるのにアセンブラ
Xがあるのに8.92
タイマーがあるのにnopぶんまわす
どうせ考えるなら
使わない屁理屈を考えるより
使いこなした利益を考えた方が良いと思う
697:774ワット発電中さん
16/03/18 07:03:32.75 lKK825QN.net
えーっと。
なぜタイマーを使わないのでしたっけ。
698:774ワット発電中さん
16/03/18 07:08:52.56 ZkOGaVaS.net
そういう設定だから
699:774ワット発電中さん
16/03/18 07:25:33.18 s6GOoUK6.net
>>674
ごめん
文脈というものを理解できないアスペとは会話が成り立たない事が経験上わかってるので
文脈を理解できないあなたとは対話する気が無い
700:774ワット発電中さん
16/03/18 07:30:19.71 s6GOoUK6.net
>>675
高々50ms、100msを区別するだけのコードで、
>シミュレーションしなおさなきゃいけない所が10ヶ所になった
場合を想定してる訳じゃない
一つ一つは高々50ms、100msを区別する程度の簡単なものでも、その簡単を積み重ねたのが
大きなプログラムだったりシステムだったりするんだよ
だから、簡単な事の段階で、いかに無駄を減らすか、後々の手間を減らすかというのが
大規模なプログラムを作れるようになるか、永遠の初心者Lチカで終わるかの差なんだよ
初心者だからこそ、「動けばOK」ではダメですよって話してんの。
永遠の初心者なんだったら、まあ好きにすればいいよ
701:774ワット発電中さん
16/03/18 07:56:48.96 y9dlYQqt.net
タイマーを使わないって条件自体が意味わからん。
16F84Aだってタイマーあるし、使い方分からんってんなら勉強すればいいだけ。
702:774ワット発電中さん
16/03/18 08:25:49.54 K2lQOBUA.net
きっとレジスタの説明が書いてるデータシートを見るのも嫌なんだよ。
PCで覚えたC言語だけを使いたいのかもしれない
703:774ワット発電中さん
16/03/18 08:34:23.32 Ozd5vTuV.net
>>671
外部からGPSクロックを分周して割り込みをかける
704:774ワット発電中さん
16/03/18 09:00:10.50 8I/7mpyP.net
実際、同じソースなのにコンパイラが吐くコードによって100msが50msに変わることなんてあるの?
705:774ワット発電中さん
16/03/18 09:20:21.06 thipX1Ge.net
>>684
ないよ
ちょっと頭のおかしい粘着質な奴が1人いるみたいだけど趣味の工作でナニ言ってんの?
って感じではある
C18は最適化のあり無しでそこそこ違うコードを吐くけど、XC8はFreeでもPROでも
ほとんど変わらないコードを吐く場合が多い(じゃあPROの存在意義って一体・・・
msオーダじゃなくてμsオーダのパルス計測でループカウント数える処理を
実際に書いて動かしてるけど、PROとFreeで違いは1命令だけだった。つまり1ループあたり
4TCYしか変わらない
706:774ワット発電中さん
16/03/18 10:00:12.45 qWmbEhQK.net
>>685
最適化の設定同じなら、結果も同じ。
スタンダードやプロだと、高度な最適化の設定が可能と言うだけ。
プロとスタンダードの意義は、サポートが有るかどうかだと思う。
707:774ワット発電中さん
16/03/18 10:34:07.69 thipX1Ge.net
ちなみにCで書いてコンパイルして、出来上がったLISTファイル見て生成された
コードを確認してループに1周に必要なクロック計算して、ループ1周がきっちり
希望の処理時間になるようにNOPを入れて調整してる
これってCで書いた事になるの?アセンブラで書いた事になるの?
ID:s6GOoUK6 に言わせるとこの手法だと「ある日大規模なバージョンアップ」
があったら全てが駄目になるらしいけど、いちいちコンパイラがバージョンアップ
するたびに再ビルドしてる訳でもないし俺はこれで何の問題も無いわw
708:774ワット発電中さん
16/03/18 12:12:50.96 K4RgExsc.net
なんでPIC関連スレって何の話題でもアセンブラ対Cに帰結してしまうのかね。
「AKBグループ、誰推し?」とか降ってもそっちに持って行きそうだなw
709:774ワット発電中さん
16/03/18 12:15:45.13 K2lQOBUA.net
そもそもXだとコンパイラを複数バージョン入れて設定で選べるから
コンパイラのバージョンアップがどうのこうのは関係ない
710:774ワット発電中さん
16/03/18 14:11:07.67 2TpIuQBi.net
>>ID:s6GOoUK6
タイマー割り込み使え
は正しいんだけど、そこまでの話の展開上にホラ、空想、妄想が多すぎて結論がかすむ
そもそも、>>669の言外に「アンタの言うような状況にゃならんよ」が含まれていることさえ読めない
そして最後にたどり着くのは、プロのプログラマとしての心得が云々で、結論は
>まあ好きにすればいいよ
所詮「PICを使った趣味の電子工作遊び」なのに何必死こいてんだかw
711:774ワット発電中さん
16/03/18 14:28:20.95 VyvrgaYz.net
>>680
>高々50ms、100msを区別するだけのコードで、
>>シミュレーションしなおさなきゃいけない所が10ヶ所になった
>場合を想定してる訳じゃない
そう、そのとおり
だからあんたの言うような心配は無用
712:774ワット発電中さん
16/03/18 14:45:34.01 8GnrbyGV.net
ID:s6GOoUK6
書きも書いたり1634文字
これ見てると、たいそうな御託をだらだら並べてる暇に
タイマー割り込みのコードの例でもちゃちゃっと書いてやりゃあいいのにって思う
こういうジイがはびこるから
趣味の電子工作の分野でArduinoに母屋を明け渡す羽目になったんだとつくづく思う
713:774ワット発電中さん
16/03/18 17:43:47.17 JCZjQYQa.net
PICスレもAVRスレも不毛の荒野だな
「性善説」を信じている人間も読めば考えが変わるだろう
714:774ワット発電中さん
16/03/18 19:10:02.83 fFAsgR9t.net
毎回おもうが初心者と上級者の棲み分けしようよ。タイマー使わないなら使わないでいいよ。初心者なんだから。
アセンブラやhexの話題はいらないわ。
715:nyannnyannko
16/03/18 19:15:44.13 4DsyICk0.net
PIC使いたいの?
手ほどきしよか?
716:774ワット発電中さん
16/03/18 19:48:02.84 a9J8rdsz.net
>>694
アセンブラでなきゃー
大規模なバージョンアップがあったときにー
コンパイラのオプションが変わったらー
こういうのは上級者じゃない
ただの上級者気取り
分けるならIDEのバージョンとかアセンブラかCかで分ける方がいい
717:774ワット発電中さん
16/03/18 19:58:25.10 NoGbcRTC.net
>>696
かなり古いCCSCなら認めてやってもいい、たまに同じソースでエラー吐くからアレw
718:nyannnyannko
16/03/18 20:07:16.63 4DsyICk0.net
c言語でも最終的にはアセンブラで動いている
翻訳されたc言語も逆アセしてた
浮動小数点数演算をアセンブルで書くのはナンセンスここはc言語の得意分野
実行時間がマイクロ秒が必要な演算ルーチンは場合は全てクロックを数えてた
適材適所 マイクロチップのc言語、翻訳されたアセンブラ割り込みを重点的に
全部読んでた?気に入らなかったらアセンブラで書き直してた
SHARPのX1が全盛時代だった頃のペンネームは
祝1/2平 祝さんの半分ぐらいかなって思ってたから
719:774ワット発電中さん
16/03/18 20:21:13.52 8I/7mpyP.net
祝一平はとっくの昔に死んだじゃんアホか
720:774ワット発電中さん
16/03/18 20:53:07.34 a9J8rdsz.net
>>697-699
検索かけないと何の話か分からんわw
721:774ワット発電中さん
16/03/18 21:32:09.56 8YZt2S4C.net
23時間ぶりに来たら殺伐としてたw
722:774ワット発電中さん
16/03/18 21:37:26.44 a9J8rdsz.net
殺伐が終わってカオスの時期に入ってるよ
723:nyannnyannko
16/03/18 21:44:41.45 4DsyICk0.net
PICをどの程度使いこなしたいかで話は変わる
外付け部品なしで簡単に使うなら c言語で実行時間無視でいいじゃん
PICを骨までしゃぶりたいならアセンブラ必須
ここまで私の意図にそうした行動してくれる事に感激
この時PICの動作周波数が最高速度ではないことにも注目ね
UARTの整数倍になってる
724:774ワット発電中さん
16/03/18 22:21:42.35 a9J8rdsz.net
PICkit3 がブリックした人どうなったかな?
725:774ワット発電中さん
16/03/18 22:31:21.92 a9J8rdsz.net
あ、ごめん、書き込み用互換機待ちだったね。
726:774ワット発電中さん
16/03/18 22:45:48.76 lKK825QN.net
PICを骨までしゃぶる必要がある人ってどれぐらいいるんだろう。
何万個も量産で使ってるような人かな。
OS自体を組む人ならともかく、PICでアセンブリ言語をごりごりやる必要性があるなら
もっと速いCPU使えば良いような気がする。
PICを使うこと自体が目的なら、アセンブリも楽しいだろうけれど、
こうでなくちゃいかんみたいに言っちゃ良くないと思う。おおらかにいこうぜ。
727:774ワット発電中さん
16/03/18 23:09:22.74 a9J8rdsz.net
>>706
あまり相手しない方がいいと思うよ
文章読んだ限りじゃちょっとあれだから
728:nyannnyannko
16/03/18 23:15:50.85 4DsyICk0.net
もう10年以上経つからね
後閑さんのHPに投稿しなくなったし
729:774ワット発電中さん
16/03/18 23:44:58.57 YBPuvPbA.net
今日も不毛な議論が続く
730:774ワット発電中さん
16/03/19 00:24:55.60 lnlBNVll.net
おじいちゃんの趣味
時間をかけて盆栽を育てるのと同じ
優しい植物の育てかたの井戸端会議で
盆栽のうんちくを語りだす
本人だけは満足
731:774ワット発電中さん
16/03/19 04:03:40.78 8HKYRpCT.net
.
みなさん、雑談するなら、PIC専用のスレ 52 に行ってください。
ここは、僕ら初心者が質問する場所です。
知ったかの先輩たちが、傷をなめ合ったり、知識自慢するところではありません。
X1とか言われても何のことだかわかりません。(CPU違うし)
むこうのスレに閑古鳥が鳴いています
お願いですので、雑談はあっちのスレでお願いします。
僕たち初心者が質問てきません。
732:774ワット発電中さん
16/03/19 06:41:21.58 dh6dpEYP.net
>>711
で、質問は何?
733:774ワット発電中さん
16/03/19 07:40:50.10 LyxoO7u4.net
人の作ったHEX書き込んで動かすので精一杯
734:774ワット発電中さん
16/03/19 08:06:15.10 635XmAGE.net
>>712
X1について知りたい様子
735:774ワット発電中さん
16/03/19 08:09:55.53 KyWjx3kV.net
いつものモンスター初心者か
736:774ワット発電中さん
16/03/19 09:43:31.32 4R+9MpKs.net
知ったかの先輩は永遠の初心者なんだよ
わかってやれよ
737:774ワット発電中さん
16/03/19 10:10:39.60 n1UbKQVv.net
パルスの定義が曖昧なんだよなぁ。デューティー比も書いてないし。
>>706
そのあたりは、その人の都合次第じゃないかねぇ。
一番早いCPUを使ってでもゴリゴリやらないと駄目な場合も有るだろうし、
パッケージの都合とか価格の都合とか、逆に余裕が有るからそこまでギチギチにしなくていい場合もあるし。
自分の場合はプログラムそのものを楽しむ方だから基本的にギチギチ派だけどw
これだけの処理速度が稼げるのならもっと詰め込んでしまえ!とw
目的が決まっているなら楽な方にする。
738:774ワット発電中さん
16/03/19 12:07:10.66 PQLehE14.net
>>706
パッケージサイズやピンサイズから来る制約(コンストライント)もあるね
使おうとしてたピックが14ピンなんだけど微妙に処理速度やメモリー(プログラム
メモリー領域やフラッシュエリア)が足りない、でも上位品種はピンの数がいきなり
28ピンまでピンの数が増えてしまってそうするとプリント基板のプリントパターンの
設計から見直さなきゃならなくなるのでパターンの設計は見直したくないので
出来るだけ今使ってる14ピンのピックのままで作業を進めたいとか
特にマイクロチップのピックはこの傾向
739:が強いね
740:774ワット発電中さん
16/03/19 12:21:36.03 ptTWuu9O.net
>>717 >>718
ギチギチ派だったり、そのCPUでなくちゃダメだから頑張るのは構わないんだが、
他人にもそうであれと言うのはおかしいなって言いたかった。
特に少量のものを作るぶんには、PICにそれほどの価格的な優位性はないんだし、
組みやすいもので組めば良いよね。
741:774ワット発電中さん
16/03/19 16:32:39.59 KWlgN4sB.net
>>718
実は基板作り直したほうが工数考えるとうんと安いんだけど、
素人乞食と文系上司は工数タダだと思ってるからな
742:774ワット発電中さん
16/03/19 16:45:42.34 Kt6iJiB/.net
>>718
初心者に最初からそんなギリを体験させる必要はない
仮に上級者だとして逆にそんな設計しか出来ない時点で何だかなって感じ
初心者は当面は16F1以降の18ピン以上を使えばいい
743:774ワット発電中さん
16/03/19 16:53:02.05 rf9d6UK6.net
初めてのPICでアセンブラで命令ワード数・実行クロックを数えながらギチギチで作るとか無理いわんといてw
744:nyannnyannko
16/03/19 16:53:44.84 GFNtIMIb.net
以前PIC18f452 とKL5C16030 のCPUのバグを指摘した事がある
その時の反応と同じだね
あんたなんかに我が社のCPUのバグなんか見つけられる訳がないって言われた
証拠をきっちり出したら驚かれた
ちなみに18f452の時は米国のPICフォーラムが大荒れして一時閉鎖された過去がある
金返せとかうんことか汚い言葉だらけになった