初めてのPIC 0x08at DENKI
初めてのPIC 0x08 - 暇つぶし2ch216:774ワット発電中さん
16/05/19 07:58:55.76 Eql58SOH.net
>>203
それの抵抗なしって、スイッチ押したら電源ショートするのかよw

217:774ワット発電中さん
16/05/19 08:10:17.35 Eql58SOH.net
>>203
ああ、なしって抵抗とってGNDには接続されてないってことね
それはNGだろ
入力ポートをオープン状態にするなんてナンセンス

218:774ワット発電中さん
16/05/19 12:12:39.21 hXkYo9pr.net
>>204
そういうやりとりに意味がありますか?

219:774ワット発電中さん
16/05/19 19:39:42.05 3p5OQUVC.net
>>208
意味が必要な理由は?

220:774ワット発電中さん
16/05/19 20:18:28.96 Cx5Mp5Nf.net
>>198,>>203
PICのポート設定がINに設定されていればVDDが直結になってもHIGHになるだけだから問題はないけど、
SWがONでVDD、SWがOFFだとNCって使い方はよろしくないな。
自分ならPICのプルアップを使って、SWにGNDを繋いでON/OFF判定するけどな。

221:774ワット発電中さん
16/05/19 20:42:27.18 hXkYo9pr.net
>>209
よく読んでから書いてね

222:774ワット発電中さん
16/05/19 20:45:16.94 6XOobwzN.net
>>210
SWオンの時ってPIC経由でグランドに直結(ショートに近いインピーダンス)じゃないの?

223:774ワット発電中さん
16/05/19 21:41:25.70 i4GRL4uc.net
出力設定されてLOW出力されてりゃ直結状態で壊れる
入力設定されてりゃハイインピーダンス
ハイインピーダンスだと周りの影響受けまくるので
プルアップかプルダウンする
内蔵プルアップ使えば構わないけれど、
内蔵プルアップは比較的抵抗値でかいので、
外部に付ける方が対ノイズには強くなる

224:774ワット発電中さん
16/05/19 22:04:13.23 euEIpFi2.net
>>203
>それの抵抗無しです。
>ONで電源電圧がもろに入力に入るので気になってました。
抵抗なしって、もしかして左の図のようなことかな?
もし、これだと「電源電圧がもろに入力にかかる」とは関係なく問題があるよ。
スイッチOFFのときにLを保証できないもの。(内蔵プルダウンって最近のPICにはあったりするの?)
マイコンは内蔵プルアップ使えるものが結構あって、それを使えば右のような構成はあり。
抵抗値は一般に高いから、ノイズがとっても酷いところなら>>213が書いているように外付け抵抗の方が
いいかも。
図を描くと曖昧さは低減できるな。
sssp://o.8ch.net/c2o0.png

225:774ワット発電中さん
16/05/19 22:07:55.37 euEIpFi2.net
>>212がなぜそんなふうに考えたのか(つまりどんなふうにマイコンを勉強しているのか)気になるな。
そんなふうに考えさせるような本や情報、教材があるのだろうか。

226:774ワット発電中さん
16/05/19 22:24:22.71 HUCYxG7B.net
>>211
なぜ池沼の為に労力を使わなければならないの?

227:774ワット発電中さん
16/05/19 22:27:19.59 hXkYo9pr.net
スルーできないなら労力が必要でしょう

何事にも中途半端は良くないです

228:774ワット発電中さん
16/05/19 22:33:21.04 euEIpFi2.net
>>216
知らない人に知ってる人が教えることに疑念を持ってるの?
そんなことは普通はしないものだ、と思ってるのかな?
そういう考えなら、質問しても答えが返ってくることは期待しないし、
あなたが知ってる方の立場でも、質問があっても答えることはないよね?
だったら、なぜあなたはこのスレにいるんだろうね。

229:774ワット発電中さん
16/05/20 01:53:31.37 XEXOVaFg.net
>>216にだって、そういう時期があったはず。
なのに、今の自分の技量に溺れて、そういう人を見下す。
そういう人たちを、育てたいとは思わないのか。

230:774ワット発電中さん
16/05/20 04:14:35.56 wkxMamEp.net
「ゆとり世代」は、自分で調べないのが多いんだよ
そりゃビックリするくらい
「ゆとり世代」の親は「バブル世代」が多い
これがまた最悪のパターン
「バブル世代」は社会を小馬鹿にしている
社会を小馬鹿にした親に育てられた「ゆとり世代」
日本にとってはダーク世代なわけだ
可哀想で仕方がない
皆さん親身になって教えて上げましょう
どうでもよいが、個人的には「ゆとり世代」結構好きだったりする
バカだけど優しい人が多い

231:774ワット発電中さん
16/05/20 06:59:24.52 GhGoEcn/.net
>>212
それだとTTLとか直結できないっしょ。

232:774ワット発電中さん
16/05/20 09:05:59.01 dU5SNkll.net
>そういう時期があったはず。
少なくともある程度デキる奴なら、ネットに丸投げた上、
「教えてくれないのはおかしい」なんて「俺様初心者」
していた時期なんて無いだろうな。

233:774ワット発電中さん
16/05/20 09:09:01.88 dU5SNkll.net
>皆さん親身になって教えて上げましょう
別に教えなくても良いんじゃね?
教わってるだけじゃ教えてる奴の劣化コピーにしかならないし。

234:774ワット発電中さん
16/05/20 14:34:05.73 DubQi4HP.net
あえて教えないことで自分で調べた方が早いということに気付かせてあげる優しさ

235:774ワット発電中さん
16/05/20 14:45:32.46 Zs0cA6sd.net
>>223 >教わってるだけじゃ教えてる奴の劣化コピーにしかならない 教わってるだけなのかどうかはわからないけどね 糸垂らして楽しんでるだけかもしれないし



