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
プロ初心者はさっさと質問しろよ
430:774ワット発電中さん
17/02/12 00:43:37.78 kLaQRIS/.net
おーし、質問するぞ
pic は時々プラスとマイナス間違えて繋ぐことあるけど、そうすると発熱するけど、なんでなの
反応なしなら納得なんだけど、なんであんなに発熱するの
431:774ワット発電中さん
17/02/12 01:18:55.52 cXYIzWzu.net
ここPIC初心者のスレなんで、電気電子初心者はどっか余所行って
432:774ワット発電中さん
17/02/12 01:22:05.88 pROQA1hj.net
マイコン初心者もどっか行ってね
433:774ワット発電中さん
17/02/12 03:08:14.58 ROVCW5Z5.net
URLリンク(blog.nshdot.com)
このサイトの回路で、導通の有無は検知できると思うんですが、
3Ω程度の区別が測定できるでしょうか?
何かプログラムで工夫していると思われますが、
それはどのような工夫ですか?
434:774ワット発電中さん
17/02/12 03:34:24.59 kLaQRIS/.net
>>408
なんでだよ、picの範疇だよ
435:774ワット発電中さん
17/02/12 07:20:07.07 dE5rcsfp.net
>>407
電源逆さしは、いろいろまずそうで、まずいからよくない、ぐらいにしか考えてませんでした。
とりあえず、PICに限らず、多くのC-MOS ICは、内部に
・GND側をアノード、信号側をカソードとしたダイオードと
・信号側をアノード、VCC側をカソードとしたダイオードが
たくさんあります。
GNDにプラス、VCCにマイナスをかけると、このダイオードに電流が流れまくりになりますね。
436:774ワット発電中さん
17/02/12 08:24:10.13 9zKD5Isg.net
>>410
測定対象と10kΩで分圧してAD変換してるから、
電圧がADC(8bit)の1LSB未満になるような抵抗は変換値が0になってしまう
ただ3Ωがその下限なのかはわかんないね
抵抗の測定方法はアプリケーションノートにいくつかあるよ
437:410
17/02/12 14:05:33.58 hiezMOyQ.net
>>413
ありがとうございます。
見たところそうですよね。
8bitのAD変換なので、
3÷10003×256=0.08
となって、40Ω程度ないと判定不可能、という理解でいいですよね?
でも、
>抵抗値が低いほど周期が短くなり、約3Ω以下で連続音になります。
と書いてあるので、どうやってんのかなと思いまして…。
438:774ワット発電中さん
17/02/12 14:41:33.93 icfOL1n0.net
現物合わせで12
439:Ωを直列に入れて約3Ω以下でA/D変換値が ゼロになるようにしたのでは?
440:774ワット発電中さん
17/02/12 14:41:53.70 cXYIzWzu.net
>>414
10F222のADは8bitでリファレンスは常にVDDだからVDDとVSSの間を256分割までできる
VDD/GP0間に10kΩが入っているので、この1/255、約39Ωより少なければ1/256未満になる
で、入力回路に12Ωが入ってるので、測定対象としては約27Ω
となると3Ωって何やねん?って話になる
VDDの1/256の電圧がGP0に印加されれば1になるのは確かなんだけど、じゃあもっと低い電圧だと
どこまでが0でどこから1になる?
もちろん1/256よりも1μVでも下回ったら0になるなんて事はない。
そんな高分解能持ってるなら8bitなんて言ってない
一般的には、1/2LSbを設計の基準とする
0と1とが切り替わるのは1/2LSb。つまりちょうど真ん中で切り替わると考える
もちろん本当にこの値で変わる訳じゃないけど、まあそのあたりより上なら1になって下なら0だろうなと考える
で、件の回路に戻って考えると、8bitADの1/256の更に半分1/512を下回れば確実に0になるだろうと考えられる
とすると上記同様に考えて10kΩの1/511、19.5Ω以下
入力回路の12Ωを引くと7.5Ω・・・って3Ωじゃないじゃん
何で3という数字が出てきたのかは謎
作者に聞いてください
(作者に聞くぐらいならここで聞いてねーよという突っ込み待ち)
441:774ワット発電中さん
17/02/12 15:21:04.25 3cDueaFQ.net
作者はシロート
442:774ワット発電中さん
17/02/12 15:21:44.38 dE5rcsfp.net
作者に尋ねずにあれこれ想像するのも楽しいかな。作者にはちょっと悪い気もするけれど。
>>415が当たっているような気がします。
3Ωに12Ωが下駄ばきされているので、A/Dの入り口なら、3×15÷(10000+15)=4.5mV。
一方、A/Dコンバータは、理想的には、11.7mV(3V/256) が A/D変換値 0 と 1 の境目だけど、
データシートのA/Dコンバータの項目を見たら、オフセットエラーが±1.5LSBとあり、±17.6mVの誤差を持つことになります。
なので、作者が使ったマイコンでは、11.7mVよりもゼロVに近い方に、0 と 1 の境目があったのかもしれないですね。
443:414
17/02/12 15:23:50.85 Ej7Q05v1.net
>>413
アプリケーションノートですが、探してみてもなかなか行き当たりません。
よろしければ、リンクなど張っていただけると助かります。
>>416
設計上に無理がある、という自分の理解を確認したいだけなので。
となると、現実問題として、低抵抗値の測定というのはどうやるんでしょう?
ヒントや関連リンクなど、教えてください。
444:774ワット発電中さん
17/02/12 15:24:01.98 dE5rcsfp.net
>>417
てめえ何様だ。技術的評価もせずに罵倒だけするんじゃねえ。糞野郎め。
445:774ワット発電中さん
17/02/12 15:26:53.41 KUn/4DIy.net
URLリンク(www.youtube.com)
446:774ワット発電中さん
17/02/12 15:27:02.36 3cDueaFQ.net
本人乙w
447:774ワット発電中さん
17/02/12 15:28:57.63 dE5rcsfp.net
>>419
もともとこのアプリケーションでは、3Ω±〇%みたいな精度は目指していないはずですが、そういう測定を目指しておられますか?
だとしたら、プローブの接触抵抗も問題になります。
ケルビン接続 低抵抗
あたりで検索してみてください。
448:774ワット発電中さん
17/02/12 15:39:23.80 lYl+eNdf.net
でも、抵抗値によって音の周期が変化するって書いてる。
ま、連続的にとは書いてないが…。
449:774ワット発電中さん
17/02/12 16:30:52.11 cXYIzWzu.net
>>419 このPICで、この回路で3Ωを測定するというのは設計上無理があるというのは、その通りの理解で良いです 低抵抗の測定がしたい場合、単純な話で言えば12bitADなら更に1/16まで測定できますから 2Ω程度の精度で測定できます 他のやりかたとしては、測定対象にもっと電流流して構わなければ10kΩを小さいものに変えるという手もあります たとえば1kΩにすれば4Ω、500Ωにすれば2Ω程度まで測定できます。
451:774ワット発電中さん
17/02/13 01:38:39.19 etYtCyuj.net
ノイズがあるから1と0の並びが変化して音色の変化として感じられるのだ
452:774ワット発電中さん
17/02/13 16:27:10.50 a6lpx5Np.net
PIC24FJ64GA002でRTCCを使おうとMPLABのデバッガで試してますが上手くいきません
RTCVALを読み書きするとRTCPTRがデクリメントされるという事ですが、どうもデクリメントされていないようです
なぜでしょう?
453:774ワット発電中さん
17/02/13 20:30:41.95 f1hIVfGQ.net
PIC24なんか使うから
454:774ワット発電中さん
17/02/14 02:37:53.96 WgDNmqOk.net
>>419
普通は増幅してからADCに入れるんだよ
455:774ワット発電中さん
17/02/14 02:49:44.34 WgDNmqOk.net
あ、電流検出じゃなくて抵抗値を測りたいのか
素直にテスターを買えば
456:774ワット発電中さん
17/02/14 02:58:53.80 WgDNmqOk.net
>>401
何をするのか知らないけど、超低消費電力ってのはマイコンが起きてる時間を減らさないといけないわけで
8bit PICみたいな遅いマイコンが有利なのって、ほとんど何も処理しない、ただのログ取りみたいな用途だけじゃ?
457:774ワット発電中さん
17/02/14 03:10:03.65 WgDNmqOk.net
BLEと8bit PICの製品て実際存在するの?
458:774ワット発電中さん
17/02/14 03:20:31.99 Y74/FhuJ.net
>>ID:WgDNmqOk
落ち着け、大丈夫だからw
459:774ワット発電中さん
17/02/14 03:25:41.35 WgDNmqOk.net
>>433
>>432
460:774ワット発電中さん
17/02/14 05:37:19.85 0BSqSvSS.net
URLリンク(youtu.be)
URLリンク(youtu.be)
461:774ワット発電中さん
17/02/14 07:00:24.64 mT47Xkdi.net
BLEチップには大抵ARM Cortex M0載ってるからPIC使うと無駄になるな
462:774ワット発電中さん
17/02/14 15:07:21.66 668cEdut.net
Cortex-M0、M0+は同じARMではあるけどCortex-M3、M4、M7とは別物って感じ
サポートしてる命令が少なすぎ
数個の命令を除くと16bit固定長のThumbそのもの
ほとんどの演算命令ではレジスタが8個しか使えない
463:774ワット発電中さん
17/02/14 15:21:25.45 668cEdut.net
ちなみにThumbは16bit固定長の命令セット
Thumb-2は16bit、32bit混在の命令セット
名前が似てるが持ってる機能の豊富さが全く違う
464:774ワット発電中さん
17/02/14 17:35:46.45 IXlqYgB6.net
で?
465:774ワット発電中さん
17/02/14 17:40:48.56 IXlqYgB6.net
Coretex-M0やM0+の対抗馬はMIPSのMicroAptivあたり
ルネサスが16bitのRL78でBLE用を出してるけど、これもPICの16bitより上
PICの8bitじゃ力不足
466:774ワット発電中さん
17/02/14 17:41:37.23 IXlqYgB6.net
多少はCPUの処理能力を把握しておいた方が良いかと
467:774ワット発電中さん
17/02/14 18:30:34.43 668cEdut.net
>>440
microMIPSが使えるmicroAptivはCortex-M4対抗らしいけどな
PIC32MXで使われてるM4KコアでもMIPS16eという16bit長の命令が使える
しかもMIPS16eの特徴は切り替え不要でMIPS32命令と一緒に使える利点がある
URLリンク(pc.watch.impress.co.jp)
microAptiv
M14Kコアの後継となるMCU向けのmicroAptivは、
MCU向けとしつつも実際にはMCU向けとMPU向けの両方のラインナップがあり、
ターゲットとしてはCortex-M4からCortex-A5あたりまでということになる。
命令セットとしてはMIPS32に加えてmicroMIPSをカバーしており、
またDSP ASEのほかにeMDU(enhanced Multiply/Divide Unit)を追加したことでさらに性能を引き上げた、
というのが大きな特徴である(写真31)。
468:774ワット発電中さん
17/02/14 18:31:37.87 668cEdut.net
URLリンク(ednjapan.com)
MIPS microAptivコアは、microMIPS命令セットアーキテクチャを採用している。
マイクロチップでMCU32開発およびマーケティング部門のディレクタを務めるRod Drake氏は、
「16ビットと32ビットの命令セットを組み合わせて用いることで、
ARMアーキテクチャベースの製品に比べてコード密度を約30%も改善している」と話す。
また、159個のDSP命令を追加している。
これによって、DSPアルゴリズムの実行に必要なサイクル数は、PIC32MXファミリに比べ最大で75%削減することが可能となった。
469:774ワット発電中さん
17/02/14 18:35:20.92 mVCAEs2r.net
>>ID:668cEdut
どーでもいいことをグダグダ引用すんなよ。
次からは、てめえのブログにでも書いて、リンク張ってくれ。
ジャマ臭いんだよ、お前。
470:774ワット発電中さん
17/02/14 18:38:04.16 MDm1Eu4g.net
>>444
スレタイすら読めない馬鹿に説教するだけ無駄
しかも、ただのコピペは無能の証でもある
471:774ワット発電中さん
17/02/14 18:47:53.95 668cEdut.net
PICのスレでARMの話をする方がスレチなのでは?
472:774ワット発電中さん
17/02/14 18:55:35.61 668cEdut.net
PICのスレなのになぜかARMの話をしても罵倒されないのに
PIC32の話をすると罵倒される不思議
473:774ワット発電中さん
17/02/14 19:21:19.38 668cEdut.net
初心者が誤解しないように追記すると
PIC32MMはDSP ASEはサポートされてません
DSP命令はPIC32MZのみです
474:774ワット発電中さん
17/02/14 20:53:50.60 D1FINN/J.net
>>444
な、無駄だったろ?
内容が陳腐なヤツは、理解力も低い
だから、言っても無意味
475:774ワット発電中さん
17/02/14 21:23:08.85 WgDNmqOk.net
このスレでPIC以外の話は確かにスレチだろうけど、完全に禁止にすると、PICしか使ったことがない井の中の蛙がPICを過大評価するからなあ
PIC24信者もいるし
比較位は良いんじゃないか?
現実を知らしめる意味でも
476:774ワット発電中さん
17/02/14 21:47:22.30 Eu2YG1pM.net
何でも良いよ。
話題が無いと寂しいだけだし。
477:774ワット発電中さん
17/02/14 21:50:08.21 3eV7flP9.net
>>449
だな。
変なのが棲みついて、スレ台無しw
478:774ワット発電中さん
17/02/14 21:52:41.60 Eu2YG1pM.net
まぁ、「枯れ木も花の賑わい」というじゃん?
479:774ワット発電中さん
17/02/14 23:45:55.17 TCgODgmF.net
「枯れ木も山の賑わい」
枯れ木に花咲かねえからさw
480:774ワット発電中さん
17/02/14 23:58:40.65 5X6yGNO/.net
>>450
「井の中の蛙大海を知らず、されど空の深さを知る。」
まだPICを突き詰めてもいない初心者スレで、
他所事を大声でわめく自分の愚かさを知るべき。
はっきり言わんと分からんようだから書くが、
要するに、あっちでやれってことだよ。
スレリンク(denki板)
481:774ワット発電中さん
17/02/15 01:57:57.63 gWiu0BQn.net
もういいよ。
君らが博学で経験も豊富なことは、よくわかったから。
技術力のある皆さんは、こんなところで雑談しないで
あっち↓行ってください。
スレリンク(denki板)l50
移動してください。
僕たちのような初心者が質問できないよ。
482:774ワット発電中さん
17/02/15 10:10:11.16 Dkl3PmsC.net
プロ初心者はさっさと質問して
483:774ワット発電中さん
17/02/15 12:46:40.44 gSk0bdGg.net
質問しても回答無いし
484:774ワット発電中さん
17/02/15 14:28:17.82 zy2EBJv8.net
>>457
流行っているようなので「プロ~」とか書いてみた、ってか?
マジレスしとくと、
質問が書き込まれたら回答する、でいい。
それを催促するとか、ホントの馬鹿か?
485:774ワット発電中さん
17/02/15 15:39:58.64 n9VDmwMh.net
486:図々しい初心者にはなかなかまともな回答が付かないのは致し方無い事だ。
487:774ワット発電中さん
17/02/15 15:49:29.00 FPv4zq0B.net
>図々しい初心者
回答能力の低い奴が一番に吐く言い訳
488:774ワット発電中さん
17/02/15 18:09:33.03 kjFlexRD.net
>>458
どの質問?
489:774ワット発電中さん
17/02/16 06:51:17.23 5OdJedHA.net
俺がいつも感心することは、こんな所でよく質問する気になれるな、だ。
490:774ワット発電中さん
17/02/16 15:24:09.55 6mPVFCUq.net
俺がいつも感心することは、そう言いながらよく覗く気になれるな、だ。
491:774ワット発電中さん
17/02/16 16:34:01.39 5OdJedHA.net
>>464
ビックリするようなやり取り、吹き出しそうになるやり取り、いつのまにか罵詈雑言になるやり取り・・・
横から黙って見ているのは楽しいです、覗きはやめられましぇ~んw
492:774ワット発電中さん
17/02/16 19:17:55.88 edypKyv9.net
趣味悪い
493:774ワット発電中さん
17/02/16 20:28:43.01 fEevi9FQ.net
ねぇCAN関係のスレどこですか?
494:774ワット発電中さん
17/02/16 21:15:33.36 802VgZ2S.net
車板へどうぞ。
495:774ワット発電中さん
17/02/16 21:26:39.22 fEevi9FQ.net
>>468
kwskお願い
496:774ワット発電中さん
17/02/16 22:07:11.15 PxPZqxVc.net
姉Can ならファ板へどうぞ。
497:774ワット発電中さん
17/02/16 22:07:46.45 fxpUlETV.net
日本語でいいよ
498:774ワット発電中さん
17/02/17 03:39:01.45 X73zb/L+.net
CAN通信は、素人工作でも一般的によく使用されるのでしょうか?
499:774ワット発電中さん
17/02/17 06:31:36.67 Ynf+BGHZ.net
RS-485ならPICとトランシーバで組めるし素人でも余裕
500:774ワット発電中さん
17/02/17 07:06:32.93 ioTBblOz.net
>>467
dsPICを使って車とCAN通信してるけど、試行錯誤だったのでスキルとしてはかなり怪しい
501:774ワット発電中さん
17/02/17 20:46:18.35 r60SGsxd.net
dsPIC、悪い思い出しかない
502:774ワット発電中さん
17/02/20 22:28:56.10 it444mD/.net
dsPicいいと思うけどな~~
CAN通信は情報が少ないけどサンプルはそこそこあるので
それを使えば通信だけはなんとかなるよ。
後は試行錯誤になるのは仕方ないんじゃないかな~~~
でも少数だけどやってる人はいるよ!!
503:774ワット発電中さん
17/02/21 00:41:41.70 /OG2CZS8.net
ちゃんと使ったことないからわからないけど、
dsPICってあまりいい評判聞かないのはなんでなの?
504:774ワット発電中さん
17/02/21 01:57:58.95 fV/Oh/rD.net
>>477
>あまりいい評判聞かない
具体的にどうぞ。
505:774ワット発電中さん
17/02/21 02:23:16.12 Jsfe6gaA.net
そうだよね、逆にdsPICの悪い所はどこ?
16Fに比べて
高い・ネット情報が少ない・消費電力多い・少ピンが無い
あとは?
506:774ワット発電中さん
17/02/21 12:49:40.10 k/TcGDvH.net
474だけど、dspic33fj64gp802でCAN通信して、カーナビにビデオ信号を出力してる
DSPは未使用wで、RAMが多い・CAN・DAC付、で選んだ
PIC32も検討したけど、スリープ時の消費電力が多いのでちょっと
507:774ワット発電中さん
17/02/21 14:09:35.97 gBrgL65G.net
>>480
CANってことは車載するんだよね?
電源個別に用意してるの?なんで細かい消費電力を気にするのか不思議。
508:774ワット発電中さん
17/02/21 14:16:00.51 ZEvfcdBJ.net
OBD2コネクタの常時供給電源から電源取るからでしょ。
イグニションoffでスリープするんだよね。
509:774ワット発電中さん
17/02/21 14:20:29.22 ZEvfcdBJ.net
イグニションoffでCANの通信サイクルが途絶えてスリープだ。
510:774ワット発電中さん
17/02/21 19:16:38.41 NI3CGX/C.net
>>477
自分の世界が狭いから。
井の中の蛙とも言う。
511:774ワット発電中さん
17/02/21 22:18:28.01 YpaMJ5Lp.net
>>481
483でコメントされている通りです
>>483
と、思うでしょ?
512:でも実際は、直ぐには落ちないし、スマートキーを近づけるだけで起きたりするようです
513:774ワット発電中さん
17/02/22 07:10:44.12 xv8qlwq+.net
xc8でinline-asm(#asm ~ #endasm)を使うと 赤!/赤線 が出てじゃまくさい
buildするとエラーは無く、結果も期待通りに動作する
無視すれば良いだけなんだが、なんか対策ないのかね
ググると似たような事聞いてるヤツが見つかるが
決定打が見つからない (Hintsをoffでも、まだ残る)
514:774ワット発電中さん
17/02/22 11:26:19.32 JWh9Wl65.net
XIDEのエディタが、該当部分をCの識別子として認識していません。
以下の設定で、ハイライト(赤い下線)がきえます。
Tools
Options
C/C++
Highlihting
Highlight Unresolved Identifiers
515:774ワット発電中さん
17/02/22 11:39:53.52 xv8qlwq+.net
わりい、それは見てた
IDEのVersion は v3.51、その項目無いんだよね。
それに相当すると思われるのが↑に書いた"Hints"の項目で、それでも全部は消えない
Verによる違いかな
516:774ワット発電中さん
17/02/22 12:34:47.58 uCVlHhkb.net
>>485
+Bからとるなら些細な差なんじゃないの?って話ね
少ないに越したことはないのは分かるけどPIC32じゃ
絶対駄目というレベルの話でもないよね?
それだけのメリットがソフトの作りやすさ以上にあるのか
疑問に思っただけなのさ
517:natu
17/02/22 15:55:20.28 bL3D4RLj.net
>>488
面倒くさいが、これは如何
asm( "movlw 0xff" );
518:774ワット発電中さん
17/02/22 18:48:18.83 Db7MQC2T.net
>>490
もともとは、ISR()のエピローグ/プロローグが大きいんで削りたい、ってのが目的なんだけど
該当部分の、具体的な該当コードは↓、石はPIC18F14K50
void IsrHigh(void);
uint16_t wTxData;
asm ("global _IsrHighFook");
void IsrHighFook(void) @ 0x0808
{
asm("goto _IsrHigh");
}
void IsrHigh(void)
{
#asm
btfss RABIF_bit, c
bra ret_ie
bcf RABIF_bit, c
btfsc _wTxData, 0, c
btfss RB7_bit, c
bra rst_rc5
set_rc5: <- ラベルを使ったところに 赤!
bsf RC5_bit, c
bra ret_ie
rst_rc5: <-赤!
bcf RC5_bit, c
ret_ie: <-赤!
retfie f
#endasm
} <- ここにも 赤!
確かに、ご指摘の方法で済む処はそんな風にして逃げたりしてる
下のように書き換えると
asm ("btfss RABIF_bit, c"); <- この手のが通らない
asm ("btfss INTCON, 0, c"); <- こんな風にベタで書くと通るのは解ったけど
どっちも、イマイチなんだよね
519:774ワット発電中さん
17/02/22 19:06:31.21 4uekc3bV.net
>>489
そうですね。絶対ではないです。
うちの車だと暗電流が確か1割位増える計算でした(三端子レギュレータで落としてるだけなので)