暇つぶし2chat DENKI
- 暇つぶし2ch100: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]); }

335:774ワット発電中さん
17/01/31 12:19:34.31 yMPyw2TD.net
ああ
unsigned char RCbuf[100];

分かるとは思うけど

336:774ワット発電中さん
17/01/31 12:39:04.74 ZIqHsoBv.net
>>317
レスありがとう。
マスターとスレーブのSDIとSDOでリングにしてやってみました。
MSSP1のSDIのRC4はオール0で
MSSP2のSDIのRD1は先頭からの8バイトに1が出ていました。
0
0
0
1
1
1
0
1
0
以下、オール0です。
RC4は入力に設定してるけど何でかなぁ。

337:774ワット発電中さん
17/01/31 12:45:09.87 zmveOgoq.net
>>242 の最初、ポートが生きてるかどうかを試せって

338:774ワット発電中さん
17/01/31 12:55:16.67 pxOh6k1N.net
>>312
画像どうも。
(1) 電源はUSB端子から?
5V確認。
(2) 過去に、電源逆接続してマイコンが加熱したとか、
入力ポートを間違えて出力にしていたとか
過電圧加えてしまったとかの
こころあたりはある?
(3) ルーペか拡大鏡を使ってマイコン端子のハンダ付けが浮いていないかどうか
確認。
怪しい場合はSDI1端子にハンダをあてて確実にする。

339:774ワット発電中さん
17/01/31 13:03:06.09 ZIqHsoBv.net
>>320
T0CONbits.T0PS = 6; T0CONbits.T0CS = 0; TMR0L = 131; INTCONbits.TMR0IE = T0CONbits.TMR0ON = 1;
の次に以下を追加して入力状態を見ました。
while (1) {
printf("%02X\r\n", PORTCbits.RC4) ;
}
RC4をGNDへ落ちスト00の連続
VDDに繋ぐと01の連続
指で摘むと00と01がランダムに出ました。
入力生きてそう。

340:774ワット発電中さん
17/01/31 13:04:17.77 ZIqHsoBv.net
>>322
修正
RC4をGNDへ落とすと00の連続

341:774ワット発電中さん
17/01/31 13:07:56.94 ZIqHsoBv.net
>>321
(1)デジタルテスターで5.17Vでした。(HIOKI3801)
(2)たぶんないと思います。
(3)これから観察します。

342:774ワット発電中さん
17/01/31 14:23:30.20 EGgwqAXz.net
ずっと見るだけ見てるけど
初PIC 対 初PICをやめて、経験のあるuCOMやコンバータの類 対 初PICにしてみるとか
もうやってるか。横から口はさんですまんかった

343:774ワット発電中さん
17/01/31 20:11:48.77 pJOeA9Pv.net
今までの情報からだと受け側の問題でしょ
もう一個買ってきたら?
同じマイコン

344:774ワット発電中さん
17/01/31 21:03:02.27 ZIqHsoBv.net
もう1つ買います。
元々UARTを二個使ってプロトコル変換してる最中でデバッグ用にSPIで別のPICと通信して、そちらのPICのUARTからPCへだそうとしてました。
MSSP2は問題ないようなのでなんとかなります。
みなさんありがとうございました。

345:natu
17/01/31 21:21:31.73 de88MAfe.net
>>327
MSSP2のループバックは正常なの?

346:774ワット発電中さん
17/02/01 04:45:42.02 pLTlN+zH.net
>>328
入力できているので大丈夫と思いましたが、試します。
今日は出張なので明日試します。

347:774ワット発電中さん
17/02/03 23:08:11.43 tKu9mN1r.net
MPLAB X IDE v.2.35使ってるんですけど、最近新しいNew Project を作ったとき、
日本語文字が文字化けするようになりました
昔作ったのは今でも文字化けしないんですけど、なにが原因でしょうか

348:774ワット発電中さん
17/02/04 07:36:23.29 N38CsVss.net
新しいNewProject

349:774ワット発電中さん
17/02/04 18:04:33.20 kauKgC97.net
IT技術的な?

350:774ワット発電中さん
17/02/04 19:29:05.41 gD6yA6Gz.net
頭痛が痛い

351:774ワット発電中さん
17/02/04 23:56:12.53 a2tfOdnw.net
>>331
そこはいいんでないの
どう書けばよかった?

352:774ワット発電中さん
17/02/05 00:21:32.12 HzVMGnHL.net
>>334
最近New Project作ったとき、
または
最近新しいProject作ったとき、

353:774ワット発電中さん
17/02/05 00:48:35.23 9vg449PK.net
>>335
なるほど
しかし、最近も新しいも同じでないの
新しいnew yorkを作る, これおかしいかしら?

354:774ワット発電中さん
17/02/05 01:16:00.70 3fwK48RA.net
>>330
デフォルトの文字コードの違い

355:774ワット発電中さん
17/02/05 01:24:11.69 9vg449PK.net
>>333
新しい新橋をつくる、はどうかしら?

356:774ワット発電中さん
17/02/05 09:30:03.60 HzVMGnHL.net
>>336
最近と新しいが同じ?すまんが言ってる意味がわからない
なんか話が斜め方向に行ってると思うが、新しいNew Yorkを作るは
"New York"が一つの固有名詞(地名)なので、問題ないんじゃないか?
>>330のNew Projectは"New Project"って名前のプロジェクトなの?
だったらいいんじゃね?
>>338
上の"New York"という地名の場合と同じ

357:774ワット発電中さん
17/02/05 10:36:06.43 TnMc9YCS.net
PIC32MXで使われてるMIPSは大学の講義で使われてることが多いようだな
MIPSの生みの親の現スタンフォード大学の学長が書いた有名な本が教科書で使われてたりするようだ

358:774ワット発電中さん
17/02/05 14:26:19.15 GUyXfJNE.net
だから何?

359:774ワット発電中さん
17/02/05 14:28:17.04 f8ezuJck.net
PIC32MXはエラッタがひどすぎる
売るレベルじゃない

360:774ワット発電中さん
17/02/05 14:57:21.30 aXwGdUOX.net
初めてのスレでする
話のレベルじゃない。

361:774ワット発電中さん
17/02/05 23:34:47.43 nP2DXCaI.net
傘が開かないbyブチクシ

362:natu
17/02/06 10:59:25.66 2zf3mYxH.net
>>329
もう諦めちゃったかな?
症状は、
>URLリンク(www.microchip.com)
これと同じだとするとMSSP1のマスターは諦めてMSSP2をマスター、MSSP1をスレーブにして
>168 の初期化部分をCKE=1、SS1を使用にしとけば行けないだろうか?
ANSELA = 0;
ANSELC = 0;
ANSELD = 0;
TRISCbits.RC3 = 1; // RC3: SCK1(IN)
TRISCbits.RC4 = 1; // RC4: SDI(IN)
TRISCbits.RC5 = 0; // RC5: SDO(OUT)
TRISAbits.RA5 = 1; // SS1(IN)
TRISDbits.RD0 = 0; // RD0: SCK2(OUT)
TRISDbits.RD1 = 1; // RD1: SDI(IN)
TRISDbits.RD4 = 0; // RD4: SDO(OUT)
TRISDbits.RD3 = 0; // CS_OUT(SS2)
LATDbits.LATD3 = 1; //CS_high
SSP1STATbits.SMP = 0;
SSP1STATbits.CKE = 1;
SSP1


363:CON1bits.WCOL = SSP1CON1bits.SSPOV = 0; SSP1CON1bits.SSPEN = SSP1CON1bits.CKP = 1; SSP1CON1bits.SSPM = 0b0100; //use SS1 PIR1bits.SSP1IF = 0; // 割り込みフラグクリア IPR1bits.SSP1IP = 0; // 低位割り込み設定 PIE1bits.SSP1IE = 1; // 割り込み許可 SSP2STATbits.SMP = 0; SSP2STATbits.CKE = 1; SSP2CON1bits.WCOL = SSP2CON1bits.SSPOV = 0; SSP2CON1bits.SSPEN = SSP2CON1bits.CKP = 1; SSP2CON1bits.SSPM = 0b0010; PIR3bits.SSP2IF = IPR3bits.SSP2IP = 0; PIE3bits.SSP2IE = 1; それぞれの送信部分で SPI1flag = SPI2flag = FALSE; SSP2BUF = 0x12; // スレーブデータセット LATDbits.LATD3 = 0; //select SSP1BUF = 0x34; // マスターデータセット 受信が完了したら LATDbits.LATD3 = 1; //deselct 取り敢えずSS2ピンをCSにしてます。