237:774ワット発電中さん
16/05/20 16:46:56.00 pCaFpHiP.net
アセンブラでバンクが4つ以上あるPICのバンク切り替えを行う必要がある場合、
BSF STATUS,RP0  ;BANK3
BSF STATUS,RP1
用が済んでBANK0に戻る場合
BCF STATUS,RP0  ;BANK0
BCF STATUS,RP1
とか2段書きにするのでしょうか。
ネット上にあるソースをググった限り一行でしか書いてないものですから。
16f1***のようにBANKが32個あるとすれば5行書きすることに?そういう必要があるかどうかは
別としてですが。(mpasm v 5.66, #include <pic16f88>)
ど素人なものですみません。

238:774ワット発電中さん
16/05/20 18:14:59.31 G00WKDSH.net
>>226
それでいいと思う。
BANKSELマクロを使うと少しスマートに書けるけどBANK0→BANK1→MANK0
のように1ビットだけの変更で済む場合には無駄なコードが気になるなら
BSF、BCFで書く。
BANKSEL EECON1
BANKSEL 0
>16f1***のようにBANKが32個あるとすれば5行書きすることに?
これは仕組みが違ってBSRレジスタに設定する専用命令がある。
MOVLB k

239:774ワット発電中さん
16/05/20 18:45:47.64 pCaFpHiP.net
>>227
ありがとうございました。BANKSELマクロはどこかで見た記憶がります。
incファイルの中を探してみます。
それと同じくアセンブラですがラベルだけの行は、サイクルを消費しますで
しょうか。
ご存知の方がいらっしゃるならお手すきの時にでもご教示くだされば幸いです。

240:774ワット発電中さん
16/05/20 18:54:26.71 affaNCZm.net
ないから安心しな。

241:774ワット発電中さん
16/05/20 19:57:56.70 pCaFpHiP.net
>>229
確かにBANkSELは16f88.incのなかにはありませんでした。
じゃ、いったいどこに、という疑問は残りますが、努めて安心することにします。
ご指導に感謝します。

242:774ワット発電中さん
16/05/20 21:42:18.87 G00WKDSH.net
>>230
BANKSELはヘッダにはないです。
正確にはマクロでなくてDirectiveらしいです。
MPASMのマニュアルのControl Directivesの項目を見てください。
ラベルだけの行はラベルのアドレスを割り当てるだけなのでサイクルを
消費したりしません。

243:774ワット発電中さん
16/05/20 23:32:19.07 pCaFpHiP.net
>>231
ありがとうございます。MPASMのマニュアルを見に行ったのですが、ど素人の私には
字面は追えても内容はくみ取れませんでした。でもたいへん参考になりました。

244:774ワット発電中さん
16/05/21 04:04:45.17 /u0e0CTl.net
バンク切替って、Cだと出てこないんですが、
アセンブラだと出てくるのでしょうか?
また、なんでバンク分けするのでしょうか?
0番地からずっと続けて使えばいいと思うのですが。

245:774ワット発電中さん
16/05/21 04:56:49.14 jeju95vf.net
>>233
PIC バンク
で検索くらいした?

246:774ワット発電中さん
16/05/21 06:13:11.71 wnlFi9ka.net
PIC24FJ32GA002ですが、初期ロットはエラッタが多くて特に内蔵I2C機能を
使う場合は注意が必要との記述をネット上で見つけたのですが、
秋月あたりで扱いのあるPIC24FJ64GA002の現在の出荷ロットはすっかり
その手のエラッタは取り除かれている、と思っていいものでしょうか。

247:774ワット発電中さん
16/05/21 06:51:52.92 4cuEj0xq.net
>>233
Cではユーザーにできるだけ意識させないようになっている。
>なんでバンク分け
8ビットPICマイコンの設計をしたときに、12ビット、14ビット長の命令でメモリ(レジスタ)アクセスを
しようと思ったときに、アドレスのビット幅を取らないという選択になったんじゃないかな。
もともとは多くのメモリを搭載するつもりはなかったろうし。
今、完全に最初か


248:らマイコンを設計するとしたら、(FPGA内に構成するような場合を除けば) こういう設計にはならないと思う。あなたの言うように連続したアドレスの方が使いやすいし。



249:774ワット発電中さん
16/05/21 06:55:06.39 96nuKU8l.net
>>236
別に新規設計しなくてもPIC18は既にメモリ空間はリニアになってるんじゃないんだっけ?

250:774ワット発電中さん
16/05/21 07:29:35.39 63GrVDK8.net
>>236
たぶんMMUとか知らないんじゃないかな?

251:774ワット発電中さん
16/05/21 07:41:45.27 4cuEj0xq.net
昔のMMUはメモリ拡張のためだけだったりとか。古い話だ…

252:774ワット発電中さん
16/05/21 07:51:06.96 ZYJO5sUD.net
>237
PIC18はアクセスバンクやFSRでバンクを無視したり間接アクセスで連続的にアクセスできるように
工夫されているけど依然バンクはあるよ、MOVLB命令でBSRレジスタにセットする。
8bitPICは40年も前の設計のPIC1650からアーキテクチャを引き継いでいるからしょうがないかと。
完全に新規な16bitPIC(PIC24,dsPIC)はバンクが無くなってる

253:774ワット発電中さん
16/05/21 07:54:08.28 EDify9Vu.net
>>235
秋月はどのロット以降のものかなんて保障はしない。
正規代理店じゃないんだから仕方ない。

254:774ワット発電中さん
16/05/21 12:16:55.41 wnlFi9ka.net
>>241
そうですか。スペック見てたらこれ一つでたいていできる、と思ったんですがね。
「あたり」を引くまで買い続ける必要があり、初心者は手を出さないほうがいいかもしれませんね。
お答えいただきありがとうございました。

255:774ワット発電中さん
16/05/21 12:25:30.13 wnlFi9ka.net
あと二つだけ質問させてくださいませんでしょうか。
Hitech-C やxのつかないMplabIDE(8.92)の頃のCコンパイラ以前のソースコード
は Configuration Bits に関する表現を訂正さえすれば現在の XC-8 などのコンパイラを
通るでしょうか。
何か根本的に違う構造があることを意識する必要があるものでしょうか。

256:774ワット発電中さん
16/05/21 12:34:48.43 QKBZ9WTA.net
>>242
かなり古い情報だけど
2010年02月01日
PIC24F:共立のバグの少ない PIC24FJ64GA002とorz
URLリンク(mpu.seesaa.net)
どうしても最新リビジョンが欲しいなら
マイクロチップ・ダイレクトで買えば?

257:774ワット発電中さん
16/05/21 14:17:48.20 wnlFi9ka.net
>>244
ですね。次に買うときはそのようにします。ありがとうございました。

258:774ワット発電中さん
16/05/21 15:28:52.66 eXmnT3zl.net
12bitA/DのVref付近の直線性の無さに泣かされたことあるわ
エラッタに乗ってたけど、そこに書かれている情報よりどう見ても曲がってるし
分解能は落ちるけど、仕方なく外付けアンプのゲインを下げたりして

259:774ワット発電中さん
16/05/21 16:43:14.68 vFFvweMp.net
>>240
PIC24も、RAM が28k以上のは、バンクが有る。

260:774ワット発電中さん
16/05/22 12:53:52.40 5GPEw+LT.net
>>246
おまおれ。
仕方なく補正用のコードに渡してから処理したり、
アンプで受けてゲイン調整したり

261:774ワット発電中さん
16/05/22 19:37:46.99 R5Ruzk/X.net
ebayやaliexpresを見るとfor arduino はたくさんあるのに、同じように
使えるはずのfor picという表示が全くないのはなぜなんですか?

262:774ワット発電中さん
16/05/22 19:48:04.76 R5Ruzk/X.net
>>249 事故レス
ごめんなさい、ebayをfor picで検索したら、なぜだかなんかのリレーが大量にでてきました。
list件数でそれぞれ検索して比較したらそんなに違わないので自分の


263:単なるひがみというか 印象のようです。ごめんなさい。



264:774ワット発電中さん
16/05/26 15:55:55.39 j5SZP5Wp.net
PICのピンにRA、RB…とありますが、この"R"っていったい何の略なんでしょう。
それとRAの次はRBと思っていたら、RBをとばしてRCとなってるPICがありますが
RBをとばすのはなぜなんでしょう。"PIC Rは何の略?"とか"RBがない理由"とか
いろいろ検索ワードを自分なりに考えてググってみたのですが、わかりませんでした。

265:774ワット発電中さん
16/05/26 17:27:44.58 IUjPpL7D.net
Rだけだと思うなよGPとかもあるんだぞw

266:774ワット発電中さん
16/05/26 17:46:39.17 od3rwkuM.net
>>251
古いので総ピン数8ピン以上ならRがつく、RAとRBで8ビットとかあるし。
それから、新しいのもI/O多いのとかはRA、RBちゃんとついてる。(RAは4つだったりするけど、RCが4ビットとかもある)
GPIOは16以上の事がないかもしれん、しらん。

267:774ワット発電中さん
16/05/26 18:20:41.26 uHk9Nzz9.net
PORT Aが素直にピンの「なんたらA」に出てこないPICだってあるしな。

268:774ワット発電中さん
16/05/26 19:13:59.34 bqad6QYa.net
どうしてピンを数字順で並べてくれないのか、
どうして途中に別のピンを挟むのかと思うことあるねw
GPはGPIOのGeneral Purposeの略かな
Rはわからん、データシート説明でも
「PORTA<0> data input; disabled when analog input is enabled.」
と書いてあるだけ、poRtというオチは酷い気がするし

269:774ワット発電中さん
16/05/26 19:19:02.33 CzRIU+ou.net
ここの前スレかどこかで貼られてたPIC1650のデータシートには
F5 I/O Register A (RA)
F6 I/O Register B (RB)
などとあった

270:774ワット発電中さん
16/05/26 19:44:23.93 /n8RscSk.net
レジスタのRだったか
ポートをレジスタにそのまま割り当ててるイメージだしそういう事なのか?とは思ったが
A/B/Cの別は勝手にAはアナログ系に主に使えるセット、

271:774ワット発電中さん
16/05/26 19:45:45.85 /n8RscSk.net
スマヌ、途中送信してしまった。
Bはデジタル系、Cはそれ以外の的な内部の事情で分けているのかな?位に思っている
Bはプルアップ必ずあるみたいなある種の統一性を感じるけど、
具体的にこうですよってのは見た事ないからただの感想かもしれない。

272:774ワット発電中さん
16/05/26 19:56:11.05 j5SZP5Wp.net
>>252 >>253 >>254 >>255 >>256 >>257 >>258
皆さま、ご回答ありがとうございました。
それぞれ明確な定義はないようですね。そういうものだと考え気にしないようにします。

273:774ワット発電中さん
16/05/26 19:56:55.45 od3rwkuM.net
Aが目安でアナログならADCがANってのは無いんじゃないの?
DACは無縁だから使ったことないけど、出荷予定にほぼすべてにAN割り振られてるシリーズあるよ。

274:774ワット発電中さん
16/05/26 22:33:26.25 4oP7zdGO.net
>>258
あとBはビットがフルで取れる。

275:774ワット発電中さん
16/05/28 01:47:55.70 wvACXAJP.net
なるほど確かにIOが12本のやつはAとCで6本づつなイメージがある
…が、例外も結構あるな
16F526はBとCが6本づつ。16F527と16F1459はBが4本。

276:774ワット発電中さん
16/05/28 22:16:59.26 9D/YMOnR.net
8ピンのPICで割り込みが2レベル使えるものってありますか?

277:774ワット発電中さん
16/05/28 23:59:14.83 PDMZ5Jio.net
>>262
× 6本づつ
○ 6本ずつ

278:262
16/05/30 22:47:40.82 33lV+xrD.net
昔から「づつ」に慣れ親しんでしまったものでな
一応現代仮名遣いでも許


279:容はされてる >>263 無い。 8ピンのPICはEnhancedミッドレンジ以下しか無いが、割込み優先度はPIC18以上にしか無い 割り込み中に割り込み許可するのでは駄目?



280:263
16/05/30 22:59:39.30 HuTRSR8X.net
>>265
ありがとうございます。8pinにはありませんか
独自プロトコルで出力されるセンサの信号を状態変化割り込みで処理してるのですが
パルス幅が30us程度なのでそれ以上の時間を別の割り込み処理に使われるとセンサの
出力が正しく読めないのです(全体処理の都合でポーリングで処理するわけにも行かない)
割り込みを状態変化割り込みだけに専念させている分には問題ないのですが、他に
あれこれ詰め込めないなぁと。(Timer割り込みとかUART送受信割り込みとか)

281:774ワット発電中さん
16/05/31 01:39:34.23 agFzmF9y.net
>>266
以前 8pin PICで時間で判定をする、の人ですか?

282:263
16/05/31 01:57:24.78 USrji+Xd.net

その以前の話は分かりませんが8ピンPICは初めて使います

283:774ワット発電中さん
16/05/31 02:10:41.38 LX4h7ea9.net
>>266
まさに割り込み中に割り込み許可で解決しそうな気がする
やったことないから確証は持てないけど

284:774ワット発電中さん
16/05/31 06:03:28.79 A0U5wGvh.net
>>266
レジスタの待避領域が1つしかないから、割り込みの中での割り込みは無理。
UART とか、時間にシビアで無いものは、メイン側で割り込みフラグを見て処理すれば良い。

285:774ワット発電中さん
16/05/31 06:43:13.26 3cvem0UD.net
まず8ピンの箍を外したら?

286:774ワット発電中さん
16/05/31 06:46:27.33 j007FGCv.net
>266
ミッドレンジのPICでも工夫すれば多重割り込みは可能だけど(midrangeなら自前で保存なので
複数回対応になんとかする、エンハンスドならbank31に自動保存されてるのでさらにどこかに保存)
面倒だし処理時間も意外とかかるので時間厳しいなら別の手を探すほうがいいかと。
くわしい処理内容を書けば誰か考えてくれるかもだけど、結構複雑っぽいので厳しそうだね。
何が妥協できて何が妥協できないかを整理して考えるしかないかな

287:774ワット発電中さん
16/05/31 10:36:46.84 1/e3hsYl.net
>>266
PICに拘らなければいいんじゃねぇの?

288:774ワット発電中さん
16/05/31 12:16:44.37 9vV5VPR8.net
>>266
割り込みレベルというのは同時に割り込み要求があったときに受け付ける
優先順位だけだから多重割り込みを使わないと希望の効果にはならないの
では?

289:774ワット発電中さん
16/05/31 21:44:05.61 fMArIhtU.net
PIC 2石使おうぜ!

290:774ワット発電中さん
16/05/31 22:06:52.99 F4OBsYS6.net
>>275
ホントそれが最適解って事もある
PS/2のキードードとマウスの両方を読み取ってその結果をそれぞれ別のchの
シリアルで出力させたいんだけど、PIC24とかPIC32MXなんかのUARTが2chある
品種なら何とか出来るかなとか考えつつPIC12x2個で済ませた
金額的にもこれが一番安くすんだ

291:774ワット発電中さん
16/06/01 06:30:04.11 j5Sj1dpO.net
PS/2の通信仕様が変態すぎて諦めたっけなぁ。
自作でPS/2端子のマウスコントローラーを作りたかった。

292:774ワット発電中さん
16/06/01 18:34:07.40 BSYIpiQR.net
昔、PIC16F84で作ったなぁ。
ADBのマウスとキーボードをPS/2化するアダプタ。
LEDチカチカの次に作ったのがそれだった。
英文ドキュメント眺めて、アセンブラも無いんで、



293:ノートに手書きしたプログラムをハンドアセンブルして ユニバーサルプログラマで16進直叩きして書き込んだ(笑)



294:774ワット発電中さん
16/06/01 18:38:45.83 BSYIpiQR.net
マウスとキーボードを同時にやるのが難しかったんで、
ADBの処理とPS/2マウスの処理をPIC#1でやって、キーボードからきたのは
もう一個のPICに4ビットパラレル+ストローブ/ACKでハンドシェークして
データ渡しをやったんだっけな(遠い目)

295:774ワット発電中さん
16/06/01 18:41:54.14 7y+/RDi6.net
PC98以前のPS/2のコネクタによくキーボード側についてくるUSBの変換器をかましてIBMのUSBキーボードを差し込もうとしてるのを見たときには流石にワロタ
課が違うので相手のメンツも潰せず、それ、何も変換器入ってませんよとは言い出せなかった…。

296:774ワット発電中さん
16/06/01 20:41:45.04 qiCmFTCj.net
PC98以前のPS/2のコネクタが意味不明だ

297:774ワット発電中さん
16/06/01 20:50:21.60 7y+/RDi6.net
>>281
時期的にUSBに切り替り変わる前のOS(95以前とか)が載ってるPCのPS/2コネクタにと書けば通じるかな?
と思ったけど、あの変換器はハードで対応しているんだっけ?

298:774ワット発電中さん
16/06/01 21:14:48.49 p3JTID8Z.net
それってNECのPC-9801/9821じゃなくて
AT互換機からPS/2ポートやISAバス等のレガシーデバイスを排除したPC98/97規格の事じゃないのか

299:774ワット発電中さん
16/06/01 21:34:43.98 7y+/RDi6.net
>>283
Cバスとかついてる9801……流石にうわさに聞く88とかじゃあないと思うんだが実物を見たのはずいぶん前だからよく分からん。
CPLD書き込み機として使ってたけど、黄ばむとかっこ悪いからって危うくモニターとかキーボード交換されそうになってた…
当然それなりに新しいのに交換すると動かないんだよね、AT互換機とちょっと違うじゃん。
と言う所でしか分からんが、たぶん前者。

300:774ワット発電中さん
16/06/01 22:05:01.51 VlLjRrBT.net
PS/2ってそんな変態かなあ。
デバイス側がクロック出すってのは意外だったけど。

301:774ワット発電中さん
16/06/01 22:16:15.42 qi1gKLpt.net
PS/2はCLKとDATAが別々の信号線なのでCLKの変化をINT0割り込みなり状態変化割り込みで
キャッチしてその時のDATAの状態を読めばいい。無論ポーリングで処理することも可
ただプロトコル層を仕様にしたがってまじめに実装すると面倒
まあ普通は再送要求処理とか全部端折って無視しても問題なく動くけど

302:774ワット発電中さん
16/06/01 23:27:17.20 qkQZZuci.net
>>280
あれ、稀に変換チップ入ってるのがあるんだよな
だから話がややこしい

303:774ワット発電中さん
16/06/01 23:46:12.83 7y+/RDi6.net
>>287
まじかよ……そのコネクタに対応しているキーボードでしか動きませんよ?と言い出さなくてよかったのかもしれんなぁ…。

304:774ワット発電中さん
16/06/02 00:38:17.97 PgnzNdQ9.net
質問が有るのですがアドバイスなどお願い致します。
16F88のCCPのキャプチャー機能は内部8MHzクロックで使用した場合、測定できる上限はどの程度の周波数でしょうか?また、データシートのどの項目から読み取れるのでしょうか?
よろしくお願いします。

305:774ワット発電中さん
16/06/02 02:44:39.23 I+hUhoBp.net
そもそもキャプチャ機能は周波数を測定するためのものじゃないぞ。
キャプチャ機能はたまに来るパルスが来た時刻を調べるためのもの。
周波数を調べたいならTMR0に信号を入れて適当な時間待って値を見ればいい。
上限はプリスケーラ使えば50MHz。

306:774ワット発電中さん
16/06/02 05:34:59.66 G5ItvHJK.net
XC8を使ってPIC12F1822用のコードを書いています
12F1822はハードウェアスタックが16段とのことなんですが、これは関数から別の
関数を呼び出すのが16ネストまでと考えていいんでしょうか?
それとも実際は別の要因もあってもっと少ないネストしか出来なかったりするんでしょうか?
あるいはXC8はコンパイル時にその辺までチェックしてくれますでしょうか?

307:774ワット発電中さん
16/06/02 16:06:58.66 mXV/IVah.net
>>291
使ってかいてるなら、試してみればいいのでは?

308:774ワット発電中さん
16/06/02 16:35:39.53 Iw3V/TmK.net
知らないなら黙ってればいいのにとも思った

309:774ワット発電中さん
16/06/02 16:41:12.00 LUbMlYO4.net
i think so too
なんで知らない馬鹿に限って口を挟みたがるんだろうな、ホント

310:774ワット発電中さん
16/06/02 18:24:20.57 XhnxdPBO.net
てか、>293も>294も必要ないんじゃね?

311:774ワット発電中さん
16/06/02 18:32:18.70 TOwd9/1Y.net
知っててチャチャしかいれない奴も同類だよね

312:774ワット発電中さん
16/06/02 20:28:32.57 Iw3V/TmK.net
IDコロスケでしたか

313:774ワット発電中さん
16/06/02 21:04:10.54 iCW7Sv2g.net
ID:Iw3V/TmK
IDが変わらないことだけが生きがいw

314:774ワット発電中さん
16/06/03 00:43:36.72 W25bZg3U.net
>>290
レスありがとうございます。
時間を測るものですが時間と周波数は
f=1/tで表裏一体ですので周波数換算でと言うことで質問させていただきました。

315:774ワット発電中さん
16/06/03 05:36:47.58 tbNGvuNQ.net
そのクロックは神様なのか?

316:774ワット発電中さん
16/06/03 08:53:14.73 VOFJtxko.net
>>299
実用でも学習でも周波数計測器を作るというテーマだと、
一定ゲート期間のパルス数をカウントする方法が採られることが多いので
>>290さんのようなコメントになるよ。
周期を測って周波数を求めるのは、低い周波数になると思うのだけど、
あなたが想定している、測りたい周波数ってどれぐらいなんでしょう。

317:774ワット発電中さん
16/06/03 11:09:27.52 3fqhc020.net
>>300
GPSのPPSをPLLでクロックとしています。

318:774ワット発電中さん
16/06/03 15:31:58.44 JMLAoVCA.net
>>291
割り込みも考えたら15かな。
コンパイラはネストの深さチェックしてくれる。
オーバーしたときに、エラーにするか、インライン展開するかは、オプションで選べる。

319:774ワット発電中さん
16/06/03 17:13:25.95 NH6lZpfm.net
>>293
他人のレスに文句ばっかり言う人はいらないと思った

320:774ワット発電中さん
16/06/03 17:16:58.25 fNoOzX42.net
何もかも初心者なのですが、助けてください
MPLAB X IDE v3.30でpwm.hなどがインクルードできません
コンパイラはxc8です(v1.37)
~/Microchip/xc8/v1.37以下を検索してもpwm.hなるファイルもありません
pwm.hをインクルードする前の状態ではビルドできて一応実機で動いてますが
#include 〈xc.h〉
#include 〈p18f4553.h〉
のあとに
#include 〈pwm.h〉
を追加すると赤い下線がついて
Can't find include file
といわれます
ファイルはどこかから別途ダウンロードがひつようですか?

321:774ワット発電中さん
16/06/03 17:24:24.59 C7QN3VOE.net
>>305
まるち

322:774ワット発電中さん
16/06/03 17:58:43.88 pM1vyQpx.net
>>306
せりお

323:774ワット発電中さん
16/06/03 18:19:46.41 C7QN3VOE.net
>>307
もうお互いオッサンだなっ!!

324:774ワット発電中さん
16/06/03 18:31:11.20 pM1vyQpx.net
まだ20歳そこそこですよ
PS2版で遊んだ若輩者です

325:774ワット発電中さん
16/06/03 18:57:14.36 C7QN3VOE.net
>>309
そうか、それならこれからだな。
だが、すぐに30なんていくぞ? 気を付けるんだ。

326:774ワット発電中さん
16/06/03 19:47:47.45 scsDXWrY.net
>>303
初めてスレで堂々と嘘を書くなよ、キチガイが
消えろ

327:774ワット発電中さん
16/06/03 19:51:10.96 AY4g4nhk.net
>>311
自虐?

328:774ワット発電中さん
16/06/03 19:54:49.74 nvAL2Xn2.net
8段でも足りなくて困るやつなんていない

329:774ワット発電中さん
16/06/03 19:56:20.07 dNnT2qOl.net
ですね

330:774ワット発電中さん
16/06/03 21:50:25.32 69ZaCW8F.net
何もかも初心者なのですが、助けてください
MPLAB X IDE v3.30でpwm.hなどがインクルードできません
コンパイラはxc8です(v1.37)
~/Microchip/xc8/v1.37以下を検索してもpwm.hなるファイルもありません
pwm.hをインクルードする前の状態ではビルドできて一応実機で動いてますが
#include 〈xc.h〉
#include 〈p18f4553.h〉
のあとに
#include 〈pwm.h〉
を追加すると赤い下線がついて
Can't find include file
といわれます
ファイルはどこかから別途ダウンロードがひつようですか?
電子工作初心者スレで書き込んだものですが、スレチのようなのでこちらで助けてもらえると助かります。
よろしくお願いします。

331:774ワット発電中さん
16/06/03 21:54:56.01 Ocy3jQxE.net
>>311
嘘だと言うんならどこが嘘まで書いてくれ
とりあえず割り込み考慮すれば15段ってのは間違ってないかな
割り込み中の関数呼び出しとか多段割り込みは考慮しないのかって思うけど

332:774ワット発電中さん
16/06/03 22:21:56.55 OO6LUxI1.net
今環境がないけど
#include <plib/pwm.h>

333:774ワット発電中さん
16/06/03 22:44:14.43 dNnT2qOl.net
間違ってないと思うならそれでいいんじゃないかな

334:774ワット発電中さん
16/06/03 23:11:13.62 VOFJtxko.net
>>311
何を間違っているのか書かずに間違っているとだけ書くのは害悪だよ。

335:774ワット発電中さん
16/06/03 23:14:06.93 /rLfpxoa.net
>>303
前からすみません、MPLABXとXC8の組み合わせの場合その選択(オーバーしたときに
エラーにするかインラン展開するか)はどこで設定するんでしょうか
探したけれど見つかりませんでした

336:774ワット発電中さん
16/06/03 23:26:24.39 69ZaCW8F.net
>>317
試してみました
状況は改善しません
同じエラーが出ます

337:774ワット発電中さん
16/06/03 23:32:11.74 MYYqFTNZ.net
マルチさえしなければ懇切丁寧に教えてもらえたのに

338:774ワット発電中さん
16/06/04 00:20:29.01 dCSGDlKU.net
何のことかとおもったら
>>305は自分の書き込みじゃありません
スレの内容ぐらい見てから書き込めと言われれば全くその通りなのですが・・・
まさかレスが転載されてるとは思いもよりませんでした

339:774ワット発電中さん
16/06/04 00:50:10.00 vmqyy/Z3.net
コピペ荒らしがいるんだよ

340:774ワット発電中さん
16/06/04 01:18:56.01 REilkUlV.net
山彦みたいにコピペして混乱させる基地外がかなり前から潜んでいるようだな

341:774ワット発電中さん
16/06/04 01:26:48.88 dCSGDlKU.net
315です
おかしなのに絡まれて残念です
本当に初心者なので改めて確認させてください
一般的にMPLAB IDEとxc8をインストールすればpwm.hはインクルードできるのでしょうか?
先程xc8を再インストール(元のはアンインストールせず上書きのかたちで)しましたが状況が改善していないことを追記しておきます

342:774ワット発電中さん
16/06/04 01:41:14.77 dCSGDlKU.net
自己解決しました!
xc8はv1.35以降peripheral libraryを別途インストールする必要があるとの記事をみつけました
microchipのページから引っ張ってきたら無事インクルードエラーが消えました

343:774ワット発電中さん
16/06/04 01:47:12.14 43flytHb.net
XC8は1.33で止めるのが正解

344:774ワット発電中さん
16/06/04 08:35:13.68 Wl0me4Kr.net
古いバージョンを使い続けるのが正解ってのは良い話じゃないな。

345:774ワット発電中さん
16/06/04 09:39:10.66 1FtdMEMY.net
>#include 〈xc.h〉
>#include 〈p18f4553.h〉
XC8ってデバイスのヘッダーファイルをインクルードする必要があるのか
いままでxc.hしかインクルードしてなかった

346:774ワット発電中さん
16/06/04 11:17:44.35 Sz2GtsQ9.net
別に新しいバージョンがいいなんてことはないんだから
古いバージョンと新しいバージョンの両方を入れればいい

347:774ワット発電中さん
16/06/04 11:21:18.18 wY7fmkNG.net
>>330
xc8.hのなかで、必要に応じて読まれるから、不要。

348:774ワット発電中さん
16/06/04 11:22:43.41 wY7fmkNG.net
>>327
昔からのライブラリは余り出来良くない

349:774ワット発電中さん
16/06/05 08:10:11.03 J4IR5heS.net
PICを触り始めたばかりの初心者ですが、教えてください。
PIC16F88でA/D変換をした�


350:「のですが、ググると変換時間に1ビットあたり最小1.6μsかかるので TACQ+TAD×12で39.2μsという計算を見ますが、この12という数字はどこから出てくるのでしょうか? 10ビットなら×10、8ビットなら×8なら分かりますが、残りの2と1.5が分かりません。 よろしくお願いします。



351:774ワット発電中さん
16/06/05 09:02:46.29 rXPxsYex.net
>>334
データシートの
12.5 A/D Conversions
を読む。
あと、
FIGURE 12-3: A/D CONVERSION TAD CYCLES
という図を見てみるとよろし。

352:774ワット発電中さん
16/06/05 09:10:20.04 MGFrhi6Z.net
初心者ってずっと絶えないものなのだろうか?
電子工作のしかもPICと言うジャンルで
最終的ににちゃんに書き込む人
どの程度の割合でいるのか

353:774ワット発電中さん
16/06/05 11:59:12.35 8yMF99JV.net
人間はどんどん生まれてくるから絶えることはないさ
趣味でやる人は減っていそうだけど

354:774ワット発電中さん
16/06/05 13:08:31.42 /PlNpUbo.net
でもお前らが結婚しないから少子高齢化で日本は衰退の一途を辿ってる

355:774ワット発電中さん
16/06/05 13:33:45.10 B9FNhIdS.net
>>338
首都圏で残業代含めて年収250万の男と結婚して子供二人以上育てたいって人がいたら考えるけど?

356:774ワット発電中さん
16/06/05 13:41:28.90 A/1Vc6nA.net
昔から「一人口では食えぬが二人口は食える」って言うだろ
びびってないでとりあえず所帯持っちまえばなんとかなるもんなんだよ

357:774ワット発電中さん
16/06/05 14:02:36.37 J4IR5heS.net
>>335
ありがとうございます。
データシート見てみます。

358:774ワット発電中さん
16/06/05 14:12:10.06 fSYAQhDA.net
アマチュアはともかく
PIC等のマイコンの技術を本職にしたら食っていける収入が得られるのか
そっちの方が心配だ

359:774ワット発電中さん
16/06/05 14:25:44.21 qsJfNW0b.net
本スレで、
「アセンブラでは出来るけどCでは出来ないものがある。」
というような話が出ていますが、初心者にわかるように、
具体的な例で教えていただけませんか?
あるいはそのような説明をしてあるサイトをご紹介ください。

360:774ワット発電中さん
16/06/05 14:49:55.40 B9FNhIdS.net
>>340
だからそれ以前に相手がいないんだって、結婚相談所なんかに駆け込める年収じゃないし
会社にも女性はいないし、そういう所にいるわけで。
二人なら育てられるだろとか、言われても無理。
ビビる以前の問題に門前払いなわけ。
>>342
「PICじゃなくてARMかDSPで制御してるんでこんなに値段が跳ね上がったんですよ」って言いましょうよ社長ww
ってメインのマイコンを交換しろと圧力掛けに交渉に商社が来てたのを見たことがあるけど、俺なら
「じゃあ、せいぜい単価1000円ぐらいでしょ?値段にそんなに響くとは思えませんね」っていうかもなぁ……。
PICだからというかマイコンだけを売り物にしているような所だから収入が少ないと思われ。
当然そのマイコンが唯一無二なら分からんでもないが…。ピコトークとかなら分かる。
ラズパイみたいな、所詮ワンボードPCでもそれなりに成功すればいいわけで。
そもそもPICだって格安データーロガーとか作れるわけで、数万するようなロガー相手にうちはPICなんでクソ安いんです。と堂々と言っちゃえ。
当然もうけは少ないけど、それなりの性能を出せばいいんじゃないの?

361:774ワット発電中さん
16/06/05 15:26:39.35 96hgkFyU.net
需要のある技術でないと食べていけないし、
需要があっても、容易に習得できるなど参入障壁


362:が低いと競合が多くて食べていけないだろね。 生産量が少ないものだと、たとえばARMをPICに置き換えて単価が安くなったところで、 食べていくために必要な開発費を算入したら全然安くならない、なんて話だと相手にしてもらえないし。 競合が多くても営業さんに力があれば、同等レベルの競合よりは仕事が入るかも。



363:774ワット発電中さん
16/06/05 16:04:07.96 UA1kq8ES.net
すみません質問ですがPICKit2で16F88に書き込もうとするとconfiglation not found等のエラーが出てその後No deviceになってなにも操作が出来なくなる事が有るのですが何か特有の問題など有るのでしょうか?

364:774ワット発電中さん
16/06/05 17:43:22.38 G7NSb9az.net
>>346
これはやっかいなことになったね、俺も経験あるわ
俺のときはpic壊れてた
まず配線が間違えてないか、断線してないか、電圧あるか、そのへんからだね

365:774ワット発電中さん
16/06/05 18:02:26.88 RgOaOv+R.net
>>343
「アセンブラでは出来るけどCでは出来ないものがある。」
と言ってるように読めるかもしれないが、実は、
「俺は、アセンブラでは出来るけどCでは出来ない。」
と、個人的な無能さを卑下してるだけのこと。
アセンブラでもCでも最終的にコンパイルされてPICに書くときは同じ機械語で
そこまでの過程で使うツールが違うというだけ。

366:774ワット発電中さん
16/06/05 19:40:21.60 Ewa7m4e7.net
>>348
また、1クロック単位での命令ガーさん来ちゃうよ!

367:774ワット発電中さん
16/06/05 20:41:33.87 8yyYrstt.net
>>347
配線の間違いは無かったです。
何回も書き込んでいる書き込み用のゼロプレッシャーソケットを付けた基板で書き込んでいます。
特定のHEXだけ、新しいPICでも同じようにエラーになりその後Nodeviceになります。
何度も付けたり外したりして、PC再起動やPICKit2を繋ぎ直したりしてると何かの拍子にイレースできたPICがあり、その後は他のHEXを書くのは問題ありませんでした。
特定のHEXでエラーが出る問題など有るのでしょうか?

368:774ワット発電中さん
16/06/05 21:03:31.55 9NQ8XhkW.net
>>348
Cコンパイラの吐き出すコードを全部把握できるなら「過程で使うツールが違うだけ」と言えるだろうけど、
そこまで把握できていないのなら、それはちょっと違うだろ?と言いたい。
>>349
その為にアセンブラを選択する人もいるんじゃなかろうかと。
というか、お互い相手を否定する事しかして無くね?
プログラムの構造を把握しやすのは間違いなくアセンブラよりもCだろうし、
厳密なタイミングが欲しいならCよりもアセンブラの方が楽だろうし。
自分の場合は趣味だし「全てを自分の管理下に置いてる気分を味わいたい」って観点からアセンブラオンリーだけど。

369:774ワット発電中さん
16/06/05 22:10:33.26 oEMRFGDi.net
>厳密なタイミング
という実に曖昧な言い回し
これがアセンブラ厨の限界w

370:774ワット発電中さん
16/06/05 22:30:40.04 dGTwVUYd.net
>>351
出来るか出来ないかの話なんだがな
>把握できる
>厳密なタイミング
>気分
とかw

371:774ワット発電中さん
16/06/05 22:36:48.88 HW8tJaxr.net
厳密なタイミングのクロック何使ってて、温度補正どうやってるの
まさか内蔵とかセラロックとか普通の水晶あたり使ってて厳密なタイミングとか言ってるわけじゃないよね
クロック誤差が何PPMでメモリやレジスタ遅延誤差何ns許容してるのかな?

372:774ワット発電中さん
16/06/05 22:37:42.44 C0iOgX3s.net
>厳密なタイミング
とか必ず持ち出すけど
Cで書いてIDEのストップウォッチでシミュレーションして
最後はnopでもはさんで微調整でしょ
どうせクロックサイクル以上に厳密になんか出来ないんだから
ちまちまサイクル数えて手計算でやる意味がわからんわ

373:774ワット発電中さん
16/06/05 22:51:45.20 HW8tJaxr.net
>>355
自分もそう思う。
8MHzの内蔵クロックでソフトでマシンサイクルあわせてチマチマやるより、
32MHzで16bitタイマ使ったほうがよほど厳密。必要なら割り込み処理だけアセンブラで書けばなお良い。

374:774ワット発電中さん
16/06/05 23:46:54.78 9NQ8XhkW.net
>>355
いや、まぁ、自分がやったのはコイツのコントロール。
URLリンク(akizukidenshi.com)
LED内のチップにRGB各8bitのカラーコードを
0なら400nsのHGIHと850nsのLOW、1なら800nsのHIGHと450nsのLOWの組み合わせで24ビット連続で送る。
そして、全てのカラーコード(1600万色)に対応できるようにする。
40MHzのPICだと1サイクルは100ns。
パルス切り替えの誤差は150nsだからその誤差を利用するとしても、
0のHIGHは500nsで分岐命令以外で5命令分しかない。次はLOWだけど、1のLOWも600nsしかない。
こんな感じ。特殊な事なんだろうけどCで出来る出来ないで言えば、「Cでは出来ない」と自分では思う。
Arduino用のライブラリは用意されているらしいけどね。

375:774ワット発電中さん
16/06/05 23:51:08.33 1sVlOhHD.net
んなのCだろうがアセンブラだろうがプログラムで転送すること自体がアホらしいわな

376:774ワット発電中さん
16/06/06 00:26:18.67 HnVtPur/.net
という>>358みたいな馬鹿は放置しつつ
>>357
たかがLEDの制御に0.4usとか0.8usとか頑張りすぎな気が・・・
10倍遅い4us/8usでも人の目には分からなさそうなもんだけどここまで
速くなきゃダメなのかな

377:774ワット発電中さん
16/06/06 01:11:18.48 4h4ISJKC.net
>>358
一応、PIC18F2620を使ってこのLEDバーを28本(LED224灯)+単体16個で240個に光を流すところまではできたよ。
ただ、形が気に入らないからLEDバー30本+単体16個で256個に変更する予定だけど。
LEDの管理はゲーム機のBGとスプライトのような感じに使えるようにして、
24bitx256個で768バイトを背景1枚+スプライト?用3枚。この4つを重ね合わせた後のデータを置く場所に更に768バイト。
トータルのバッファ用RAMは3840バイト。RAMもほぼ使いきり。
>>359
LEDを1024個カスケード接続して30fps出せるって書いてあるようだし、それが基準なんじゃないかな?
リセットコードは50usと有るんだけど、実際にはもっと短いみたいで5us位にしておかないと送信失敗する。
初めはBG1+スプライト4だったんだけど、1個ごとに重ね合わせ処理して送信では間に合わず、
スプライト1枚減らして重ね合わせ用のバッファに回した。
おかげで特殊なエフェクトも時間を気にせずできるようになったけど。怪我の功名とでもいうのかな。
通信の仕組みだけど、一番最初に流れてきた24bitを自分で利用し、
データの切れ目がリセットコードよりも短ければ、それ以降のデータは全てそのまま横流すって感じ。

378:774ワット発電中さん
16/06/06 01:31:28.31 ymRwj3At.net
Cでできなそうなのでパッと思いつくのはUSBだなあ
16F628Aとか16F57とかでロースピードのUSBデバイス機能を実現したやつ

379:774ワット発電中さん
16/06/06 01:53:47.72 HnVtPur/.net
出来ないかもしれない
アセンブラでカリカリに最適化しながらじゃないと無理かもしれない
しかし18F14K50や18F2553みたいなデバイスが安いなかであえて非USB対応品で
USB通信をやるなんて技術的興味以外に意義が見出せない
そういう


380:範囲まで話を広げるのなら「8bitPICでゲームを動かしてNTSC信号で 出力させる」とか「RTOSを動かす」とかいくらでもある



381:774ワット発電中さん
16/06/06 08:49:01.52 +Aufz8US.net
>>360
LED側に制御IC載ってると楽できるよなぁ。
自分はベタのテープLEDを個別点灯でダイナミック点灯するとVRAM、同期やちらつきだとかめんどうくさいから、FPGA使っちゃった。

382:774ワット発電中さん
16/06/06 08:52:07.51 ymRwj3At.net
あー、意義があることじゃないと駄目?
だと難しいな
「USBロースピードに似たマイナーな通信形式があったとして」みたいな仮定の話もどうせ駄目だよね?

383:774ワット発電中さん
16/06/06 11:49:22.16 +3AdYrGs.net
二つの128~255の数値を足して2で割る処理をCでやるとすごくマヌケなコードになる

384:774ワット発電中さん
16/06/06 11:53:19.58 Wa9ZqBbS.net
自分はタスク並列処理したい場合にフルアセンブラ(AVR)を使う。

385:774ワット発電中さん
16/06/06 16:24:55.52 pvSGkyuT.net
>>365
それ処理上よく出てくるけど、PIC18だと確かにマヌケなコードになる
インラインアセンブラ使いたいけど、XC8無償版だとその関数全体の最適化が効かなくなるらしいし
XC8の無償版の最適化が捗ればいいんだが
(スレチ)キャリーフラグ込みのシフト命令使えるZ80系でも、持ってる古いMS-Cがマヌケなので困る

386:774ワット発電中さん
16/06/06 16:30:38.63 DxFLL+01.net
タイミング要求が欲しいなら・・・・CPUには任せないだろうなぁ。
命令の実行サイクルで調整するような方法だと、その間割り込みの
受付もできないし。
>>363
「せめDMAがあればぁ!!」って思うでしょ?

387:774ワット発電中さん
16/06/06 20:03:46.45 4h4ISJKC.net
>>363
このLEDじゃなきゃやってないなぁ。R,G,B全てをPWM制御して色を作らないとならないし、
更にLEDが複数個あったらまず無理。
実はLEDの仕様をよく読まずに注文してしまって、制御パルスの仕様を見た時、「あ。パルスの桁一桁間違った」と。
色を固定して各色毎にサブルーチンを作ればいけそうだったけど、じゃぁ、何のためのフルカラーだよと。
無い頭を必死に振り絞って送信ルーチンが完成してほっとしたw
>>368
このLEDのようにデータ送信だけは確実なタイミングが欲しいと言う事なら
割り込み処理じゃなくても最優先の割り込み処理をしているのと同じと考えるかな。

388:774ワット発電中さん
16/06/06 20:30:13.74 h1cOJWvj.net
ID:4h4ISJKC
それはそうと、何が出来上がるの、それ。

389:774ワット発電中さん
16/06/06 20:36:56.33 N5CTu0gn.net
忙しいのに夕方と深夜に書き込むニートの妄想、真に受けるなよ

390:774ワット発電中さん
16/06/06 21:44:19.48 4h4ISJKC.net
>>370
LEDのイルミネーション?だけど。LEDしかコントロールしてないしw ちなみにこんなの。
表。
URLリンク(s1.gazo.cc)
光らせた時。光が眩しいから半透明のPPシートでマスクしてある。うっすら見えてる星形は暗く光らせてるため。
丸と星とハッキリ見えてる頂点がBGに相当する背景。オレンジから紫までの帯が3本、
これが3枚のスプライト的な物。それぞれの動きの速さは1:2:3。BGとスプライトの動作チェック用なので美しさはあまりないw
URLリンク(s1.gazo.cc)
内部:ちょいグロ?全てのLEDバーに対して同じ長さのリード線を使ったらこうなったw
中央の太いのが電源で+5V最大20Aのスイッチング電源に繋がって�


391:驕B ソケットが2個あるのは1つ目のROMを使いきったら2つ目を付けて流予定だから。 ttp://s1.gazo.cc/up/194165.jpg >>371 今日は久しぶりに残業が無かったんだよw このLEDのデータシートは秋月のHPに乗ってるし、妄想でも嘘でもなんでもないだろ。 自分でも作れたんだから、このスレのアセンブラ使いなら余裕だろうし。 何がそんなに気に食わないのか。



392:774ワット発電中さん
16/06/06 21:52:16.60 HnVtPur/.net
>>372
371みたいな子供は放置に限るよ
どうで自分では何も作れないガキなんだから

393:774ワット発電中さん
16/06/07 11:03:21.41 OF4pmFF6.net
>>372
光っている所動画みたい
2枚目を見る限り綺麗じゃない
光物に弱いのはいつものことなんだけどさw

394:774ワット発電中さん
16/06/07 17:22:35.52 ZWQdL9tL.net
ID:4h4ISJKC
えっと…。
これは、「美術品」ということでいいんすかね?
ちなみに、Arduinoでもできますか?

395:774ワット発電中さん
16/06/07 19:11:03.20 w54QXbbv.net
>>372
BGとかスプライトとか言ってたから、てっきりドットマトリックスに並べて
8bit風ゲームでも作ったのかと思ってた。

396:774ワット発電中さん
16/06/07 19:17:29.94 ANpr4FDh.net
>>374
その通りで自分でも綺麗だとは思っていないんだよね。
白い光のレールの上を16色の虹色列車が3両走ってるって感じ。物凄く安っぽいw
RGBのコントロールは出来てるか、
LEDの全体的な発光タイミング用のカウンター(ゲームで言うところのVSYNC割り込み的な物)は動いているか、
それぞれのフレームバッファ(BG,スプライト1,2,3)をコントロールするタイマーは動いているかとか
チェック要素を詰め込んだだけのもの。
今は丸+五芒星なんだけど、それを丸+六芒星に変えようと思ってて
それ以上のプログラムも作ってないんで、六芒星の言移行が完了したら動画は上げてみようと思う。
撮影用に乳白色のPPシートをかぶせてあるからボーっとした感じに見えるけど、
実際にはクリアタイプのLEDと同じ光だから物凄くまぶしい。
>>375
Arduinoならライブラリが有るらしいよ。どんなライブラリなのかは知らないけど。
「美術品」と言うよりも「色々勘違いしている間接照明」かな。

397:774ワット発電中さん
16/06/07 19:34:39.34 ANpr4FDh.net
>>376
背景を書いてその上にセル画のアニメーションを流すようなイメージで作ってあるから
ドットマトリクス上に並べればゲームも作れるかな。
ただ、それだとLEDで動画が描かれてるだけって感じだから
あえて図形にしたうえで光の流れで何かを表現したら面白いんじゃ?と思ったから。
内部の処理手順はゲームとほとんど一緒にしてる。
一定期間ごとに割り込みを起こさせて、それに同期してフレームの内容を出力させる。この時に操作ボタンをチェック。
それ以外のタイミングではLED表示に手を出さない。但しフレームの内容はどのタイミングでも変更することが出来る。
更にすべてのフレーム処理が終わっても割り込みが来ないのならCPUは待機。って感じ。

398:774ワット発電中さん
16/06/07 20:45:57.60 6ssUBCCr.net
>>378
自分も同じようなものを作ったことあるけど、面に並べて動画みたいに表示させようと思うと、256×256くらいから
VRAMが飛躍的に増えて、30fps維持しようとすると、タイミングとるのがすごく難しくなりインターレースしたり
帰線区間転送量が増えて、
点灯電流が死ぬほど増えてきて数A余裕で超えるようになって、32BitのCPUとFPGAとVRAMと定電流回路と
数MHzの高周波駆動信号伝送がいるようになってきてノイズで誤動作するようになってきて


399: かなり楽しめる。



400:774ワット発電中さん
16/06/07 23:42:27.70 w54QXbbv.net
楽しそう(ガクブル)

401:774ワット発電中さん
16/06/08 06:33:32.43 5Pvzd2bG.net
確かに別な意味で楽しそうだけどw

402:774ワット発電中さん
16/06/08 08:09:44.65 7yTjZ1t7.net
もう少し頑張れば1920x1080のフルHD表示も夢では無いな

403:774ワット発電中さん
16/06/11 23:22:45.49 VT7ffkQM.net
16F88で7セグLEDを点灯させるためのプログラムを16F1827で使うために
一部を変更して書き込んだところRA7だけが反応しませんでした。
変更点は、OSCCONを16F1822に対応させるように変えたこと。
ANSELの記述が2つになってるのでANSELA,ANSELBにしていずれも使用しない設定。
タイマー2でダイナミック点灯だったのでタイマー2関連を修正しました。
ポートAで各セグメントを制御し、ポートBで桁を制御しています。
888を表示するようにしてみると何故か000になって、真ん中のセグメントは
RA7に接続していました。
RA7の関係で何かの設定が無いとデフォルトで入出力以外の設定になっている等あるのでしょうか?

404:774ワット発電中さん
16/06/12 00:19:26.68 mbkg6tSK.net
>>383
コンフィグレーションワードの設定が違うとか?

405:774ワット発電中さん
16/06/12 03:28:04.92 PolSXa8L.net
>>383
RA7は、ClockINになっているんじゃないの?

406:774ワット発電中さん
16/06/12 08:29:33.97 boljHGxk.net
>>383
以前18F87K90のRC0、RC1で同じような体験をした。結局データシートを読んで解決したよ。
RC0、1をデジタルI/Oとして使うにはデフォルトの設定では駄目で、コンフィグレーションビットの設定でSOSCSELをHIGH→DIGに変更する必要があった。
なんでデータシートをよく読んだらいいと思う。

407:774ワット発電中さん
16/06/12 09:06:12.90 mGUf/xwW.net
また聞いたことない型番が出てきた・・・>PIC18F87K90
ざぉちょり見た感じLCD接続に特化したPIC18なのかな
64MHzまでクロック上げられるのはいいね

408:774ワット発電中さん
16/06/12 10:21:24.24 yv2Xj8mG.net
グチャグチャやな

409:774ワット発電中さん
16/06/12 12:32:38.87 QV5/v2Nt.net
5桁シリーズのどこまでがシリーズナンバーでどこからが個別記号かとかあれも面倒で大変

410:774ワット発電中さん
16/06/12 12:34:35.64 h1VEGZei.net
>>383
RA7まで特定できてるなら、データシートに見たら答えは載ってると思う。
なんで見ないの?

411:774ワット発電中さん
16/06/12 15:33:25.00 boljHGxk.net
>>387
・Vdd5Vが使える
・アーケードゲーム用に使うんで入出力をとにかく多く(本当はもっと欲しいぐらい)
・EEPROM内蔵
って条件で選んだのがこれでした。
64MHzで使えるのでありがたいです。

412:774ワット発電中さん
16/06/12 18:02:32.24 Y9fMrFWV.net
>>384
>>385
コンフィグレーションの設定でディセーブルに出来るものはすべてディセーブルで
問題なく動作しました。
ありがとうございました。
>>390
データシート見てみましたが、今まで16F88などと勝手が違い理解が乏しかったです。

413:774ワット発電中さん
16/06/13 13:40:31.93 1FdSDj3w.net
>>392
>ディセーブルに出来るものはすべてディセーブル
なんでディセーブルにするの?
1つ1つの設定内容を見て、正しくセットしないといけないと思うんだけど。
動いたからいいじゃん、という結果オーライはよくありませんよ

414:774ワット発電中さん
16/06/13 19:51:33.99 sJcnUrYA.net
>>393
元々16F88など使ってたので、1827になって、追加された項目はそもそも使っていないと判断しました。
mikrocなので、GUIメニューで全て出てくるので。

415:774ワット発電中さん
16/06/13 20:09:52.28 fFSIX12C.net
結果オーライだってかまわないさ。
所詮趣味、所詮2ちゃん情報なんだし�


416:B真面目にやらなくたってかまわん。



417:774ワット発電中さん
16/06/13 22:16:25.09 AQcO46wj.net
まあでもデータシート読まないでプロジェクト始めないよな普通は

418:774ワット発電中さん
16/06/14 00:09:40.43 ygDLeMbv.net
>>394
1827と16F88が、なんで機能の上位版になるの?
>>394が勝手に考えて勝手に判断したんじゃなくて?

419:774ワット発電中さん
16/06/14 00:36:55.25 COI6BmJz.net
>>397
確かにmikrocならコンフィグレーションがウイザードだからメニューの数が違うな。

420:774ワット発電中さん
16/06/14 00:43:15.66 fhnsOUTW.net
PIC16F84/Aの代替ってPIC16F87が最適解ってことでいいですか?

421:774ワット発電中さん
16/06/14 00:45:38.99 ygDLeMbv.net
>>399
Microchipに問い合わせてみ。

422:774ワット発電中さん
16/06/14 01:13:01.83 oZZasLpI.net
>>396
いいのよ。どうせお遊びなんだから。

423:774ワット発電中さん
16/06/14 01:20:49.16 fhnsOUTW.net
>>400
お前には聞いてない
ガイジが口挟んでくんなよ

424:774ワット発電中さん
16/06/14 17:04:06.97 ygDLeMbv.net
>>399のようなていねいな質問口調の人でも、
>>402のような口の利き方になるんだね。
人は見かけによらないね。

425:774ワット発電中さん
16/06/14 17:07:10.45 LK6kqgtJ.net
見かけも何も見えませんしお寿司

426:774ワット発電中さん
16/06/14 20:24:55.62 KaugTGVU.net
>>399
そもそもPIC16F84Aがいまだに入手可能なので「代替」ってのも変な話
ピン互換、機能互換としても数種類候補に入って来るしねえ
初心者が最初に使ってみるPICとしての84Aの代替というなら1827をお勧めするけど

427:774ワット発電中さん
16/06/14 21:19:00.38 jMwW5R5n.net
初心者はやっぱ16F688じゃないの
16F1823は688の新型だと思ったら、メモリーが2kしかないのな、残念だわ

428:774ワット発電中さん
16/06/14 21:23:18.69 JRq58jZ6.net
>>406
16F1825
URLリンク(akizukidenshi.com)

429:774ワット発電中さん
16/06/14 21:34:01.09 kS+C2zd0.net
最低でもPIC16F1系以降ではじめる方がいいよ。

430:774ワット発電中さん
16/06/14 22:12:48.50 vlmI1YP0.net
18Fで始めちゃった自称初心者だけど遠回りしたのかな?
秋月の「PIC18F4553使用 USBマイコンボード」で
LEDやらスイッチ3個が便利で試作から実用まで十分使えたけど
実用物を作るには\1280が勿体ないのが難点

431:774ワット発電中さん
16/06/14 22:42:13.30 mDyUtI8B.net
基板起こせば良いじゃん

432:774ワット発電中さん
16/06/14 22:53:57.31 qb3m1fIU.net
>>409
いや、PICを始める一歩としては全然いいよ>18F4553
というか上で挙がってる16F1825なんかの16F1系は所詮エンハンスドミッドレンジ
割り込みは1レベルしか無いし1word=14bitだし、昔の古い設計を引きずってる
ハイエンドシリーズの18Fの方が設計が新しい分色々使いやすい
何より18F4553なんかのUSB対応品はUSB HID-Bootloaderを最初に書いておけば
pickit使わずにUSB経由でファームを流し込めるのが便利

433:774ワット発電中さん
16/06/14 22:56:40.39 HbgryABF.net
16F84Aを使うのはネット上に沢山のプログラムが存在するからだよ
それを利用したいから使う・・・それが目的と思うよ
ネットにあるプログラムを利用したいのなら
16F716を使うのが一番簡単だと思うよ。

434:774ワット発電中さん
16/06/14 23:05:03.70 pjSqRlWt.net
>>409
俺も>>410の発想に近い。
回路図があるんだからDIPの4553を買って来て、追加のパーツもそろえて、
とりあえずブレッドボードで再現してみればいいと思う。
別に難しくないと思うし、2000円でできる。
それから、別の18Fチップで代替できるかとかやってみて、徐々にコストダウンを図る。
最初の2000円は後々全て使いまわしが可能なので初期投資と考えれば安いもの。
以後、チップの値段+αで実用物が出来る。
>>411
1280円がもったいないって言ってるんだから、もっと安く、お気楽なものが作りたいんだよきっと。
18Fは選択肢としては間違いないけど、決して廉価ではない。

435:774ワット発電中さん
16/06/14 23:30:05.09 fhnsOUTW.net
>>413
安く抑えたいなら試作・実験は18F14K50のモジュール版使って、実用品作るときは
PIC単体で買えばいいじゃん。18F14K50単体なら220円で買える
これにDIP化USBコネクタやVusb用のコンデンサやセラロック諸々入れても500円で
済むでしょ
500円が高いとか言うならもうアドバイスする事は無いけど

436:774ワット発電中さん
16/06/14 23:31:46.07 vlmI1YP0.net
>>410>>413
ですね、ブレッドで試作して実用物は基板を作ってます。
DIPの4553が割高なので27J53等200円台のチップでケチろうとして
初心者が余計な所で嵌まり込んで苦労をしたという程度の難点ですw

437:774ワット発電中さん
16/06/15 00:53:39.36 PiIS7b8V.net
新規に始めるなら16bit以上PICの方がよさそうだけど。
作例は少ないから多少苦労するだろうけど、素直なアーキテクチャでCもいいし
PIC24,dsPICはアセンブラも8bitPICより遥かに使いやすい。
それにPIC18シリーズは実はもう終わったシリーズじゃないのかと思ってる。
ここ数年はたいして新製品も出ていないようだし。
逆にエンハンスドミッドレンジのPIC16F1シリーズはやたらと品種増えてる

438:774ワット発電中さん
16/06/15 02:01:03.97 N64/q7WA.net
5V出力の新製品が減りつつあって、そっちが自分の目下の悩み
トランジスタアレイつけるのもなー ( ´∀`)

439:774ワット発電中さん
16/06/15 02:41:22.60 jOyXW3VN.net
中華pickit 3と秋月のリール品で1k 10kのチップ抵抗、同じく104 コンデンサ、Lanケーブルの単線で一生分の基本パーツは揃う
チップもリードつければブレッドボードにさせる
10ufのコンデンサが必要なpicもある

440:774ワット発電中さん
16/06/15 02:55:57.25 PB+zzkoh.net
新しくはないけど、PIC24FVが使いやすいと思う(というか、使ってる)
・電源 2~5V OK
・20pin DIP, 28pin DIPあり。0.8QFP44
・全ピン 18mAの押し引き可能
・16bit 高速
・クロック 8MHz x PLL4 = 32MHz動作
・ハードウェア乗算器、除算器内蔵
・リアルタイム時計内蔵
・32bit CRC 内蔵
・2 SPI, 2 I2C, 2 UART, 3 PWM, 13 12bit A/D
・32kB ROM, 2kB RAM, 512Byte EEPROM
・選べるICSPピン(3箇所)
・秋月で270円
ソースのひな形を1回作れば、あとはピン数の違いだけ。使い回しがとても楽です。
ぜひ使ってみてください。

441:774ワット発電中さん
16/06/15 08:45:39.34 Ey9A+Dg5.net
>>407
・コンパレーターx2
・キャップセンス:x8
・コンパレータx2
大事な事

442:774ワット発電中さん
16/06/15 09:58:06.80 ZjG8Jdin.net
初心者が本当に使いやすいかどうかは別として、F1705やF1709あたりがあればOPAMPも内蔵だしメモリも満載だし、ちょっとしたものならこれ一個で全部いけるから便利じゃね?
F1705なら14ピンだから小型で扱いやすいから、あ�


443:驤モ味最強かもよ。 F1825よりもいいと思うけどな、CAPセンスどうしてもしたいというなら反対しないけど。 デカいチップ使えばなんでもできるのは当たり前で、小さいチップでいろいろできるのがこの手のPICのいいところだと思うよ。



444:774ワット発電中さん
16/06/15 11:01:28.26 5yb3rWnj.net
>>411
でも、PIC18は最近、新デバイス出てない。
マイクロチップもやる気なさそう。

445:774ワット発電中さん
16/06/15 13:04:14.64 W7sIU1Lh.net
お勧めじゃなくて自分が使ったやつの紹介になってるなw

446:774ワット発電中さん
16/06/15 14:59:33.99 ymUroxwD.net
え、秋月でぽちっちゃったじゃないの!16F1705と16F1825と24FV32KA301。
手元のPICKIT3(中華まがい物)で扱えるのか確認し忘れたまま…
それよりどしろーとの自分の力量で扱えるかどうかのほうが大問題か

447:774ワット発電中さん
16/06/15 19:42:11.08 sbLqU1kD.net
LINEAR DATA MEMORYがPIC16でサポートされていたら、
PIC18を選ぶ理由が少し減るなあって思います。

448:774ワット発電中さん
16/06/15 19:50:08.65 WgoBVu8z.net
>425
PIC12/16F1シリーズのエンハンスドミッドレンジならサポートされてるけど
FSR経由のアクセス限定だけど0x2000以降にRAMが連続配置されてる。

449:774ワット発電中さん
16/06/15 20:13:40.77 WgoBVu8z.net
>412
PIC16F716はEEPROMが乗ってないから16F84Aの代わりにならない場合があるよ。

450:774ワット発電中さん
16/06/15 22:47:26.87 sbLqU1kD.net
>>426
すみません。書きようがまずかった。
「サポートされていたら」は「サポートされる状況では」の意図でした。

451:774ワット発電中さん
16/06/15 22:55:08.99 Y28DJeFM.net
F1705はお勧めできません!!!
I/O制御レジスタやPPSが追加になっていて初心者にはどうかと・・・
メモリーも多いし機能も豊富ですが設定が理解できるかどうか??
それと24FVは最近XC16の記述仕様が変わったためサンプルが
ほとんど使えなくなりました。
自分的にも良いPICと思っているので旧環境でも使える
ライブラリを整備しようと思っています。
(現在6割くらい独自ライブラリが完成しています)

452:774ワット発電中さん
16/06/15 23:16:28.70 imRba542.net
14ピンはなー…8bit揃ったポートが無いのがなー…

453:774ワット発電中さん
16/06/15 23:30:43.17 Y28DJeFM.net
最近はあまり新しい商品が出てきていないけど18ピンのPIC
は使いやすかったけどな~~
14ピンは8ピンに6ピン追加しただけで8Bitそろわないな~~

454:774ワット発電中さん
16/06/16 00:21:40.95 m+Z/B544.net
16F84から16F88にきてPicKit2での不具合に嫌気さした場合はどれにいけばいい?18ピンでお願いします。

455:774ワット発電中さん
16/06/16 00:31:15.71 tmUYxQnC.net
>429
多機能だろうとほとんどの機能はデフォルトで無効化されてるんだから関係なくない?
I/OをデジタルでON/OFFするだけならANSEL設定すればいいだけだし。

456:774ワット発電中さん
16/06/16 06:29:56.64 tUVRl2cs.net
いいなぁPICはあーでもない、こーでもないと色々迷えて。
羨ましいぞ。
AVR入門はArduino経由かどうかで、ほぼtiny2313/mega328の2択だ

457:774ワット発電中さん
16/06/16 06:37:50.83 nzzeUII0.net
16F84から18F2620に変えたけど、RAMとROMの空間が多くて便利だわ。+5Vだし。

458:774ワット発電中さん
16/06/16 11:07:02.49 In/Mo4XH.net
今時8ビット揃わないと困ることは少なくなったんじゃない?
どうしても8ビットいるなら20ピンとか28ピン使えばいいだけだし、14ピン否定する意味がわからないなぁ。
18ピンが使いやすいなんてこれっぽっちも思ったことがないなぁ。結局内部機能使おうとしたら8ビットなんて取れないんだから、そういう意味では20ピンは内部機能の割り当てがよくできてるから8ビット取りやすいよ。
84Aに引きずられすぎじゃない?コピーするにしても移植する�


459:ュらいの元気は欲しいな。 あ、84Aは内部機能ほとんどないから気にならないのか・・・。LEDちかちかするだけだから、折角の豊富な機能は無用の長物なのか?



460:774ワット発電中さん
16/06/16 13:29:16.88 tUwZfKcK.net
16F84A、秋月で300円、表面実装のやつだけどマルツで630円
値段的にどうなの、って気がするけど

461:774ワット発電中さん
16/06/16 16:38:36.81 J8zK8ehf.net
8bitって、扱えるデータが少なくて使いにくくないか?
int=8bit?
long int=16bit?
longの計算中に割込が入ると、泣ける。
1msタイマーの中で、255msしか数えられないのが不便だと思う。
16bitなら、65秒とかが1ms刻みで調整できるよ。
AVRは、型番の読み方がわかんない。ATmegaってアトメガ?

462:774ワット発電中さん
16/06/16 19:06:34.35 IZC6Ofql.net
>438
工夫すればどうにでもなる事だとおもうけど。
16bit以上の演算を多用して速度が必要なら16bit以上のマイコンを選択すればいいし
そうでないなら8bitでも充分だし
>longの計算中に割込が入ると、泣ける。
なぜ?

463:774ワット発電中さん
16/06/16 20:59:05.20 3NBG5+Hs.net
>>438
マイコンの選択間違ってるだけでしょ
必要な機能があるもの選べばいい

464:774ワット発電中さん
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Ωを付ければ、まず動きます。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch