17/01/14 09:53:03.17 RXQfmLLy.net
機能豊富なのはいいけれど機能すべて切り離しても動作時やSLEEP時の
消費電力上がるのは困り者だ・・・・
25:774ワット発電中さん
17/01/14 10:03:03.40 eRbuBJKb.net
>>22
消費電力が気になるアプリだったら、必要なだけの機能を搭載したものを選ばないとなあ。
停止した機能モジュールも消費電力ゼロにはならんし。
26:774ワット発電中さん
17/01/14 23:08:07.32 RXQfmLLy.net
>>23
でも機能と価格は魅力的なのは確かだな~~~~
このPICをいかせるアプリを考えてみます。
27:774ワット発電中さん
17/01/14 23:09:25.73 eRbuBJKb.net
>>24
ばっちりと嵌まるアプリが見つかったら楽しいですね。とてもよくわかります。
28:774ワット発電中さん
17/01/15 03:15:17.99 mkHj70jg.net
教えてください。
PICマイコンで、8bit, 16bitのもので、内蔵PLLでもなんでもよ�
29:「ので、 Clockを、 ・50MHzで動くものはありますか? ・80MHzで動くものはありますか? あと PICの内蔵PLLは、入力周波数8MHzに特化したものでしょうか? それとも、入力周波数いくつでも4倍できるでしょうか? よろしくお願いします。
30:774ワット発電中さん
17/01/15 06:30:01.75 NOuCbNso.net
ある
入力周波数範囲は物によって違うので、該当データシート読め
31:774ワット発電中さん
17/01/15 08:17:48.26 8O/IFlJ7.net
>>26
URLリンク(www.microchip.com)
上記で8bit, 16bitにチェックを入れ、MAX MIPSの最小値に50を入れて検索すれば出てくる。
8bitは無さそう。
32:774ワット発電中さん
17/01/15 08:26:51.89 8O/IFlJ7.net
訂正
上記ページで8bitとか16bitとかじゃなく、
coreが8bitPICとか16bitPICとかを個別に選んだ方がよさそう。
MIPSについてさっき書いたのじゃなく、8bit,16bit共に
MIPS=周波数/4になるはずだから、50MHzなら12MIPSを指定
8ビットだと18F系の奴が64MHzで見つかる。
あとはご自由に
33:774ワット発電中さん
17/01/15 09:44:09.23 v9f0tGBI.net
>>22-25で気になってPIC 8pin、3V-85℃Max、最小待機電流Ipd仕様を比較してみた。
Baseline~Midrange世代(10F322、12F509~12F683)は1.2uA~1.5uAで、
12F629/675の0.77uAがもっとも優秀。
Enhanced世代(12F1501~16F18313)に入ると2uA~4uAまで上昇し、
12F1822だけが45uAと突出して悪化。LF版なら2uAまで抑えられるけど…
CR2032電池で10年持たせるにはSleep電流2uA以下に抑えたいところだが、
機能豊富なEnhancedも魅力的で悩ましい…
34:774ワット発電中さん
17/01/15 15:42:44.78 2cmZCigW.net
>>29
>MIPS=周波数/4になるはずだから、50MHzなら12MIPSを指定
そうとは限らない。俺が良く使ってるのはクロック140MHzで70MIPS
35:774ワット発電中さん
17/01/15 15:45:11.43 2cmZCigW.net
>>30
多分、1822と1823は同じチップなんだけど、電流は1822の方が多い?
36:774ワット発電中さん
17/01/15 16:27:50.04 +P7GqKRT.net
>>30は8ピンを調査対象にしているから、1823は対象外なのでは。
37:774ワット発電中さん
17/01/15 17:42:09.14 USWyW48j.net
なるほど
38:774ワット発電中さん
17/01/15 20:31:55.39 B2okatrM.net
>>31
70MIPS のはパイプライン長いから、組み方次第では40MIPS の奴の方が速い事もある。
39:20
17/01/15 20:58:47.95 kPrUIGFg.net
TIMER0の仕様が変わった事を確認しました。
意外とこれの違いに気づかない説明サイトあるんだな。
40:774ワット発電中さん
17/01/15 21:21:55.01 USWyW48j.net
>>35
俺はほぼアセンブラだから、逆転することは多分無いな。
あと、70MIPSはUARTで921600bpsが安定して動くけど、40MIPSではキリが悪くて
使えない。1822でさえ921600bpsが使えるのに、ちょっと残念。
41:774ワット発電中さん
17/01/16 12:59:04.05 +zngLz8S.net
TVのリモコン信号は周波数38KHzだけど、多少ずれてもそれほど支障はないみたい
どのへんまでOKなのか実験してみた人いるかしら
あと、デューティ比は30%となってるけどなんで50%じゃなくて30%なんだろ
なんか意味あるのかしら
42:774ワット発電中さん
17/01/16 17:15:16.07 uYB+D52q.net
電池が長持ちするように
43:774ワット発電中さん
17/01/16 17:34:46.70 rzlS8B0k.net
>>35
40MIPS以下の16bitPICは通常命令1サイクル・分岐命令2サイクルの所
70MIPSのは通常命令1サイクル・分岐命令4サイクルなのか。
6割以上が分岐命令なら確かに逆転するな、そこまで行くことは無いだろうけど。
ただクロック比で75%性能アップだと思っていたのに、分岐命令が1割あると48%
2割あると31%しか向上しないってちょっと残念だ。
8bitPICから馴染みのある次命令スキップ系(BTSC,BTSS,CPS**)はサイクル数が
増えてないからアセンブラならこちらをうまく使えば良さそう
44:774ワット発電中さん
17/01/16 19:19:33.24 KxJ6XtTq.net
>>38
15%でもおkだった
45:774ワット発電中さん
17/01/16 20:46:16.65 DCrS9VuJ.net
受け側はデューティ見てないからな
46:774ワット発電中さん
17/01/17 11:03:42.74 q3PYgdOG.net
このプログラムをC言語にコンパイルする方法が無いのでしょうか。
発光ダイオードの点滅用という事で書き込んでもらったのですが少し遅いので早く点滅させたいのです。
書き込んでもらったお店の人の話ではC言語なら早くできると言っておりました。
:020000040000FA
:10000000FF23831690008312073099008316003077
:100010009F000830850083120030A300230885006C
:10002000A30A142014200E28FA30A100F930A200EF
:0C0030000000A20B1828A10B16280800E5
:084000000000000000000000B8
:02400E00843FED
:00000001FF
47:774ワット発電中さん
17/01/17 14:01:01.21 a2tylUX9.net
現在2chの色々なスレッドで、怪しいIP表示スレへ誘導する不審な書き込みが頻繁に行われている事を受け、
セキュリティメーカー各社が注意を呼びかけています。
その不審な書き込みは、「意味不明の英数字列の書き込み」、あるいは「スレッドの内容とは全然関係ない日本語と
urlリンクのセット」の書き込みで、現在あちこちのスレッドでよく見かけます。
そのurlリンクをクリックするとIP表示スレに転送されますが、いくつかの書き込みを検証したところ、IPアドレス
抜き取りや、ウイルス感染などの挙動が確認されました。
最近のウイルスはアンチウイルスソフトを入れた状態でも感染させられる事があるので、
2chを閲覧している方は、IP表示スレへ誘導するurlリンクは極力クリックしないように注意してください。
(この書き込みは自由に転載してください)
48:774ワット発電中さん
17/01/17 15:10:08.73 xVwO5pS6.net
>>43
1からCで書いた方が早いよ。
49:774ワット発電中さん
17/01/17 16:38:38.83 VvV91cvO.net
>>45
はげどう
50:774ワット発電中さん
17/01/17 17:14:36.38 gy+KZ7Ev.net
>>43
何でC言語ならって言ったのかわからないけど、
そのコードを改造するという前提なら、
MPLAB XにインポートしてProgram Memory見れば、ニーモニックが見れるから、
点滅の速度くらいなら、ここで数字変えるだけじゃね?
間違ってますか?偉い人!
ちなみに、アセンブラ使ったことねえから、
おいらなら、1からCで書くです。
51:774ワット発電中さん
17/01/17 19:21:03.05 t5xU9BUv.net
>>47
Line21、23を変更すればよい。
Line Address Opcode DisAssy
1 000 23FF CALL 0x3FF
2 001 1683 BSF STATUS, 0x5
3 002 0090 MOVWF 0x10
4 003 1283 BCF STATUS, 0x5
5 004 3007 MOVLW 0x7
6 005 0099 MOVWF 0x19
7 006 1683 BSF STATUS, 0x5
8 007 3000 MOVLW 0x0
9 008 009F MOVWF 0x1F
10 009 3008 MOVLW 0x8
11 00A 0085 MOVWF PORTA
12 00B 1283 BCF STATUS, 0x5
13 00C 3000 MOVLW 0x0
14 00D 00A3 MOVWF 0x23
15 00E 0823 MOVF 0x23, W
16 00F 0085 MOVWF PORTA
17 010 0AA3 INCF 0x23, F
18 011 2014 CALL 0x14
19 012 2014 CALL 0x14
20 013 280E GOTO 0xE
21 014 30FA MOVLW 0xFA
22 015 00A1 MOVWF 0x21
23 016 30F9 MOVLW 0xF9
24 017 00A2 MOVWF 0x22
25 018 0000 NOP
26 019 0BA2 DECFSZ 0x22, F
27 01A 2818 GOTO 0x18
28 01B 0BA1 DECFSZ 0x21, F
29 01C 2816 GOTO 0x16
30 01D 0008 RETURN
52:774ワット発電中さん
17/01/17 22:27:25.73 p82+5IAz.net
>:10002000A30A142014200E28FA30A100F930A200EF
この行の真ん中辺りのFAをテキストエディタで適当に変えて書き込んでみるとよい
80とかにすれば約2倍の点滅速度になるのでは
53:774ワット発電中さん
17/01/17 22:51:03.15 B8hKOVWP.net
行末尾にチェックサム入ってんじゃない?
54:774ワット発電中さん
17/01/17 23:24:37.90 p82+5IAz.net
>>50
すまん、すっかり失念してた
きちんと見てるよね、多分
チェックサム再生成 or 計算して手で書き換えの一手間がいるのか
55:774ワット発電中さん
17/01/17 23:32:39.86 WZzUJDFl.net
>>51
HEXファイルの4行目
FAを7Dに、EFを6Cに変更。
で倍の速さになるかな
56:774ワット発電中さん
17/01/18 00:12:43.94 Ds1B0Yu8.net
sage
57:774ワット発電中さん
17/01/18 00:15:54.05 Ds1B0Yu8.net
>>53
ゴミの書き込み失礼しました。
;##### KPICLED0.ASM KPICLED0.HEX
;
;***** RGB 3色LEDを6色に点滅させるプログラム。
;***** (電池1個、LED1個、PIC1個 だけで簡単にLEDを点滅させる実験にも使用)
;***** 2004.07.04
;
LIST P=12F675
;
INCLUDE P12F675.INC
;
;******************************* コンフィグレーションビットの記載
;
CNFB = _CPD_OFF ; データEEPROMもプログラム・メモリも
CNFB &= _CP_OFF ; コード・プロテクトしない
CNFB &= _BODEN_OFF ; ブラウンアウト・リセットを使わない
CNFB &= _MCLRE_OFF ; MCLRリセットを使わない
CNFB &= _PWRTE_ON ; パワーアップ・タイマを使う
CNFB &= _WDT_OFF ; ウォッチドッグ・タイマを使わない
CNFB &= _INTRC_OSC_NOCLKOUT ; 内部発振器を使う
__CONFIG CNFB
__IDLOCS H'0000' ; バージョン0.00
;
WITIM1 EQU H'21' ; WAITワーク
WITIM2 EQU H'22' ; WAITワーク
LEDBUF EQU H'23' ; LED表示用バッファ
;
;******************************* 処理プログラム
;
ORG H'0' ; リセット時に動作を開始するアドレスを指定
;
;******************************* 初期設定
;
CALL H'3FF' ; 内部発振器の補正値をセット。
BSF STATUS,RP0 ; バンクを1にする。
MOVWF OSCCAL
;
BCF STATUS,RP0 ; バンクを0にする。
;
; x6x43210
MOVLW B'00000111' ; コンパレーターは使用しない
MOVWF CMCON
;
BSF STATUS,RP0 ; バンクを1にする。
;
; x6543210
MOVLW B'00000000' ; ポートはすべてデジタル
MOVWF ANSEL ; AD変換変換使用せず。
;
; xx543210
MOVLW B'00001000' ; GP 5-4 2-0 出力
MOVWF TRISIO ; 入力出力の設定
;
BCF STATUS,RP0 ; バンクを0にする。
58:774ワット発電中さん
17/01/18 00:17:37.62 Ds1B0Yu8.net
;
;******************************* LED点滅処理
;
; xx54x210
MOVLW B'00000000' ; 最初の値
MOVWF LEDBUF ; LED表示用バッファに設定
;
LOOP EQU $
MOVF LEDBUF,W ; バッファから取り出す
MOVWF GPIO ; 出力ポートへ出力
INCF LEDBUF,F ; 1進める。
;
CALL DLYPRO ; 250msec × 2 時間待ち
CALL DLYPRO
;
GOTO LOOP
;
;
DLYPRO EQU $ ; 250msec時間待ち処理
; ; 時間待ち処理 WITIM1 に入れた時間×1msec時間待ちする。
; return ; デバック時これを生かしてとりあえずリーターンする。
MOVLW D'250' ; 200msec時間待ち処理
;
MOVWF WITIM1
WITLP1 EQU $
;
MOVLW H'F9'
MOVWF WITIM2
WITLP2 EQU $
NOP
DECFSZ WITIM2,F
GOTO WITLP2
;
DECFSZ WITIM1,F
GOTO WITLP1
;
RETURN
;
END
>>43
のHEXファイルと一緒のソースも提供しています。
59:774ワット発電中さん
17/01/18 00:22:35.13 Ds1B0Yu8.net
CALL DLYPRO ; 250msec × 2 時間待ち
CALL DLYPRO
DLYPRO EQU $ ; 250msec時間待ち処理
; ; 時間待ち処理 WITIM1 に入れた時間×1msec時間待ちする。
; return ; デバック時これを生かしてとりあえずリーターンする。
MOVLW D'250' ; 200msec時間待ち処理
200msec時間待ち処理
このコメントはミス 250msec (D'250'だから)
上記の二つを調整する事で自由に点滅の時間を変更できます。
60:774ワット発電中さん
17/01/18 00:26:34.87 7OE3cBzG.net
おまいら親切だな
ついでにcも作ってやれば?
61:774ワット発電中さん
17/01/18 07:51:14.80 NahvWUDz.net
書き込んでもらったとか書いてるし、スキルレベルがわからん
それじゃHEXで修正しても書き込めないのではと言われればその通りなんだが…
62:774ワット発電中さん
17/01/19 22:14:42.88 yMPQGpiJ.net
PIC10F200にてLEDをチカチカさせたいと頑張っています。
が、MPLAB IDE v8.92でプログラムしてPICkit 3 v3.10とPICkit 3 で書き込みました。
PICkit 3が接続されている状態だと希望通りに点滅してくれるのですが
10F200を別基板と別電源にすると点灯したままとなります。
配線は何度も見直しました。
何か初歩的なミスと思いますがどうでしょうか??
よろしくお願いします。
63:774ワット発電中さん
17/01/19 22:19:15.06 kAftOMkY.net
>>59
別基板と別電源ってのが分からんけどここ切り分け出来ないの?
電源だけ供給したり、別の10F200に同じの書き込んでも結果は変わらず?
ソースと基板出せるんならだしてよ。
ところで、電源が供給されてればLEDは点灯したまま?それとも消灯したまま?
64:774ワット発電中さん
17/01/19 22:32:10.84 yMPQGpiJ.net
>>60 ありがとうございます。
PICkit 3で書き込む時にLEDも載せてあるのですが書き込み終わったらLEDが点滅を開始します。
使うのはGP0ポートをLED出力用でGP1ポートをリセットボタンで使っています。
希望は、5分消灯→10秒点灯を繰り返してボタンを押すと10秒点灯へ飛びます。
LIST P=10F200
#INCLUDE <P10F200.INC>
__CONFIG _MCLRE_OFF & _WDT_OFF & _CP_OFF & _IntRC_OSC
CNT1 EQU 0x10
CNT2 EQU 0x11
CNT3 EQU 0x12
ORG 0x00
movwf OSCCAL
bcf OSCCAL,FOSC4
movlw b'11111110'
TRIS GPIO
main_loop
SW_OFF
bcf GPIO,0
call DLY_1S
一部省略-------------------------
call DLY_1S
SW_ON
bsf GPIO,0
call DLY_1S
goto main_loop
DLY_1S
movlw d'100'
movwf CNT3
DLY_100
movlw d'100'
movwf CNT1
DLP1
movlw d'200'
movwf CNT2
DLP2
BTFSC GPIO,1
GOTO SW_ON
decfsz CNT2,f
goto DLP2
decfsz CNT1,f
goto DLP1
decfsz CNT3,f
goto DLY_100
retlw 0
END
65:774ワット発電中さん
17/01/19 22:35:31.37 yMPQGpiJ.net
改行が多いと怒られた為に見づらくなりました。
別基板では、電源とLEDとスイッチだけでプルアップ等はしていません。
問題でしょうか?
66:774ワット発電中さん
17/01/19 22:43:15.21 kAftOMkY.net
>>62
あー、そりゃチャタってんじゃないの?スイッチだけで後はオープンなら現状スイッチ見てるGPIOはどっちか分からんよね?
それを頻繁にスイッチが押されてると勘違いしてる可能性があると思うけど。
そんな事は起きてないって言える?
とアセンブラ見てないけど答えてみる。
説明だと頻繁に押しても押さなくてもLEDの見える部分の挙動は変わらんのよね?
67:774ワット発電中さん
17/01/19 22:44:07.35 yMPQGpiJ.net
別の10F200に同じの書き込んでも結果は変わらずでした。
68:774ワット発電中さん
17/01/19 22:49:03.21 yMPQGpiJ.net
>>63 ありがとうございます。
最初、GP3をスイッチとした時にチャタっているようだったのでGP1に変更した所
希望通りに動くようになりました(
69:PICkit3に接続時) 別基板では。LEDが点灯したままです。
70:774ワット発電中さん
17/01/19 22:55:13.10 kAftOMkY.net
>>64
スイッチが押されれば挙動が変わるわけで、どうやってもスイッチを押されない挙動を試してみては?
スイッチが浮いてるとのことなので、スイッチの足から無理やりグランドか電源(OFFになる方)に繋いで確認するとか。
後はアセンブラ読める人に任せたいんだけど連続してスイッチを押したら、点灯時間リセットされたりしない?
いつまでも点灯し続ける様になってるのってそこが原因じゃない?
>>65
GP3っていやな気がしたので調べたらMCLRピンじゃないの。
書き込みピンにノイズ入れたらそりゃ誤作動起きやすいよ…
71:774ワット発電中さん
17/01/19 22:56:10.13 yMPQGpiJ.net
空いているピンを全て+5Vに接続してみたけど変化無しです。
電源が+5.2Vは問題でしょうか?
72:774ワット発電中さん
17/01/19 23:01:27.09 yMPQGpiJ.net
スイッチのGP1ポートをVSSに接続したらLEDが点灯しないです。
5分後にLEDが10秒点灯すれば正常ですが・・・
73:774ワット発電中さん
17/01/19 23:05:11.19 yMPQGpiJ.net
5分後にLED点灯しました。
スイッチの配線が悪いのでしょうか?
GP1ポートと+5Vをショート挿せれば良いという考えは間違いなのでしょうか??
74:774ワット発電中さん
17/01/19 23:12:18.93 kAftOMkY.net
>>67
空きピンは出力設定でほうちでおk
電源は(データシート見てないけど)一応それくらいは許容できたはず。
>>68
>>69
だね、多分ソフトじゃない、ソフトで想定した流れ二つとも行けるって事は命令が正しく下されてないって事。
すごく簡単な説明をすると間違いじゃないけど、アナログ的な問題でどこからかノイズか何か拾ってる。
それがGP1を時々HIレベルにしてるせいでいつもスイッチが押されてるよーって反応を返してるだけみたいだね
75:774ワット発電中さん
17/01/19 23:22:05.53 yMPQGpiJ.net
解決したみたいです。
空きピンは放置しました。
スイッチのGP1とVSSを10KΩの抵抗で接続して
VDDとGP1をショートさせる事で希望通りの点灯となりました。
回路図を上手に示せれば簡単に解決出来たと思います、申し訳ないです。
ありがとうございました!!
76:774ワット発電中さん
17/01/19 23:37:05.45 kAftOMkY.net
>>71
解決しておめでとう、自分はアセンブラ関係全くダメなので、もし困ってる人がいたら助けてあげてほしいな。
それじゃあ、早めに寝るんだぜ。
77:774ワット発電中さん
17/01/21 02:58:27.00 bGm0WyRR.net
MachiKaniaを作りたく基板と部品を買いました。
PIC32MX270F256の書きこみが出来ません。
PICKIT2も買いましたがpic32prog.exeが見つからず書き込めません。
LPC1114FN28も購入しましたPIC32_Bootloaders_v2012_10_05.zipもPIC32UBL.exe もみつかりません。
PIC32MX270F256に簡単に書きこむ方法をお教え下さい。
78:774ワット発電中さん
17/01/21 04:22:25.09 yQ4wWrm1.net
pic32prog.exeは、本家のリンクからgithubへ行けばダウンロードできます。
LPC1114FN28の後は、何のことかわかりません。
参考にしているサイトのリンクを書いてください。
英数字は半角で書いて。
79:774ワット発電中さん
17/01/21 04:41:08.84 zxNIXBX7.net
>>73
pic32prog.exeで検索すれば先頭に出てくるじゃん。
悪いこと言わないから、書き込み済みのを分けてもらうか、PICkit3買え。
だいたい、なんでいまどきわざわざPICkit2買うのかわからん。
80:774ワット発電中さん
17/01/21 07:34:50.25 lr9Ye/dF.net
すみません
PORT入力が変化するとSLEEPから復帰できますが、
この入力本数が多く取れるもの、あるいは増やす方法�
81:ネいでしょうか? 40pinの16F1939でも、PORTBのたった8本しかなく・・・
82:774ワット発電中さん
17/01/21 09:00:30.25 TQbp1IM0.net
>>76
そういうPICがあるなら俺も知りたい。
なければ外部回路かな。
MicrochipのI/Oエキスパンダ―でもできそう。
URLリンク(ww1.microchip.com)
数ビットぐらいの増設をシンプルにやっつけるならEX-ORとRC遅延回路+ダイオードORとか。
(構造はシンプルだけど、配線は全然シンプルにならないな…)
83:774ワット発電中さん
17/01/21 09:23:11.81 kyrke4xz.net
Sleep復帰専用の16F1822(6本取れる)を複数個並べても良いかと
84:774ワット発電中さん
17/01/21 09:30:15.43 TQbp1IM0.net
>>78
おおー。それならI/Oエキスパンダ―の使い方を学ぶ必要もないな!
85:774ワット発電中さん
17/01/21 13:15:03.34 bGm0WyRR.net
>>74
回答ありがとうございます。
>pic32prog.exeは、本家のリンクからgithubへ行けばダウンロードできます。
IDの取得が難しいです。
参考にしているサイトのリンクを書いてください。
http://psp.dip.jp/web/log/PIC32MX.html
>>75
回答ありがとうございます。
pic32prog.exeで検索すれば先頭に出てくるじゃん。
IDの取得が難しいです。
>悪いこと言わないから、書き込み済みのを分けてもらうか、PICkit3買え。
基板を買う時に一緒でないと購入出来ないみたいです。
>だいたい、なんでいまどきわざわざPICkit2買うのかわからん。
PICkit3でPIC32MX270F256の書きこみは難しいようです。
お手数ですがよろしくお願いします。
86:74
17/01/21 14:19:01.74 ucZNYb8n.net
>>80
お前さあ、わざと英数字を2バイト文字で書いてんのか?
URLへも直で行けないし、サイト内で該当部分検索するのに面倒なんだよ。
もうお前の相手はしない。
87:774ワット発電中さん
17/01/21 14:50:41.84 aH+tgFDT.net
>>80
>IDの取得が難しいです。
IDなんか必要ない。
http://psp.dip.jp/web/log/PIC32MX.html
>アクセスできない。
基板を買う時に一緒でないと購入出来ないみたいです。
>PICkit3は、誰でも単体で購入可能。
>PICkit3でPIC32MX270F256の書きこみは難しいようです。
PICkit3で書き込むより難しい方法は、この世に存在しない。
あなたにはたぶん無理だから、素直に書き込み済みのPICを買った方がいい。
88:774ワット発電中さん
17/01/21 14:58:14.21 TQbp1IM0.net
>>80
↑のようにレス番号を示すアンカーを打つ時も半角でないと(少なくともWEBブラウザで閲覧する際は)
リンクが張られません。
基本的には、URLや部品名の英数記号は半角で打つ方が読み手にやさしくなります。
> >pic32prog.exeは、本家のリンクからgithubへ行けばダウンロードできます。
> IDの取得が難しいです。
あなたが参考にされているページに掲載されているリンク先
URLリンク(github.com)
ここからID取得なしでダウンロードできるようですが。(それとも過去にID登録してて、自動ログインとかになってるのかな?)
89:774ワット発電中さん
17/01/21 15:07:29.34 TQbp1IM0.net
>>82
まあまあ。
> 基板を買う時に一緒でないと購入出来ないみたいです。
> >PICkit3は、誰でも単体で購入可能。
たぶん>>80が言ってるのは書き込み済みのチップのことで、MachiKania専用基板と
同時購入でないと、チップ単体では買えないってことでしょう。
ところで、>>82さん。全角不等号を自分の発言の行頭につけておられますけど、
少なくとも半角の不等号は、慣習的に元発言の引用に使われていると思います。
90:774ワット発電中さん
17/01/21 15:10:35.57 TQbp1IM0.net
んー。
URLリンク(psp.dip.jp)
↑ここって、俺の環境だと、一番最初は404エラーでアクセスできなかったのに、
そのあとは、普通にできてる。
>>82さんが見たときも、そのアクセスできないタイミングだったんだろか。
91:774ワット発電中さん
17/01/21 15:46:35.49 KdhT53zg.net
>たぶん>>80が言ってるのは書き込み済みのチップのことで、MachiKania専用基板と
>同時購入でないと、チップ単体では買えないってことでしょう。
URLリンク(store.shopping.yahoo.co.jp)
なんかもう、PIC
92:の質問ちゅうよりは、「インターネットの基本講座」みたいだな。 >>80を見て思うのは、初心者ほど勝手な思い込みが激しく、 そのせいで深みにはまっていく、という現実だな。
93:774ワット発電中さん
17/01/21 15:59:12.94 TQbp1IM0.net
>>86
> >>80を見て思うのは、初心者ほど勝手な思い込みが激しく、
> そのせいで深みにはまっていく、という現実だな。
あと「質問において初心者ほどよく情報を後出しにする」と言われます。
これって
・何が必要な情報かがわからない。
・かといっていろいろ書いたら長文ウザイと言われる。
って要素もあるかと思います。聞き出すことも必要ですね。
94:774ワット発電中さん
17/01/21 16:19:11.70 mBgqfeHx.net
MachiKaniaのサイトを見てみたけど、
あれだけ丁寧に書かれているのに出来ない場合、
そういう人への対応は、このスレの範疇を超えてると思うね。
その上、>>80を見る限り、他人の意見を受け入れる気は無さそうだ。
95:774ワット発電中さん
17/01/21 18:53:00.56 bNqupGHW.net
>>80
こいつ、わざわざ全角に打ち直してのかw
96:774ワット発電中さん
17/01/21 21:22:08.97 fZm1Jgzp.net
荒らしだろ、真面目に相手しても時間の無駄だよ
97:774ワット発電中さん
17/01/21 22:26:54.11 bGm0WyRR.net
73です。
無理だという事がわかりました。
親切な回答頂きました皆様ありがとうございました。
一部の方の蔑んだ回答にはがっかりしました。
98:774ワット発電中さん
17/01/21 22:34:44.72 MxESqpVS.net
>>91
それは残念でしたね。マイコンも、最近はいろいろと難しいですよね。
ところで、英数字を全角で書いていらっしゃるのには、
何か理由でもあるのでしょうか?
全角の英数字になれていないので、聞いてみたいと思いました。
よろしくお願いします。
99:774ワット発電中さん
17/01/21 22:42:44.07 sj4Tdcdd.net
>>91
何がどう無理なのかな?
わざわざMachiKaniaのサイトやら、Githubやら、リンク先やらまで行って、
調べて回答した俺らの方が、よっぽどがっかりだわ。
100:774ワット発電中さん
17/01/21 22:48:18.49 B/wikFFh.net
>>91
なるほど、めずらしいパターンの荒らしだった。
おかげで、VELUDDA作ろうと思って、だいぶ前にパーツそろえてあったの思い出したぜ。
ありがとう。
101:774ワット発電中さん
17/01/22 16:22:22.28 G66/gOo5.net
PIC10F322をSLEEPさせます。
外部からの入力なしに、一定時間後に、
自力で通常稼働に戻させるにはどうしたらいいですか?
自分なりに調べてはみたんですが、
ボタンを押すとかの、外部からの入力で起こす方法しか見つけられません。
よろしくお願いします。
102:774ワット発電中さん
17/01/22 17:04:31.00 Oj4TfZ1O.net
>>95
URLリンク(www.microchip.co.jp)
これの7章と8章と15章をざっとよんだけど、WDTとAD変換(FRC)ならスリープから復帰できそう
103:774ワット発電中さん
17/01/22 18:10:02.65 vrlugqrj.net
普通にタイマー割り込みは?
104:95
17/01/22 19:45:37.91 SiJtOS5C.net
ありがとうございます。
>>96
時間が自由にならないですが、WDTによる復帰は使えそうですね。
AD変換の話は良く分かりません。
>>97
URLリンク(ww1.microchip.com)
p94のNoteやp100の18.1.6には、ダメそうなことが書いてありますが、
何か方法をご存知でしたら、教えてください。
105:774ワット発電中さん
17/01/22 20:05:00.75 Oj4TfZ1O.net
>>98
AD変換は変換用のクロックをシステムクロック(FOSC)ではなく、独自のFRCにするとスリープ中に
AD変換して終了時にスリープから復帰出来るようになってます。スリープ時にAD変換することにより
動作ノイズの影響を減らす為らしい。まあ時間も1~6usと個体差も大きく時間の可変も出来ないから
他の用途には出来ませんね。
他にもNCOモジュールならクロック源をHFINTOSCに指定すればスリープ中も動作して割り込みで
スリープから復帰出来るみたいですが、こちらも最長で60ms程なので用途には合わないでしょう
106:98
17/01/22 20:43:30.86 3H4FBIXs.net
>>99
ありがとうございます。
どちらも、SLEEPから復帰はするが、今回の目的には使えない。
という理解でよろしいでしょうか?
107:774ワット発電中さん
17/01/22 21:03:02.48 TQqw26yh.net
あれっ、目的なんて書いてたっけ?
108:100
17/01/22 21:17:37.70 cON4lW6l.net
>>101
曖昧な質問で、大変ご迷惑をおかけしました。
後出しで失礼とは存じますが、
外部からの割り込みを使用しないで、
あらかじめ設定した時間が経過したのちに、
SLEEPから復帰させるのが目的です。
時間は数秒から、長くて30分程度を想定しています。
よろしくお願いします。
109:774ワット発電中さん
17/01/22 22:13:28.05 VLl7rsbx.net
>>101
どうでもいいチャチャは入れるけど、
まともな回答は苦手らしいなw
URLリンク(hissi.org)
>>102
どうも、Timer1を32kHzとかで回すと、あなたの用に足るようだよ。
なので、そういうPICを選んだ方がいいと思う。
322にこだわるなら、WDTを上手に使うしかない。
110:774ワット発電中さん
17/01/22 22:20:18.30 e6Btfn4r.net
別に30分丸々寝てる必要はないでしょ
111:774ワット発電中さん
17/01/22 22:55:47.45 VS0QA1mi.net
>>102
p48を見ると、そこそこいろんな時間が選べるから、
起きたらSLEEPを適当に繰り返して、必要な時間にすればいいんじゃない?
112:774ワット発電中さん
17/01/22 23:37:04.20 TQqw26yh.net
「目的に沿ってない」と質問者が書いたけど、
回答者はその目的を知らないように見えたけど?
>外部からの割り込みを使用しないで、
>あらかじめ設定した時間が経過したのちに、
>SLEEPから復帰させるのが目的です。
>時間は数秒から、長くて30分程度を想定しています。
消費電力を低減したいのであれば、
30分SLEEPし続けさせなくても目的は達成できる。
すでに回答が出ているとおり、
数秒のSLEEPから何回も起き上がりながら、
目的の時間までSLEEPを繰り返せばいい。
SLEEPスリープし続けるのと殆ど消費電力は変わらない。
一般に、質問者の想定は回答者の想定とは異なる。
その認識が違うという事を理解しないと、
双方のフラストレーションが溜まるばかり。
113:774ワット発電中さん
17/01/22 23:55:33.65 ZRy6Gh16.net
まあ、でもあんた、>>101を見る限り、品性が疑われるよね。
で、>>106は完全な後出しで、>>105の後に良くそれ書いたな、って感じだ。
笑える。
114:774ワット発電中さん
17/01/23 00:02:09.26 Zd10jUOW.net
>>104
親切ではないが、ヒントにはなっている。
意外と良い教師である。
>>105
面白味は無いが、的確な回答。
>>ID:TQqw26yh
クソの役にも立たないゴミレス。
>すでに回答が出ているとおり、
弁解がましくて哀れ。
115:774ワット発電中さん
17/01/23 00:41:10.69 PfNIo7mS.net
図星を突かれた後のレスは長い。
116:774ワット発電中さん
17/01/23 00:42:26.84 0QRZ9DGr.net
SLEEPを使って消費電力を減らすときにはWDTを使うと
劇的に消費電力を減らすことができます。
割り込みがない10Fシリースでも繰り返すことで長い時間
SLEEPさせたプログラムを自分でも使用しています。
(コンパイル時にClear bssオプションをはずすことと
起動時のリセット要因で判断して変数の初期化する必要がある)
117:774ワット発電中さん
17/01/23 01:40:31.23 6xniVmLq.net
>>106
何か言ってること変だよ。
SLEEPでなくて
118:BOOSTだったとしても、 「繰り返し行って時間を調節する。」 という回答になってたはず。 つまり、省電力はたまたま結果として目的だと言えるのであって、 逆に電力の浪費が目的だったとしても回答そのものに差はない。 わざわざそこに食いつくアンタの書いた>>101には、悪意しか見えない。 自分自身の悪意をコントロールできないフラストレーションを 外にまき散らしながら生きる人は迷惑。
119:774ワット発電中さん
17/01/23 07:28:08.61 ctXXKowK.net
低消費で正確な割込み欲しいなら外部RTCが一番
120:たけぴょん
17/01/23 13:00:48.55 0tSyma+S.net
「MachiKania」の製作をされている >>73 さん へ。
URLリンク(jikken.jp)
をご覧の上(自分が行ったもろもろを記載しています)。
URLリンク(8130.teacup.com)
で質問してみて下さい(ケンケン様のMachiKaniaのサポート掲示板とも言えるところです)。
ここの皆さんは親切なのではありますが自分や >>73 さんのような思い込みや自分が、、、という所が強いの
です。
PICKITとpic32progでPIC32MX270F256に書き込んでいる人も少ないと思われます。
>>82
>>IDの取得が難しいです。
>IDなんか必要ない。
自分も言われているのですがGithubは、使い方に難しい面があると思われます。
設定(Github使用者の)や環境でダウンロードしようとするだけではログインを要求される事があります。
(自分は正しい使い方を理解していないので不明な部分がある事はご了承下さい。)
(同じ事でも必要ないという方もいるのでOSブラウザ、ネット環境の可能性があります。)
>>PICkit3でPIC32MX270F256の書きこみは難しいようです。
>PICkit3で書き込むより難しい方法は、この世に存在しない。
「難しい方法 ??」
PICKIT2 と pic32prog と 書き込むHEXファイルがあれば
DOSコマンドで「pic32prog ファイル名.hex」だけで書き込めます。
PICKIT3でpic32progを使う場合は、
PICkit 3 Programmer App and Scripting Tool を PCにインストール そのソフトで一緒にインストール
されるソフトを「PICKIT3」に送り込む事が必要です。
pic32prog使用の用途なら PICKIT2もありです(互換品が安く買える)。
PICKIT3と「MPLAB X」 も 自分のように 「MPLAB X」がインストールできない動作しないという環境もあるのです。
OSの問題、環境の問題いろいろあるようです。
pic32prog.exe のありかですが
URLリンク(www.ze.em-net.ne.jp)
簡単にダウンロード出来ますがPIC32MX270F256には書き込めません(バージョンが古い?)。
URLリンク(github.com)
githubの最新と思われるもの直接リンク。
自分の環境ではログインを求められ(求めらない場合は反応なし)ますがネットカフェのマシンではダウンロード出来ました
しかし、自分の環境では動作せず(ダンマリ)。
URLリンク(github.com)
インターネットアーカイブから紐解いてきたアドレス。
これだとPIC32MX270F256には書き込可能。
ただし、イレース(書き込み前のイレースは自動的に行われる)コマンドにないようです。
書き込みの一連(イレース、書き込みベリファイ)は正常に動作して「MachiKania」も正常に動作しています。
githubにしてもpic32progにしても使い方の問題なんでしょうけど誤魔化し、騙して使う事を模索している状態です。
「MachiKania」は、大変に良く出来たシステムで公開されているソフトだけでもそれなりに
遊べます。
諦めずに作っていただくよう希望します。
121:774ワット発電中さん
17/01/23 14:39:34.98 0nG5kzb2.net
PICkit2ではPIC32MXに書き込めないからpic32prog.exeを使う。
これから始めるのにPICkit2を買うことはない。
PICkit3の互換機は千円台で買える。
サイトの説明を読めば、PICkit3を使う前提で書いてあるのは明らか。
すでにPICkit2を持っている人がPICkit3を買わずに済むように、
pic32prog.exeの話が書いてある。
問題は、説明を読み、理解し、実行する能力の有無であって、
それが難しいならやめた方がいい。
安くて簡単に入手でき、子供でも扱えるゲーム機はいくらでもある。
>>113
>自分のように 「MPLAB X」がインストールできない動作しないという環境もあるのです。
>OSの問題、環境の問題いろいろあるようです。
それ、詳しく教えて。
どういう環境なのか知りたい。
122:774ワット発電中さん
17/01/23 20:20:23.65 1xk6dHtq.net
全角廚しね
123:774ワット発電中さん
17/01/23 20:24:28.46 kijoRWdw.net
全角自体は嫌いじゃない
124:774ワット発電中さん
17/01/23 20:57:36.15 dzOXwVzI.net
ID:bGm0WyRR = ID:0tSyma+S
125:774ワット発電中さん
17/01/24 03:43:22.23 lGuQ0imh.net
ユーザー名に全角文字があると動かないってのにはまって時間とカネを盛大に無駄にした
せめてこのくらいはMPLABのFAQに載せておきやがれ
126:774ワット発電中さん
17/01/24 04:05:02.08 qM8HCPXv.net
それ、MPLABに限ったことじゃない。
システムや開発環境に、不用意に全角文字を用いない方が良い。
「MPLAB 起動しない」
で検索すりゃ0.3秒で解決策へのリンクが表示されるけどね。
その程度の人でもマイコンを使える。
いい世の中になったってことだね。
127:774ワット発電中さん
17/01/24 04:09:04.21 EyT1wWPn.net
>>118
トラブルの原因は自分の無知なのに、それを認めようとしない。
そういうあなたのスタンスそのものが、無駄を呼び込んだの。
つまり、自業自得。
128:774ワット発電中さん
17/01/24 04:24:29.77 lGuQ0imh.net
勝手なこと言ってくれる
10年少し前に本の解説見ながらやっての話なんだよな
129:774ワット発電中さん
17/01/24 05:34:01.48 dOIouHNJ.net
それはアンタの勝手で、何の自慢にもならない。
むしろ、情報収集能力の欠如は無能さの要因の一つ。
130:774ワット発電中さん
17/01/24 08:16:25.97 9PJRL7mR.net
Unicodeベースなら問題無いのだが、WindowsがSJISなせいでそういう問題が起こる。
131:774ワット発電中さん
17/01/24 09:07:45.09 rqtjs0O8.net
ソフト開発者が2バイト文字コードに考慮しないからそうなる
132:たけぴょん
17/01/24 12:37:27.44 BebaeT5/.net
一応書いておきます。
>>114
>これから始めるのにPICkit2を買うことはない。
その通りです。
投売りされている PICkit2も手だという事。
(実際はそんなに投げ売りでな無いですけどね。)
pic32progを使うのも簡単だという事。
>安くて簡単に入手でき、子供でも扱えるゲーム機はいくらでもある。
これを書いてしまったらおしまいでしょう。
>どういう環境なのか知りたい。
JERの関係らしいとだけ書いておきましょう。
全角文字の問題ではありません。
自分の場合は、12F 16F しか使ってないからX無しのMPLABで間に合ってます。
よって細かい事は調べてません。(オラクルと喧嘩するのも面倒。)
133:774ワット発電中さん
17/01/24 12:45:01.11 BebaeT5/.net
>>125
JERの関係らしいとだけ書いておきましょう。
JREの関係らしいとだけ書いておきましょう。
の間違えです。
134:774ワット発電中さん
17/01/24 13:48:14.99 ZRXokxKF.net
秋月で買っても、16bitのPICはそんなに高くないと思うけど、
なぜ8bitの16Fが、まだまだ使われるのでしょうか?
16bitのPICだと不都合なことがあるのかなぁ
135:774ワット発電中さん
17/01/24 14:19:45.16 oQBAI5rl.net
PIC18F46K22で2個あるMSSPでSPI通信のテストしています。
SPI Master#1とSPI Slave#2でSCK1->SCK2, SDO1->SDI2, SDO2->SDI1と接続します。
SSP2BUFに0x12をライトして、SSP1BUFに0x34をライトするとSSP1IFとSSP2IFの割り込みが発生して、
SSP1BUFをリードすると0x00でSSP2BUFをリードすると0x34となります。
136:SDI1をオシロで観察するとSlaveが0x12を出ているのですが、Masterには何故か0x00となっています。 何故なんだろう?
137:774ワット発電中さん
17/01/24 15:28:40.39 qWlO2XDg.net
>>125
>>113の人?
自分はPIC32MXを使う環境でもなく、使ったこともなく、
MPLAB Xがインストールすらできない問題について詳しく原因を調べてもない。
で、そのいい加減な知識で、これからPIC32MX使おうという人にアドバイスしてるわけ?
いずれにしても、初心者スレでPICkit2を進めるのは、明らかなミスリード。
サポートが終了している物を薦めるあなたには悪意を感じる。
それとも>>117の言う通りなの?
138:774ワット発電中さん
17/01/24 15:38:35.95 TGLrWjOX.net
>>127
チップの選択から始めて、1からプログラムを書くならそういうことになる。
16bitどころか、HarmonyとPIC32の組み合わせの何と効率の良いことか。
でも、既存の物を使いまわすとか、先人の作例を踏襲するとかなら、古いPICを使う。
8bitで十分な用途も依然としてたくさんある。
そういう過去の資産が豊富にあるので、古いPICの出番がなくなることは無い。
139:774ワット発電中さん
17/01/24 15:41:19.37 AkAYVg04.net
最近16F1827使い始めたんだけど割り込みが複雑になっててなんかよくわからないんで質問します
1)
IOCIFとIOCBFのクリアについてなんだけどこれどっちが正しいの
INTCONレジスタの IOCIF ビットはRead only で直接クリアすることはできませんが、セット原因となった
IOCAFまたはIOCBF レジスタを全てクリアすることでIOCIF ビットもクリアします。
URLリンク(sky.geocities.jp)
割り込み条件になると割り込み関数が実行されます。状態割り込み自体のフラグはIOCIFフラグになりますが、
これは自動的にはクリアされないので、割り込み関数内でクリア(0にすること)します。
8個ある端子のどの端子が変化したかはIOCBFレジスタで確認できます。IOCBFも自動的にクリアしない
ので、割り込み関数無いでクリア(0にすること)する必要があります。
URLリンク(www.robotsfx.com)
2)
なんで二つもフラッグがあるんだろ
どう使いわければいいの
140:774ワット発電中さん
17/01/24 16:26:37.18 OscPYFQ5.net
>>131
データシートを開いてIOCIFで検索するといいよ。
URLリンク(ww1.microchip.com)
p86 Note 1
>The IOCIF Flag bit is read-only and cleared
>when all the Interrupt-on-Change flags in the IOCBF register
>have been cleared by software.
141:774ワット発電中さん
17/01/24 16:43:46.14 pOFeXO9y.net
>>131
基本、>>132の通り。
最初の引用はピン数の違いで1827にはIOCAFが無いことを除けば合ってる。
2番目の引用はIOCIFのクリアの件がちょっと曖昧。
レジスタを1つずつチェックするの面倒だから、
IOCBFでいっぺんにわかるように用意したんじゃない?
142:774ワット発電中さん
17/01/24 16:44:56.47 pOFeXO9y.net
×IOCBFでいっぺんにわかるように用意したんじゃない?
○IOCIFでいっぺんにわかるように用意したんじゃない?
143:774ワット発電中さん
17/01/24 17:28:39.11 jBbob6Dh.net
>>127
たとえば、どれなら使いたい?
16bit PIC
144:774ワット発電中さん
17/01/24 17:35:33.31 frF8tAzk.net
質問に質問で答える馬鹿
145:774ワット発電中さん
17/01/24 19:48:27.17 MpNEVV+k.net
>>127
高いだろ
146:774ワット発電中さん
17/01/24 19:55:10.39 rQCbPhwQ.net
>>137
どうしても金に困ってるなら、サンプルもらえばタダだろ。
どうでもいい揚げ足取りは止めようぜ、ホントみっともない。
147:774ワット発電中さん
17/01/24 20:29:17.03 aw8CW685.net
価格について自分でレギュレーションかけて楽しんでいる人はいるだろな。
148:774ワット発電中さん
17/01/24 21:00:01.17 AkAYVg04.net
>>132
ありがとうございます
149:774ワット発電中さん
17/01/24 21:00:24.29 AkAYVg04.net
>>133
ありがとうございます
150:774ワット発電中さん
17/01/24 21:10:42.46 MpNEVV+k.net
>>138
揚げ足とり???
16bitの値段で32bitが買える
16bitが売れないのは高いから
同じ値段で比べるとショボいから
要するに16bitは糞
151:774ワット発電中さん
17/01/24 21:23:09.77 4hzrO4Bi.net
>16bitの値段で32bitが買える
そりゃね、いろいろあるから。
>16bitが売れないのは高いから
ソースどこ、脳内?
>同じ値段で比べるとショボいから
具体的にどぞ。
>要するに16bitは糞
どこの要点をつまんだのやらw
152:774ワット発電中さん
17/01/24 21:28:39.42 U5bcc7DL.net
おまいらmicrochipの社員でもないのに熱いな。
153:774ワット発電中さん
17/01/24 21:30:31.86 MpNEVV+k.net
URLリンク(akizukidenshi.com)
URLリンク(akizukidenshi.com)
154:774ワット発電中さん
17/01/24 21:32:35.57 MpNEVV+k.net
16bitを選ぶのは情弱かマゾ
155:774ワット発電中さん
17/01/24 21:49:30.54 9l+aWVyl.net
>>145
それ、ぱっと見で、例えば、PIC32はADCが10ビット、PIC24は12ビットです。
何をどう比較しろというおつもり?
ダメだな、やり直し。
>16bitが売れないのは高いから
このソースはまだなの?
156:774ワット発電中さん
17/01/24 21:51:10.99 MpNEVV+k.net
これを見て高いと思わないとwww
まさしく情弱www
157:774ワット発電中さん
17/01/24 21:59:48.44 MpNEVV+k.net
URLリンク(akizukidenshi.com)
URLリンク(akizukidenshi.com)
158:774ワット発電中さん
17/01/24 22:05:07.86 MpNEVV+k.net
URLリンク(akizukidenshi.com)
URLリンク(akizukidenshi.com)
159:774ワット発電中さん
17/01/24 22:05:51.50 4O7kKBkw.net
>>ID:MpNEVV+k
同じ値段でPIC24の方が高性能な例を示しただけの徒労に終わりましたね。
ちなみに、扱いやすいSPDIP28pinで、ADC12bitなPIC32は1つしかありません。
一方で、16bitでは、PIC24だけでも11個、dsPIC入れたら大変な数です。
それだけ選択肢があるのです。
さて、
>16bitが売れないのは高いから
このソースはまだなの?
160:774ワット発電中さん
17/01/24 22:10:46.25 MpNEVV+k.net
ADCのビット数マニアかwww
32bit ADCでも積んでオナってろwww
161:774ワット発電中さん
17/01/24 22:47:12.37 Qn3XIkar.net
>>152
たまたま、あなたの最初の比較例を見たら、
あら不思議、PIC24の方が高性能な項目がある!
それがADCだっただけですよ。
あなた、墓穴を掘りましたな。
それより、
>16bitが売れないのは高いから
このソースはまだなの?
それとも、その遠吠えで、もうお開きにする?
162:774ワット発電中さん
17/01/24 23:13:32.77 pGqVYo4O.net
PIC32は数値上では高性能かも知れないけど
何に使うかによっては性能を生かせないことが多いかもしれません
しかも、今までの使用実績もあるしそれほど高性能(数値上)
の必要がないのも事実かもしれません
自分も24FやdsPICは非常に良く出来ていると思っているし
普段使うのに十分な性能だと思うけど。
(消費電力の点ではもう少し何とかならんのか~~と思うことは
あるけど)
163:774ワット発電中さん
17/01/24 23:51:12.26 0Rk62LgC.net
8ピンPICで消費電流とI/O本数の限界を極めようとすると
8bitしか選択肢ないんだよなー
14pinの24Fシリーズは待機電流も多いし
164:774ワット発電中さん
17/01/25 00:05:35.08 TrReYM5N.net
>>153
俺はあんたの方が分が悪いと思う
皆が皆ADC使うわけじゃないしな
作例もあまり見たことないわ
統計ソースはなくて、あくまで個人的な印象だけど
165:774ワット発電中さん
17/01/25 02:23:28.87 mLx8aSw1.net
割り込みが速い
16bitイイ
166:774ワット発電中さん
17/01/25 03:46:43.70 jPo5e6XN.net
>>156
>あくまで個人的な印象だけど
脳内情報だけを頼りに物を言ってる自覚はあるんだな。
その愚かさに気づけば、そこらの猿よりはましになれるのに。
ADCで一本取られた腹いせ
167:に、ADCそのものを否定したいようだね。 残念ながら、アンタが必要と思わなくても、ADCはすべてのPIC32に載ってるよ。
168:774ワット発電中さん
17/01/25 03:51:52.30 wSIL7mOg.net
24Fは変態アーキテクチャじゃないから安心
16Fはマトモなスタックもないのにローカル変数をよく実装できるもんだ
169:774ワット発電中さん
17/01/25 04:01:43.37 hCL8RwuQ.net
確かにADCのbit数もポイントだけど、プログラムを組むのに16bitのほうが楽ではない?
1回作ってしまえば使い回しで行けるし。クロックも早いので処理も速い。
特にUARTで960kbpsが使えるのは嬉しい。intが16bitなので、65535まで扱えるし、
メモリーも多い。CRCもあるし、UARTも2chあるし、ICSPピンが3カ所選べれるし
170:774ワット発電中さん
17/01/25 07:00:06.83 bsaJsBrM.net
普通はPIC32MMやPIC32MXを使うよな
171:774ワット発電中さん
17/01/25 07:04:28.68 bsaJsBrM.net
PIC24もdsPICもコスパ最悪
172:774ワット発電中さん
17/01/25 07:09:01.16 bsaJsBrM.net
>>159
PIC32に比べたらPIC24は変態アーキテクチャー
173:774ワット発電中さん
17/01/25 07:12:25.19 TrReYM5N.net
>>158
> ADCで一本取られた腹いせに、ADCそのものを否定したいようだね。
誰がそんなこと言ってんだよ
人のこと猿呼ばわりする前に日本語勉強しとけ
それとも顔真っ赤で冷静さ失っちゃってんのか?
174:774ワット発電中さん
17/01/25 07:21:29.68 bsaJsBrM.net
>>160
クロックが速い?
別に速くないでしょ
処理が8bitに対して速いのはクロックが速いからじゃない
クロックあたりの命令数も命令あたりの処理量も16bitの方が上だから
ていうか、PICの8bitが遅すぎる
16bitも他のメーカーに比べたら遅い
175:774ワット発電中さん
17/01/25 07:46:02.02 laalPaX2.net
PIC32MXがある今ではPIC24はnot recommend for new design 状態
176:natu
17/01/25 10:13:54.69 zULbvqaH.net
>>128
URLリンク(ww1.microchip.com)
CKE=0のマスターは、ERRATAあるみたいだけど、これかな?
177:128
17/01/25 11:29:53.41 f9hscvZX.net
>>167
レスありがとうございます。CKEが0だったので1にしましたが、結果変わらずです。
初期化部抜粋
TRISCbits.RC3 = 0; // RC3: SCK1(OUT)
TRISCbits.RC4 = 1; // RC4: SDI(IN)
ANSELCbits.ANSC4 = 0; // RC4: アナログ入力禁止
TRISCbits.RC5 = 0; // RC5: SDO(OUT)
SSP1STATbits.SMP = 0;
SSP1STATbits.CKE = 1;
SSP1CON1bits.WCOL = SSP1CON1bits.SSPOV = 0;
SSP1CON1bits.SSPEN = SSP1CON1bits.CKP = 1;
SSP1CON1bits.SSPM = 0b0010; // FOSC/64 = 1MHz
PIR1bits.SSP1IF = 0; // 割り込みフラグクリア
IPR1bits.SSP1IP = 0; // 低位割り込み設定
PIE1bits.SSP1IE = 1; // 割り込み許可
TRISDbits.RD0 = 1; // RD0: SCK2(IN)
ANSELDbits.ANSD0 = 0; // RD0: アナログ入力禁止
TRISDbits.RD1 = 1; // RD1: SDI(IN)
ANSELDbits.ANSD1 = 0; // RD1: アナログ入力禁止
TRISDbits.RD4 = 0; // RD4: SDO(OUT)
SSP2STATbits.SMP = 0;
SSP2STATbits.CKE = 1;
SSP2CON1bits.WCOL = SSP2CON1bits.SSPOV = 0;
SSP2CON1bits.SSPEN = SSP2CON1bits.CKP = 1
SSP2CON1bits.SSPM = 0b0101;
PIR3bits.SSP2IF = IPR3bits.SSP2IP = 0;
PIE3bits.SSP2IE = 1;
低位割り込み抜粋
if (PIR1bits.SSP1IF == 1) {
SPI1RxData = SSP1BUF;
PIR1bits.SSP1IF = 0;
SPI1flag = TRUE;
}
if (PIR3bits.SSP2IF == 1) {
SPI2RxData = SSP2BUF;
PIR3bits.SSP2IF = 0;
SPI2flag = TRUE;
}
main抜粋
SPI1flag = SPI2flag = FALSE;
SSP2BUF = 0x12; // スレーブデータセット
SSP1BUF = 0x34; // マスターデータセット
while (1) {
if (SPI1flag) {
printf("From Slave Data = %02Xh\r\n", SPI1RxData);
SPI1flag = FALSE;
break;
}
}
while (1) {
if (SPI2flag) {
printf("From Master Data = %02Xh\r\n", SPI2RxData);
SPI2flag = FALSE;
break;
}
}
結果
From Slave Data = 00h
From Master Data = 34h
Slave Dataが12hになってくれない。
178:774ワット発電中さん
17/01/25 12:08:36.82 KuK+KSv9.net
32bit無いわw
179:774ワット発電中さん
180:
4ビットの人に言われても…
181:774ワット発電中さん
17/01/25 12:24:36.33 jFYy4f7g.net
www
182:774ワット発電中さん
17/01/25 14:19:16.48 qp7TJ2xz.net
URLリンク(hissi.org)
URLリンク(hissi.org)
>PIC32はすごいんだぜ
でもADCはPIC24の方がいいね
>ADCなんて誰も使わないから
ADCそのものを否定しますか
>そんなこと言ってない
183:774ワット発電中さん
17/01/25 14:23:08.54 8TEfLvNe.net
>>172
そうやって並べてみると
そもそも、言葉は汚いし、書いてることに論理性のかけらも無いし
相手しちゃダメな人だったなw
184:natu
17/01/25 15:28:21.20 zULbvqaH.net
>>168
それでマスター側で受けられそうな気がしますね。
試しにマスター側の割込み内先頭でSPIの1クロック分Delayしてみては如何でしょう?
185:774ワット発電中さん
17/01/25 16:42:16.93 RJ7ammhR.net
>>172
> >ADCなんて誰も使わないから
だからそんなこと誰が書いてるの?
引用記号であたかもそんな発言があるように見せかけて、あんたやり方が汚いね
186:774ワット発電中さん
17/01/25 16:52:29.45 MJhdrmEl.net
>>168
SDI1ピンをHIGH固定にして0xff受かるの?
187:774ワット発電中さん
17/01/25 17:06:13.81 f9hscvZX.net
>>176
FF来ました。
オシロで見ると波形でてるが???
もう少し配線確認してみます。
188:774ワット発電中さん
17/01/25 17:08:42.48 f9hscvZX.net
>>174
割り込み処理はフラグ立てるだけにして
mainでSSP1BUFをリードするようにしたが、何度やっても結果変わらずです。
低位割り込み抜粋
if (PIR1bits.SSP1IF == 1) {
PIR1bits.SSP1IF = 0;
SPI1flag = TRUE;
}
main抜粋
while (1) {
if (SPI1flag) {
printf("From Slave Data = %02Xh\r\n", SSP1BUF);
SPI1flag = FALSE;
break;
}
}
189:774ワット発電中さん
17/01/25 17:23:27.01 jc/n7fVD.net
>>175
>PIC32はADCが10ビット、PIC24は12ビットです。
のあとで、
>皆が皆ADC使うわけじゃないしな
>作例もあまり見たことないわ
と逃げるやり方が汚いから強調されたんでしょ。
俺が見ても「あ、屁理屈でかわしたな。」って思った。
最初からフェアなら誰もいじらないよ。
190:774ワット発電中さん
17/01/25 17:56:09.97 RJ7ammhR.net
>>179
全然意味がわからないです
191:774ワット発電中さん
17/01/25 18:01:53.86 lG4G8hVv.net
URLリンク(goo.gl)
この記事本当??
めっちゃショック。。
192:774ワット発電中さん
17/01/25 18:09:08.62 p7QwPTsP.net
>>178
RC3のアナログ入力禁止が抜けてる様に見えるけど。
193:natu
17/01/25 18:55:08.10 zULbvqaH.net
>>178
うーん…解らんなぁー
マスター(SSP1)のSDOとSDIをショートすると、マスター側へ0x34が到着するだろうか?
194:774ワット発電中さん
17/01/25 19:57:30.31 f9hscvZX.net
>>182
レスありがとう。
RC3はSCK1のOUT設定なのでアナログ入力禁止は不要と思っています。
アナログ入力禁止はデジタル入力割り当て時と思います。
TRISCbits.RC3 = 0; // RC3: SCK1(OUT)
また、SlaveのSCK2(IN)に入力されてMasterのデータを受信できているのでRC3は稼動している思います。
195:774ワット発電中さん
17/01/25 19:59:18.00 f9hscvZX.net
>>183
ありがとうございます。
それ明日やってみます。
それでも解決しない場合はMSSP1をスレーブでMSSP2をマスターに入れ替えてやってみます。
196:774ワット発電中さん
17/01/25 22:07:07.10 0dfPhnYS.net
PIC32MXの一部はパイプライン利用で高速化している
使わなければ30MHzで命令読込動作
16bitデバイスは1命令の場合にクロック÷2の命令読み込み
(70MIPS 16bit除く)
つまり
割込をマイクロ秒でやる制御対象の場合
32bitは使い勝手悪過ぎ
16bitは使いやすい
ARMも似たような仕様多いけど
命令読込が100MHzとかで速いから
レジスタ退避の時間のみを考慮してやればいい
PIC32はウェイトバリバリ入りまくり
どっちかっていうと変態はPIC32じゃないのかな?
上はスーツで下はブリーフみたいな
変態紳士って感じするねPIC32は、、
197:774ワット発電中さん
17/01/25 22:09:18.79 bsaJsBrM.net
酸っぱい葡萄www
198:774ワット発電中さん
17/01/25 22:44:07.04 NjKOzAnt.net
どうせLチカ程度しか使わないので
PIC16で十分
199:774ワット発電中さん
17/01/25 22:50:13.10 bsaJsBrM.net
Lチカの高難度なヤツが見たい
200:774ワット発電中さん
17/01/26 03:42:44.94 65QtHP8g.net
しかし、クロックが速いのは何かと助かるよね。
へたくそなプログラムでも高速に走るし。
少ないメモリ、遅いクロックで悩むのは、もう終わりにしませんか?
PIC24FVなら、
・3.3Vでも5V電源でも使える
・DIP~QFPまであり、使いやすいパッケージ。
・クロック用にPLL入ってる
・EEPROM内蔵
・UART 3ch
・割り込みベクトルがあるので、割り込み要因評価が不要
201:774ワット発電中さん
17/01/26 04:57:59.91 gMe9ephh.net
PIC32ついでに質問
XC32でハードウェア除算器使う場合って
どうやるん?
整数同士の割り算なんだけど普通に"/"使うと時間掛かって使い物になりません
XC32にビルトイン関数あるの?
見つけられない
202:774ワット発電中さん
17/01/26 07:09:37.30 qf2ElDd4.net
判断は時間だけか。アセンブラのコード見たりしないのか?
203:774ワット発電中さん
17/01/26 07:38:06.08 yxWDqCpo.net
>>189
音声を圧縮変調してLEDトランスミッター作るとか?
204:774ワット発電中さん
17/01/26 07:41:49.56 yxWDqCpo.net
>>190
秋月で370円もするんか・・・28ピンってのも大きすぎるし
205:774ワット発電中さん
17/01/26 08:06:23.81 5sZXecL0.net
◆PIC24FV32KA302
370
16bit / 32MHz / 16MIPS
ROM 32KB / RAM 2KB
ADC 100ksps
URLリンク(akizukidenshi.com)
◆PIC32MX270B-50
380
32bit / 50MHz / 50MIPS / 83DMIPS
ROM 256+3KB / RAM 64KB
ADC 1.1Msps
USB OTG
32bit timer
JTAG
URLリンク(akizukidenshi.com)
206:774ワット発電中さん
17/01/26 09:58:21.12 KAVOJH5Z.net
>>191
普通にコンパイラが勝手に使うでしょ
除算はスーパーコンピューターでも遅いから、パフォーマンスが問題になるようなら、なるべく使わないですむようにアルゴリズムをかえる
207:774ワット発電中さん
17/01/26 10:41:02.44 gxO+IVhM.net
>>183
マスターのSDI(RC4)とSDO(RC5)を接続してみました。
結果
From Slave Data = 00h
From Master Data = 00h
です。
残念ながら0x34にはなりませんでした。
スレーブのSDI(RD1)はオープンですが、0x00となりました。
208:774ワット発電中さん
17/01/26 11:03:06.80 u1uIHuot.net
>>189
Lチカを馬鹿にしちゃ~~~いけねいよ。
8PIN PICでLED20個を16階調で点灯させるくらいは
4MHzでもできるよ。
プログラム能力があればだけどね・・・・・
209:774ワット発電中さん
17/01/26 11:10:07.04 KAVOJH5Z.net
>>193に対してずいぶんとレベルが下がったな
でも8pinマイコンだと20個個別に16階調は外部回路必須だよね
どんな回路がシンプル?
210:natu
17/01/26 11:55:30.98 v0iGtUjX.net
>>197
SCKは、予定通りの1MHzになっていますか?
211:774ワット発電中さん
17/01/26 12:26:04.36 YVLL11E2.net
>>197
SDIはシュミット入力だからVIHに注意が必要
SDI1の"H"レベルが足りているか
0xFFが受信できたときの電圧レベル
あたりが
212:気になる
213:774ワット発電中さん
17/01/26 12:31:11.75 gxO+IVhM.net
>>200
オシロで確認しました。
SCKは1MHzでSDOはSCKの立ち上がりで確定しています。
0x34です。
SCK ~~~|_|~|_|~|_|~|_|~|_|~|_|~|_|~|_|~~~~~
SDO _________|~~~~~~~|___|~~~|_____________
です。
214:774ワット発電中さん
17/01/26 12:33:20.90 gxO+IVhM.net
>>201
Low 0V
High 5V
ほぼフルスイングしています。
215:774ワット発電中さん
17/01/26 13:05:51.10 KAVOJH5Z.net
>>198
素直に14pinで作った方が安くて小さくて簡単じゃない?
8pinの回路図が見たい
216:natu
17/01/26 13:32:22.08 v0iGtUjX.net
>>202
SDI1ピンをHigh固定で0xffを受信
SDI1ピンをSDO1ピンからロールバックすると0x00受信(SDO1から0x34の波形)
矛盾しているようで良く解らんけれど
SDO1から0xffを送信してロールバックすると、やはり0x00を受信するんだろうか?
217:774ワット発電中さん
17/01/26 13:58:47.57 8Ln8Hdnn.net
>>195
コミュ障乙
>>190はこう書いとる。
>PIC24FVなら、
>・3.3Vでも5V電源でも使える
あと、その程度のリンクは誰でも探せるから、わざわざ張らんでええわ。
218:774ワット発電中さん
17/01/26 15:42:15.54 gxO+IVhM.net
>>205
SDOから0xffでSDIにロールバックすると0x00でした。
SCKが出ている間はSDIはHをオシロで確認しました。
SDIをVddに接続すると0xffでGNDに接続で0x00です。
もうわけわからんです。
219:774ワット発電中さん
17/01/26 15:51:51.25 gxO+IVhM.net
関係ない話ですが、main()の中でSPIのテストをしてますが、
SPIテスト以降のコードに行くのを止めるために
while (1) ;
を挿入するとビルドが数十秒のところ6分くらい待たされます。
これって以降のコードに到達できないのを最適化か何かで考え込んでいるのでしょうか?
環境はMPLAB X IDE 3.51 + XC8 1.40です。
220:774ワット発電中さん
17/01/26 17:31:26.65 1vTtOItj.net
>>206
あんたのレスも内容ないから、わざわざ書かんでええわ。
221:natu
17/01/26 18:18:34.77 v0iGtUjX.net
>>207
>>208
不思議な具合ですな。
208の環境で2,3行のmain()をコンパイルしてみた。
main()を抜けると、再びmain()へ戻ってくるニーモニックが作成されているみたい。
From Slave Data = XXh
From Master Data = XXh
この2行表示が繰り返されているんでしょうか。
PS.
while(1);をmain()の最後へ入れても、変化ありませんでした。
222:774ワット発電中さん
17/01/26 19:50:19.49 Iqq8Kn9a.net
>>206
ほんそれ。
PIC32には5Vで駆動できるのが無いけど、PIC24なら5.5Vがそろってる、
というのが結構大事なポイントなのに。
わざわざそこ隠して引用してる>>195は、いったい何を比較させようってんだかw
まあ、よく知らないんだろうね。
223:774ワット発電中さん
17/01/26 20:16:18.19 gxO+IVhM.net
>>210
帰宅しました。
最初のmain抜粋
初期化など
SPI1flag = SPI2flag = FALSE;
SSP2BUF = 0x12; // スレーブデータセット
SSP1BUF = 0x34; // マスターデータセット
while (1) {
if (SPI1flag) {
printf("From Slave Data = %02Xh\r\n", SPI1RxData);
SPI1flag = FALSE;
break;
}
}
while (1) {
if (SPI2flag) {
printf("From Master Data = %02Xh\r\n", SPI2RxData);
SPI2flag = FALSE;
break;
}
}
SSP2BUF = 0x56; // スレーブデータセット
SSP1BUF = 0x78; // マスターデータセット
while (1) {
if (SPI1flag) {
printf("From Slave Data = %02Xh\r\n", SPI1RxData);
SPI1flag = FALSE;
break;
}
}
while (1) {
if (SPI2flag) {
printf("From Master Data = %02Xh\r\n", SPI2RxData);
SPI2flag = FALSE;
break;
}
}
while (1) ;
これ以降もコード数十行あります。
ここまで
結果
From Slave Data = 00h
From Master Data = 34h
From Slave Data = 00h
From Master Data = 78h
でした。
224:774ワット発電中さん
17/01/26 20:17:07.29 gxO+IVhM.net
>>210
while (1) ; の件
自宅のPCでもやってみた。
今までと同じPIC18F46K22を選んでSource Filesにnewmain.cを作成
-------------------------------------------------------
#include <stdio.h>
#include <xc.h>
void main(void) {
int i,j;
for (i = 0 ; i < 256 ; i++) {
printf("%d\r\n", i);
}
while (1) ;
for (j = 0 ; j < 256 ; j++) {
printf("%d\r\n", j);
}
return;
}
-------------------------------------------------------
ここで while (1) をコメントでビルドすると4秒で終了する。
コメントを外すと1分10秒にもなる。
225:774ワット発電中さん
17/01/26 20:27:45.12 9MVc4KOn.net
5Vだと青色とかフルカラーとかのLEDが直接チカらせられるよね
勿体無いことするなとか言われそうだけど
226:774ワット発電中さん
17/01/26 20:39:02.80 I/wFRtdm.net
>>212
抜粋じゃなくて、コンパイル可能な最小限のコードを出すこと。
行数オーバーで書き込めないなら、行を詰めて複文にしてもOK。
今まで出てきていない懸案事項、
(1) GIE/PIE関係の設定がない。
(2) 割り込み内で使う変数定義が不明。
(3) 割り込み関数(名)の記述が不明。 省略せずに書け。
やってみること。
割り込みを使わずに、データの授受を試すこと、
まずこれが問題を切り分けるポイントになる。
227:774ワット発電中さん
17/01/26 20:45:28.01 gxO+IVhM.net
>>215
承知しました。
明日、最小限のコードで再現後にアップします。
よろしくお願いします。
228:774ワット発電中さん
17/01/26 20:46:46.41 5sZXecL0.net
>>215 偉そうだな
最後まで面倒見てやれよ
229:774ワット発電中さん
17/01/26 20:53:15.72 gxO+IVhM.net
ちなみに↓でやってます。
URLリンク(akizukidenshi.com)
230:774ワット発電中さん
17/01/26 20:55:02.81 gxO+IVhM.net
色々あってMSSP1とMSSP2の入れ替えコードでの評価はやれてません。
ごめんなさい。
231:774ワット発電中さん
17/01/26 20:55:11.72 u1uIHuot.net
>>204
5ピンあれば外部回路なしにLED20個は接続できるし
16階調くらいならソフトPWMでも何とか表示できるよ
Charlieplexing方式使えば・・・
232:774ワット発電中さん
17/01/26 21:23:56.49 jMiU9EsM.net
>>220
方法そのものは、普通に使ってるが、
恥ずかしながら、名前知らんかったわ。
なんかうれしい、ありがとう。
233:774ワット発電中さん
17/01/26 22:26:57.55 gRTC1KbI.net
>>191
固定小数点にして、掛け算にするとか。
234:774ワット発電中さん
17/01/27 08:47:32.85 AK4K9kdF.net
>>220
実際やってみると輝度ムラが出る
抵抗値調整すれば改善はある程度できるけど
235:774ワット発電中さん
17/01/27 09:51:46.23 2HCbM6ow.net
やったのか
どういうアプリケーション?
ゲームとか?
まさかLEDを光らせること自体が目的の回路?
多色LEDなんかは固体差で色が変わっちゃうよね
キャリブレーションしないと
当然ソフト的に
236:natu
17/01/27 09:58:57.61 E5w1jbCa.net
>>213
おー、こちらでもLITEモードだと50秒、PROだと1秒となりました。
原因は、不明ですが
while(1) NOP();
無意味な命令を突っ込んやるとLITEでも1秒で終わるみたい。
SPIの方は、解らんけれど…
237:774ワット発電中さん
17/01/27 12:42:18.77 fRaSCnL4.net
16F1827を使ってマトリックス・スイッチの実験をしてみましたが、どうもうまくいきません
どのスイッチを押してもPGM()が連続して3回実行されます
なんでなんだろ?
回路図
URLリンク(www.geocities.jp)
プログラム
URLリンク(www.geocities.jp)
238:774ワット発電中さん
17/01/27 13:01:13.49 2HCbM6ow.net
なんか色々とヤバイな
回路
複数ボタンを同時に押すとマズイ
ソフト
どこから突っ込んで良いかわからない
3回処理が走る理由
IOCBFnをクリアしてないから
intrの先頭でIOCBFnが立っていたら3回ともifの条件に当てはまる
239:774ワット発電中さん
17/01/27 13:01:18.39 lzXdItNb.net
>>215
なんとか60行にいれました。
#include <pic18f46k22.h>
#include <stdio.h>
#pragma config FOSC = INTIO67
#pragma config PLLCFG = OFF
#pragma config PRICLKEN = OFF
#pragma config FCMEN = OFF
#pragma config IESO = ON
unsigned char SPI1RxData, SPI2RxData;
volatile int SPI1flag = 0, SPI2flag = 0;
volatile long TimerTickCount = 0L;
voi
240:d putch(unsigned char data) { while ((PIR3 & 0x10) == 0) ; TXREG2 = data; } void interrupt low_priority ISR_L(void) { if (PIR1bits.SSP1IF == 1) {SPI1RxData = SSP1BUF; PIR1bits.SSP1IF = 0; SPI1flag = 1; } if (PIR3bits.SSP2IF == 1) {SPI2RxData = SSP2BUF; PIR3bits.SSP2IF = 0; SPI2flag = 1; } if (INTCONbits.TMR0IF) {TMR0L = 131; TimerTickCount++; INTCONbits.TMR0IF = 0; } } void main(void) { char data; TRISA = TRISB = TRISC = TRISD = TRISE = 0; OSCCON = 0x70; OSCTUNEbits.PLLEN = 1; RCONbits.IPEN = INTCONbits.GIEH = INTCONbits.GIEL = 1; PORTDbits.RD6 = 1; TXSTA2 = 0x04 | 0x20; RCSTA2 = 0x80 | 0x10; BAUDCON2 = 0x08; SPBRG2 = (unsigned char)(((64000000L / 4L) / 115200L) - 1L); SPBRGH2 = (unsigned char)((((64000000L / 4L) / 115200L) - 1L) >> 8); PIE3bits.RC2IE = PIE3bits.TX2IE = 0; TRISCbits.RC3 = 0; TRISCbits.RC4 = 1; ANSELCbits.ANSC4 = TRISCbits.RC5 = SSP1STATbits.SMP = 0; SSP1STATbits.CKE = 1; SSP1CON1bits.WCOL = SSP1CON1bits.SSPOV = 0; SSP1CON1bits.SSPEN = SSP1CON1bits.CKP = 1; SSP1CON1bits.SSPM = 0b0010; // FOSC/64 = 1MHz PIR1bits.SSP1IF = IPR1bits.SSP1IP = 0; PIE1bits.SSP1IE = 1; data = SSP1BUF; TRISDbits.RD0 = 1; ANSELDbits.ANSD0 = 0; TRISDbits.RD1 = 1; ANSELDbits.ANSD1 = TRISDbits.RD4 = SSP2STATbits.SMP = 0; SSP2STATbits.CKE = 1; SSP2CON1bits.WCOL = SSP2CON1bits.SSPOV = 0; SSP2CON1bits.SSPEN = SSP2CON1bits.CKP = 1; SSP2CON1bits.SSPM = 0b0101; PIR3bits.SSP2IF = IPR3bits.SSP2IP = 0; PIE3bits.SSP2IE = 1; data = SSP2BUF; INTCON2bits.TMR0IP = 0; T0CONbits.T08BIT = 1; T0CONbits.PSA = 0; T0CONbits.T0PS = 6; T0CONbits.T0CS = 0; TMR0L = 131; INTCONbits.TMR0IE = T0CONbits.TMR0ON = 1; while (TimerTickCount < 1000L) ; printf("START!\r\n"); for (int i = 0 ; i < 10 ; i++) { SPI1flag = SPI2flag = 0; SSP2BUF = 0x12; // スレーブデータセット SSP1BUF = 0x34; // マスターデータセット while (1) { if (SPI1flag == 1) {printf("From Slave Data = %02Xh\r\n", SPI1RxData); SPI1flag = 0; break; } } while (1) { if (SPI2flag == 1) {printf("From Master Data = %02Xh\r\n", SPI2RxData); SPI2flag = 0; break; } } } while (TimerTickCount != 0L); }
241:774ワット発電中さん
17/01/27 13:04:29.18 lzXdItNb.net
>>228
結果です。
START!
From Slave Data = 00h
From Master Data = 34h
上記2行が10回繰り返されます。
mainの最後にwhile (1) ;を入れるとビルドが待たされるので別の記述にしました。
242:774ワット発電中さん
17/01/27 13:39:12.46 IQwg2iIw.net
まず黒丸が無いから全く読めないよねw
十字は非導通T字は導通と好意的に読んでも、SW関係なく常時全端子が導通で藁
243:774ワット発電中さん
17/01/27 14:03:57.06 PHwc+gc4.net
それぞれのスイッチにダイオード咬ますかしたほうがいいんじゃないの
244:774ワット発電中さん
17/01/27 14:29:16.28 0J6SU+VS.net
LFの付いたやつで工作されてる方に質問なのですが、実際何ができるものなんでしょう?
電源範囲が低すぎてイマイチピンと来なくて質問なのですが
赤外線LEDは浮かんだんですがそれ以外はさっぱり
245:774ワット発電中さん
17/01/27 15:00:33.64 UUngqIy0.net
Tの場合は黒丸を書かなくても良いと言う話があるのだが…
それとも直線に接続されずに無接続に見えるのか?
246:774ワット発電中さん
17/01/27 15:12:54.96 1tZ1BrTo.net
接続点に黒丸付けないなら、交差での非接続を明示するのが決まり。
T字の扱いなどはローカルルールだから仲間内に留めておけ。
247:774ワット発電中さん
17/01/27 15:16:44.61 UUngqIy0.net
JISC0617-2に文句言えや
248:natu
17/01/27 17:03:18.11 E5w1jbCa.net
>>228
手元にMSSPが2つ入ったPIC16F1829が有ったので暇に任せてSSP1とSSP2とを繋いでみました。
>>228のプログラムを辻褄合わせして(クロックは32/16=2MHz)動作させてみると10回とも0x12,0x34を受信しました。
うーん、デバイスのバグだろうか?
249:774ワット発電中さん
17/01/27 17:12:38.80 lzXdItNb.net
>>236
そうですか、初めてのPICでハズレ(18F46K22)を引いてしまったのか???
250:774ワット発電中さん
17/01/27 18:07:49.12 ZwoSw9Np.net
>>237
ある品種用に書かれたプログラムを使いたい品種に移植して動くようになるかは全部お前の責任。
石のせいなんかすんなボケ。
251:natu
17/01/27 18:16:50.83 E5w1jbCa.net
>>237
マスターからスレーブへは、到達しているのだからERRATAの内容を試してみては如何?
プログラムの最初の方で
#d
252:efine _XTAL_FREQ 64000000 を入れておいてSSPxBUFを読む直前に __delay_us(2); を入れて試してみるみる。どうかな?
253:774ワット発電中さん
17/01/27 19:05:49.57 nbBz01F0.net
URLリンク(youtu.be)
254:774ワット発電中さん
17/01/27 19:20:48.12 tta3qDBp.net
>>237
以下のように割り込みを使わない方法ならどう?
...
...
PIE1bits.SSP1IE = 0;
PIE3bits.SSP2IE = 0;
while (TimerTickCount < 1000L) ; printf("START!\r\n");
for (int i = 0 ; i < 10 ; i++) {
PIR1bits.SSP1IF = PIR3Bits.SSP2IF=0;
SSP2BUF = 0x12; // スレーブデータセット
SSP1BUF = 0x34; // マスターデータセット
while (1) {
if (PIR1bits.SSP1IF == 1) {printf("From Slave Data = %02Xh\r\n", SSP1BUF); PIR1bits.SSP1IF = 0; break; }
}
while (1) {
if (PIR3Bits.SSP2IF == 1) {printf("From Master Data = %02Xh\r\n", SSP2BUF); PIR3Bits.SSP2IF = 0; break; }
}
}
while (TimerTickCount != 0L);
}
255:774ワット発電中さん
17/01/27 19:20:52.20 AZmvu2za.net
>>239
2回やって受けられてないから、待ちの問題じゃないと思う
>>237
端子を単純なインプットにしてLOW HIGHとも正しく受けられるのかテスト
PIC18F46K22 が2個あれば交換してみる
別のマイコンから送信してみて、片方だけ受けられないのか調べる
スペックシートを見直す
エラッタを見直す
回路を見直す
256:774ワット発電中さん
17/01/27 20:00:22.75 lzXdItNb.net
>>238
移植はしていませんよ。
初めてのPICでSPIのテストをしているのですが?
257:774ワット発電中さん
17/01/27 20:01:19.94 lzXdItNb.net
>>239
レス、ありがとうございます。
次回実験できるのは週明けになりますが必ず試します。
258:774ワット発電中さん
17/01/27 20:01:55.16 lzXdItNb.net
>>241
レス、ありがとうございます。
次回実験できるのは週明けになりますが必ず試します。
259:774ワット発電中さん
17/01/27 20:05:16.12 lzXdItNb.net
>>242
エラッタの内容が理解できていない A(^^;)
翻訳サイトで日本語にしてもイミフ
教えてくれませんか?m(__)m
MasterのSDIをVDDに接続すれば0xffでGNDなら0x00です。
260:774ワット発電中さん
17/01/27 20:13:55.76 fIuiUQNd.net
ダイオードなんかかますわけないだろ
おまいら何いってんの
261:natu
17/01/27 21:15:02.10 k9Lig1rx.net
>>242
帰ってきた。お湯割り飲んでもた
>>242 >2回やって受けられてないから
なるほど、1回前が遅れてBUFに転送されてれば2~10までは、その値になるな。
そうだと、これは謎だな。
マスター送信→マスター受信のループバックNG
マスター送信→スレーブ受信OK
スレーブ送信→マスター受信NG
スレーブの送信かマスターの受信が何らかの不具合だと思うんだけど…なんだろ?
262:natu
17/01/27 21:43:34.62 k9Lig1rx.net
16F1829で正常にバイト交換ができた時のSPI1,2の波形を取ってあった。
URLリンク(www.mars.dti.ne.jp)
URLリンク(www.mars.dti.ne.jp)
横軸500nS/Div。
263:774ワット発電中さん
17/01/27 22:21:33.49 WobVW/vH.net
>>226
結合部は●を描こうよ
264:774ワット発電中さん
17/01/27 23:17:31.31 nLKx7vFj.net
>>246
CKE=1 の場合はエラッタを回避してることになるので、
今回の場合はSPIのエラッタ、無関係です。
265:774ワット発電中さん
17/01/27 23:55:41.85 QxpSP6n6.net
>>232
CR2032リチウムコイン電池駆動回路作るときにLFは必須やな
タクトSWで起動して処理終わったらSleepするような用途に最適
通常のFだとPowerdown電流食いすぎて1年くらいで電池無くなる
266:774ワット発電中さん
17/01/28 12:22:18.52 63KPBnZp.net
先にGIEをONにしていろいろやってるのが気持ち悪いな
全部設定が終わってからやるもんじゃないの?
267:774ワット発電中さん
17/01/29 01:15:25.97 fuAYECwm.net
今度は
if(IOCBF4==1){}
のとこを変えて
if(RB4==0){}
にしてみたんだけど、、相変わらずどのスイッチ押しても連続して3回プログラムが実行される
どこがいけないんだろ
回路図
URLリンク(www.geocities.jp)
プログラム
URLリンク(www.geocities.jp)
268:774ワット発電中さん
17/01/29 03:08:27.35 yrDMp7Lt.net
回路(回路図?)を直す気はないんかいw
本当に�
269:サの回路でやってるならソフトを確認するまでもなく絶対動かない
270:774ワット発電中さん
17/01/29 08:54:27.15 c4usQPqw.net
回路を直さなくても同時押ししなければ動く
同時押しすると壊れるかもしれないけど
それよりソフトがひどい
271:774ワット発電中さん
17/01/29 09:31:22.45 wW+UpGVC.net
優秀な技術者が育っておるようじゃのう...
日本の未来は明るいわい!
ガーッハッハッハッ!!!
272:774ワット発電中さん
17/01/29 09:50:32.91 sRDyVm0f.net
ああ、回路そのままで同時押しにも対応できるか
273:774ワット発電中さん
17/01/29 10:05:11.41 1HXEM7G1.net
一度に1pinだけ0出力して他を入力プルアップにすれば壊れないし2個押しまで判別可能。
3つ押すと判別不能。
274:774ワット発電中さん
17/01/29 13:14:20.69 aN3IQ+hr.net
>>254
回路図の接続点に黒丸●を付けてくれないと分かりにくい。
同時に押すことがあるなら出力保護のためにダイオードを入れた方が良い。
275:774ワット発電中さん
17/01/29 14:34:07.27 17G4exzt.net
>>260
上にも書いたがJISC0617でT接続は黒丸無しと有りの両方書かれている
おまいが見難いからと言って他人にまで自分の意見を書くなや
276:774ワット発電中さん
17/01/29 14:46:00.49 sRDyVm0f.net
>>259
9個押しまでわかるよその回路で
277:774ワット発電中さん
17/01/29 14:47:02.91 yrDMp7Lt.net
T字の導通非導通が混在していて読めないのは問題にしないのな
278:259
17/01/29 15:50:10.80 auo5YU2C.net
>>262
3つ以上は無理
この回路のスイッチを電卓の数字同様に1から9に
番号付けしてた場合124と125と145と245と1245の
同時押しが見分けられない
これらは全部上二本左二本が電気的に繋がり区別不能
279:774ワット発電中さん
17/01/29 16:20:05.92 17G4exzt.net
>>263
安価付けて直接批判しる
俺はその点はコメントしない
絵が下手だからと言って批判出来る程俺も絵が上手では無いからな
280:774ワット発電中さん
17/01/29 17:05:17.16 aN3IQ+hr.net
>>261,265
自意識過剰なんだね、絵が下手だなんて一言もいってないのにw
表現したいことは分かったから「回路図の接続点に黒丸●を付けてくれ」と頼んだのに。
一番下の段のSWの両足のT字接続は?
あたいは安価つけて批判しる(しるの過去形が分らない)w
281:774ワット発電中さん
17/01/29 17:08:02.48 A8C96QRf.net
前時代的な2ch用語使ってないで、普通に日本語書きなよ
282:774ワット発電中さん
17/01/29 17:15:15.45 yrDMp7Lt.net
>>265
批判なんて大袈裟なもんじゃないし、上手下手じゃなく記号の使い方の話
>>254
ちょっと画像借りるね
おまいらどれが好み?
URLリンク(light.dotup.org)
283:774ワット発電中さん
17/01/29 17:21:48.01 yrDMp7Lt.net
少なくとも、P0とP6は直結していてSW3は検出できないと思うんだ…
284:774ワット発電中さん
17/01/29 17:31:37.76 aN3IQ+hr.net
>>268
黒丸Cだけど、自分は線を接続していないところの黒丸は書かない(右下のSWなど)
>>269
垂直の線を少し長めに描いてくれれば「黒丸無し」でも良かったのかな。
でもマトリックス接続にしたいのは十分に分る。
285:774ワット発電中さん
17/01/29 17:32:27.78 17G4exzt.net
>>268
おう、黒丸必要論が気になり過ぎて回路図よく見て無かったわ
俺はCの状態で黒丸の有無は別問題だと言う意見だ
一応書いておくが、俺はT結線には黒丸を付ける主義な
でもT結線の黒丸の有無は両方認められると言うだけ
286:774ワット発電中さん
17/01/29 17:36:08.69 yrDMp7Lt.net
黒丸CのSW1,SW2の右端、SW6
287:,SW9の右端、SW3の両端は●不要だったはスマソ 脳内補正たのむ
288:774ワット発電中さん
17/01/29 17:36:58.24 gZmVxdRe.net
回路にしろソフトにしろ
何を参考にしたのか逆に聞きたい
289:774ワット発電中さん
17/01/29 17:39:42.54 17G4exzt.net
しかしながら、実際書いている回路図通りに結線している可能性もある訳だが…
特に最下段
290:774ワット発電中さん
17/01/29 17:44:33.33 yrDMp7Lt.net
>>272
また間違えた。訂正:SW6,SW9の右端 → SW6,SW9の左端
>>274
黒丸Aがいちばん面白い
291:774ワット発電中さん
17/01/29 20:02:59.16 jq+vFXx0.net
いろいろ会社渡り歩いてるが結線に黒丸打たなくていい会社なんか無いぞ
292:774ワット発電中さん
17/01/29 23:27:12.52 8qfGp/aS.net
正規のの図面には当然黒丸を付けるが、自分しか見ない資料には付けないな。
293:774ワット発電中さん
17/01/29 23:49:17.63 +FCSC8EK.net
いちいち区別しねえ
CADが勝手につけてくれる
URLリンク(i.imgur.com)
もっと他のことに頭使えよ、馬鹿どもw
294:774ワット発電中さん
17/01/30 00:01:04.40 di9uYH01.net
CADが付けてくれるかどうか、って話じゃなくて、
付いていない回路が間違っているかそうでないか、って話だよね。
結論からいえば、間違いじゃないから、T字結線黒丸なしの回路図も受け入れる
しかないわけだけど。
295:774ワット発電中さん
17/01/30 00:45:51.02 9saR5o+X.net
>>254
点以前に回路図間違ってっからな
296:774ワット発電中さん
17/01/30 00:59:32.19 6Z6ta9ug.net
>>279
そうじゃない。
んなこたあ人間がグダグダ考えることじゃねえだろ。
CADに任せて、人は他に頭使えよって話。
297:774ワット発電中さん
17/01/30 01:16:30.15 zwYPFC25.net
未来の自分にも伝わらんと意味ないから手書きメモだろうがちゃんと書くよ
298:774ワット発電中さん
17/01/30 07:26:52.65 jsf3r1el.net
スイッチは回路図の左側に書く方が俺の趣味に合う
299:774ワット発電中さん
17/01/30 10:19:47.48 Qmzag/c6.net
>>239
お待たせしました。
#include <xc.h>
#define _XTAL_FREQ 64000000L
void interrupt low_priority ISR_L(void) {
if (PIR1bits.SSP1IF == 1) {__delay_us(2); SPI1RxData = SSP1BUF; PIR1bits.SSP1IF = 0; SPI1flag = 1; }
if (PIR3bits.SSP2IF == 1) {__delay_us(2); SPI2RxData = SSP2BUF; PIR3bits.SSP2IF = 0; SPI2flag = 1; }
if (INTCONbits.TMR0IF) {TMR0L = 131; TimerTickCount++; INTCONbits.TMR0IF = 0; }
}
結果、変わらずでした。
300:774ワット発電中さん
17/01/30 11:41:49.16 Qmzag/c6.net
>>241
お待たせしました。
START!
From Slave Data = 00h
です。
From Master Data =は表示されません。
配線を確認します。
301:natu
17/01/30 11:54:25.34 mXLhFY3c.net
>>284
デバイスの仕様書 15.2.5
When the SPI is used in Slave mode with
CKE set; the user must enable SSx pin
control.
CKE=1の(エラッタを回避)場合、SSpinをmust enableしなさい。じゃないかな
302:774ワット発電中さん
17/01/30 12:12:33.09 lh73Fqz9.net
導通か非導通かはCADに任せろキリッ
303:774ワット発電中さん
17/01/30 12:34:33.82 nWK7cHDB.net
>>285
CKE=0 にして
>>284の様に__delay_us(2);を追加してみるのはどう?
304:774ワット発電中さん
17/01/30 13:04:45.25 Qmzag/c6.net
>>286
SS2(RB0)を有効にしてGNDに落としましたが変化なし。
マスターのSS1(RA5)も有効にしてGNDに落としましたが変化なし。
TRISBbits.RB0 = 1;
ANSELBbits.ANSB0 = 0;
TRISAbits.RA5 = 1;
ANSELAbits.ANSA5 = 0;
305:774ワット発電中さん
17/01/30 13:05:57.91 Qmzag/c6.net
>>288
やってみましたが、(SS1,SS2は元に戻しました)
START!
From Slave Data = 00h
で同じです。
306:774ワット発電中さん
17/01/30 13:42:21.52 QIYwOIdw.net
>>287
いまどき、CADも使ったことないのかw
307:774ワット発電中さん
17/01/30 13:49:41.19 lh73Fqz9.net
電気的に繋がっていなくても線が繋がって見えることがあるから
CADは繋がってることを明示するためにデフォルトで黒丸を付けてるだけ
接続するかしないかは人が考えて人がCADに指示するの
308:774ワット発電中さん
17/01/30 14:51:09.93 csKlnRVG.net
>>
309:ID:lh73Fqz9 お前が、何に噛みついてんのかよくわからない。 手書きでやってるから、T字に黒丸付けようかな、付けるのよそうかなって、 その都度つまらねえこと考えるんだろ? CADでやれば、デフォでそういう設定なら、勝手に全部付くだろって言ってるんだ。 十字だって、操作次第で明確に付くか付かないかのどちらか。 大事なのは、統一性と曖昧さの排除なの。
310:774ワット発電中さん
17/01/30 18:09:15.57 lh73Fqz9.net
>>293
何にも噛みついてないが?
CADのデフォ設定で接続する操作をすれば丸が付くのはわかったからwww
丸が大事なんだなw
もとの回路図みなよ、見た通り作ったら機能しないでしょ?
マトリックスを作る意図で書いたであろう回路図なのに、考えて書いたようには見えない
手書きでも電気CADでも注意して他人に伝わるように回路図書こうよって
311:774ワット発電中さん
17/01/30 18:10:04.01 lh73Fqz9.net
回路図書いた当人は何とも思ってないのがそれはそれで面白い
312:774ワット発電中さん
17/01/30 19:09:51.10 7weOBQC0.net
私のために争わないで
313:774ワット発電中さん
17/01/30 19:48:11.89 4BErzumo.net
質問者本人(>>226,254)も出てこないんだしもうやめようよ。
314:774ワット発電中さん
17/01/30 19:55:42.75 f2hS/pJk.net
>>296
>導通か非導通かはCADに任せろ
とか勘違いしてる奴を、放置できんだろうがっw
315:774ワット発電中さん
17/01/30 20:02:11.70 QgsFPHjm.net
CADで黒丸有り無しは意味が違うんだから区別しろよ
最低限必要なことに頭使えよ、馬鹿どもw
316:774ワット発電中さん
17/01/30 20:13:45.71 L5/ewG0U.net
>>299
どう違うの?
教えて、大先生!
317:774ワット発電中さん
17/01/30 20:15:16.05 XhoesfIt.net
>>ID:Qmzag/c6
が本人だろ。
318:774ワット発電中さん
17/01/30 20:28:48.70 xeElx1V2.net
こんどは他人の回路図に噛みついてやがる。
手書きなんかしてるから黒丸を統一できないんだろ?
CADも使ったことない馬鹿は知らないだろうが、勝手に接続されるからCADに任せとけばいいんだ。
319:774ワット発電中さん
17/01/30 20:34:41.68 Qmzag/c6.net
>>301
私は黒丸とは違いますが?
320:774ワット発電中さん
17/01/30 20:35:24.98 7weOBQC0.net
自動配線もシミュレータも通らないし
アホは放置してたら良い
321:774ワット発電中さん
17/01/30 20:37:59.56 4BErzumo.net
>>301
その人は別な質問者だよ >>128から始まってるMSSPのSPI通信の話
322:774ワット発電中さん
17/01/30 20:38:44.52 4BErzumo.net
>>278,281,291,293,299,302
お前がおかしいのはわかったから黙っててくれ
323:774ワット発電中さん
17/01/30 20:42:42.66 Qmzag/c6.net
>>305
解説ありがとうございます。
初めてのPICで初めてのSPIなんでご迷惑をお掛けしております。
324:774ワット発電中さん
17/01/30 21:44:03.69 +x1Fx9sT.net
>>298
真面目か!
325:natu
17/01/30 21:53:58.18 TrnVOvbI.net
>>289
MSSP1と2との入替は、どうなりました?
MSSP2をマスターにしてSDO2とSDI2とを繋いでロールバックしてみたらどうなるかな
SSPENは、設定替えの時に一旦クリアして設定変更終了後にセットすると思っていたんだけど、
当方で動作させてみたPIC16F1829のMSSPだとSSPENセットのままで変更替え出来た…
PIC18F46Jの場合は、最後にセットしなくて良いんだろうか。どうなんだろう?
326:774ワット発電中さん
17/01/31 04:42:21.59 ZIqHsoBv.net
>>309
すみません。
入れ替え、今日試します。
327:774ワット発電中さん
17/01/31 08:20:20.29 pxOh6k1N.net
>>310
配線したボードの写真をどっかにアップしてみて。
328:774ワット発電中さん
17/01/31 09:46:42.56 ZIqHsoBv.net
>>311
これです。
URLリンク(i.imgur.com)
秋月のPIC基板にICソケットの一部を使ってブレッドボード風に配線しています。
配線はジュンフロン線です。
電源はミニUS
329:Bを使ってます。 これからMSSP1とMSSP2の入れ替え作業を始めます。
330:774ワット発電中さん
17/01/31 09:54:59.67 Fbg0EZmU.net
>>242 は試したの?
331:774ワット発電中さん
17/01/31 10:20:43.94 ZIqHsoBv.net
>>309
配線はそのままです。結果は次レスにします。
#include <pic18f46k22.h>
#include <stdio.h>
#include <xc.h>
#define _XTAL_FREQ 64000000L
#pragma config FOSC = INTIO67
#pragma config PLLCFG = OFF
#pragma config PRICLKEN = OFF
#pragma config FCMEN = OFF
#pragma config IESO = ON
unsigned char SPI1RxData, SPI2RxData;
volatile int SPI1flag = 0, SPI2flag = 0;
volatile long TimerTickCount = 0L;
void putch(unsigned char data) { while ((PIR3 & 0x10) == 0) ; TXREG2 = data; }
void interrupt low_priority ISR_L(void) {
if (PIR1bits.SSP1IF == 1) {__delay_us(2); SPI1RxData = SSP1BUF; PIR1bits.SSP1IF = 0; SPI1flag = 1; }
if (PIR3bits.SSP2IF == 1) {__delay_us(2); SPI2RxData = SSP2BUF; PIR3bits.SSP2IF = 0; SPI2flag = 1; }
if (INTCONbits.TMR0IF) {TMR0L = 131; TimerTickCount++; INTCONbits.TMR0IF = 0; }
}
void main(void) {
char data;
/* MSSP1=SLAVE, MSSP2=MASTER */
TRISA = TRISB = TRISC = TRISD = TRISE = 0;
OSCCON = 0x70; OSCTUNEbits.PLLEN = 1;
RCONbits.IPEN = INTCONbits.GIEH = INTCONbits.GIEL = 1;
PORTDbits.RD6 = 1;
TXSTA2 = 0x04 | 0x20; RCSTA2 = 0x80 | 0x10; BAUDCON2 = 0x08;
SPBRG2 = (unsigned char)(((64000000L / 4L) / 115200L) - 1L);
SPBRGH2 = (unsigned char)((((64000000L / 4L) / 115200L) - 1L) >> 8);
PIE3bits.RC2IE = PIE3bits.TX2IE = 0;
TRISCbits.RC3 = 1; ANSELCbits.ANSC3 = 0; TRISCbits.RC4 = 1;
ANSELCbits.ANSC4 = TRISCbits.RC5 = SSP1STATbits.SMP = 0;
SSP1STATbits.CKE = 1; SSP1CON1bits.WCOL = SSP1CON1bits.SSPOV = 0;
SSP1CON1bits.SSPEN = SSP1CON1bits.CKP = 1; SSP1CON1bits.SSPM = 0b0101;
PIR1bits.SSP1IF = IPR1bits.SSP1IP = 0; PIE1bits.SSP1IE = 1; data = SSP1BUF;
TRISDbits.RD0 = 0; TRISDbits.RD1 = 1;
ANSELDbits.ANSD1 = TRISDbits.RD4 = SSP2STATbits.SMP = 0;
SSP2STATbits.CKE = 1; SSP2CON1bits.WCOL = SSP2CON1bits.SSPOV = 0;
SSP2CON1bits.SSPEN = SSP2CON1bits.CKP = 1; SSP2CON1bits.SSPM = 0b0010; // FOSC/64 = 1MHz
PIR3bits.SSP2IF = IPR3bits.SSP2IP = 0; PIE3bits.SSP2IE = 1; data = SSP2BUF;
INTCON2bits.TMR0IP = 0; T0CONbits.T08BIT = 1; T0CONbits.PSA = 0;
T0CONbits.T0PS = 6; T0CONbits.T0CS = 0; TMR0L = 131; INTCONbits.TMR0IE = T0CONbits.TMR0ON = 1;
while (TimerTickCount < 1000L) ; printf("START!\r\n");
for (int i = 0 ; i < 10 ; i++) {
SPI1flag = SPI2flag = 0;
SSP1BUF = 0x12; // スレーブデータセット
SSP2BUF = 0x34; // マスターデータセット
while (1) {
if (SPI1flag == 1) {printf("From Master Data = %02Xh\r\n", SPI1RxData); SPI1flag = 0; break; }
}
while (1) {
if (SPI2flag == 1) {printf("From Slave Data = %02Xh\r\n", SPI2RxData); SPI2flag = 0; break; }
}
}
while (TimerTickCount != 0L);
}
332:774ワット発電中さん
17/01/31 10:23:58.43 ZIqHsoBv.net
>>314
何故か変な結果になってしまった???
START!
From Master Data = 1Ah
From Slave Data = 00h
上記2行が続く(繰り返しの文章書くとアボーンされるので)
333:774ワット発電中さん
17/01/31 10:33:41.41 ZIqHsoBv.net
>>313
PIC18F46K22は1個しかないので、これでやってます。
現状(上のソース)でMSSP1のSDIとMSSP2のSDIを両方GNDに接続した結果です。
START!
From Master Data = 00h
From Slave Data = 00h
上記2行が続きます。
次にMSSP1のSDIとMSSP2のSDIを両方VDDに接続した結果です。
From Master Data = 7Fh
From Slave Data = 00h
From Master Data = FFh
From Slave Data = 00h
上記2行が続きます。
最初だけ7Fhがあります。
どうもMSSP1に受信できていないようです。
334:774ワット発電中さん
17/01/31 12:14:04.83 yMPyw2TD.net
SCK、SDIはPORT入力でも見えると思うので送受信中のスレーブ側のPORT
(MSSP1の場合PORTC、MSSP2の場合PORTD)を取り込んでみては?
//お膳立て
int i;
RCbuf[100];
unsigned char *p;
p = RCbuf;
SSP2BUF = 0x34;
*p++ = PORTC; // ←これを32~64個ぐらい並べる
…
*p++ = PORTC; //
while (1) { if (SPI1flag == …
// 最後に取り込んだPORT内容を表示
for (i = 0; i < 32; i++) { printf("%02X\r\n", RCbuf[i]); }