364:natu
17/02/06 11:40:55.52 2zf3mYxH.net
>>345
SSP1BUF = 0x12; // スレーブデータセット
LATDbits.LATD3 = 0; //select
SSP2BUF = 0x34; // マスターデータセット
SSP1と2が反対でした。

365:774ワット発電中さん
17/02/06 20:56:38.18 wSTZJXEm.net
>>345
諦めかかっていましたが、またトライします。
実は、第3の通信として、高位割り込みタイマーでソフトウェアUARTを組んで9600bpsはできたのですが、
プロトコル変換の元の通信が半二重で送受信の切り替えが230.4Kbpsで1char時間という厳しい条件のため
ソフトウェアUARTは不安定でSPIに戻ります。
PIC18F46K22の秋月基板も揃えたのでMSSP2のみでなんとかやれそうです。

366:774ワット発電中さん
17/02/06 22:05:52.51 5KyPy0UC.net
>>343
初めてのPICスレであって、初めてのマイコンスレじゃないよ

367:774ワット発電中さん
17/02/07 01:56:18.87 N90MXYAT.net
>>347
間の流れ全然追いかけてないんでピント外れだったらゴメンなんだけど
そもそもMSSPって送信バッファ/受信バッファなんてのは無くてバッファ一つだけだよね
送信モードで使う時はバッファの中身をシフトレジスタに転送して送信し、
受信モードで使う時はシフトレジスタがいっぱいになったらバッファに転送するという形
だから両方のバッファに送信しようとするデータをセットして、ほにゃらら通信が終わったら
お互い相手のデータが受信データとして入ってるという想定がそもそも間違ってるんじゃない?
MSSP1が送信モードで送信されたらSSP1BUFはクリアされて0
MSSP2は受信モードで動作して1から送信されたデータが入ってSSP2BUFはMSSP1から送られた0x34
とまっとうな動作をしてるように見えるが・・・

368:774ワット発電中さん
17/02/07 04:40:01.19 oON0x8Bs.net
>>349
MSSP2のSDOがMSSP1のSDIに接続されてます。

369:774ワット発電中さん
17/02/07 14:49:09.09 HalFdehS.net
これ、秋月で扱わないのかな
Microchip マイコン PIC32MM0064GPL028-I/SP
32ビット RISC PIC32, 25MHz, 64 kB フラッシュ, 8 kB RAM, 28-Pin SPDIP
URLリンク(jp.rs-online.com)
¥262.20
単価: 購入単位は5個

370:774ワット発電中さん
17/02/07 22:39:05.90 pD4wp96M.net
>>351
ここで要望だせば?
URLリンク(akizukidenshi.com)

371:774ワット発電中さん
17/02/07 23:05:52.46 Fkx50yed.net
まずはその部品を使った作例を設計してヒットさせよう
同じものを作りたい人がたくさん要望出すから扱いを始めるはず

372:774ワット発電中さん
17/02/08 06:48:58.03 nTDOkhkN.net
なんとかduino にしかならない予感。

373:774ワット発電中さん
17/02/08 08:54:08.41 Mu7/qWTX.net
SPDIPが Shrink PDIP に見えてしまった…
Skinnyなのね。

374:774ワット発電中さん
17/02/08 10:35:04.41 JGkuAJ5Y.net
25MHz(25MIPS)のMIPS32って32bit以上の演算を多用しないと、32MHz(16MIPS)のPIC24Fより
遅そうなイメージなんだけど。実際はどうなんだろ?

375:774ワット発電中さん
17/02/08 11:22:56.40 LHlfoZUo.net
そんな事はない
MIPSの方がずっと速い
1クロ


376:ックで1命令実行出来るし、1命令の処理もPIC24より濃い



377:774ワット発電中さん
17/02/08 13:16:09.83 aF6d60Ux.net
ついつい PIC24F を基準に考えてしまう。
PIC24Fは、良く出来てると思うし。

378:774ワット発電中さん
17/02/08 17:11:10.03 JGkuAJ5Y.net
>>357
>1命令の処理もPIC24より濃い
例えばどんな命令がPIC24より濃いの?
PIC24がPUSH 1命令でレジスタをスタックに積めるのに
MIPS32だと(sp)にストアして、sp動かしての2命令になる
PIC24はBTSC/BTSSとBRAでピンの状態で分岐できるけど
MIPS32って(1)LW レジスタにロード(2)ANDI/ORIして(3)BEQ/BNEで分岐だけど(4)その前に遅延スロット たいていNOP
MIPSはRISCだから命令がショボいのはしょうがないんだけどさ、フラグすらないし(C,Zとか)

379:774ワット発電中さん
17/02/08 19:21:56.09 Y0/XOGAa.net
RISCの場合はスタックにpush、popするという操作より
あらかじめSPを退避に使うメモリ分だけ引き算してまとめてスタックのメモリを確保して
レジスタ間接でdispを指定してロードストアする方が効率がいい場合が多い
レジスタ数も多いからね

380:774ワット発電中さん
17/02/08 19:36:19.73 Y0/XOGAa.net
全然違う話だがRISCには64bitのARMのように
16バイト(64bitレジスタ2個)単位でしかスタックに積めないCPUもある

381:774ワット発電中さん
17/02/08 23:11:34.94 sArdp7VU.net
>>359
普通に16bit CPUと32bit CPUの格の差がある
MIPSの弱点はRISCなので演算は基本レジスタ同士なくらい
32bitなのでメモリのコピーやクリアや比較も当然速い (1命令で32bit分出来るので)
レジスタ数が多いので、関数コール時もレジスタ経由でコールしやすいし、
一時変数もレジスタ上に保持しやすい
結果ロードやストアの回数が減る
PIC24は弱点が非常に多い
直接メモリ上の値を使って演算出来るメリットも、
アドレッシングの即値オフセットがMOVくらいしか使えないので、
結局MOVを使う場面が多い
即値のビット数も少なく16bitでADDやANDも出来ない
演算と同時のポインタ移動も実はあまり恩恵が無い
即値オフセットを指定できないので、結果レジスタをたくさん使ってしまう
ポインタ移動自体はループのアンロールで減らせるので、
クリティカルポイントはアンロールすればいい(コンパイラが勝手にやってくれたりする)
スタックへのプッシュポップは1回でまとめてポインタを移動する
ハーバードアーキテクチャでROMとRAMが別アドレス空間なのもマイナス
数値テーブルやswitchテーブルなどのテーブル参照に余分な命令が必要だし、
ROM上のデータは基本RAMにコピーしないと使えない
(データの位置でコードを分ける方法もあるにはあるが)
フラグ?
普通に自由にレジスタに結果を入れられた方が良いでしょ
その後の演算にも使えるし、高級言語との親和性も良いし
MIPSは比較&条件分岐が1命令だよ

382:774ワット発電中さん
17/02/09 04:37:30.62 EQQZP1lc.net
>>362
で、さ PIC24より濃い命令ってなんなの?

383:774ワット発電中さん
17/02/09 05:09:15.17 E32DEK8y.net
RISCはコンパイラが使わないような命令を排除して
極力ハードウェアを簡素化して高クロックで回せるようにして性能を上げるCPU
どんなに高度な命令を実装してても、C言語でプログラムを組むなら
コンパイラが使ってくれなければ意味がない
そういう発想
MIPSはRISCプロセッサの中で特にパイプライ


384:ンを乱さないことを一番考えられて作られたプロセッサ MIPSはMicroprocessor Without Interlocked Pipeline Stageの頭文字をとったもので 日本語に訳せばパイプライン・ステージがインタロックしないマイクロプロセッサの意味 分岐の遅延スロットは他のプロセッサでは抹殺してたものをMIPSでは使えるようにしてるだけで 余計に時間がかかってるわけではない ttp://www.cqpub.co.jp/interface/TechI/Vol39/app/mips_asm.pdf ここにMIPSの命令セットについてわかりやすく書かれてる



385:774ワット発電中さん
17/02/09 05:17:37.51 E32DEK8y.net
PIC32MMはmicroAptivコアだが
PIC32MXで使われてるM4Kコアは3万5000ゲートでゲート数はARMのCortex-M3とあまり変わらない
M4Kコアは高機能な16bitCPUと同等か下手をするとそれ以下のゲート数で済むほど単純なコア

386:774ワット発電中さん
17/02/09 05:55:16.51 E32DEK8y.net
PIC24とMIPSどちらが優れてるというより、好きな方を使うといい
MIPSの売りは何といっても32bit
Microchip自体がPIC32MMはPIC32MXとPIC24の間を埋める製品だと言ってるわけだし
URLリンク(ednjapan.com)

