16/06/16 21:19:45.60 3as7yhK7.net
>>438
なんで1msタイマで255msまでしか数えられないのかわからんな。
どんなカウントしてるんだか?
465:774ワット発電中さん
16/06/16 21:38:42.54 xSrSrmAS.net
PIC自身のワード幅とタイマーとCのintを混同している気がする
8bitPICでも16bitタイマーはあるし、Cのintなら16bit
466:774ワット発電中さん
16/06/16 21:39:14.03 6gKpuizv.net
>>438の言ってることがほとんど理解できない。
修行し直してくる。
467:774ワット発電中さん
16/06/16 21:59:33.68 I7UbZ/Bk.net
>>438
自作なら、PIC24にいった方が幸せ。
量産で、1円単位でコストダウンしたいなら、8bit だが。
468:774ワット発電中さん
16/06/16 22:00:56.19 PJjXV6+V.net
こんなことをやっているのでは?
グローバル変数をタイマー割り込みでインクリメントする。
メインのループでその変数を参照する。
その変数が16ビットであって、メインループで上位下位の順に参照するとする。
上位を参照→割り込み発生インクリメント→下位を参照、でトラブル。
469:774ワット発電中さん
16/06/16 22:28:56.43 I7UbZ/Bk.net
>>445
普通、多バイト演算するときは、割り込み禁止するだろ?
470:774ワット発電中さん
16/06/16 22:47:17.49 PJjXV6+V.net
>>446
禁止していないから>>438みたいな悩みになるんじゃないのかな。
471:774ワット発電中さん
16/06/16 22:58:41.12 tUwZfKcK.net
そういや昔スーパーでレジのバイトしてる時に、ばばあ二人が割り込みしたのしないのと
大喧嘩。おれがバイトしてる時には割り込み禁止だ。そういう意味かな。
472:774ワット発電中さん
16/06/16 22:58:49.63 kCb1HdO3.net
>>446
じゃあ>>438は何をやってると思うの?
>>438が普通でない前提でみんなレスしてるんだが?
473:774ワット発電中さん
16/06/16 23:00:54.11 hY962zuS.net
お前らホント馬鹿ばっかりだな。
まともなのは>>443だけ。
474:774ワット発電中さん
16/06/17 03:51:17.39 BX9RSG9C.net
>>445が正解です。
タイマー割込で正確な時間を管理しようとしているのに、
割込を禁止するってどうよ?
解決策は、
グローバル変数に、int16_A, int16_B を取って、
タイマー割込の中では、int16_Aをint16_Bにcopyして、int16_Aを壊さないように処理。
結果は_Bに格納。
メインでは、int16_Aを使う直前に、_Bからcopyして使う。
475:774ワット発電中さん
16/06/17 04:16:22.92 Q9eXm22W.net
>451
>メインでは、int16_Aを使う直前に、_Bからcopyして使う。
8bitマイコンで16bit分のコピー(MOV)だと2命令以上になるからその間に割り込み
入ったらダメだと思うけど(ちょうど桁上りしなければ問題ないが)
476:774ワット発電中さん
16/06/17 05:14:29.86 F3z7X/Xm.net
>>452
そもそも元の問題も、ちょうど桁上がりしてる時でなければ問題ない
>>451はコードを複雑にしてるだけで何ら問題の解決になってない
(問題の縮小にすらなってない)
477:774ワット発電中さん
16/06/17 05:51:25.65 lItx3LmK.net
>>453
コピー直後にABの値を比較して、もし変化していたら再度コピーすればいいね
確率的に無限ループにはならないかと
478:774ワット発電中さん
16/06/17 06:35:32.20 F3z7X/Xm.net
そもそもジャンプ系の2ステップ命令実行時に割込みが発生したら1ステップずれるという問題もあるから
タイマー割込み→カウンタークリア→カウント再開(変数インクリメント)
という手順では正確なカウントはできない
やるならカウンターはフリーランにしておいて、
オーバーフローで割り込み→変数インクリメント
という手順にする必要がある
後者の方法であれば、変数を使う時に割り込み禁止しても変数インクリメントのタイミングが
遅くなる場合があるというだけでオーバーフローの回数を数える処理としては問題ない
479:774ワット発電中さん
16/06/17 06:54:32.45 oYnN0xgs.net
正確なインターバル欲しければハードウェアしかないだろ。
ソフトウェアタイマーはズレ承知で使う物
480:774ワット発電中さん
16/06/17 07:20:37.29 nqlh3TII.net
>>455
カウンタクリアをソフトで実施するからまずいってことではない?
481:774ワット発電中さん
16/06/17 07:23:17.13 /4keYfit.net
>>456
アウトプットコンペア、とかも有るしな。
482:774ワット発電中さん
16/06/17 08:20:08.18 jpZ3b4Dj.net
たかが1ms程度、割り込みでフラグたてて帰ってきて、mainでインクリメントして、どれだけ誤差が出るのか?
メインでだらだら重たい処理全部書いてるんじゃねーのかね?
483:774ワット発電中さん
16/06/17 09:29:22.65 NhsROuHO.net
割込みで問題出るならもっと高性能なもの使えばいいだけ
わざわざトロイ物使ってること自体が問題では??
484:774ワット発電中さん
16/06/17 10:46:52.44 3P/WD7/b.net
>>455
>そもそもジャンプ系の2ステップ命令実行時に割込みが発生したら1ステップずれる
割り込み源がCPUクロックに同期している限りではずれない。
1ステップ命令時にはNOPが挿入される。
485:774ワット発電中さん
16/06/17 10:58:55.04 jTbWdtJb.net
>>459
並行して使うタイマーが1000個とかあったらどうよ?
弾幕ゲームとかキャラ数何個だと思ってる?
486:774ワット発電中さん
16/06/17 13:08:51.67 lN8K2SKw.net
>455
CCP機能に SPECIAL EVENT TRIGGER という便利な機能があるのでそちらを使えばいいだけ。
TMR1が指定値になったら自動でリセットされ、CCPの割り込みが発生する。
487:774ワット発電中さん
16/06/17 13:20:34.88 F3z7X/Xm.net
>>457
だから>>455でそれがダメだって話をしてんじゃん
>>461
割込み頭で自動調整されるInterrupt Latencyって4桁型番になったあたりからの機能でしょ
8bitPIC全般の話(少なくとも型番指定されていない話)してる訳で・・・
488:774ワット発電中さん
16/06/17 13:41:58.52 3P/WD7/b.net
>>464
そんなことはない。16F690だってそうなってるよ。
PICはPeripheral Interface Controllerだけあってその辺は良くできている。
489:774ワット発電中さん
16/06/17 13:54:40.07 jpZ3b4Dj.net
>>462
意味わからん。
それをタイマー割り込みの内部で処理させるほうがよほどおかしいと思うが?
490:774ワット発電中さん
16/06/17 14:41:02.91 PmgxiNEt.net
結局
2命令処理�
491:フ途中でタイマー割込がかかったときの対策は、ないんでしょ?
492:774ワット発電中さん
16/06/17 15:38:58.50 lN8K2SKw.net
>464
いや古いチップでも2ステップ命令実行時でも割込みタイミングはずれないよ。
PIC16F84(A無しの相当古いチップね)のデータシートより
URLリンク(i.imgur.com)
URLリンク(i.imgur.com)
勘違いしてる人多いけど、1サイクル命令も2サイクル命令も命令フェッチと実行に1サイクルずつ計2サイクルかかってるのは変わらない
1サイクル命令だと前の命令の実行と次の命令のフェッチが同時に行われるので見かけ上 1サイクル動作に見えるだけ。
2サイクル命令は前の命令の実行でPCが変更されるため同時に行ってる次の命令のフェッチが無効になり、次のサイクルで再取得の為
2サイクルまるまるかかることになる。
つまり割り込み掛かった時点の命令が完了するタイミングは1サイクル命令も2サイクル命令も変わらない。
割り込みの場合 図(FIGURE6-4)でいえば Inst(PC)まで実行される。Inst(PC+1)のフェッチはキャンセルされる。
493:774ワット発電中さん
16/06/17 16:15:15.43 lN8K2SKw.net
>467
>2命令処理の途中でタイマー割込がかかったときの対策は、ないんでしょ?
2命令というのが2サイクル命令という意味なら>468で書いたように1サイクル命令も2サイクル命令も差はない。
2命令が割り込み内で更新される16bit幅のカウンタか何かをメインルーチンで取得するという意味なら
A)>454のように2回取得して比較する。TMR1の取得にも使われる(PIC18FのTMR1は改良されてるね)
B)取得する間 割り込み禁止にする
Aはコードが面倒くさい。
Bは割り込みに入るタイミングがずれるので、割り込み内でTMRの再設定してたら蓄積されるズレが生じる。
ただTMRをフリーランで動かすなり、>463で書いたCCP機能つかえば蓄積されるズレは発生しないので
問題はないはず。もしこの数命令の短い割り込み禁止のタイミングすら問題となるなら、それはメインルーチンで
処理する内容ではなく割り込みルーチン内で処理するべき内容かと
494:774ワット発電中さん
16/06/18 00:22:10.99 gLnwO2Wr.net
>もしこの数命令の短い割り込み禁止のタイミングすら問題となるなら、それはメインルーチンで
処理する内容ではなく割り込みルーチン内で処理するべき内容かと
そうとは限らない。おつむの能力の問題だな
495:774ワット発電中さん
16/06/18 04:11:28.80 Q44NuWBq.net
volatile int val16;
void interrupt intfunc( void )
}
val16++;
}
int getval16( void )
{
int i;
di();
i=val16;
ei();
return i;
}
void main( void )
{
int j;
for(;;){
for( j=getval16(); j==getval16(); ){}
}
}
アセンブラ至上主義者には言いたいこともあろうが、割り込みで変更される可能性がある変数を参照するときは、専用の関数を用意すれば問題無し。
496:774ワット発電中さん
16/06/18 04:55:07.36 IFaudQVm.net
割込を禁止してるけど、定時になったときに仕事できないと思う
497:774ワット発電中さん
16/06/18 06:08:42.13 y8/e0mwO.net
EEPROMは電源切っても消えないデータってのはしってるけど
データSRAMってなんのこと?
どうゆうとき使うんだろ
498:774ワット発電中さん
16/06/18 06:52:27.43 RdEZPIYR.net
>そうとは限らない。おつむの能力の問題だな
具体的に書かずに誹謗だけするのはなぜなんだろな。この人のこの面は良くないと思う。
>>472
割り込みを禁止している期間は割り込み関数の起動の遅延をもたらすわけだけど、
その遅延がどれぐらい問題になるのか、問題にならないのかは用途次第だよね。
タイマー動作を突き詰めれば、(CPU内蔵のものを含めた)ハードウェアの支援がより必要に
なるし、そうすると場合によってはCPUの選択肢を狭くする。これぐらいは問題なし、と
言えるものなら、よりコストが低い方法も採れる。
499:774ワット発電中さん
16/06/18 06:55:44.64 RdEZPIYR.net
>>473
最近のPICには、内蔵(あるいは外付け)のRAMとは別に、
「DATA SRAM」っていう特別な機能があるのでしたっけ。
500:774ワット発電中さん
16/06/18 12:28:07.30 y8/e0mwO.net
>>4
501:75 サンクス
502:774ワット発電中さん
16/06/18 13:14:05.56 IhMw1bto.net
>473
EEPROMには大きな欠点が2つあり、第一に書き換え回数による寿命がある(品種により違うかもしれないが100万回程度)
第二に書き換えるのに時間がかかる(数ms程度) 1サイクルで書き換えできるSRAMと比べると1万倍位遅い事になる。
この欠点により電源ONの動作中に使うにはEEPROMは不適切で、書き換え寿命が無く高速なSRAMを動作中はメインに使うことになる
503:774ワット発電中さん
16/06/18 13:31:37.77 TTdLfpHD.net
>>473
そこで言うデータSRAMとは単にメインメモリ位の認識でいいです
一時的な変数を格納したり、関数行ったり来たりする際のワークに使ったりと
そういう使い方です
プログラムメモリはその名の通りプログラムコードを格納してある場所で、
普通はNANDフラッシュ領域で書き換えて使うことは稀です(最近はEEPROMの
変わりに使ったりしますが)
504:774ワット発電中さん
16/06/18 13:32:44.04 TTdLfpHD.net
>>475
いや、単に内蔵RAMの事をデータSRAMと読んでるだけ
どっちも同じ
505:774ワット発電中さん
16/06/18 13:42:19.12 upMq/c71.net
マイクロチップのバッテリーバックアップつきI2C接続のSRAM買ったけど眠ったままだわ
506:774ワット発電中さん
16/06/18 16:28:13.03 8QqRPwfy.net
入れる物の名前+メモリ と
動作特性の名前+メモリ など、いろいろ呼び方があるから、
チェリーな僕は混乱してしまいます。
Flash PROM
・プログラムが格納されているメモリ。RAM変数の初期値も書かれている
・プログラムで書換はできない
・電源offでも消えない
・容量 32kWとか大きい
SRAM
・計算に使用するメモリ。スタックとか変数とか
・プログラムで書換する
・電源offで消えてしまう
・容量 384byteとか
・データメモリとも呼ばれる
EEPROM
・プログラムで書換できる
・電気offしても覚えてる
・でも書込みが遅い
・容量 512byte とか
507:774ワット発電中さん
16/06/18 16:52:59.70 RdEZPIYR.net
>>481
PICマイコンをお使いになるぶんには十分な理解だと思います。
略語は一度は元が何なのかを調べておかれる方が良いです。
Flashメモリの「PROM」が微妙でして、Microchip ではFlash program memory って呼んでる
と思います。 プログラムを格納するメモリですね。
ROMは Read Only Memory が元になっています。
書き換えできるのに Read Only って変ですが、今では、RAMほど自由に書き換えできないって
ぐらいの意味しかないと思います。
前についているPですが、世間でPROMといえば、programmable ROM でして、これはプログラムを格納する
ではなくて、「プログラム(書き込み)可能な」です。
Flashメモリ自体は、仕組みはいろいろあるのですが、プログラムを格納するものとは限らず、身近な
SDメモリカードなんかはデータの保存に使いますね。
508:774ワット発電中さん
16/06/18 18:58:03.79 VzLBq0EK.net
>>481
釣られません
509:774ワット発電中さん
16/06/18 19:36:19.95 dH9BoPVT.net
MRAM使えば全て解決
510:774ワット発電中さん
16/06/18 19:59:03.65 8QqRPwfy.net
>>482
どうもありがとうございます。
略語の語源を知ると、理解が深まりますね。
EPROM = Electric Program Read Only Memory
EEPROM = Electric Erasable Program Read Only Memory
ですね。
FRAM とか
511:774ワット発電中さん
16/06/18 22:32:07.91 OYYIGxs1.net
EPROMはErasable PROMだよ
512:774ワット発電中さん
16/06/18 22:42:51.80 RdEZPIYR.net
MRAMはちょいと消費電流が大きいと思う。
でも、バックアップが要らなくてアクセスタイムがSRAMみたいに速いのはいいね。
使ったことはないけれど、TIのFRAMマイコンって惹かれる。
同じメモリをプログラムエリアにもRAMエリアにも使えるんだって。
PICだとこういうのは難しい
513:かな。
514:774ワット発電中さん
16/06/18 23:13:47.07 8QqRPwfy.net
>同じメモリをプログラムエリアにもRAMエリアにも使えるんだって。
すごい。ちょっと感動。
でも、しっかりブロックしておおかないと、ROM領域に書き込んでしまったら
大変なことになりそうですね。
515:774ワット発電中さん
16/06/18 23:33:51.82 sIeOwce3.net
ハーバードアーキテクチャでググって
516:774ワット発電中さん
16/06/19 10:16:29.28 zV699GXB.net
自己書き換ぇ…
517:774ワット発電中さん
16/06/19 12:11:32.70 +g8FOTp+.net
>>487
MRAMは磁界に晒すと記憶が飛ぶのみならずぶっ壊れるって聞くからこわい
518:774ワット発電中さん
16/06/20 03:44:05.56 GXzOPeZL.net
ピックでLEDをキラキラさせたいんですが、電気制限抵抗なしでも大丈夫でしょうか?
それがないと大電気が流れてLEDを死なせてしまうというのは理解させたのですが、
プログラムてきにすごい短い時間だけ光らせるようにすれば制限抵抗がなくても
大丈夫だったりしませんでしょうか?
例えば「0.1μセック点灯→5μセック消灯→以下繰り返し」みたいな感じです
519:774ワット発電中さん
16/06/20 06:49:33.02 5C0mnaMD.net
どちらかと言うと死ぬのはPIC側
520:774ワット発電中さん
16/06/20 07:35:46.56 DbAy/U7M.net
物理的にぶっ壊れるまえに全ポートの電流合計上限越えると
プログラム暴走すっから気を付けてね。
521:774ワット発電中さん
16/06/20 09:09:16.92 zUsmHOZu.net
>>494
どう暴走すんの?原因はなんなんですかね
522:774ワット発電中さん
16/06/20 09:22:48.45 zmbZWlog.net
当然だけどプログラムが不意に停止(ICSP書き換えとか含め)すると流れっぱなしになるよね
それでも3V電源なら直結流れっぱなしでも25mAに届かないと思う、
5Vだとヤバいかな(適当)と思う
523:774ワット発電中さん
16/06/20 10:07:47.61 DbAy/U7M.net
Lレベル上がっちまうからじゃね?<暴走
524:774ワット発電中さん
16/06/20 10:11:37.54 DY5ovjmj.net
>>492
抵抗なしは、ダメです。
必ず抵抗を入れています。
525:774ワット発電中さん
16/06/20 11:21:26.62 BjJhKEYl.net
抵抗は損失があるから
LEDに噛ますのは電力が勿体ないな
スイッチングして省エネに決めたくなるなw
526:774ワット発電中さん
16/06/20 17:10:35.84 CiFFnWBS.net
>>492
抵抗入りLEDが便利ですよ
527:774ワット発電中さん
16/06/20 17:54:11.36 ApsmG4i+.net
>>499
スイッチングするにしても、抵抗なしではダメでしょ
528:774ワット発電中さん
16/06/20 18:01:47.62 DbAy/U7M.net
ネタだからそれ、
529:774ワット発電中さん
16/06/20 19:02:12.25 NImi7+kP.net
スイッチングする前提なら、コイルを使えば良いのよ
530:774ワット発電中さん
16/06/20 19:11:30.26 NImi7+kP.net
>>472
割込みの応答時間が問題になるなら、
フラグを1つ用意すれば対応できるけどね。
531:774ワット発電中さん
16/06/20 20:05:37.94 xBDZgxE0.net
自分も質問があるのですが12F1827で100Hzから1Hzまでの周期をカウントして7セグLEDに表示したいのですが、どの様なカウント方法が良いでしょうか?
7セグでタイマー1は使っています。
532:774ワット発電中さん
16/06/20 21:07:48.16 02+eSUFs.net
周期って何の周期?
PICに波形が入ってくるの?
533:774ワット発電中さん
16/06/20 21:48:02.68 FRe37nqg.net
月に一度の・・・
534:774ワット発電中さん
16/06/20 22:19:45.42 NImi7+kP.net
給料日?
535:774ワット発電中さん
16/06/20 22:31:47.88 Kx8k00rQ.net
インプットキャプチャ?
536:774ワット発電中さん
16/06/20 22:32:06.94 5crJfF4B.net
>505
CCP機能のCAPTURE MODEを使って周期の間の時間を測って逆数を表示させるのが良さそうなんだけど
CAPTURE MODEはタイマー1限定なんだよね・・・
まあ16F1827はタイマーはいっぱいあるようだから、1秒(に近い値)を作るのと周期をカウントするタイマーで
二個使えばいいんじゃない
537:774ワット発電中さん
16/06/20 22:43:36.45 ZXFv1aa+.net
外付けのFRAM使ってるけど値段も安いし動作は高速で
快適に使えています。
しかも低消費電力・・・・
寿命も10の15乗とかなり長い・・・
書き換え時間は100ns,バイト単位で書き換え可能、
538:774ワット発電中さん
16/06/21 00:40:03.63 qBoZzscp.net
寿命がある時点でダメだな
539:774ワット発電中さん
16/06/21 07:55:29.01 9YSV01el.net
電解コンデンサはもっとだめだな
540:774ワット発電中さん
16/06/21 12:49:50.89 wOVH2aLt.net
セラコンで済ませる
541:774ワット発電中さん
16/06/21 12:52:49.88 BT560blq.net
セラミコは大容量の物が少ないし、大容量のMLCCは特性がなぁ
ケミカルをセラミコで置き換えるのはなかなか難しい
542:774ワット発電中さん
16/06/21 12:57:45.01 /0VRA1rB.net
10^15回かぁ。
1μsに一回書き換え続けたとして、電源入れっぱなしでも
10^15/10^6/3600/24/365≒31.7年
ってとこか。
543:774ワット発電中さん
16/06/21 16:19:37.29 heRNbx9Y.net
ちょっと前に真空中で動かす基板を設計したことがあったけど
ケミコン使えないのでセラコンで設計したな。
ま、なせばなる。
544:774ワット発電中さん
16/06/21 17:23:57.55 Zw5hrYNb.net
そういや、あちらの参考回路だとタンタルコンデンサが良く使われてるよね。
545:774ワット発電中さん
16/06/21 17:37:32.38 jyH1gbg/.net
>>518
昔は今の積セラ位性能がいいのってタンタルぐらいだったからね。
ヒューズタンタルですら信用置けないってなったのと、積セラの性能向上で駆逐されつつあるけど…。
あと一桁って所には使うのかな?
東芝か富士通は使用禁止されてたはずだけど。
546:774ワット発電中さん
16/06/21 18:19:36.38 9YSV01el.net
タンタルはショートモードで壊れるし
547:774ワット発電中さん
16/06/21 20:26:06.67 ugOoiGxG.net
オーディオ信号のカップリングには今でもタンタル使われているよな
セラミックは非直線性で波形が歪むから
548:774ワット発電中さん
16/06/21 20:50:49.34 tawZgEdV.net
先日、16F1825買ってみたけど、いまだにLチカすらできません。
14ぴんの16F1825と20ピンの16F1829は兄弟らしいので便利だととびついたのですが、甘かった。
いろいろ検索してみたけどだれも使ってないのかXC8のサンプルプログラムがみつかりません。
そこでどなたかお願い、16F1825,あるいは16F1829のLチカのXC8版プログラムおしえてください。
549:774ワット発電中さん
16/06/21 21:03:06.25 iEQfy0sw.net
>>522
"16F1829"でグーグル検索すると一番上に出てくるサイトはもう見ましたかね?
「PIC16F1829使い方:16F1829覚書」
というのが出ると思うので、そのサイトをじっくり、リンク先も含めて読んでみて。
URLリンク(www.geocities.jp)
550:774ワット発電中さん
16/06/21 22:48:43.57 JuJL1MND.net
タンタルは昔これしか使えるものがなく多用してましたが
故障したときの原因究明でかなり苦労させられたのと
今ではそれほど性能がよくありません。
今では、セラコンとOSコンで使い分けしています。
(電解コンデンサでもかなり性能のいいものもありバカには出来ないと
思い知らされたこともありました)
551:774ワット発電中さん
16/06/21 23:57:48.03 A5UcbI3o.net
アナログはスチコンかポリプロピレンだな
もちろんメタライズじゃダメだ
552:774ワット発電中さん
16/06/22 00:51:55.47 QZUC4o6W.net
>>521
歪みはどのコンデンサでも少なからずある
セラミック使わない一番大きな理由は圧電効果でノイズ源になるから
553:774ワット発電中さん
16/06/22 01:20:24.66 HS5lkcQm.net
>>523
読みました
「16F1827と殆ど変りません、ですから異なる所のみ記述して置きます、
後は16F1827覚書を参考にして下さい。」
と言うことなので16F1827のプログラムを多少変更してやってみたんですがだめでした。
変更と言ってもとりあえずはPORTB をCにくらいは変えましたが。
554:774ワット発電中さん
16/06/22 01:30:48.99 1bAMysSS.net
>>527
大丈夫だと思うけど、
・ポートのI/O方向は出力にしてるよね?
・ポート入力は、PORTxx という記述で、
ポート出力は、LATxxという記述だけど、大丈夫?
とりあえず、全ポート出力に設定して、
1ピンだけのI/Oはやめて、8ポート全部まとめて
LATに0xff、タイマーで待ち、LATに0x00、タイマー待ち
をやってみれば、兼用ピンの無いピン1つくらいは、出力on/offすると思う。
555:774ワット発電中さん
16/06/22 05:42:55.38 HkqhOfDo.net
10F200から始めればいいじゃない
556:774ワット発電中さん
16/06/22 09:50:04.88 xYzV1HPx.net
>>522
ほれ
#include <xc.h>
#pragma jis // 日本語文字列を使うための宣言
// Config wordsの設定
#pragma config MCLRE=OFF, PWRTE=ON, WDTE=OFF, FOSC=INTOSC, LVP=OFF, PLLEN=OFF
// CP=OFF,CPD=OFF,BOREN=ON,CLKOUTEN=OFF,IESO=ON,FCMEN=ON,WRT=OFF,STVREN=ON,BORV=19は設定不要
#define MHz 1000000
#define _XTAL_FREQ 32*MHz // 32MHz
void DelayMs(int cnt){
while(cnt--)
__delay_us(1000);
}
// 初期設定
void InitPic(void){
// 内蔵クロック設定
OSCCON = 0b11110000; // 8MHz Internal OSC with 4x PLL
// IOポートの設定
OPTION_REG = 0x05; // Prescaler 1/64 for 32MHz Clock
PORTA=0;
ANSELA = 0b00000000; // アナログ入力OFF
LATA = 0;
ANSELC = 0b00000000; // アナログ入力OFF
LATC = 0;
}
// 主処理
void main()
{
InitPic(); // 各種初期化
TRISC=0; // ポートCをすべて出力に設定
for(;;){
LATC=1; // ポートCのbit0のみをHにする
DelayMs(500); // 500ms=0.5s何もしない
LATC=0; // ポートCをすべてLにする
DelayMs(500);
}
}
557:774ワット発電中さん
16/06/22 20:34:03.90 HS5lkcQm.net
>>530
ありがとうございます
感謝!感謝!
558:774ワット発電中さん
16/06/26 15:48:51.96 t6MAzMNx.net
16F1827ですがRA5を出力で使おうとしたところ出力が出ないのですが何か設定など有るでしょうか?
MCLRは使用しないにして
ポートをデジタルにするために
ANSELA=0b00000000;
ANSELB=0b00000000;
コンパレータも使用しないので
CM1CON0.C1ON=0;
CM2CON0.C2ON=0;
として
入出力は出力なので
TRISA =0b00000000;
としています。
RA5ポートを出力にする場合他にも関係するところなど有るでしょうか?
よろしくお願いします。
559:774ワット発電中さん
16/06/26 16:12:12.33 wuA
560:RKIMp.net
561:774ワット発電中さん
16/06/26 16:24:36.87 t6MAzMNx.net
>>533
そうなんですか?
データシートにOutput type CMOSと書いてあったので安心しきってました。
16F88から乗り換えたばかりで解らないことだらけです。
562:774ワット発電中さん
16/06/26 18:18:14.55 SoQORQ8P.net
>>533
16F88だってRA5はインプットのみでしょ、MCLRピンなんだから
563:774ワット発電中さん
16/06/26 18:18:45.34 SoQORQ8P.net
いかん
×>>533
○>>534
564:774ワット発電中さん
16/06/26 18:31:38.14 t6MAzMNx.net
>>535
F1シリーズは全ピン入出力出来るのかと勘違いしていました。
お騒がせしました。
すみませんがもうひとつ質問させて頂きたいのですがタイマー0とタイマー1とINT割り込みを使っていて割り込み関数内でフラグの状態で処理を分岐させています。
この場合、一つの割り込み処理を行っているときに別の割り込みが入るとどの様な挙動に成るでしょうか?
565:774ワット発電中さん
16/06/26 18:49:55.65 PmNmfDMd.net
16F1や12F1のような割り込みレベルが1つしかないPICに限定して話すなら
現在処理中の割り込み処理が終わって割り込みルーチン抜けた直後に次の割り込み
処理が走るだけ
566:774ワット発電中さん
16/06/26 19:05:55.63 0QYz6etZ.net
>>537
いやまあそれでも、データシートの書きようは悪いと思う。
RA5の output type の表記は「-(ハイフン)」であるべきだよね…。
567:774ワット発電中さん
16/06/26 19:18:10.09 PmNmfDMd.net
PORTAの説明より
「The exception is RA5, which is input only
and its TRIS bit will always read as ‘1’」
568:774ワット発電中さん
16/06/26 19:49:34.15 gnLfj7Sx.net
>>539
どっちのチップの何ページのどの表?
569:774ワット発電中さん
16/06/26 22:02:23.75 0QYz6etZ.net
>>541
URLリンク(ww1.microchip.com)
これの11ページ。表1-2 (表1-2しかないけど)
570:774ワット発電中さん
16/06/26 23:03:06.95 t6MAzMNx.net
>>538
ありがとうございます。
実行中の割り込み処理が終わってからですか。
と、言うことは、3つの割り込み使う場合、溜め込まないようにしないと困ったことに成りますね。
571:774ワット発電中さん
16/06/26 23:49:20.56 o9O009yU.net
>543
別に割り込みから帰らずに、割り込み内でループして他に立っている割り込みフラグ(TMR0IF,TMR1IF,INTF)を
チェックして立ってたら割り込み処理してから帰ってもいいよ。割り込みから戻っても再度割り込みに入るくらい
厳しいスケジュールなら戻らずに処理してしまった方がレジスタの退避とかの時間を節約できる。
割り込みレベルと割り込みベクタが1個しか無いミッドレンジの話ね
572:774ワット発電中さん
16/06/28 23:02:59.49 dUx3jph/.net
12F683のスイッチ入力をMicroCで行おうとしているのですが、
以下、PICとMicroCのサイトで参考にしているプログラムが動きません。
具体的には、スイッチを押したときGP2の出力がONがonに、
離したときGP2の出力をoffにしたいのですが、ずっと出力が
出続けてしまいます。なぜでしょうか・・・?
void main() {
TRISIO = 0b00000100; //GP2を1:入力に、他を0:出力設定
//内蔵発振器 8MHz使用に設定
OSCCON.IRCF2=1;
OSCCON.IRCF1=1;
OSCCON.IRCF0=1;
ANSEL = 0b00000000; //GP0~5をデジタル利用に設定
OPTION_REG.NOT_GPPU = 0; //内部プルアップ利用に設定
WPU = 0b00000100; //GP2を内部プルアップ
GPIO = 0b00000000; //GPIOの中身をきれいにする
CMCON0 = 0b00000111; //コンパレータを使わない
do {
if(Button(&GPIO, 2, 1, 0)) { //スイッチONの場合
GPIO.F4 = 1; //LED ON
} else { //スイッチOFFの場合
GPIO.F4 = 0; //LED OFF
}
}while(1);
}
573:774ワット発電中さん
16/06/28 23:03:58.47 dUx3jph/.net
訂正:GP4の出力
574:774ワット発電中さん
16/06/28 23:16:02.29 dUx3jph/.net
545ですが、出力先をGP0,GP1にしたら動きました。
GP4は何等かの理由でずっと出力が出続けるようです。
これだけ理由分からなかったので、どなたか解説お願いします・・・
575:774ワット発電中さん
16/06/28 23:29:27.61 oNGl4gGp.net
CLKOUTになってんじゃないの
576:774ワット発電中さん
16/06/29 00:24:05.79 arpwhsig.net
>>545
全部プルアップに指定してると回路にスイッチ繋ぐよってはずっとオンに認識されてるとか。
577:774ワット発電中さん
16/06/29 04:41:45.16 UjicKbUi.net
PIC24は3.3V駆動の場合でもデジタルIO専用ピンについては入力5.5VまでOKらしいんですが
どのピンがデジタルIO専用なのかはどこを見れば分かるんでしょうか?
もしかして「5.5V tolera
578:nt input pins」と書かれたピンがそれに該当するんでしょうか? もしそうならたった6本しかない(USB対応品だとD+とD-で2本取られるので実に4本だけ!) 事になるんですが・・・
579:774ワット発電中さん
16/06/29 06:43:18.80 nlXLj5vy.net
6本もあれば十分
580:774ワット発電中さん
16/06/29 06:48:05.43 N9lFenMG.net
周辺回路を見直す事すらしたくありません、って輩ですか?
581:774ワット発電中さん
16/06/29 11:12:12.85 UjicKbUi.net
頭の悪いコメは無視します
>>551
PICに繋いでるモジュールがバス接続しかないので8本欲しかったのです
582:774ワット発電中さん
16/06/29 12:26:47.08 AAcmM8qR.net
後出しじゃんけん乙。
583:774ワット発電中さん
16/06/29 12:45:41.62 /j1nOVMi.net
>554
???
>554=552かな
584:774ワット発電中さん
16/06/29 13:07:37.11 H9QRfMYL.net
>>553
>「5.5V tolerant input pins」と書かれたピン
それが正解です。
しかし、デジタル信号なので、閾値さえ跨いでいれば良いので、
「5.5V tolerant input pins」と書かれたピンでなくても、抵抗を直列に入れれば
使えます。
抵抗が、5Vと3.3Vの間を「バネ」のような役目をして、調停してくれます。
周辺モジュール(0V-5V信号)-------抵抗------PICピン(非5Vトレーラント)
という感じです。
抵抗値は、周辺モジュールとのやりとりスピードに依りますが、
1k~10kΩを付ければ、まず動きます。
585:774ワット発電中さん
16/06/29 13:12:53.28 BEvcjuFL.net
それじゃ分圧になってないから定格超えちゃうよ
586:774ワット発電中さん
16/06/29 18:15:58.06 H9QRfMYL.net
>>557
入力電流を期待するのは良くないでしょうか?
587:774ワット発電中さん
16/06/29 19:03:44.85 YMHckKRx.net
期待すべきは保護ダイオードだろ
588:774ワット発電中さん
16/06/29 19:28:52.41 EGMHmAVs.net
>>559
ちょっと前に話題になりました。
・保護ダイオードを通ると、端子電圧はVCC+VFになる。これは絶対最大定格を超える。
・一方で、端子入力電流が絶対最大定格に描かれている。流れるためには、保護ダイオードに電流が流れる必要がある。
・なぜ電圧と電流の両方が書かれているのだ。
・絶対最大定格は一瞬たりとも超えてはいけないのだ、いけないのだ。
厳格に考える人には解決が難しいですね。
589:774ワット発電中さん
16/06/29 19:56:22.23 H9QRfMYL.net
>>559
そもそも入力電流の経路はダイオードなんですよ。
590:774ワット発電中さん
16/06/29 20:58:31.24 8r74jGPo.net
>560
そもそも入力端子保護用に入っているクランプダイオードはあてにしていい物なのか?
実質的には問題無いだろうけど、メーカーが保障した使い方では無いよね。
591:774ワット発電中さん
16/06/29 21:54:43.54 ts51i3MH.net
XC8でインランアセンブラを各方法は
asm("xxxxxxxxx");
以外にもあるらしいのですが、他にどんな記述方法があるんでしょうか?
一行一行 asm() で括るのが面倒なのでC18みたいに複数行まとめて指定する
方法はないでしょうか?
592:774ワット発電中さん
16/06/29 22:07:09.86 mUJOoHNA.net
#asm
#endasm
593:774ワット発電中さん
16/06/29 23:07:58.39 EGMHmAVs.net
>>562
メーカーによってはそういう使い方ができる、というガイドをしています。
URLリンク(ww1.microchip.com)
TIP#10 5V→3.3V With Diode Clamp
大きい電流を流すとラッチアップの恐れがあるから抵抗で抑えるように、と。
594:774ワット発電中さん
16/06/29 23:34:56.02 EGMHmAVs.net
>>565に追記。
URLリンク(rohmfs.rohm.com)
URLリンク(www.analog.com)
595:AD8624_jp.pdf ttp://japan.xilinx.com/support/answers/19146.html ttps://www.altera.co.jp/ja_JP/pdfs/literature/hb/max2/max2_mii51008_j.pdf ttp://www.nxp.com/files/microcontrollers/doc/app_note/AN2433.pdf (スピードの観点から分圧することを例示しています) 探せば他にも出てくると思います。
596:774ワット発電中さん
16/06/30 02:04:07.47 jDAx9T9T.net
5Vトレントの方法調べててバススイッチとかいう神の様な素晴らしいデヴァイスを見つけた。
もうバススイッチだけでいいんじゃないかな
597:774ワット発電中さん
16/06/30 02:38:24.95 5rz3sGdV.net
pic24fj64gb004でlcd表示について
starterキットのデモからlcd.cとlcd.hを移植中です
Delayを使用せずに初期化する方法ないですか?
598:774ワット発電中さん
16/06/30 06:03:24.24 iPN5JyTg.net
>>567
MYリレー最強
599:774ワット発電中さん
16/06/30 06:36:45.96 kFMCipXO.net
>>569
タイマー割り込みを使う。
Delayではダメな理由がわからん
600:774ワット発電中さん
16/06/30 06:59:17.83 fDbut3ov.net
>>567
それはそれで不都合もあります。用途次第ですね。
601:774ワット発電中さん
16/06/30 10:45:00.68 VUf1yJbN.net
>>568
初期化なんだからDelayで行なうのが一番
(それ以降使用しないから)
602:774ワット発電中さん
16/06/30 12:08:07.53 jDAx9T9T.net
>>571
吸いません、参考までにどのような場合に不都合がありますでしょうか?
あんまり高速な信号は通せないってのはなんとなく感じますが
603:774ワット発電中さん
16/06/30 12:24:01.69 fDbut3ov.net
>>573
それと関係している部分もありますが、外部にプルアップが必要なものもあります。
見つけられたという神のようなバススイッチの型式がわかると具体的な議論もできますね。
あと、タイプミスかもしれませんが、トレント(torrent?) ではなくて トレラント(tolerant 耐性)です。
604:774ワット発電中さん
16/06/30 12:32:47.67 jDAx9T9T.net
インターネットしててこれはまさに神のデヴァイスだ!と思ったのはテキサスのSN74CB3Tです
双方向で方向を全く考えなくて済むし、PICと外部回路の間に置くとして外部回路側は
3.3Vでも5Vでもどっちでも(大抵は)いけるし、難点があるとするなら入手ややや困難なこと
くらいかなぁと
PIC(Vcc3.3V)→バススイッチ(Vcc3.3V)―*→外部回路(Vcc5V)の場合に信号振幅が3.3Vまでしか
無いので、それじゃ足りない場合だけ*の部分をプルアップしてやる必要がありそうですが
通常は無くても大丈夫かなぁと
605:774ワット発電中さん
16/06/30 13:16:24.21 FoJbfc/i.net
単方向3.3V<->5V変換を高速低消費電流で実現したいので
ワンゲートICのTC7SH125とTC7SET125だけで済ませてる
606:774ワット発電中さん
16/06/30 19:48:57.03 5h/xuE8j.net
>>553
コメ…?
607:774ワット発電中さん
16/06/30 21:53:32.54 fDbut3ov.net
>>575
あー、なんかいいかも。
俺の知ってる東芝のは、3.3V-1Vあたりから上でドライブ能力がぐっと落ちました。
これもそうかもしれんけれど、一回評価してみます。
不都合があります、とか書きましたが、よく調べていなかったかな。すみません。そしてありがとう。
608:774ワット発電中さん
16/06/30 23:00:57.82 AGy34ahj.net
>>572
そうですね。ありがとうございます。
秋月の
URLリンク(akizukidenshi.com)
3.3v4行lcdは、3.3vだと表示濃度が薄いですね
5vだと余裕がある感じです
手持ちの3.3v2行はクッキリなんですが
i2cでポートを節約したいと思っても値段が高かったり
チャージポンプで5vlcdを使うのが良いのかな?
609:774ワット発電中さん
16/06/30 23:22:06.70 AGy34ahj.net
>>576
74vhc125をリールで買おうかと悩んだ時があった
でも、レベルシフト無くても大丈夫な事が多く
秋月で買ったモジュールは袋に入ったままです
610:774ワット発電中さん
16/06/30 23:31:06.28 VRbFSc40.net
12F683で、GP0,GP1にLEDを取り付け、
GP2に押しボタンスイッチを取り付けます。
押しボタンを押す事で、以下点灯パターンを
0→1→2→3→0→1→・・・・
と切り替えるプログラムをつくりたいと考えていますが、
上手く行きません。どのあたりに問題があるか
御教授いただけますでしょうか?
(何か根本的に間違えていそうな気がしますが・・・)
パターン0:GP0が点滅 GP1が消灯
パターン1:GP0が消灯 GP1が点灯
パターン2:GP0が点滅 GP1が点灯
パターン3:GP0,GP1どちらも消灯
611:581
16/06/30 23:31:41.90 VRbFSc40.net
以下、プログラムです
void main() {
unsigned short int n;
TRISIO = 0b00000100;//GP2:Input Others:Output
OSCCON.IRCF2=1;
OSCCON.IRCF1=1;
OSCCON.IRCF0=1;
ANSEL = 0b00000000;//GP0~GP5:0(digital use)
OPTION_REG.NOT_GPPU = 0;//Internal pull up use:0(on)
WPU = 0b00000100; //GP2:internal pull up
GPIO = 0b00000000; // First, clean GPIO signal
CMCON0 = 0b00000111; //Do not use comparater
//LED initial state setting
GPIO.F0 = 0;//LED:OFF
GPIO.F1 = 0;//LED:OFF
n = 0;
do {
if(Button(&GPIO, 2, 1, 1)){
n++;
}
if(n==0)
{
GPIO.F0 =1;
Delay_MS(500);
GPIO.F0 =0;
Delay_MS(500);
}
if(n==1)
{
GPIO.F0 =0;
GPIO.F1 =1;
}
if(n==2)
{
GPIO.F0 =1;
Delay_MS(500);
GPIO.F0 =0;
Delay_MS(500);
}
if(n==3)
{
GPIO.F0 =0;
GPIO.F1 =0;
Delay_MS(500);
}
if(n==4)
{
n=0;
}
}while(1);
}
612:774ワット発電中さん
16/06/30 23:53:38.09 IZYf/Vl0.net
>>581
使っている言語はmikro Cですか?
開発ツールやそのバージョンも示して下さいね。
あと「うまく動かない」だけではなくて、具体的にどういう不具合なのかを分かるように伝えてくれますか?
ソースを見る限りでは、Button関数を毎ループ読んでいるので、押している間ずっと、
高速でn++されるように思いますが…
613:581
16/07/01 00:09:51.95 7ntcvQ5z.net
>>583
失礼致しました。
環境はMicroCの6.6.3です。
MicroCで1つのプッシュスイッチで数パターンの点灯パターンを切り替えるような作例でも見つかれば良かったのですが、中々見つからず適当に作ってみたところ、どうやらご指摘の通りの動作をしているようです・・・
614:774ワット発電中さん
16/07/01 00:38:41.42 vofYpafo.net
>>581
スイッチは2ピンにしてINT割り込み使えばいい。
そして割り込み関数のなかでn++すれば良い。
615:774ワット発電中さん
16/07/01 00:47:14.08 lD6SUhQ0.net
INT0割り込みが発生した場合の割り込み処理へのジャンプってラグタイムなしで
即座にジャンプしてくれるんでしょうか?
命令1(4) ←割り込みルーチンの先頭
命令2(4)
命令3(4)
命令a(4)
命令b(4) ←この命令を実行してる最中にINT0の状態が変化
命令c(4)
このような場合、
命令a
命令b
命令1
命令2
こんな感じで命令bのフェッチ&実行に続けて即座に命令1のフェッチ&実行が
行われるんでしょうか?それとも命令bと命令1の間にはタイムラグが
生じるんでしょうか?
616:774ワット発電中さん
16/07/01 03:35:13.23 BsgfxE7q.net
>586
PICの種類が分からないけどmidrangeのPICなら命令bと命令1の間で2サイクル分のラグがあるね
URLリンク(i.imgur.com)
617:774ワット発電中さん
16/07/01 08:09:38.11 m81c1Iw2.net
似たような話で揚げ足取りになるけど、完全に同時に複数ピンのデータ取れますかって念を押してくる人いるよね…。
618:774ワット発電中さん
16/07/01 09:21:31.48 lD6SUhQ0.net
>>587
ありgとうございます
そのものずばりな回答で、まさに
619:探していた回答はこれでした ここから考えるに、すでにFetch済みの次命令は実行されて、かつ割り込みルーチンの 最初の命令をFetchするためにダミーで1TCY必要って感じですかね
620:774ワット発電中さん
16/07/01 15:58:43.37 x7a0IvmT.net
PIC専用のスレは消滅なのだろうか
あっちが元祖なのに
621:774ワット発電中さん
16/07/01 16:02:22.65 x7a0IvmT.net
あれ勘違い
ちゃんとあったわ
622:581
16/07/01 20:12:17.09 7ntcvQ5z.net
>>585
581ですが、書き込み通りやったら出来ました、ありがとうございました。
623:774ワット発電中さん
16/07/02 01:04:37.15 7zeeH9UT.net
>>566のロームので理解した気がする
電圧の定格は保護ダイオードを働かせない限界で、
電流の定格は保護ダイオードが壊れない限界なんだな
624:774ワット発電中さん
16/07/02 02:49:03.56 dcnT50H+.net
でも、電流の限界に行くまでに、電圧の限界を超えると思いますが、
その点については、どのように理解されましたか?
625:774ワット発電中さん
16/07/02 04:17:52.73 xRbLE3n/.net
メーカーによって解釈は違うね。
どちらか先に達した方を取るメーカーと保護ダイオードに流れる電流が
超えなければいいというメーカーがある。
マイクロチップは後者ということでしょう。
626:774ワット発電中さん
16/07/02 06:50:40.40 qLIWLpKS.net
>>594
絶対最大定格はわずかでも、一瞬たりとも超えてはいけない、という文面を四角四面に解釈していると先に進めないですね。
>>566であげたガイドを受け入れるならば、少なく十クランプダイオードが入っている入力端子の電圧の絶対最大定格については、
「ソース抵抗0Ωの電圧源で電圧をかけた場合に許容される電圧範囲」
が妥当だと思います。
たとえば、VCC+0.3V という規定になっている場合、VCCが5Vであるとすると、
「たとえ100A出力可能な電源装置であっても、5.3Vならかけても大丈夫
でも、それを超えるとクランプダイオードに過大な電流が流れて壊れるかもよ」
ということで良いでしょうね。
シリコンダイオードでクランプダイオードが作られているとして、VFは0.7Vぐらいですが、実際にはもう少し低い電圧から
流れ始めますし、温度が高ければ電圧は下がります。それでも、VCC+0.3V までなら、クランプダイオードに電流は流れないということでしょう。
>>595で書かれているように、メーカーによっては、この使い方を積極的に開示していないところもあります。
あと、そもそも、VCC+0.3Vを超えたらICの中の何が壊れるのか、ですね。
627:774ワット発電中さん
16/07/02 09:32:43.55 mF3+ySs/.net
初めてのPICの人はオームの法則とか知らないのかな
628:774ワット発電中さん
16/07/02 09:47:38.93 sVgN7Cm5.net
データシートも読まない&勝手な解釈がデフォ
>「ソース抵抗0Ωの電圧源で電圧をかけた場合に許容される電圧範囲」
>が妥当だと思います。
とか、馬鹿の極みとしか言いようが無い。
629:774ワット発電中さん
16/07/02 10:40:14.98 dcnT50H+.net
>>598
意見を言えよ、意見を。
630:774ワット発電中さん
16/07/02 10:45:05.32 qLIWLpKS.net
>>598
おちついて。
汚い言葉で俺を非難したところで誰も得をしません。
あなた自身が間違っていたときに引っ込みがつかなくなってしまいますよ。
とりあえず>>566のリンク先のクランプダイオードにかかわる部分の解釈をしていただけませんか。
俺が書いていることの意味がわからなくて、丁寧に議論したいということなら
そういうふうに言ってもらえる方が良いと思います。
最終的には回路をどんなふうに組むのかは、設計者や依頼者のポリシーに依存しますし、
いついかなる場合もクランプダイオードに電流を流すようなことはしてはいけない、と考える人がいても良いですし、
少なくともメーカーがOKって言ってるなら使おうじゃないか、と考える人いても良いと思います。
中には、それは大丈夫なものである、と考える人もいるかもしれませんね。
半導体メーカーの技術サポートに本件のような質問をしたことがあります。
�
631:セいたいこんな流れです。 「絶対最大定格を超えてはいけないのですか」 「超えてはいけません。一瞬でも超えたらいけないのが絶対最大定格です」 「入力の電圧も超えてはいけませんね」 「その通りです」(★注) 「電流の規定もありますね。どんな場合に流れますか」 「クランプダイオードに電流が流れる場合です」 「その電流が流れていても規定値以下なら良いのですか」 「はいそうです」 「その規定値以下、たとえば 5mA のときには入力電圧はどのようになりますか」 「だいたいVCCプラス0.6から0.7Vです」 「その状態で電圧の絶対最大定格を超えていますね。さっきダメですとおっしゃいました」 「しばらくお待ちください」 「お待たせしました。適切な直列抵抗が入っている場合は構わないとのことです」 技術サポートの窓口の人はたいていが、データシートを見て答えているように思います。 ですから、まずは、データシートに書かれている表面上のことしか答えてくれません。 もし、俺が>>596 のような話に疑問を投げる立場なら、上の(★注)の回答をもらった段階で、質疑を 打ち切ったかもしれないですね。
632:774ワット発電中さん
16/07/02 11:27:21.21 sVgN7Cm5.net
頭が悪くてとっ散らかってるのはわかるが
3 行 に ま と め ろ
633:774ワット発電中さん
16/07/02 11:38:34.85 qrcc4B0v.net
お前らうぜえ抵抗2本で済む話だろ。
634:774ワット発電中さん
16/07/02 12:52:44.03 LGi/Z3No.net
2本って、どんな接続?
635:774ワット発電中さん
16/07/02 14:28:14.55 B15NCpTY.net
自分だけは馬鹿じゃないと言う前提
636:774ワット発電中さん
16/07/02 17:56:49.26 qLIWLpKS.net
>>603
2本といえばこういう接続のことが多いです。
プルアップの必要がない場合とか、やりとりするのがアナログ信号でないなら
これでもOKですね。
sssp://o.8ch.net/dt2n.png
637:774ワット発電中さん
16/07/02 17:59:18.37 Q+71M02J.net
スピードが求められないならね
638:774ワット発電中さん
16/07/02 18:05:24.75 nVTdQhz+.net
IOピンの入力インピーダンスよりも十分低い抵抗使えば抵抗比の電圧に落とせるね
でもスピードは関係ないでしょ
639:774ワット発電中さん
16/07/02 18:22:18.29 qLIWLpKS.net
>>607
抵抗1本の場合でもそうなのですが、低い抵抗を使うことは消費電流とのトレードオフになります。
抵抗値が高ければ当然スピードは遅くなりますね。
640:774ワット発電中さん
16/07/02 18:59:20.64 Tpv+LEvb.net
すみません、次のようなケースでどうしたらいいのか迷っています
PIC18F2553のRB0-RB4にコネクタを付けて、そこに出来合いのモジュールを
とっかえひっかえ差し替えられるようにしたいと思っています
コネクタは6pでVcc、GND、RB0-RB4です
RB0-RB4の4つのIOのうち2本は入力で2本は出力です(使いたいモジュール
との独自プロトコルの通信にあわせてこうしています)
ただ、1つのモジュールだけが
IO1: In
IO2: In
IO3: Out
IO4: Vcc
となっていてIOに直接Vccが繋がっているのです。つまりこのモジュールを
コネクタに指した場合、PICのRB4はダイレクトにVccに繋がる事になります
RB4は入力にしたり出力にしたりと言うことはなく、PIC側は常に入力設定ですが
Vccが直接繋がる事になんとなく気持ち悪さを感じています
このような場合PICのRB4はどのような対応をするのが良いでしょうか?
(ジャンパでIO4→RB4の接続を切り離せるようにする、という方法以外で)
641:774ワット発電中さん
16/07/02 19:02:34.69 nVTdQhz+.net
>>608
ごめん全然わからないんで、
>抵抗値が高ければ当然スピードは遅くなりますね
これを詳しく説明いただけませんか?
LやCを外付けするなら時定数が関係してくるのは判るけど、抵抗でなぜ遅くなるんですか?
642:774ワット発電中さん
16/07/02 19:18:16.60 xRbLE3n/.net
クランプダイオードに電流を流さない前提で抵抗分圧だと電源のシーケンス
を規定しないといけなくなりますね。
厳格に0.3V以下を守ってる人は共通電源の
643:場合でもオーバーシュート/アン ダーシュートが0.3V以下になるようにダンピング抵抗入れたりショットキー ダイオードでクランプしたりしてるのかな?
644:774ワット発電中さん
16/07/02 19:30:20.37 qLIWLpKS.net
>>610
ICの入力端子に静電容量があるので、これが問題になるケースがあります。
I/Oポートでソフトウェアでやりとりするケースだと問題にはなりにくいかも
しれませんが、高速の同期通信だと気になる場合があるかもしれません。
用途に合わせて使い分ければ良いと思います。
sssp://o.8ch.net/dt5v.png
645:774ワット発電中さん
16/07/02 19:47:41.83 1IEi9lUL.net
ICの中にCがある訳じゃない。
浮遊容量は何処にでもある。
646:774ワット発電中さん
16/07/02 19:56:11.14 nVTdQhz+.net
>>612
ありがとうございます。
そういう極端な例を持ち出す人だったんですね。
プルアップとかアナログとか言ってる時点で気づくべきでした
647:774ワット発電中さん
16/07/02 20:39:35.69 Q+71M02J.net
>>607
極端な例でもなんでもない
ICの入力ピン容量の他に配線のバス容量もある
I2C通信でスピードが速いほど低いプルアップ抵抗値が要求されるのは
何故なのかを考えてみればいい
648:774ワット発電中さん
16/07/02 21:23:59.61 nVTdQhz+.net
I2Cの話でしたっけ
649:774ワット発電中さん
16/07/02 22:19:32.92 iARwwInD.net
>>609
変換コネクタみたいなもの
650:774ワット発電中さん
16/07/02 22:42:37.32 qrcc4B0v.net
>>609
自分ではやろうとは思わないがプルアップの代わりに電源に付けてる例はあるな。
651:774ワット発電中さん
16/07/03 00:21:44.12 +9unBFJN.net
>>616
マイコンのポートに直列に抵抗を入れるのと、I2Cのようなプルアップで
オープンドレインで駆動するのと、電気的には同じだということが
わかるまで勉強しよう
652:774ワット発電中さん
16/07/03 00:32:43.90 +9unBFJN.net
正確には、
・プッシュプル出力に直列に抵抗を入れてL→Hにバスを駆動する
のと
・プルアップ抵抗でプルアップしたバスに対してオープンドレイン駆動でL→Hする
のは同じ
653:774ワット発電中さん
16/07/03 01:09:46.80 VJCmOpHc.net
グダグダだな。理解出来て無いのだろうw
654:774ワット発電中さん
16/07/03 02:07:38.07 +9unBFJN.net
┐('~`;)┌
655:774ワット発電中さん
16/07/03 07:34:42.18 /rtfhrDN.net
これみんな戦争で戦前の日本が行った残虐行為
若い人たちは知らないだろうけど
俺たちのご先祖様はこんなことやってきたんだ。。。
我々日本人は反省しなければならない
そして戦争のない時代を築いていこう
今回の選挙は、戦争反対の「民進党」に投票しよう!!!
共産党でもいいよ!
URLリンク(www2.biglobe.ne.jp)
URLリンク(www2.biglobe.ne.jp) URLリンク(www2.biglobe.ne.jp) URLリンク(www2.biglobe.ne.jp)
URLリンク(www2.biglobe.ne.jp) URLリンク(www2.biglobe.ne.jp)
URLリンク(www2.biglobe.ne.jp)
URLリンク(www2.biglobe.ne.jp)
URLリンク(www2.biglobe.ne.jp)
URLリンク(www2.biglobe.ne.jp)
URLリンク(www2.biglobe.ne.jp)
URLリンク(www2.biglobe.ne.jp)
656:774ワット発電中さん
16/07/03 07:53:52.73 ag3opEVT.net
>>621
質問とかけ離れた持論を展開するタイプなんだろう
657:774ワット発電中さん
16/07/03 10:55:38.00 IXoX6LGM.net
>>614
特に極端な話ではありません。
PICマイコンのデータシートには入力静電容量は書かれていないのですが、おおよその目安として10pFぐらいは考えておいて良いと思います。
10pFの場合、直列抵抗が10kΩなら立ち上がり時間は220n秒となります。上で書いたように同期シリアル通信なら、抵抗値に気を付けた方が良い場合もありますね。
たぶん、この入力静電容量の話を「極端だ」と思われたのは、今はそれが問題になるような使い方をされていなくて、実感がないからです。
I2Cのことを書いてる人もおられますが、頭の隅にでも置いておいてもらって、そういう使い方をするときに、思い出してもらえれば良いなあと思います。
(I2Cの場合は、入力容量の問題は、マイコンだけでなく、ぶら下がるすべてのデバイスで効いてきますのでより影響が出やすくなります)
658:774ワット発電中さん
16/07/03 12:09:58.23 dihxS+SG.net
MOSFETのゲート自体がシリコン酸化膜のコンデンサーみたいな物だし
URLリンク(ja.m.wikipedia.org)
659:774ワット発電中さん
16/07/04 12:53:08.83 gHuybw4F.net
>>625
いいこと言いますね。まさにその通りだと思う。
入力容量というか、デジタル信号=アナログ信号だと思っていない人が
多いように思う。
I2Cの場合は、それぞれのI2Cデバイスの所に、プルアップ抵抗を付けるのが好きです。
トータルでの抵抗値は守りつつ
660:774ワット発電中さん
16/07/05 03:24:17.99 SdpPKanr.net
マイコンできる人 ≠ アナログできる人 ですからね。
電圧では考えられても、電流の気持ちになれる人は、あまりいない。
661:774ワット発電中さん
16/07/05 07:51:49.82 Nr0gS/H9.net
謎の決め付け
662:774ワット発電中さん
16/07/05 08:29:01.43 5auvO6yR.net
>マイコンできる人 ≠ アナログできる人
こんな風に書かれていると、なぜか
マイコンできる人 = アナログできない人
と解釈して反発する人が出てきそう。
それより「気持ち」というキーワードで、わざわざ壁を作らなくても。
「電圧で考えられても、電流で考えられない人はあまりいない」で良かったのに。
それでも、説明が要りそうですけど。
663:774ワット発電中さん
16/07/05 08:42:38.47 aJiDiJQX.net
言いたいことはわからんでもない
デジタルで考えて電圧方向も時間方向も理想的だと考えちゃう
波形の過渡状態とか考えずに
664:774ワット発電中さん
16/07/05 10:02:22.00 oqkF32+s.net
世の中の全てはアナログでデジタルはアナログの一状態に過ぎない
って習った。
665:774ワット発電中さん
16/07/05 11:31:17.08 poG6tksE.net
職業ソフト屋が趣味でマイコン維持ってと言う典型的な私がそれだ
ソフトから見た世界はわかるけど、一度マイコンのポートから出た先は未知の領域
そもそもマイコンのポートとてハード屋さんが準備してくれた多くの未知の領域ありきだった訳だし
ソフト的にわかっても現実世界はアナログ量、この壁が難しくて四苦八苦
666:774ワット発電中さん
16/07/05 11:44:13.00 XZt8J8po.net
URLリンク(siesta.la.coocan.jp)
マイコンにアナログの温度センサーを付けただけで
こんなトラブルが発生した例があるんだな
667:774ワット発電中さん
16/07/05 11:52:02.55 9gUiXlIJ.net
>>628
残念
>電流の気持ちになれる人 → 電流の気持ちがわかる人 が正解だね。
相手の気持ちになると、動作の理解がとても進むよ。
それにしても「気持ち」とは、うまいこと言った。
668:774ワット発電中さん
16/07/05 14:02:14.21 vatTZYft.net
>>634
何年か前に、LM35DZを長さ1.5mほどの安物シールド線で使ったときに、同じようなトラブルを経験した。
具体的な症状は少し異なるが、高級シールド線に変えると2m長でも症状が出ない。
色々と調べてCを並列に入れて解決した。(そのページの【対策】2 と同じ方法)
解決まで半日以上かかったので、
「クソッ、こんな温度センサー二度と使わんぞ」と固く心に誓ったのであったw
669:774ワット発電中さん
16/07/05 15:47:53.23 YuxTVhxZ.net
シリアル信号一つ受けるだけならこうです
if (RCIF==1){
RCIF = 0;
data = RCREG;
}
これを連続で三つ続いたシリアル信号受けるにはどうしたらいいですか。
三ケタの数
670:字送りたいんですが。
671:774ワット発電中さん
16/07/05 17:18:37.62 oqkF32+s.net
3つ並べるか3回ループするか、お好きな方をどうぞ。
672:774ワット発電中さん
16/07/05 17:32:09.79 XknlqyvH.net
【BS11:ニュース・経済】 <報道ライブINsideOUT>放送時間:毎週月~金曜日 よる9時00分~9時54分<br>
(金曜日:寺島実郎の「未来先見塾」~時代認識の副読本) #bs11 URLリンク(www.bs11.jp)
673:774ワット発電中さん
16/07/05 19:06:32.29 4OW44REn.net
>>637
RCIFはr/o、RCREGを読めば自動的にクリアされる。
674:774ワット発電中さん
16/07/05 20:47:33.45 YuxTVhxZ.net
>>638
>>640
ありがとうございます
675:774ワット発電中さん
16/07/07 18:59:45.21 sFBpDXZK.net
>>634
うちはLM35の近くにオペ1発入れて、その後シールド線にしてる
676:774ワット発電中さん
16/07/08 12:47:13.73 SWbPh+Fc.net
オペ1発w
虫垂でも取っとくれ
677:774ワット発電中さん
16/07/08 15:04:58.93 R8Cb7L/X.net
>>638
…三つ並列にしても三つとも第一ワード読んで終わっちゃわね?
678:774ワット発電中さん
16/07/08 15:06:19.98 eR1LnLY9.net
PICにそんな品種あるんでしょうかw
679:774ワット発電中さん
16/07/08 15:08:10.10 MBfnEA5P.net
>>644
>>637のプログラムをを3っつ並列動作して第1ワード読んで終わっちゃうプログラムってどう書くんだ?
もちろんPICは1個だよな?
680:774ワット発電中さん
16/07/08 19:11:56.45 Qlh9fYaW.net
>>636
REF19xっていう比較的高精度なリファレンスICがあるのだが、
出力がバッファされてると思いこんじゃって似たような失敗やらかしたことがある。
681:774ワット発電中さん
16/07/09 20:25:28.63 ckiDJsv9.net
16F88用のCCP機能のキャプチャモードのサンプルを16F1827で使おうと思っい、
変更カ所を調べてANSELのところだけと解ったのでそこだけ
変えてビルドして書き込んでも動かない状態てす。
していることは、RB0に接続された発信器の周波数が
60ヘルツ以上か以下か見てRB3とRB4のLEDをのどちらかを点灯させるだけです。
他にも何か変更されたところなど有るでしょうか?
682:774ワット発電中さん
16/07/09 21:39:41.40 6sN5oC0U.net
比較、調査不足という事でしょ?
もう一度調べ直すしか無いと思うよ。
Cソースコンパチなんて、ほぼ無いと思った方がいいと思うけど。
683:774ワット発電中さん
16/07/10 01:17:49.59 Meqq3FBC.net
XC8のboolについて質問させてください
stdbool.hの中を見ると
typedef unsigned char bool;
#define true 1
#define false 0
と定義されていました
ということは
bool a = false;
bool b = !a;
の2行目のような記述はできないということでしょうか?
684:774ワット発電中さん
16/07/10 03:27:01.92 hcVGJQyA.net
>>650
なんでダメだと考えたの?
できると思うけど
685:774ワット発電中さん
16/07/10 03:29:30.93 HZMniIcp.net
PICはArduinoにはなれなかったから
ガキみたいなジジイがいろんなとこで粘着してんだよな
686:774ワット発電中さん
16/07/10 03:58:24.08 ntTqGd/P.net
>>650
cではできる。javaではできない。
687:774ワット発電中さん
16/07/10 04:04:31.92 Nzgju4XR.net
>XC8のboolについて質問させてください
>javaではできない。
688:名無しさん@そうだ選挙に行こう! Go to vote!
16/07/10 09:24:56.11 4UMUO8kc.net
>>650
記述はできるだろ。
その後の判断文とかめんどくさいかもしれないだけで
689:名無しさん@そうだ選挙に行こう! Go to vote!
16/07/10 13:50:20.04 NLEDwi/1.net
>PICはArduinoにはなれなかったから
AVRはもう同じ会社なんだしどうでもいいこと
690:ss
16/07/11 17:10:49.37 Gc1Lr/sG.net
以下のサイトを参考にしてPIC18F452でPCと
シリアル通信をしようと思っています
バンクの切り替え部分でエラーになり、必要ないと考えて
その部分を省いたのですが、うまくいきませんでした
PIC16F877のプログラムをPIC18F452で使いたい
ということなのですが他にどこを変えればよいのでしょうか?
どなたかよろしくお願いします
PIC-パソコン間シリアル通信 PIC受信テスト
URLリンク(infoseek_rip.g.ribbon.to)
691:774ワット発電中さん
16/07/11 17:25:23.64 BGz+fIrO.net
>>657
ハードウェア依存部分の移植が自分でわからないのであれば、
アセンブラのソースを移植するのはやめたほうがいいと思うよ。
アーキテクチャがかなり違うし、チェックや移植項目が多すぎで、掲示板で聞いた程度ではなんともならない
692:774ワット発電中さん
16/07/11 22:51:24.82 43GQ8WOP.net
データシートしらみ潰しに読めば答えがあるよ。
693:774ワット発電中さん
16/07/12 02:18:13.71 GuknfHX3.net
> バンクの切り替え部分でエラーになり、必要ないと考えて
> その部分を省いたのですが、うまくいきませんでした
こんな事やってるレベルの人がデータシート読んでどうにかなる問題じゃないだろ
694:774ワット発電中さん
16/07/12 06:19:05.57 c1NcLK7A.net
>>657
普通にC言語で作れば????
Web上にサンプルなら沢山ある・・・・・
695:774ワット発電中さん
16/07/12 06:46:28.22 8F6d1yqz.net
>>657
バンク切り替えをして動いているものを省いたら動かないだろう。
バンク切り替えが何なのか調べて書き直さないと。
696:774ワット発電中さん
16/07/12 10:45:45.70 EykqW8RN.net
根本的な解決法はバンクなんかが無いCPUに乗り換えることだ。
697:774ワット発電中さん
16/07/12 12:12:31.38 hQAP2Mdn.net
で、それやろうとしてんじゃないの?
もう元のやつは考え方だけもらって、コードはスクラッチで書いちゃったらどうよ?
698:ss
16/07/12 12:39:02.35 dwK5m2CM.net
ご意見ありがとうございます
18系でそのまま動くサンプルを探すことにします
699:774ワット発電中さん
16/07/12 13:57:43.47 q3ejKCCg.net
>>665
サンプル探すのもいいけど、自分で書いてみるのはどうですか?
700:774ワット発電中さん
16/07/12 18:08:10.45 y6KlYI0Y.net
>>665
そのサンプル、単純な1文字送受信だろ?
どこにでも転がっているだろうし、それくらい自分で作れないとアプリケーションが無理だろ。
701:774ワット発電中さん
16/07/12 19:20:26.43 wlW+tQYB.net
アップリケ って
アプリケーションが元かな
702:774ワット発電中さん
16/07/12 22:52:47.46 46Q0KATB.net
>>668
激しくスレチだけど、
URLリンク(matome.[)ねえばあ].jp/odai/2137637118529549601
わお。語源は同じだ。考えたこともなかった。
そのセンスはすごいな。あなたは語学得意なん?
※URLがNGワードになるので一部改変しています。
703:774ワット発電中さん
16/07/13 11:19:31.25 vAUjIzzb.net
いまどき16F877とかアセンブラとか新しいものを受け入れられないお爺ちゃんか
704:774ワット発電中さん
16/07/13 19:50:47.94 /V4bkrwZ.net
趣味なら何でもありだろ、なに言ってんだコイツ
705:774ワット発電中さん
16/07/13 19:52:32.78 nyCBwCkG.net
>>671
お爺に論破されたのがトラウマになってるんだよ生温かく見守ろうよ
706:774ワット発電中さん
16/07/14 17:58:35.26 +ELiGkWS.net
デジキー見てると40ピンぐらいは1個150円ぐらいが並んでてデバイス選�
707:ムつらい。 ってMAPSのSys. Mgmt. Features でPin Count 48のみにしたらデバイス無くてワロタw 登録されてないデバイスでもあるのかな?以前何かのシリーズで見かけた記憶があるが名前忘れちゃったんだよな…
708:774ワット発電中さん
16/07/14 18:00:47.85 +ELiGkWS.net
と思ったらdsPICにあった、探してるのは多分違うけど。
709:774ワット発電中さん
16/07/19 15:08:04.38 Z2FGOWz5.net
初心者質問スレから誘導されました。
現在18f2320を使ってTowerproのMG995というサーボモータを制御しようとしています。
URLリンク(physics.cocolog-nifty.com)
このページを参考にしながら試行錯誤していますが上手く行きません。
理論はなんとか理解出来ているのですが18f2320だとページの参考プログラムをどのように変更したらいいのでしょうか。
710:774ワット発電中さん
16/07/19 15:23:43.62 qbjYpFyg.net
>>675
理論が理解できるって、何が理解できてるか言ってみ?
……その石に対して16F88なんか参照にしてたら余計混乱するかと(16と18は違うんだから)
ちなみにちゃんとそのピンが出力になっていればHi/Lo命令とディレイ関数と並べるだけで動くよ?
(電源に逆説は絶対ダメ、タンタルとか使ってるのも多いし1発でイク)
C18とかなの?
とりあえずソース見せてみ?
711:774ワット発電中さん
16/07/19 15:26:19.99 qbjYpFyg.net
あ、あと向こうのスレで移動した旨伝えてきて?
見た目マルチまがいだから罵られても知らないよ?
712:774ワット発電中さん
16/07/19 15:54:26.97 Ll7/kHWn.net
>>675
道具は何が使える? オシロスコープありますか?
あと、16F88と18Fxxxは、全然別物なので、要注意ね。
713:774ワット発電中さん
16/07/19 16:04:05.78 Z2FGOWz5.net
>>676
>>678
学内のpcで動かしているのでソースのコピペは出来ないです、すみません。
一応内部クロック1Mhzとプリスケーラ16はこのように設定しています。
現在進行形で改善しながら動かしていたらなんとかはっきりした角度には動いてくれるようになりました
void main(void){
OSCCON =0b00110000;
CCP1CON = 0b00001100;
OpenPWM1(0xFF);
OpenTimer2(TIMER_INT_OFF & T2_PS_1_16 & T2_POST_1_1);
while(1){
SetDCPWM1(0x1F);
Delay10KTCYx(15);
SetDCPWM1(0x2E);
Delay10KTCYx(15);
SetDCPWM1(0x3F);
Delay10KTCYx(15);
SetDCPWM1(0x2E);
Delay10KTCYx(15);
714:774ワット発電中さん
16/07/19 17:13:59.90 DnCGggPk.net
>>679
何のライブラリ使ってるか?
周期はどれくらいで、各設定のパルス幅はどれくらいのつもりか?
その出力をオシロかロジアナでチェックしたか?
あと、回路図は?
715:774ワット発電中さん
16/07/19 18:01:41.98 Z2FGOWz5.net
>>680
一応オシロスコープで波形を確認しながら操作してます
内部クロック1MHz、PR2=255、プリスケーラ16で
(255+1)×4×(1/1×10^6)×16=16msの周期にしたいと考えています。
サーボの目安の周期が20msに対してパルス幅が5ms~15msなので周期の1/4と考えて、周期16msに対して3FFの1/4でFAくらいにしたのですが振り切れたような動作をしていたので、
自分で微調整して30°60°90°あたりになった値を入れています。何故その値になるかはよくわかっていないです。もしかしたら周期が16msに設定出来ていないのでしょうか
ライブラリは
<pic18f2320.h>,<delays.h>,<pwm.h>,<timers.h>だけです。
716:774ワット発電中さん
16/07/19 18:25:28.48 /ok0s06i.net
>>681
振り切れたときの波形�
717:ヘどうでした?想定どおりの波形でしたか?
718:774ワット発電中さん
16/07/19 18:53:56.36 Z2FGOWz5.net
>>682
振り切れた時の波形はpwmのパルス幅が50μsだったり目標値よりかなり小さかったです。
そこから値を少しずつ大きく調整して今の値に落ち着きました
719:774ワット発電中さん
16/07/19 20:56:14.75 cLDhimDP.net
>>681
ここには、制御パルス:0.5ms~2.4msとなってるけど?
URLリンク(akizukidenshi.com)
以前自分でやった時はGWS PICOで0.9~2.1msだったので、まあそのオーダー。
>パルス幅が5ms~15msなので
は、どこ情報?
720:774ワット発電中さん
16/07/20 00:08:44.56 2EY4gOxI.net
>>684
すいません入力ミスでした参考資料でも0.5ms~1.5msみたいです。
もしかしたら調整する前は勘違いして5ms~15msでやってたかもしれないです…しょうもないミスで申し訳ないです
721:774ワット発電中さん
16/07/20 00:37:00.67 L7jIgXuE.net
>>685
別に謝る必要ないよ。
こっちは痛くもかゆくもない。
やっと原因がわかって良かったね。
722:774ワット発電中さん
16/07/24 03:13:19.21 P+/R0J+O.net
テスト
723:774ワット発電中さん
16/07/26 15:02:21.40 aY0MPSVV.net
test
724:774ワット発電中さん
16/08/02 12:51:48.44 SGjLoi+o.net
てすと
725:774ワット発電中さん
16/08/02 17:18:08.15 5qjCyLeH.net
USBの電源を使って、温度をはかってシリアル通信でパソコンにデータ取り込んでるんですが
電源のせいかデータが安定しない。
3.3Vのレギュレータ使ったら電圧は安定しそうなんですが、3.3VでPICを動かすのはどうなんでしょうか?
ちょっと電圧低すぎるのかとおもうんですが。
726:774ワット発電中さん
16/08/02 17:25:50.35 ceMmL1pD.net
>>690
PICの型番やクロックが何かによる
727:774ワット発電中さん
16/08/02 17:57:44.67 WKsMu5J/.net
最近のは2.4Vでも動くからなー
ADCの幅が狭くなるくらいかな
電源ラインにケミコン積んだりとか、複数回サンプリングで平均化とかしてる?
728:774ワット発電中さん
16/08/02 18:18:08.97 vi9NKsZ7.net
ケミコン必要か?
電源コネクタに数u 電源ピン毎0.1uのセラコンで充分だろ
729:774ワット発電中さん
16/08/02 18:37:42.45 61ymfazZ.net
USBから電源取ってるなら電源ラインは10uFまでと決まってる
コネクタに近いところに10uFのケミコンか適当なセラコン、んでPICのVccそばに
0.1uFのセラコン。これが鉄板です。
730:774ワット発電中さん
16/08/02 19:07:44.43 a/1y8klS.net
>690
電源のせいでADCを安定して読めないんならデジタル出力型の温度センサにしたら
こんなのとか URLリンク(akizukidenshi.com)
ちょっと高いのと1WireっていうI/Fが面倒かもしれないけど
731:774ワット発電中さん
16/08/02 19:11:25.61 O1JxgXk6.net
>690
回路図は?
732:774ワット発電中さん
16/08/02 19:54:12.28 61ymfazZ.net
>>695
1-wire使うならDS2480みたいなラインドライバ併用すれば制御も簡単だけどな。
DS2480自体が300~700円くらいするけど
URLリンク(akizukidenshi.com)
この辺が値段そこそこでI2Cで吐いてくれるから楽そう
モジュール化されたやつが500円だけどpull-ups抵抗4つとパスコンしか必要
無さそうなんでIC単体で買えば十分だと思う
733:774ワット発電中さん
16/08/02 19:58:07.33 61ymfazZ.net
自己レス
温度制度的に許容出来るならこの辺も安い
URLリンク(akizukidenshi.com)
734:774ワット発電中さん
16/08/02 20:13:54.24 O1JxgXk6.net
精度が悪くていいならPIC内蔵とか
735:774ワット発電中さん
16/08/02 20:18:50.44 HhEOCapQ.net
サンプリングして、少しデータ溜めて、
積分して許容範囲から飛び出したやつの傾向
736:を見れば、センサーの傾向がよくわかるよ。
737:774ワット発電中さん
16/08/02 20:40:10.09 O1JxgXk6.net
なんで積分?
単純にフィルタ掛けずにグラフにしてみるのが第一だろ。
738:774ワット発電中さん
16/08/02 21:34:24.35 x/ldwOgn.net
デジタル出力のセンサにしたって電源が安定してなかったらだめでしょ
739:774ワット発電中さん
16/08/02 21:43:15.09 O1JxgXk6.net
デジタル出力のセンサは内部にリファレンス持ってるだろ。
しかし、アナログセンサでもそこそこ使えそうだが
どれくらいの精度を要求してるんだ?
740:774ワット発電中さん
16/08/02 22:45:56.42 zLMyXFGY.net
入力レベルが足りてるかも心配。
741:774ワット発電中さん
16/08/03 11:02:12.98 Dip80Z5b.net
移動平均するだけでもかなり安定すると思うけど
(自分は8個の移動平均で十分安定しています)
742:774ワット発電中さん
16/08/03 11:16:41.22 DZxXlTyW.net
A/Dの基準電圧として電源電圧を使用しているだけだったりして
743:774ワット発電中さん
16/08/03 14:58:25.75 Po+RgXnH.net
>>690ですが、みなさん回答ありがとうございます
いろいろアドバイスいただいたことを試してみたいとおもいます
744:774ワット発電中さん
16/08/03 15:14:02.43 4KSiF79o.net
もうちょい詳しく書けば解決するかもしれんが自分でいろいろやってみるのも良いか。
条件が曖昧なんでみんな可能性を端から列挙してるから的外れになってるのもあるかもしれん。
745:774ワット発電中さん
16/08/03 17:01:24.68 JkqFwfAj.net
>>707
え、終わり?
結局、PICの種類どころか、何一つ詳細が明かされぬまま、めくら撃ちで終了だなw
746:774ワット発電中さん
16/08/03 19:26:52.96 zy79WddJ.net
じゃ次はこれどーぞ
USBの電源を使って、湿度をはかってシリアル通信でパソコンにデータ取り込んでるんですが
電源のせいかデータが安定しない。
3.3Vのレギュレータ使ったら電圧は安定しそうなんですが、3.3VでPICを動かすのはどうなんでしょうか?
ちょっと電圧低すぎるのかとおもうんですが。
747:774ワット発電中さん
16/08/03 20:26:02.79 3GJWCb0I.net
>>710
センサー、PICの電源電圧範囲なら、問題ないよ。
748:774ワット発電中さん
16/08/03 20:48:33.46 0VqehTna.net
まさかマジレスじゃないでしょうね
749:774ワット発電中さん
16/08/03 21:06:05.79 m+aOrot0.net
PICの電源端子にAC100V 半田付けしてみれば幸せになると思うよ。
750:774ワット発電中さん
16/08/03 21:41:04.79 XVVuSOCM.net
>>710
電圧差が損失の差を生み、結果センサ周辺の湿度も変動(棒
751:774ワット発電中さん
16/08/03 21:43:43.42 aYy+FgxA.net
>>710
>電源のせいかデータが安定しない。
それは、これだけの情報からは、何とも言えない。
>3.3Vのレギュレータ使ったら電圧は安定しそうなんですが、
それは、これだけの情報からは、何とも言えない。
>3.3VでPICを動かすのはどうなんでしょうか?
問題無い。
>ちょっと電圧低すぎるのかとおもうんですが。
別に低すぎない。
752:774ワット発電中さん
16/08/04 16:30:17.93 pSVLTUDi.net
回路図は?
もしくは写真とか。
753:774ワット発電中さん
16/08/05 09:39:51.37 h0pmrqNf.net
まず、センサーは何を使っているのかが問題でしょ~~~
安いセンサーならそれ自体の出力が安定しないものがあるし、
センサー自体への電源の供給の仕方にも工夫が必要なものもある
さらには出力の取り出し方だっていろいろだし・・・・・
754:774ワット発電中さん
16/08/05 09:46:07.11 sSkrXs8L.net
まさにセンサー万別ですな
755:774ワット発電中さん
16/08/05 09:51:40.35 h0pmrqNf.net
LM60の場合だと電源には0.1μF(なるべくセンサーの近く)
と出力には1μFをつけて(ローパスフィルターを形成する)
やらないと、出力が安定しないらしい。
756:774ワット発電中さん
16/08/06 13:32:06.94 DJ/vYJWi.net
18F14K50を使ってUSBシリアル通信してたんだけど、パソコンを新規インストール
したらtera termにアクセスできなくなった。
USBのドライバーかなんかをインストールしなくちゃいけないんだっけ?
やりかたすっかり忘れてしまって、だれかおしえて。
757:774ワット発電中さん
16/08/06 14:12:38.62 1nrmoFws.net
USBシリアルは基本的に何使う場合でもドライバは必要と思って良い
18F14K50使ったUSBシリアル(CDC)の場合はmicrochipのドライバを入れる
758:774ワット発電中さん
16/08/06 14:14:17.42 1nrmoFws.net
ま、ドライバつーかinfファイルだけどね
MAL(microchip application lib)に入ってるよ。でも探せばたぶんどっかに
infだけ落ちてそうではあるが
759:774ワット発電中さん
16/08/06 14:30:17.51 kT9WUxn8.net
まずデバイスマネージャ開いてcomポート番号が割当たってるか、
不明なドライバになってないか確認すべき。
MLAのusb側のコードを弄ってなければ、windows内蔵ドライバで問題ない。
760:774ワット発電中さん
16/08/08 12:21:59.17 NwxTheoc.net
12F1822のSOP版みたいな表面実装品はどうやって焼くのが普通ですか?
761:774ワット発電中さん
16/08/08 12:45:54.17 O8xiVvqZ.net
ソップ版ならICクリップでピンを摘まんで焼き上げる
こういうの使えばいい
URLリンク(www.sengoku.co.jp)
スモールソップ版はさすがにテストクリップでピンを摘まむのもキツイので
端子を別途用意しておくしかないと思う
まーでも普通は8pinのピックならIOピンは何らかの形で引っ張り出されてる
だろうから、それを前述のテストクリップで摘まめば焼き上げ用のピンを
わざわざ用意する必要もない
762:774ワット発電中さん
16/08/08 12:57:33.38 NwxTheoc.net
どうもありがとうございます。
ダイソーのUSBライターのPICらしき部品を取り外して
自前PICに載せ替えて使うみたいなこと書かれたブログを見つけ
私も挑戦しようと思った次第でした。
あんな小さな足を摘まめるICクリップがあるんですか
最初は変換基板に半田付けして、
ソフトが完成したら半田吸い取りして・・・と思ってたもんで
763:774ワット発電中さん
16/08/08 13:06:22.24 O8xiVvqZ.net
ごめん間違えた
そっちじゃなくてこっち
URLリンク(www.sengoku.co.jp)
こっちならソップ版の1.27mmの足なら余裕で掴かめる
764:774ワット発電中さん
16/08/09 00:39:54.42 4vRd6vXV.net
>>726
変換基板に指で押し付けながら書き込むと言うのがあったような
765:774ワット発電中さん
16/08/09 07:53:40.57 RSb3uKT9.net
つか、ICSPの配線ぐらいしとけ。最低5本だろ
766:774ワット発電中さん
16/08/09 09:21:04.84 YwBEjotd.net
>>725
なるほど、その通りですね。
もし良かったら、アルファベットで書きませんか?
ソップ=SOP
ピック=PIC
スモールソップ=SSOP
767:774ワット発電中さん
16/08/09 10:43:10.15 SO/1hr5S.net
>>729
直前のスレとか全然読まずに反射で書いちゃう馬鹿?
768:774ワット発電中さん
16/08/09 10:47:46.42 uGjXQCy5.net
>ダイソーのUSBライターのPICらしき部品を取り外して
>自前PICに載せ替えて使う
完璧と思ったつもりでも
どうせ後で不具合が見つかってソフト書き換えしないといけなくなるだろうから
足にUEW線を半田付けしといてでも、ICSPできるようにしとくほうがいいとは思う
769:774ワット発電中さん
16/08/09 11:44:04.49 /CJi0PT7.net
ソップでアンコが頭に浮かぶ俺はまだまだ修行が足りないな。
770:774ワット発電中さん
16/08/09 12:17:20.72 j9lGPzsc.net
>>730
>もし良かったら、アルファベットで書きませんか?
>ソップ=SOP
>ピック=PIC
>スモールソップ=SSOP
なんで?
771:774ワット発電中さん
16/08/09 13:44:17.56 ueEeJuU7.net
>>734
見ていて、違和感があるからです。
772:774ワット発電中さん
16/08/09 15:31:19.19 OgOHOlnf.net
まあ、どっちもどっちだな
俺自身は
773:カタカナでは書かんが 爺さんにそれを言っても無理だろ あとは黙って死ぬのを待つしかない
774:774ワット発電中さん
16/08/09 15:36:51.54 XmyoNr6s.net
>>734
例えば「ピック」と「PIC」を検索してみ
2chも情報の蓄積という側面を多少なりとも担っていると考えれば
おのずとどちらの書き方をするべきかわかる
別に強制はしないが、そういう認識に欠ける人なんだなとは思う
775:774ワット発電中さん
16/08/10 03:16:14.26 g3hR7lTp.net
東京電カみたいなもんだな
776:774ワット発電中さん
16/08/10 11:32:30.59 Ovreh8xy.net
ザギンでシースーみたいなもんか?
777:774ワット発電中さん
16/08/10 11:57:29.70 6Ld05EBi.net
>2chも情報の蓄積という側面を多少なりとも担っていると考えれば
ここ笑うところ?失笑するところ?爆笑するところ?
便所の落書きの蓄積に価値を見出してる奴がいるとはさすがに思わなかったw
778:774ワット発電中さん
16/08/10 12:07:59.07 h40D7Ydl.net
まあ、鰯の頭も信心からって言うよね
779:774ワット発電中さん
16/08/10 14:13:18.56 qTko+Xye.net
16F690の割り込みの実験です
RB7を押すとRC2がON
RB6を押すとRC1がON
RB5を押すとRC0がON
というプログラムを作りたいんですが、うまくいきません
実際は
RB7を押すとRC2がON、そしてその後RC1がON
RB6を押すとRC1がON、そしてその後RC0がON
RB5を押すと無反応
どこが間違っているんでしょうか
そのプログラム
URLリンク(uproda.2ch-library.com)
RB7,6,5はIOCBで割り込みのピンとして設定して、プルアップしてあります
16F690のデータシート
URLリンク(ww1.microchip.com)
780:774ワット発電中さん
16/08/10 14:35:08.00 q0awrh9c.net
>>740
>便所の落書き
にしては、ずいぶん熱が入ってますね。
そんなことより、「ピック」と「PIC」を検索してみた?
で、どう思ったの?
781:774ワット発電中さん
16/08/10 14:38:20.89 dGBx1JbA.net
ANSELH = 0x07;
782:774ワット発電中さん
16/08/10 15:10:42.60 qTko+Xye.net
>>744
ありがとうございました
ANSElに原因がありました
783:774ワット発電中さん
16/08/10 19:31:41.52 l2zZMtgo.net
この領域の略語をカタカナで書く奴の情報なんて要らんだろ。放置で
784:774ワット発電中さん
16/08/10 19:37:34.04 AfYu/f1N.net
SOPってソップって読むのか。
勉強になるなぁ。
BGA(ブギャ)
QFP(クフプ)
QFN(クフン)
PLCC(プルック)
TO23(トゥニーサン)
こんな感じ?
785:774ワット発電中さん
16/08/10 21:06:52.54 UlnyrHBC.net
20ピンの14K50のMCC対応版が出ないのはSOPの24K50にしろというマイクロチップの啓示かもしれない
落ちついて考えたら1459使えということだと気付いた
786:774ワット発電中さん
16/08/10 21:09:33.69 Tbj+QfPa.net
PICの開発環境について教えてください。
ICEはPickit3ってやつ買っておけばOK?ライター的利用もできるの?
付属品もいっぱいあるみたいだけど何が違うのかな?
中華通販のやつでもOK?(これは何とも言えないか)
IDEはダウンロードで無償で制限あり?
Windows版のみ?
デバイスが多くて最初に何から始めたらいいか迷っているんだけど。
28ピンぐらいまでDIPもあって入手性が良いので何から始めたらいいのかな?
787:774ワット発電中さん
16/08/10 22:05:45.19 6Ld05EBi.net
>>748
14K50から1459は機能ダウンが大きすぎて辛いな
パッケージサイズ的に許されるのならACTも付いてる25K50の方がよくね?
外付け水晶不要と言う点だけを買って25K50使ってたけど、実は
788:最近になって ADCだけじゃなくDACまで付いてる事に気づいた。あとMSSPも2550に比べて機能アップしてんのな。 chip1で10個2000円とか妙に安かったからまとめて買ったわ
789:774ワット発電中さん
16/08/10 22:11:13.59 1cNiUejl.net
ソップソルダークラブ:SSC (1975)
790:774ワット発電中さん
16/08/11 09:40:27.36 v7Z1vW+T.net
>>749
Pickit3はライターです。
DIPだろうがSSOPだろうが自分で配線して、書き込み端子を引っ張り出す必要がある。
ICEはもろICE3とかそういう名前がついてる丸いやつ。
こっちもコネクタで接続するんだけど、コネクタが大きい分、実機デバックも可能。
IDEは新しいXならMacとかでも動くんじゃなかったかな?
古い方は最終更新が数年前だからよほど理由が無きゃ触らなくていいよ。
28ピン中何ピンどんな風に使いたいの?
とりあえず、ビット数を気にしないとか、コンパイラになれたい程度なら純正のXCとかあたりでLED光らせとけば?
その程度で良いなら、秋月で16F57を除いた中で28ピンの内の古くて安い物を選ぶといいかと、古い方が設定の記述が減るし、なんで新しいので機能増やしたのかわかる。
RC発振させられるしオシロで確認できるなら、16F57でデジタルの入出力オンリーの設定がおすすめだけど、セラロック買える値段で同サイズの良いPICが買えちゃうからあんまりおすすめできない。
書き込みピンと動作ピンが完全に分裂しているので動作ピンが少ないけど、書き込みボード作るのは楽。
791:774ワット発電中さん
16/08/11 11:05:44.22 w5MQ36za.net
>>749
安心買うならMicrochipのを買っとけ。2コ目を、ってんなら中華でもいいかもしれないが。
あと何作るのか決めてからチップ選びした方がいいよ。
買ってから やっぱりあれ必要だった なんてしたく無いだろ?
792:774ワット発電中さん
16/08/11 11:30:16.47 V/EZYqdU.net
PICKit3は、純正を買ってください。
というか、コピー品のを買うのって、後ろめたさを感じないか?
コピー品を作ってる彼らの片棒を担ぐみたいでイヤじゃない?
PICは、24FVをお勧めします。
16bitだし、3Vでも5Vでもうごく。
DIPは、20pin, 28pinあるし、QFPもある。
793:774ワット発電中さん
16/08/11 11:34:12.01 g6KxnYzr.net
コピー品とクローン品は明確に区別しような
eBayやAliで売られてる格安の中華製PICKIT3はコピーじゃなくてクローンだと
思うんだが違うのか?
794:774ワット発電中さん
16/08/11 11:56:38.15 TXEMj/IF.net
PICKITなんてたいした値段じゃないんだから正規品買ってやれよ。
795:774ワット発電中さん
16/08/11 12:07:40.86 DbnB4FGb.net
おとこわりします
796:774ワット発電中さん
16/08/11 12:42:17.04 JrOTLU2d.net
>>749
入門用的な16F84Aと言うのを買えば良いよ。
797:774ワット発電中さん
16/08/11 12:56:24.48 w5MQ36za.net
いやもう幾ら何でも古過ぎだろ。
798:774ワット発電中さん
16/08/11 13:12:42.29 TXEMj/IF.net
トラブル発生しても自分だけでなんとかできるレベルの人ならパチモノでも問題ないかもだけど、
何から始めたらいいのかな?レベルの人だと
そのあとどっかで詰まった時にここで質問しても
「まずは正規品に変えろ、話はそれからだ」になっちゃうと思うのよ。
だから初心者は人に聞くためにも、最もユーザーの多い環境(メーカー正規品)を強く推奨する。
799:774ワット発電中さん
16/08/11 14:41:19.74 mtMIDvsL.net
>>749
ICEなんて個人で買うような値段じゃないからPICkit3一択
クローンは持ってるけど、書き込みが遅いし、低電圧でしか書き込めなくなった
でも、クローンばっかり使ってる
最初どのチップを買うか
800:は、やりたい作例を見つけて、同じものを買うのがベスト 期間指定して新しい作例を選ぶようにし、84Aなんて使う作例はやめた方がいい 開発環境に関しては、もう少し自分でググるべきだが、とりあえず http://www.microchip.com/mplab/mplab-x-ide http://www.microchip.com/mplab/compilers のDownloadsタブを見て、自分の環境に合わせてもらっとけ 全て無料、制限なんて全く気にする必要ない、たぶんずーっと
801:774ワット発電中さん
16/08/11 21:54:46.60 M4FmKF5Y.net
簡単なLチカ程度のプログラムを12F1822から16F1827に移植したいのですが、データシートで見る限りPORT BとTRIS B、他にCMCONが2つになってるのでその辺りの違いたけ気を付ければ良いと思うのですが他に気にする所など有るでしょうか?
802:774ワット発電中さん
16/08/12 10:49:12.48 Al3ljDyl.net
>>742
半角の英数字を使う癖もつけようね。
803:774ワット発電中さん
16/08/12 10:54:23.19 Al3ljDyl.net
>>762
config設定
周辺機能のレジスタ設定
ポートやピンの表現
上記3点が処置できていれば、動きます。
804:774ワット発電中さん
16/08/12 10:54:26.91 Al3ljDyl.net
>>762
config設定
周辺機能のレジスタ設定
ポートやピンの表現
上記3点が処置できていれば、動きます。
805:774ワット発電中さん
16/08/12 10:55:29.35 Al3ljDyl.net
>>762
config設定
周辺機能のレジスタ設定
ポートやピンの表現
上記3点が処置できていれば、動きます。
806:774ワット発電中さん
16/08/12 12:09:46.08 ujFzBNRt.net
>>764-766
エラー出てもリロードする癖を付けようね
807:774ワット発電中さん
16/08/12 15:05:30.53 tukzmvXa.net
これは恥ずかしい
808:774ワット発電中さん
16/08/12 15:22:57.83 3WJUWUcv.net
>>763
統一感あるから違和感ない
それより、赤の他人に「~しようね」的な口調で
個人的な趣味を押しつける思いあがった性格の方が癇に障る
809:774ワット発電中さん
16/08/13 10:37:53.42 /GvpjGco.net
単に今のPC買えなくて半角は8ビット幅、全角は16ビット幅の
キャラクタしか表示出来ない奴なんだろう。哀れみしか感じない。
810:774ワット発電中さん
16/08/13 11:04:32.56 2+xoQZ21.net
>>770
先生。「どっと」です。
811:774ワット発電中さん
16/08/13 11:12:40.76 2+xoQZ21.net
そういえば「社内規定で文書に半角英数記号の使用禁止」って話を聞いたことがあって、
理由を聞いたら、-(半角ハイフン)が見えにくい、iが詰んで見にくい、みたいなことを言われた。
それってMS P明朝だからだよね…
812:774ワット発電中さん
16/08/13 11:29:57.19 ltAkSeXH.net
>>772
全角数字の間抜けっぷりって、無いよね。
ハイフンが、カタカナの伸ばす棒 だったり。
見ていて気持ち悪い。
813:774ワット発電中さん
16/08/13 12:14:10.17 tN8difjy.net
ダッシュ使えよ
814:774ワット発電中さん
16/08/13 12:23:32.17 gGjsnP7I.net
正直、半角文字使ってた奴は死んでほしい
昔の文書OCR処理するとき、すっごく大変
815:774ワット発電中さん
16/08/13 15:06:09.88 qsmUKMs3.net
>>775
俺の経験から言うと、それは7割方OCRの設定が悪い。
死んだ方がいいのはお前。
816:774ワット発電中さん
16/08/13 15:10:48.13 uQzyM6lh.net
16F690の割り込みの実験です
RB7を押すとRC2がON
RB6を押すとRC1がON
RB5を押すとRC0がON
というプログラムを作りたいんですが、うまくいきません
実際は
RB7を押すとRC2がON、そしてその後RC1がON
RB6を押すとRC1がON、そしてその後RC0がON
RB5を押すと無反応
どこが間違っているんでしょうか
そのプログラム
URLリンク(uproda.2ch-library.com)
RB7,6,5はIOCBで割り込みのピンとして設定して、プルアップしてあります
16F690のデータシート
URLリンク(ww1.microchip.com)
どっちもどっち。
いちいちうるせえよ。
文句あるなら自分で変換しろ。
秀丸で、選択コピペ変換コピペで、20秒でできる。
817:774ワット発電中さん
16/08/13 15:13:43.67 a+o1jMzf.net
すみませんでした。
次から秀丸を使います。
818:774ワット発電中さん
16/08/13 16:00:59.81 n1o0oAQw.net
低レベルの質問したり、人に突っかかったり忙しい奴だな。
819:774ワット発電中さん
16/08/13 16:03:57.11 eO2b4QxZ.net
>>777
同じ仕事の繰り返しの時は、こんなふうに書くと、わかりやすいよ。
interrupt isr(){
if(RB7==0){ RC2=1; __delay_ms(100); RC2=0; __delay_ms(500); }
if(RB6==0){ RC1=1; __delay_ms(100); RC1=0; __delay_ms(500); }
if(RB5==0){ RC0=1; __delay_ms(100); RC0=0; __delay_ms(500); }
RABIF=0;
}
さらに#define というのを使うと
#define on 0
#define off 1
#define SW3 RB7
#define SW2 RB6
#define SW1 RB5
#define LED3 RC2
#define LED2 RC1
#define LED1 RC0
#define t_on 100
#define t_wait 500
interrupt isr(){
if(SW3==on){ LED3=on; __delay_ms(t_on); LED3=off; __delay_ms(t_wait); }
if(SW2==on){ LED2=on; __delay_ms(t_on); LED2=off; __delay_ms(t_wait); }
if(SW1==on){ LED1=on; __delay_ms(t_on); LED1=off; __delay_ms(t_wait); }
RABIF=0;
}
さらに、中身を関数にすると、
void LED_on_off(unsigned char n){
if(n==3){ LED3=on; __delay_ms(t_on); LED3=off; __delay_ms(t_wait); }
if(n==2){ LED2=on; __delay_ms(t_on); LED2=off; __delay_ms(t_wait); }
if(n==1){ LED1=on; __delay_ms(t_on); LED1=off; __delay_ms(t_wait); }
}
interrupt isr(){
if(SW3==on){ LED_on_off(3); }
if(SW2==on){ LED_on_off(2); }
if(SW1==on){ LED_on_off(1); }
RABIF=0;
}
と書けて、見やすいし、修正も楽になりそうです。
割込が起きて、ここに入って来て、
その中の条件が成立すると、RCxxをon/offさせてから、500ms待って抜けているね。
でも、500ms待った後に残ったif()を実施すると、これまた成り立っている、ということはない?
if()が成立したら、それ以降のif()は見ないようにするというのはどうですか?
820:774ワット発電中さん
16/08/13 16:38:25.35 n1o0oAQw.net
ISRの中で時間待ちか…
821:774ワット発電中さん
16/08/13 17:08:15.87 eO2b4QxZ.net
設計者がそうしたいみたいなので、それには触れませんでした。
else ifで終わりなんですが。
822:774ワット発電中さん
16/08/13 19:46:06.47 /GvpjGco.net
>>771
ドットでも正しいが、現実はバイト&ビット。今のGPUはドットが複数バイトで構成されてたりするが
当時のVRAMは1バイトで横に8ドット分表示する物が多かった。アセンブラで直接描画して
プログラムしてた奴なら常識。色はプレーンで対応してた。
ま、MSXのV9938だと、モードで1バイト=1ドットに出来たりしたが、だいぶ後の話だな。
823:774ワット発電中さん
16/08/13 19:50:37.45 /GvpjGco.net
>>781
℃素人だからいたし方あるまい。Cしか出来ない奴の典型。
ドン臭いプログラムに気がつかない。
824:774ワット発電中さん
16/08/13 20:16:15.88 Ov+nqXYi.net
Cかアセンブラかは無関係なのに
是が非でもそこへ帰着させたいステレオタイプ脳
825:774ワット発電中さん
16/08/13 20:22:27.71 tN8difjy.net
池沼ニートの妄想だ、気にするな
826:774ワット発電中さん
16/08/13 20:24:09.77 /GvpjGco.net
ドン臭い奴がわらわらwww
827:774ワット発電中さん
16/08/13 20:29:09.07 DnvOJZfh.net
>>ID:/GvpjGco
ほお、>>781の指摘を、アセンブラとCとの対比から説明してみてください。
ワクワクしながらお待ちしています。
828:774ワット発電中さん
16/08/13 20:31:00.74 ZA2y8vj5.net
ネットを徘徊する荒らしはサイコパスなナルシストで、サディストであることが判明(カナダ研究) : カラパイア
URLリンク(karapaia.livedoor.biz)
つまり荒らしは他人の気分を害することを本当に楽しんでいるのだ。
荒らしもサディストも他人が不愉快そうにしているのを見て喜ぶ。
今度ネットで荒らしに遭遇したら2つのことを憶えておこう。
それは荒らしというのは本当にろくでもない連中であることと、
あなたの苦しみは彼らの喜びであるということだ。
つまり無視するに限るのだ。
829:774ワット発電中さん
16/08/13 20:35:40.15 bAEpOJHG.net
Cで書こうがアセンブラで書こうが割り込みサービスル
830:ーチン(ISR)の常識は 割り込み要因の特定 情報を割り込み要因から取得してメインで使えるよう蓄積する。 これらを行なってできる限り速く脱出する のが応答性のよいマイコンシステムの組み方だよ。
831:774ワット発電中さん
16/08/13 20:40:12.56 bAEpOJHG.net
あ、勿論割り込み要因のクリア、もな。
832:774ワット発電中さん
16/08/13 21:08:38.20 VcSQuXqJ.net
確かに教科書ではそうなのだけど・・・・・
実際に割り込みルーチンに行って戻るだけでも
結構時間がかかるもので、それから実処理となると
処理が追いつかないものもあるのが現実・・・
833:774ワット発電中さん
16/08/13 21:18:21.79 T0i8QmhU.net
>>784
Cではまともな割り込み処理が書けないとでも思ってる?
あなたのレス、私はCが書けません、としか読めないよw