387:774ワット発電中さん
17/02/09 06:18:25.02 YFNjTnQP.net
>>362
PIC24はレジスタはRAM と同じ扱いだからな。

388:774ワット発電中さん
17/02/09 06:18:29.83 EQQZP1lc.net
>>364
その命令セットみても、どの辺が濃い命令なのかわからないんだけど?
というかRISCに濃い(複雑な)命令なんて無い。
比較分岐が1命令って言っても、出来るのってレジスタ同士が同じか違うかだけの判定でしょ?
==100とか>100の判定するなら、100をレジスタに入れてから判定・SLTIで結果をどこかのレジスタに入れてから判定
実質1命令で比較分岐出来るのってzeroレジスタとの比較で==0,!=0だけ
32bitのベタコピーやクリアはそりゃ速いだろうけど、だから最初に>>356 (32bit以上の演算を多用しないと)と書いてる
RISCのメリットって命令を単純化してパイプラインで並列に高速動作させる所なのに、>>351のPIC32MMの
max25MHz動作ってメリットを放棄してるとしか思えないんだよな。
まあ実際は性能当りの消費電力が少ないとか、dsPICと比較するとコアのチップ面積が小さいとかあるだろうけど

389:774ワット発電中さん
17/02/09 06:28:10.51 Sms3lQxs.net
理解する気が無いなら自分でベンチマーク作って比較してみれば

390:774ワット発電中さん
17/02/09 06:31:04.24 Sms3lQxs.net
ADCのビット数マニアだよね?

391:774ワット発電中さん
17/02/09 06:37:25.32 Sms3lQxs.net
パフォーマンス的には、全ての命令が2クロック以上ってだけで論外

392:774ワット発電中さん
17/02/09 07:37:57.18 EQQZP1lc.net
>>369
濃い命令の例を幾つか上げてくれるだけでいいんだけどな、わざわざ>>359にレスしたのだからさ
BEQとBNEは特定の条件でPIC24より濃いのはわかったから他ので頼むわ

393:774ワット発電中さん
17/02/09 07:39:43.99 TOW8DL3+.net
大昔の80系vs68系の対立を思い起こしたw
つまるところは適材適所なのに、なんと不毛なって感じ

394:774ワット発電中さん
17/02/09 07:39:58.92 Sms3lQxs.net
>>362に書いたけど
PIC24の分岐って4クロックもかかるのか

395:774ワット発電中さん
17/02/09 07:54:36.40 Sms3lQxs.net
>>359 みたいに例を出せって?
たくさんありすぎて
ていうか、>>359の例でも
PIC24は6クロック、MIPSはNOPを入れても4クロック, NOPじゃなきゃ3クロック

396:774ワット発電中さん
17/02/09 07:58:21.86 Sms3lQxs.net
さすがにmicroAptivとPIC24じゃ格が違いすぎる

397:774ワット発電中さん
17/02/09 10:47:21.26 MuYSdd4M.net
PIC24FのDeep-Sleep時の消費電流はMIPSやARMには真似できない
最低動作電圧も


398:低いし電池で使うならPIC24F



399:774ワット発電中さん
17/02/09 18:10:41.97 iytYk5b5.net
あれ????
5V駆動したかったんじゃないの????

400:774ワット発電中さん
17/02/09 23:22:17.05 lyM1mj6t.net
アーキテクチャ論争なんて犬も食わない
何を実現して何を得るかの方が大事

401:774ワット発電中さん
17/02/10 06:19:34.75 goC29ypH.net
論争とか言うレベルじゃ無いだろ
PIC24信者がアホ過ぎて

402:774ワット発電中さん
17/02/10 08:40:13.93 HoABVrHI.net
論争していいのはアーキテクチャ考えた人だけ

403:774ワット発電中さん
17/02/10 10:20:08.72 9N8q2mNL.net
>>375
クロック数の話では無く、1命令の内容の話のはずだけど?
じゃあさ 下のPIC24Fの命令をMIPSで置き換えてくれないかな、できればPIC32の場合とMIPSの場合で
(1) BTG LATA,#0
(2) MOV #0xFFF0,W0
 AND LATB

404:774ワット発電中さん
17/02/10 12:07:47.83 Fhw3aJzh.net
>できればPIC32の場合とMIPSの場合で
ここ、笑うところ?

405:774ワット発電中さん
17/02/10 13:30:33.71 Bf0+wPOS.net
>>382
こういうコード書くヤツと一緒に仕事したくない

406:774ワット発電中さん
17/02/10 18:17:11.72 goC29ypH.net
ポートで高速通信でもするの?www

407:774ワット発電中さん
17/02/10 19:24:26.96 8qkjucvx.net
超初心者のためのスレ
という感じがしないのはオレだけじゃないと思う。

408:774ワット発電中さん
17/02/10 22:09:03.78 goC29ypH.net
>>382
PIC32だとPORTAINV, PORTBCLRが使えるね
単体の命令だけでいえば、
PIC32はMADD,MADDU,MSUB,MSUBU,CLO,CLZあたりが宣伝文句になってる
あとは普通に32bit命令が使えることだね
"32bit演算"じゃなくても普通に使うから
フラットメモリなのも強み
PIC24に無い物としては即値16bitの演算
PIC24だと普通に使えるのは5bit
アドレッシングモードだと、
PIC24はオフセット番地が使えるのがMOVのみ
唯一の強みとも思えるメモリを直接使った演算が使えるところが実は非常に限られている
構造体のメンバにアクセスしたりオート変数にアクセスするのに頻繁に使うのだが

409:774ワット発電中さん
17/02/10 22:26:33.09 goC29ypH.net
今のx86-64に比べたらMIPSなんかクソだけど
クロックごとに、256bit FMA2個、256bit 整数演算2個、256bitのメモリリードライトを同時にやっちゃう
クロックも3GHzとか
こんなコアが4個とか普通にのっちゃってる
数百円のマイコンと比べちゃいけないんだろうけど

410:774ワット発電中さん
17/02/10 22:29:45.52 goC29ypH.net
PICのボリュームゾーンは4クロックで8bit演算1個

411:774ワット発電中さん
17/02/10 22:41:22.48 1v28Z5il.net
AVR亡き後、内輪での争いが絶えんなw
常に敵が必要って馬鹿な連中だわ。

412:774ワット発電中さん
17/02/11 03:46:09.65 YbCTmQLx.net
クロック数無視して1命令で複雑な事できた方がエラいってんならCで書けば?

413:774ワット発電中さん
17/02/11 04:38:16.75 JK4DaRHz.net
>>390
PICのスレにはPIC32を敵視する書き込みがかなり多いが
Microchipが32bit製品を拡充するのをよく思ってない他の勢力の妨害のような気もする

414:774ワット発電中さん
17/02/11 05:12:19.29 SwSkx0KL.net
ここは、僕たちのような初心者が質問するスレです。
技術力のある皆さんなら、こなところで雑談しないでください。
PICでアセンブラをやるような高度技術のみなさんに、
最適なスレ見つけました↓
スレリンク(denki板)l50
移動をお願いします。

415:774ワット発電中さん
17/02/11 05:16:14.85 JK4DaRHz.net
少し古い記事だがMicrochipの16bit製品は好調のようだが
16bitマイコン市場は�


416:k小傾向のようだ 16bitマイコンは32bitマイコンへの移行が進んでるのか 2014年のマイコン市場は回復基調に、8ビットマイコンは絶好調 http://eetimes.jp/ee/articles/1408/22/news056_2.html ただし、Tyagi氏によると、低価格かつ簡易なソフトウェアを好む設計者も多く、 少ないピン数とメモリ容量を持つ8ビットマイコンへのニーズは高いという。 「16ビットマイコン市場が縮小している中、8ビットマイコン市場は安定している。 安価かつソフトウェアもシンプルなのが魅力的なようだ」(同氏)。 Microchip社、8ビットマイクロコントローラの 売り上げランキングで再びトップに http://news.infoseek.co.jp/article/dreamnews_0000111737/ 2014年、16ビットMCU市場で上位10社中最も急速な成長を遂げたMicrochip社は、 他の全サプライヤの2倍以上のペースで成長しました。 また、32ビットMCUでは42.3%の成長を達成し、 32ビットMCUサプライヤ トップ10入りを果たしました。



417:774ワット発電中さん
17/02/11 07:12:28.35 Jnv9nIOO.net
>>382
MIPSだとこんな感じか
(1)PIC24
BTG LATA,#0
(1)MIPS
lui v0,LATA>>16
lw v1,LATA&0xFFFF(v0)
xori v1,v1,1
lw v1,LATA&0xFFFF(v0)
(2)PIC24
MOV #0xFFF0,W0
AND LATB
(1)MIPS
lui v0,LATA>>16
lw v1,LATA&0xFFFF(v0)
andi v1,v1,0xfff0
lw v1,LATA&0xFFFF(v0)

418:774ワット発電中さん
17/02/11 07:50:13.98 Jnv9nIOO.net
あ、最後は両方とも sw v1,LATA&0xFFFF(v0) だ

419:774ワット発電中さん
17/02/11 07:51:02.73 4d8s8kqb.net
なんか色々と変じゃね?
割り込みがイヤだしCLRやINVを使おうよ
INVは複数ポートを同時にセットとリセットが出来る
同時であることが必要な時には使うかもね

420:774ワット発電中さん
17/02/11 08:23:35.88 GoyLqxcE.net
>>394
>16bitマイコン市場は縮小傾向のようだ
>16bitマイコンは32bitマイコンへの移行が進んでるのか
「ようだ」とか「のか」じゃないだろうなあ。
今、PIC以外の16ビットのマイコンを作ってるメーカーで、ARMをやっていないところってどれぐらいあるんだろう。(あるけどね)
ARMもやってたら、保守以外に継続してる理由が乏しいのではない?

421:774ワット発電中さん
17/02/11 20:31:04.60 JK4DaRHz.net
32bitMCUはARMが強いがライバルは必要だ
32bitMCUがARMばかりになったらARMはライセンス料を引き上げてくるかもしれない
インテルだって286までは他社に製造する権利を与えてたし互換CPUもいくつかあった
386から態度を一変させてセカンドソースを廃止
互換CPUメーカーに訴訟を起こした
NECなどは和解して互換CPUを作らないことを約束
AMDやCyrixなど極一部のメーカーだけが裁判で勝ち取って互換CPUを作れる状態にはなったけどね
ARMだってどうなるかわからない

422:774ワット発電中さん
17/02/11 21:26:20.22 GoyLqxcE.net
>>399
それはつまり
「現在は広くライセンスしているが、ライセンスをしないことが商売上有利だとAMR社が判断したら、ライセンスされなくなる。
そうなると世の中パニックだ」
ということですかね。
内情は知らんのですが、ARM CPUを出している大手メーカーは無期限の設計・製造ライセンスを取得しているんじゃないでしょうか。
特に組み込み用途ならパソコンのCPUと違って息が長いですし、明日から新しいARMのライセンス供与がなくなっても、今のARM CPUを
作りつつ、他のものへの乗り換えを考えるのでしょうね。
我々が危惧する程度のことですし、メーカーは手を打っていると思います。

423:774ワット発電中さん
17/02/11 21:26:42.20 pNXdlbAU.net
無�


424:�通信はBLEで低消費を追及 マイコンは8bitPICで低消費を追及 じつに素晴らしい組み合わせだ



425:774ワット発電中さん
17/02/11 21:28:47.66 GoyLqxcE.net
Bluetoothモジュールの中のCPUの方が豪華だったりして。

426:774ワット発電中さん
17/02/11 21:56:08.66 hkaYfxCP.net
ARMの実行性能が高くとも1PCBoardのようにクラッシュして簡単にストレージ
破壊して停止するようなモノでは製品にならないだろう。
アンドロイドのような代物ではモーター回らないこともある。
だから初心者は深く考えず、初めからPIC使っていればいい。
マーケティングや市場とか命令セット比較は考えなくともいい。作ることに集中しろ。
以上。

427:774ワット発電中さん
17/02/11 22:24:02.45 8xqA0AD+.net
もういいよ。
君らが博学で経験も豊富なことは、よくわかったから。
技術力のある皆さんは、こんなところで雑談しないで
あっち↓行ってください。
スレリンク(denki板)l50
移動してください。
僕たちのような初心者が質問できないよ。

428:774ワット発電中さん
17/02/11 22:57:07.56 QdTs6h/9.net
>>399
ARM が有利なのはLinux 動くレベルまでだな。
リアルタイムOS レベル以下になったら、周辺機能の互換性無くなるから、ARM にこだわる必要ない。

429:774ワット発電中さん
17/02/12 00:05:32.03 icfOL1n0.net
プロ初心者はさっさと質問しろよ


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