X



トップページ電気・電子
1002コメント386KB
初めてのPIC 0x0A [無断転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
0001774ワット発電中さん
垢版 |
2017/01/04(水) 12:00:57.16ID:x9LH1FlU
.
   _       _    PICをさわるのは今日が初めて、という超初心者のためのスレです。
  (O>――<O)    PIC選び、PICを使った回路は、誰でも最初は不安なものです。
  / (・) (・) ヽ    恥ずかしがらずに何でも聞いてください。速攻で教えてくれますよ。
  ○ /▼\ ○    質問のしかたは、初心者質問スレの発言1を見てくださいね。
  |(ヽ二フ ) |    
  /  ̄ ̄ ̄ ヽ  
 f ヽ     / |  PIC関係のスレは、レベルに合わせて以下のスレもありますので、活用しましょう。
 ヽ \  / ノ    ・PIC専用のスレ
  | \_ )(_/ !       本家本元のPICスレです。口の悪い人もいますが、楽しくやってるみたい。
  |       |       ここの話がわかるようになれば、あなたはもう一人前のPICerです。
  |       |    ・マイコンソフト 悩み事相談室
  |   | ̄ ̄|  |      マイコンソフトやツールの質問は、こちらでどうぞ。的確な回答があります。
 (_ノ    ヽ_)

 質問する時のコツ
  ・性格の悪い回答者はスルーしよう(相手すると逆効果)
  ・素人玄人などと 上から目線の回答者は、無視してください。相手してはいけません。
  ・そこそこ良い回答が出るまでしばらく再発言しないのもあり(良回答は後に出やすい)
  ・回答者のアドバイスで後日解決したら、結果報告しよう(とても喜ばれる)
  ・回答者は、僕たち初心者に優しくしてください。あなたも通ってきた道のはずです。

 さ、質問どうぞ〜っ
  0x09 2016/09/07〜  http://rio2016.2ch.net/test/read.cgi/denki/1473238791/
  0x08 2016/04/30〜  ttp://rio2016.2ch.net/test/read.cgi/denki/1461994030/
  0x07 2016/02/05〜  ttp://wc2014.2ch.net/test/read.cgi/denki/1454648249/
  0x06 2015/07/18〜  ttp://wc2014.2ch.net/test/read.cgi/denki/1437151298/
  0x05 2015/04/07〜  ttp://wc2014.2ch.net/test/read.cgi/denki/1428391368
  0x04 2015/01/02〜  ttp://wc2014.2ch.net/test/read.cgi/denki/1420205108
  0x03 2014/09/22〜  ttp://wc2014.2ch.net/test/read.cgi/denki/1411314715
  0x02 2014/05/20〜  ttp://wc2014.2ch.net/test/read.cgi/denki/1400522979
  0x01 2013/11/17〜  ttp://ai.2ch.net/test/read.cgi/denki/1384626558
0002774ワット発電中さん
垢版 |
2017/01/04(水) 13:08:45.17ID:NCdReyie
))())()()(())(())))(())))(()((())))(((())()())((()(()())(())()()()((((()()()
((())())((()))()()))()(()()))(()))()((())((()()()(()(()()(())((())())((())))
))())(()()(()()((((((())(()))(())()())(()())((()()))))((((()()(())(()))))())
()))))(()()))))((((()()))(())()(()))())()))(((((((()))(())((()(()))())(((()(
)))())))((())((()())())((())()()()()(())()(()()()(()(((((())()))((()())()())
)()((()((())())())()))((((()())())))())))((((((((())))))(())))())(()((((())(
)))(()(()))))))(()((()()((((()(())))()()))(()))))))(()(()((()(((())((()()()(
(())(()(()))()(()()(()(()()(()(()()))(()()()())))))()()()))((())()((())(())(
(())()(()())(())))(())))()((((())())((()(()()()))))()()()(()(()((())())())((
)(()))((()))((()(()((()()()()(())()))())))))))((())((()(()()(()((((()))(()))
(())(()))((())())())()(()()))())))((())(()))()((()))()))(((((()((((())))(()(
((()))))())))))((()))())(()(())()))((())(())((()(()(())(())))(())(()(((((()(
)()((((()(((()))(((()(())()()))))()(()()()()())))))(()((()((()))))()()()()()
))()))()))((())(())()((()())((((()())((()))))())()())))()((((((()))((())()((
(())(()()()((()(()())((()()()()()))())))()((())()()())()))()(()))((()((())()
))())))()(())((())))()((()((())(((())())())((((()()())))((()(()(()(())())())
)()((()))())(()()))()((())()())(((())((()())((()())())))())))()(()()(()()(((
)(()()())()()(((())((()))(()()()))()()()((()))(((()()))()()(((((())())))()))
((()(())((())))()(())))()()()()((((())()()())(())()()()())()))(((((()))()())
)))(()))(()())((()(((()))((()()((((()(())))()()(()))()(()()))(((()())())()))
)))()()))))(((()()(()()()()((()))(()()(((((())))()(((()()))())((((())))()())
()))()((()))()()((()())())()((())(())))))()))))()()()())(((()()((()()(()((((
))())())(((((())()))((()))))))))()(())((()((()()())(((()))()()))))(((((((()(
))())(()())()))()))()(())(()())()))()()(((()(())()))(((()()(()()((()(()(())(
))()(()()(((()((())(((()()()))))()()))())))())())()(((())()))()())((()(()(((
)(())()())))()())))(()(()()())((()((()()))(()()()))((())))(()(())((()()()(((
((()(()()()()())()()()(()()((())((((())()())()())))()))()))()(()())((()()())
)())))((()()())()((())()()))()))(((()))()))((((()(()(()))((((()))))(())(()((
))())()((())(()))(((())()())()(()()(()())(())))())()))()())((()((()()()(()((
)))))())()))()))(()))()()())(()(()((()((())()((()(((((()((()))(((()()()))())
))())())())())(()()()))))())(()(()()(((()(((((()))))((()((())(())())()(()(()
)()))()())(()()()))()))(((()()(())((()))))(())())((()))()(()(())((())()(((((
((((()(()())())()()()((()))(()))()((((((()))(()()(()(()))()))((())))()))))()
))())((()())()((())(((())((()(())()))()()))))((((()((())()))))(()(()()()()()
()))))()(((((()((())(()()(())())()((()()))(())())()((()()))(())))()((()(()))
)))((((()))())))())())))())((((()()))))((())))))()(()((((((()(())(((()())(((
()))))())))))(((((((((((()((()(())()(()))))())()))((()(())(()))()((()))(()()
))))()((()()()))(()()()()(()))())(())()()()())))())((()(()((()))(()(()()((((
)))))))(()))((()()((()))())(()))(()))())()()()(((((((((()(((()))))(())(())((
)()(()())()()((()(()))))()(())()(()()((()((((())))((()))(((())()))()((()))))
))))())))(((()))(()()((()((())))(())()))(()(((((((((()()))())((()))())(()())
()))((()))())(())())()())))()(((())((())))))()()(()()((((()()(())())((()()((
)()())(())())())))())())))(())()()((()))(()(()((())((()())))(()(()(((()(()((
(()(())))((())))())))))()((()))(()()))))(()(()(((((())()()(())(((())()()()((
((((())()((()())))()()(())(()((()())(())))()))()((((()()()())))()(()()))(())
))()((()))))(())()(((())())()(())))(((()(()(())(((())())()()))))()()(()(()((
)(((())(((()()())))))((())))))(()(()()))(()(()()()(())())((((((()))()))(())(
)(((())))((((((()())))))((()((((()(())))))((()()()())()))(()))()((())((())))
)((((()()()()(()(())))(((()(()()))((()(())(()())((())))((())())(((()))))))))
)))(()())()()(()())(((()()(())((((((())())()(()(())))(()()))((()()((()))))))
0004774ワット発電中さん
垢版 |
2017/01/04(水) 18:37:11.71ID:kweB5c2Z
mplab xpressのボード増やさないのかな?
st-linkみたいな構成で、過去チップも対応できればarmに対抗できるかも
armチップは素人には高性能スギル
0006774ワット発電中さん
垢版 |
2017/01/04(水) 21:40:35.42ID:xvjJcIeO
Jim Stone(Freelance journalist) Microwaving Iraq
http://www.jimstonefreelance.com/beammed.html
ポッパー・ドームと呼ばれるマイクロ波兵器、秘密ビーム兵器、指向性エネルギービームなどについて

イラク戦争で米軍、ファルージャなどで「電磁波兵器」を使用!/建物の屋上の死角に、「ポッパー」あるいは「ドーム」と呼ばれる、ドーム状の発信装置を設置/射程半径0.8キロ住民に照射!頭痛・白内障・記憶喪失・癌・自殺……
http://onuma.cocolog-nifty.com/blog1/2014/03/post-40ee.html
一部訳

組織的ストーカー・電磁波犯罪被害に使われているのは、これだろ?
0007774ワット発電中さん
垢版 |
2017/01/05(木) 10:58:25.01ID:6pXRPyHS
>>5
C言語で、フラグを取るときは、
unsigned char hoge_flg;
unsigned bool hoge_flg; の、どちらを使いますか?
charだと8bit、boolだと1bit(?)だと思っています。

32bitのPICだと、int変数を取ると、
幅は16bitでしょうか、32bitなのでしょうか?

もし16bitや32bitだと、残りのbitは一生使われないので、
もったいないような気がします。
0009774ワット発電中さん
垢版 |
2017/01/06(金) 19:34:44.22ID:XH8jq1iR
>>7
boolはK&Rでは定義されていない(ANSIやJISは知らん)
処理系がboolを予約語としてるときは、それはコンパイラメーカによる拡張

アドレスとビット指定のロード/ストア命令を持っているCPUなら
それなりに効率よくフラグにアクセスできる可能性はある

CPUがレジスタに対するビット操作命令しかないなら、
一旦レジスタにロードしてからビットにアクセスすることになるので、
メモリ効率は良くても実行効率は良くない
0010774ワット発電中さん
垢版 |
2017/01/06(金) 20:22:19.98ID:0svo1lXb
PICマイコンのWeak Pull-upって「定電流Pch J-FET」 or 「単なる抵抗」のどっちなんだろ?
データシートは電流値で規格されていて電圧によらずmin値が同じだから定電流っぽいけど
端子のON波形見るとExpカーブ描くので抵抗のようでもあるし・・・
0012774ワット発電中さん
垢版 |
2017/01/06(金) 22:13:17.52ID:17mNjU2l
説明では内蔵プルアップ抵抗という表現になっています
ある書籍の説明では47KΩ程度と説明されていました
0013774ワット発電中さん
垢版 |
2017/01/06(金) 22:38:39.75ID:0svo1lXb
>>11-12
なるほど。Vdd - 抵抗(47kΩ程度) - MOSFET - I/O pinといった接続で
プルアップされていると考えるのが実機波形とも合致するので納得しました
0014774ワット発電中さん
垢版 |
2017/01/07(土) 19:21:45.09ID:AlCDkjoq
>>9
今、K&Rを基準にしているコンパイラってほとんどないんじゃないかな。
それを基準にしてそこにないものをコンパイラメーカーの拡張というのは時代に合っていないと思います。
今はANSIが基準ですね。

boolですが、俺も自分でtypedefして使ってきたのですが、あらためて調べてみると、
今のMicrochipのコンパイラは、C99を部分的に取りいれていて、XC8では、_Boolは未サポートみたいですが、
bool は stdbool.h をインクルードすることで使えるようになっているようです。
0015774ワット発電中さん
垢版 |
2017/01/07(土) 20:12:05.05ID:gNS1go6c
んで、結局charにdefineしてるでしょ
いいじゃん最初からcharで
0016774ワット発電中さん
垢版 |
2017/01/07(土) 23:15:25.87ID:Y95YdnKo
通常仕様Fと低消費仕様LFが別チップになっているのが納得いかん!
config wordで切り替えられるようにしてくれれば良いのに…

LFタイプは待機電流1uA切ってるからコイン電池駆動回路に愛用してるのだが
5V回路に使いまわせないのが悩ましい
0017774ワット発電中さん
垢版 |
2017/01/08(日) 08:14:05.11ID:hXSjWTaI
>>16
最新16F18313/18325であれば、VREGPMレジスタ設定することで
通常電圧仕様でもSleep時1uA以下にできる

旧世代の通常電圧版はたぶん内蔵発振起動時間の最小化を優先して
Powerdown電流を20uA程度食わせているんじゃないかな?
0018774ワット発電中さん
垢版 |
2017/01/08(日) 20:20:53.19ID:Gtb6NU+r
picの開発環境はLinuxでも構築可能ですか?
特にpickit3の書き込みプログラムについて心配しています
0020774ワット発電中さん
垢版 |
2017/01/11(水) 20:22:10.19ID:RfYQ5X8O
16F18313ってTIMER0の仕様が変わったのか?
T08BITがT016BITに名称変更で8bitモードではTMR0Lの値がTMR0Hと一致したら割り込み発生で
割り込み処理でカウンター値をセットしなくても良いのかな。
正確なインターバルタイマーが可能になったのか。
0021774ワット発電中さん
垢版 |
2017/01/13(金) 23:42:33.89ID:Z0v50WsA
16F18313/18325が機能豊富なのは理解できるけど従来Midrange品との互換性下がってるよなぁ・・・
当面は12F1822と16F1827で乗り切るよ
0022774ワット発電中さん
垢版 |
2017/01/14(土) 09:53:03.17ID:RXQfmLLy
機能豊富なのはいいけれど機能すべて切り離しても動作時やSLEEP時の
消費電力上がるのは困り者だ・・・・
0023774ワット発電中さん
垢版 |
2017/01/14(土) 10:03:03.40ID:eRbuBJKb
>>22
消費電力が気になるアプリだったら、必要なだけの機能を搭載したものを選ばないとなあ。
停止した機能モジュールも消費電力ゼロにはならんし。
0024774ワット発電中さん
垢版 |
2017/01/14(土) 23:08:07.32ID:RXQfmLLy
>>23
でも機能と価格は魅力的なのは確かだな〜〜〜〜
このPICをいかせるアプリを考えてみます。
0025774ワット発電中さん
垢版 |
2017/01/14(土) 23:09:25.73ID:eRbuBJKb
>>24
ばっちりと嵌まるアプリが見つかったら楽しいですね。とてもよくわかります。
0026774ワット発電中さん
垢版 |
2017/01/15(日) 03:15:17.99ID:mkHj70jg
教えてください。

PICマイコンで、8bit, 16bitのもので、内蔵PLLでもなんでもよいので、
Clockを、
・50MHzで動くものはありますか?
・80MHzで動くものはありますか?
あと
PICの内蔵PLLは、入力周波数8MHzに特化したものでしょうか?
それとも、入力周波数いくつでも4倍できるでしょうか?

よろしくお願いします。
0027774ワット発電中さん
垢版 |
2017/01/15(日) 06:30:01.75ID:NOuCbNso
ある

入力周波数範囲は物によって違うので、該当データシート読め
0029774ワット発電中さん
垢版 |
2017/01/15(日) 08:26:51.89ID:8O/IFlJ7
訂正
上記ページで8bitとか16bitとかじゃなく、
coreが8bitPICとか16bitPICとかを個別に選んだ方がよさそう。

MIPSについてさっき書いたのじゃなく、8bit,16bit共に
MIPS=周波数/4になるはずだから、50MHzなら12MIPSを指定
8ビットだと18F系の奴が64MHzで見つかる。
あとはご自由に
0030774ワット発電中さん
垢版 |
2017/01/15(日) 09:44:09.23ID:v9f0tGBI
>>22-25で気になってPIC 8pin、3V-85℃Max、最小待機電流Ipd仕様を比較してみた。

Baseline〜Midrange世代(10F322、12F509〜12F683)は1.2uA〜1.5uAで、
12F629/675の0.77uAがもっとも優秀。

Enhanced世代(12F1501〜16F18313)に入ると2uA〜4uAまで上昇し、
12F1822だけが45uAと突出して悪化。LF版なら2uAまで抑えられるけど…

CR2032電池で10年持たせるにはSleep電流2uA以下に抑えたいところだが、
機能豊富なEnhancedも魅力的で悩ましい…
0031774ワット発電中さん
垢版 |
2017/01/15(日) 15:42:44.78ID:2cmZCigW
>>29
>MIPS=周波数/4になるはずだから、50MHzなら12MIPSを指定

そうとは限らない。俺が良く使ってるのはクロック140MHzで70MIPS
0032774ワット発電中さん
垢版 |
2017/01/15(日) 15:45:11.43ID:2cmZCigW
>>30
多分、1822と1823は同じチップなんだけど、電流は1822の方が多い?
0034774ワット発電中さん
垢版 |
2017/01/15(日) 17:42:09.14ID:USWyW48j
なるほど
0035774ワット発電中さん
垢版 |
2017/01/15(日) 20:31:55.39ID:B2okatrM
>>31
70MIPS のはパイプライン長いから、組み方次第では40MIPS の奴の方が速い事もある。
003620
垢版 |
2017/01/15(日) 20:58:47.95ID:kPrUIGFg
TIMER0の仕様が変わった事を確認しました。
意外とこれの違いに気づかない説明サイトあるんだな。
0037774ワット発電中さん
垢版 |
2017/01/15(日) 21:21:55.01ID:USWyW48j
>>35
俺はほぼアセンブラだから、逆転することは多分無いな。
あと、70MIPSはUARTで921600bpsが安定して動くけど、40MIPSではキリが悪くて
使えない。1822でさえ921600bpsが使えるのに、ちょっと残念。
0038774ワット発電中さん
垢版 |
2017/01/16(月) 12:59:04.05ID:+zngLz8S
TVのリモコン信号は周波数38KHzだけど、多少ずれてもそれほど支障はないみたい
どのへんまでOKなのか実験してみた人いるかしら
あと、デューティ比は30%となってるけどなんで50%じゃなくて30%なんだろ
なんか意味あるのかしら
0040774ワット発電中さん
垢版 |
2017/01/16(月) 17:34:46.70ID:rzlS8B0k
>>35
40MIPS以下の16bitPICは通常命令1サイクル・分岐命令2サイクルの所
70MIPSのは通常命令1サイクル・分岐命令4サイクルなのか。
6割以上が分岐命令なら確かに逆転するな、そこまで行くことは無いだろうけど。
ただクロック比で75%性能アップだと思っていたのに、分岐命令が1割あると48%
2割あると31%しか向上しないってちょっと残念だ。
8bitPICから馴染みのある次命令スキップ系(BTSC,BTSS,CPS**)はサイクル数が
増えてないからアセンブラならこちらをうまく使えば良さそう
0043774ワット発電中さん
垢版 |
2017/01/17(火) 11:03:42.74ID:q3PYgdOG
このプログラムをC言語にコンパイルする方法が無いのでしょうか。
発光ダイオードの点滅用という事で書き込んでもらったのですが少し遅いので早く点滅させたいのです。
書き込んでもらったお店の人の話ではC言語なら早くできると言っておりました。


:020000040000FA
:10000000FF23831690008312073099008316003077
:100010009F000830850083120030A300230885006C
:10002000A30A142014200E28FA30A100F930A200EF
:0C0030000000A20B1828A10B16280800E5
:084000000000000000000000B8
:02400E00843FED
:00000001FF
0044774ワット発電中さん
垢版 |
2017/01/17(火) 14:01:01.21ID:a2tylUX9
現在2chの色々なスレッドで、怪しいIP表示スレへ誘導する不審な書き込みが頻繁に行われている事を受け、
セキュリティメーカー各社が注意を呼びかけています。

その不審な書き込みは、「意味不明の英数字列の書き込み」、あるいは「スレッドの内容とは全然関係ない日本語と
urlリンクのセット」の書き込みで、現在あちこちのスレッドでよく見かけます。
そのurlリンクをクリックするとIP表示スレに転送されますが、いくつかの書き込みを検証したところ、IPアドレス
抜き取りや、ウイルス感染などの挙動が確認されました。
最近のウイルスはアンチウイルスソフトを入れた状態でも感染させられる事があるので、
2chを閲覧している方は、IP表示スレへ誘導するurlリンクは極力クリックしないように注意してください。

(この書き込みは自由に転載してください)
0047774ワット発電中さん
垢版 |
2017/01/17(火) 17:14:36.38ID:gy+KZ7Ev
>>43
何でC言語ならって言ったのかわからないけど、
そのコードを改造するという前提なら、
MPLAB XにインポートしてProgram Memory見れば、ニーモニックが見れるから、
点滅の速度くらいなら、ここで数字変えるだけじゃね?
間違ってますか?偉い人!

ちなみに、アセンブラ使ったことねえから、
おいらなら、1からCで書くです。
0048774ワット発電中さん
垢版 |
2017/01/17(火) 19:21:03.05ID:t5xU9BUv
>>47
Line21、23を変更すればよい。

Line Address Opcode DisAssy
1 000 23FF CALL 0x3FF
2 001 1683 BSF STATUS, 0x5
3 002 0090 MOVWF 0x10
4 003 1283 BCF STATUS, 0x5
5 004 3007 MOVLW 0x7
6 005 0099 MOVWF 0x19
7 006 1683 BSF STATUS, 0x5
8 007 3000 MOVLW 0x0
9 008 009F MOVWF 0x1F
10 009 3008 MOVLW 0x8
11 00A 0085 MOVWF PORTA
12 00B 1283 BCF STATUS, 0x5
13 00C 3000 MOVLW 0x0
14 00D 00A3 MOVWF 0x23
15 00E 0823 MOVF 0x23, W
16 00F 0085 MOVWF PORTA
17 010 0AA3 INCF 0x23, F
18 011 2014 CALL 0x14
19 012 2014 CALL 0x14
20 013 280E GOTO 0xE
21 014 30FA MOVLW 0xFA
22 015 00A1 MOVWF 0x21
23 016 30F9 MOVLW 0xF9
24 017 00A2 MOVWF 0x22
25 018 0000 NOP
26 019 0BA2 DECFSZ 0x22, F
27 01A 2818 GOTO 0x18
28 01B 0BA1 DECFSZ 0x21, F
29 01C 2816 GOTO 0x16
30 01D 0008 RETURN
0049774ワット発電中さん
垢版 |
2017/01/17(火) 22:27:25.73ID:p82+5IAz
>:10002000A30A142014200E28FA30A100F930A200EF
この行の真ん中辺りのFAをテキストエディタで適当に変えて書き込んでみるとよい
80とかにすれば約2倍の点滅速度になるのでは
0051774ワット発電中さん
垢版 |
2017/01/17(火) 23:24:37.90ID:p82+5IAz
>>50
すまん、すっかり失念してた
きちんと見てるよね、多分
チェックサム再生成 or 計算して手で書き換えの一手間がいるのか
0054774ワット発電中さん
垢版 |
2017/01/18(水) 00:15:54.05ID:Ds1B0Yu8
>>53
ゴミの書き込み失礼しました。

;##### KPICLED0.ASM KPICLED0.HEX
;
;***** RGB 3色LEDを6色に点滅させるプログラム。
;***** (電池1個、LED1個、PIC1個 だけで簡単にLEDを点滅させる実験にも使用)
;***** 2004.07.04
;
LIST P=12F675
;
INCLUDE P12F675.INC
;
;******************************* コンフィグレーションビットの記載
;
CNFB = _CPD_OFF ; データEEPROMもプログラム・メモリも
CNFB &= _CP_OFF ; コード・プロテクトしない
CNFB &= _BODEN_OFF ; ブラウンアウト・リセットを使わない
CNFB &= _MCLRE_OFF ; MCLRリセットを使わない
CNFB &= _PWRTE_ON ; パワーアップ・タイマを使う
CNFB &= _WDT_OFF ; ウォッチドッグ・タイマを使わない
CNFB &= _INTRC_OSC_NOCLKOUT ; 内部発振器を使う

__CONFIG CNFB
__IDLOCS H'0000' ; バージョン0.00
;
WITIM1 EQU H'21' ; WAITワーク
WITIM2 EQU H'22' ; WAITワーク
LEDBUF EQU H'23' ; LED表示用バッファ
;
;******************************* 処理プログラム
;
ORG H'0' ; リセット時に動作を開始するアドレスを指定
;
;******************************* 初期設定
;
CALL H'3FF' ; 内部発振器の補正値をセット。
BSF STATUS,RP0 ; バンクを1にする。
MOVWF OSCCAL
;
BCF STATUS,RP0 ; バンクを0にする。
;
; x6x43210
MOVLW B'00000111' ; コンパレーターは使用しない
MOVWF CMCON
;
BSF STATUS,RP0 ; バンクを1にする。
;
; x6543210
MOVLW B'00000000' ; ポートはすべてデジタル
MOVWF ANSEL ; AD変換変換使用せず。
;
; xx543210
MOVLW B'00001000' ; GP 5-4 2-0 出力
MOVWF TRISIO ; 入力出力の設定
;
BCF STATUS,RP0 ; バンクを0にする。
0055774ワット発電中さん
垢版 |
2017/01/18(水) 00:17:37.62ID:Ds1B0Yu8
;
;******************************* LED点滅処理
;
; xx54x210
MOVLW B'00000000' ; 最初の値
MOVWF LEDBUF ; LED表示用バッファに設定
;
LOOP EQU $
MOVF LEDBUF,W ; バッファから取り出す
MOVWF GPIO ; 出力ポートへ出力
INCF LEDBUF,F ; 1進める。
;
CALL DLYPRO ; 250msec × 2 時間待ち
CALL DLYPRO
;
GOTO LOOP
;
;
DLYPRO EQU $ ; 250msec時間待ち処理
; ; 時間待ち処理 WITIM1 に入れた時間×1msec時間待ちする。
; return ; デバック時これを生かしてとりあえずリーターンする。
MOVLW D'250' ; 200msec時間待ち処理
;
MOVWF WITIM1
WITLP1 EQU $
;
MOVLW H'F9'
MOVWF WITIM2
WITLP2 EQU $
NOP
DECFSZ WITIM2,F
GOTO WITLP2
;
DECFSZ WITIM1,F
GOTO WITLP1
;
RETURN
;
END

>>43
のHEXファイルと一緒のソースも提供しています。
0056774ワット発電中さん
垢版 |
2017/01/18(水) 00:22:35.13ID:Ds1B0Yu8
CALL DLYPRO ; 250msec × 2 時間待ち
CALL DLYPRO

DLYPRO EQU $ ; 250msec時間待ち処理
; ; 時間待ち処理 WITIM1 に入れた時間×1msec時間待ちする。
; return ; デバック時これを生かしてとりあえずリーターンする。
MOVLW D'250' ; 200msec時間待ち処理

200msec時間待ち処理
このコメントはミス 250msec (D'250'だから)

上記の二つを調整する事で自由に点滅の時間を変更できます。
0058774ワット発電中さん
垢版 |
2017/01/18(水) 07:51:14.80ID:NahvWUDz
書き込んでもらったとか書いてるし、スキルレベルがわからん
それじゃHEXで修正しても書き込めないのではと言われればその通りなんだが…
0059774ワット発電中さん
垢版 |
2017/01/19(木) 22:14:42.88ID:yMPQGpiJ
PIC10F200にてLEDをチカチカさせたいと頑張っています。
が、MPLAB IDE v8.92でプログラムしてPICkit 3 v3.10とPICkit 3 で書き込みました。
PICkit 3が接続されている状態だと希望通りに点滅してくれるのですが
10F200を別基板と別電源にすると点灯したままとなります。
配線は何度も見直しました。
何か初歩的なミスと思いますがどうでしょうか??
よろしくお願いします。
0060774ワット発電中さん
垢版 |
2017/01/19(木) 22:19:15.06ID:kAftOMkY
>>59
別基板と別電源ってのが分からんけどここ切り分け出来ないの?
電源だけ供給したり、別の10F200に同じの書き込んでも結果は変わらず?

ソースと基板出せるんならだしてよ。
ところで、電源が供給されてればLEDは点灯したまま?それとも消灯したまま?
0061774ワット発電中さん
垢版 |
2017/01/19(木) 22:32:10.84ID:yMPQGpiJ
>>60 ありがとうございます。
PICkit 3で書き込む時にLEDも載せてあるのですが書き込み終わったらLEDが点滅を開始します。
使うのはGP0ポートをLED出力用でGP1ポートをリセットボタンで使っています。
希望は、5分消灯→10秒点灯を繰り返してボタンを押すと10秒点灯へ飛びます。

LIST P=10F200
#INCLUDE <P10F200.INC>
__CONFIG _MCLRE_OFF & _WDT_OFF & _CP_OFF & _IntRC_OSC
CNT1 EQU 0x10
CNT2 EQU 0x11
CNT3 EQU 0x12
ORG 0x00
movwf OSCCAL
bcf OSCCAL,FOSC4
movlw b'11111110'
TRIS GPIO
main_loop
SW_OFF
bcf GPIO,0
call DLY_1S
一部省略-------------------------
call DLY_1S
SW_ON
bsf GPIO,0
call DLY_1S
goto main_loop
DLY_1S
movlw d'100'
movwf CNT3
DLY_100
movlw d'100'
movwf CNT1
DLP1
movlw d'200'
movwf CNT2
DLP2
BTFSC GPIO,1
GOTO SW_ON
decfsz CNT2,f
goto DLP2
decfsz CNT1,f
goto DLP1
decfsz CNT3,f
goto DLY_100
retlw 0
END
0062774ワット発電中さん
垢版 |
2017/01/19(木) 22:35:31.37ID:yMPQGpiJ
改行が多いと怒られた為に見づらくなりました。

別基板では、電源とLEDとスイッチだけでプルアップ等はしていません。
問題でしょうか?
0063774ワット発電中さん
垢版 |
2017/01/19(木) 22:43:15.21ID:kAftOMkY
>>62
あー、そりゃチャタってんじゃないの?スイッチだけで後はオープンなら現状スイッチ見てるGPIOはどっちか分からんよね?
それを頻繁にスイッチが押されてると勘違いしてる可能性があると思うけど。
そんな事は起きてないって言える?

とアセンブラ見てないけど答えてみる。
説明だと頻繁に押しても押さなくてもLEDの見える部分の挙動は変わらんのよね?
0065774ワット発電中さん
垢版 |
2017/01/19(木) 22:49:03.21ID:yMPQGpiJ
>>63 ありがとうございます。
最初、GP3をスイッチとした時にチャタっているようだったのでGP1に変更した所
希望通りに動くようになりました(PICkit3に接続時)

別基板では。LEDが点灯したままです。
0066774ワット発電中さん
垢版 |
2017/01/19(木) 22:55:13.10ID:kAftOMkY
>>64
スイッチが押されれば挙動が変わるわけで、どうやってもスイッチを押されない挙動を試してみては?
スイッチが浮いてるとのことなので、スイッチの足から無理やりグランドか電源(OFFになる方)に繋いで確認するとか。

後はアセンブラ読める人に任せたいんだけど連続してスイッチを押したら、点灯時間リセットされたりしない?
いつまでも点灯し続ける様になってるのってそこが原因じゃない?

>>65
GP3っていやな気がしたので調べたらMCLRピンじゃないの。
書き込みピンにノイズ入れたらそりゃ誤作動起きやすいよ…
0067774ワット発電中さん
垢版 |
2017/01/19(木) 22:56:10.13ID:yMPQGpiJ
空いているピンを全て+5Vに接続してみたけど変化無しです。
電源が+5.2Vは問題でしょうか?
0068774ワット発電中さん
垢版 |
2017/01/19(木) 23:01:27.09ID:yMPQGpiJ
スイッチのGP1ポートをVSSに接続したらLEDが点灯しないです。
5分後にLEDが10秒点灯すれば正常ですが・・・
0069774ワット発電中さん
垢版 |
2017/01/19(木) 23:05:11.19ID:yMPQGpiJ
5分後にLED点灯しました。
スイッチの配線が悪いのでしょうか?
GP1ポートと+5Vをショート挿せれば良いという考えは間違いなのでしょうか??
0070774ワット発電中さん
垢版 |
2017/01/19(木) 23:12:18.93ID:kAftOMkY
>>67
空きピンは出力設定でほうちでおk
電源は(データシート見てないけど)一応それくらいは許容できたはず。

>>68
>>69
だね、多分ソフトじゃない、ソフトで想定した流れ二つとも行けるって事は命令が正しく下されてないって事。
すごく簡単な説明をすると間違いじゃないけど、アナログ的な問題でどこからかノイズか何か拾ってる。
それがGP1を時々HIレベルにしてるせいでいつもスイッチが押されてるよーって反応を返してるだけみたいだね
0071774ワット発電中さん
垢版 |
2017/01/19(木) 23:22:05.53ID:yMPQGpiJ
解決したみたいです。
空きピンは放置しました。
スイッチのGP1とVSSを10KΩの抵抗で接続して
VDDとGP1をショートさせる事で希望通りの点灯となりました。
回路図を上手に示せれば簡単に解決出来たと思います、申し訳ないです。

ありがとうございました!!
0072774ワット発電中さん
垢版 |
2017/01/19(木) 23:37:05.45ID:kAftOMkY
>>71
解決しておめでとう、自分はアセンブラ関係全くダメなので、もし困ってる人がいたら助けてあげてほしいな。
それじゃあ、早めに寝るんだぜ。
0073774ワット発電中さん
垢版 |
2017/01/21(土) 02:58:27.00ID:bGm0WyRR
MachiKaniaを作りたく基板と部品を買いました。
PIC32MX270F256の書きこみが出来ません。
PICKIT2も買いましたがpic32prog.exeが見つからず書き込めません。
LPC1114FN28も購入しましたPIC32_Bootloaders_v2012_10_05.zipもPIC32UBL.exe もみつかりません。

PIC32MX270F256に簡単に書きこむ方法をお教え下さい。
0074774ワット発電中さん
垢版 |
2017/01/21(土) 04:22:25.09ID:yQ4wWrm1
pic32prog.exeは、本家のリンクからgithubへ行けばダウンロードできます。
LPC1114FN28の後は、何のことかわかりません。
参考にしているサイトのリンクを書いてください。
英数字は半角で書いて。
0075774ワット発電中さん
垢版 |
2017/01/21(土) 04:41:08.84ID:zxNIXBX7
>>73
pic32prog.exeで検索すれば先頭に出てくるじゃん。
悪いこと言わないから、書き込み済みのを分けてもらうか、PICkit3買え。
だいたい、なんでいまどきわざわざPICkit2買うのかわからん。
0076774ワット発電中さん
垢版 |
2017/01/21(土) 07:34:50.25ID:lr9Ye/dF
すみません
PORT入力が変化するとSLEEPから復帰できますが、
この入力本数が多く取れるもの、あるいは増やす方法ないでしょうか?
40pinの16F1939でも、PORTBのたった8本しかなく・・・
0077774ワット発電中さん
垢版 |
2017/01/21(土) 09:00:30.25ID:TQbp1IM0
>>76
そういうPICがあるなら俺も知りたい。

なければ外部回路かな。
MicrochipのI/Oエキスパンダ―でもできそう。
ttp://ww1.microchip.com/downloads/en/DeviceDoc/20001952C.pdf

数ビットぐらいの増設をシンプルにやっつけるならEX-ORとRC遅延回路+ダイオードORとか。
(構造はシンプルだけど、配線は全然シンプルにならないな…)
0080774ワット発電中さん
垢版 |
2017/01/21(土) 13:15:03.34ID:bGm0WyRR
>>74
回答ありがとうございます。

>pic32prog.exeは、本家のリンクからgithubへ行けばダウンロードできます。
IDの取得が難しいです。

参考にしているサイトのリンクを書いてください。
http://psp.dip.jp/web/log/PIC32MX.html

>>75
回答ありがとうございます。

pic32prog.exeで検索すれば先頭に出てくるじゃん。
IDの取得が難しいです。

>悪いこと言わないから、書き込み済みのを分けてもらうか、PICkit3買え。
基板を買う時に一緒でないと購入出来ないみたいです。

>だいたい、なんでいまどきわざわざPICkit2買うのかわからん。
PICkit3でPIC32MX270F256の書きこみは難しいようです。

お手数ですがよろしくお願いします。
008174
垢版 |
2017/01/21(土) 14:19:01.74ID:ucZNYb8n
>>80
お前さあ、わざと英数字を2バイト文字で書いてんのか?
URLへも直で行けないし、サイト内で該当部分検索するのに面倒なんだよ。
もうお前の相手はしない。
0082774ワット発電中さん
垢版 |
2017/01/21(土) 14:50:41.84ID:aH+tgFDT
>>80
>IDの取得が難しいです。
IDなんか必要ない。

http://psp.dip.jp/web/log/PIC32MX.html
>アクセスできない。

基板を買う時に一緒でないと購入出来ないみたいです。
>PICkit3は、誰でも単体で購入可能。

>PICkit3でPIC32MX270F256の書きこみは難しいようです。
PICkit3で書き込むより難しい方法は、この世に存在しない。

あなたにはたぶん無理だから、素直に書き込み済みのPICを買った方がいい。
0083774ワット発電中さん
垢版 |
2017/01/21(土) 14:58:14.21ID:TQbp1IM0
>>80
↑のようにレス番号を示すアンカーを打つ時も半角でないと(少なくともWEBブラウザで閲覧する際は)
リンクが張られません。
基本的には、URLや部品名の英数記号は半角で打つ方が読み手にやさしくなります。

> >pic32prog.exeは、本家のリンクからgithubへ行けばダウンロードできます。
> IDの取得が難しいです。

あなたが参考にされているページに掲載されているリンク先
https://github.com/sergev/pic32prog
ここからID取得なしでダウンロードできるようですが。(それとも過去にID登録してて、自動ログインとかになってるのかな?)
0084774ワット発電中さん
垢版 |
2017/01/21(土) 15:07:29.34ID:TQbp1IM0
>>82
まあまあ。

> 基板を買う時に一緒でないと購入出来ないみたいです。
> >PICkit3は、誰でも単体で購入可能。

たぶん>>80が言ってるのは書き込み済みのチップのことで、MachiKania専用基板と
同時購入でないと、チップ単体では買えないってことでしょう。

ところで、>>82さん。全角不等号を自分の発言の行頭につけておられますけど、
少なくとも半角の不等号は、慣習的に元発言の引用に使われていると思います。
0085774ワット発電中さん
垢版 |
2017/01/21(土) 15:10:35.57ID:TQbp1IM0
んー。
http://psp.dip.jp/web/log/PIC32MX.html
↑ここって、俺の環境だと、一番最初は404エラーでアクセスできなかったのに、
そのあとは、普通にできてる。

>>82さんが見たときも、そのアクセスできないタイミングだったんだろか。
0086774ワット発電中さん
垢版 |
2017/01/21(土) 15:46:35.49ID:KdhT53zg
>たぶん>>80が言ってるのは書き込み済みのチップのことで、MachiKania専用基板と
>同時購入でないと、チップ単体では買えないってことでしょう。
http://store.shopping.yahoo.co.jp/orangepico/z2cj9r7ijp.html

なんかもう、PICの質問ちゅうよりは、「インターネットの基本講座」みたいだな。
>>80を見て思うのは、初心者ほど勝手な思い込みが激しく、
そのせいで深みにはまっていく、という現実だな。
0087774ワット発電中さん
垢版 |
2017/01/21(土) 15:59:12.94ID:TQbp1IM0
>>86
> >>80を見て思うのは、初心者ほど勝手な思い込みが激しく、
> そのせいで深みにはまっていく、という現実だな。

あと「質問において初心者ほどよく情報を後出しにする」と言われます。
これって
・何が必要な情報かがわからない。
・かといっていろいろ書いたら長文ウザイと言われる。
って要素もあるかと思います。聞き出すことも必要ですね。
0088774ワット発電中さん
垢版 |
2017/01/21(土) 16:19:11.70ID:mBgqfeHx
MachiKaniaのサイトを見てみたけど、
あれだけ丁寧に書かれているのに出来ない場合、
そういう人への対応は、このスレの範疇を超えてると思うね。
その上、>>80を見る限り、他人の意見を受け入れる気は無さそうだ。
0091774ワット発電中さん
垢版 |
2017/01/21(土) 22:26:54.11ID:bGm0WyRR
73です。
無理だという事がわかりました。
親切な回答頂きました皆様ありがとうございました。
一部の方の蔑んだ回答にはがっかりしました。
0092774ワット発電中さん
垢版 |
2017/01/21(土) 22:34:44.72ID:MxESqpVS
>>91
それは残念でしたね。マイコンも、最近はいろいろと難しいですよね。

ところで、英数字を全角で書いていらっしゃるのには、
何か理由でもあるのでしょうか?

全角の英数字になれていないので、聞いてみたいと思いました。
よろしくお願いします。
0093774ワット発電中さん
垢版 |
2017/01/21(土) 22:42:44.07ID:sj4Tdcdd
>>91
何がどう無理なのかな?
わざわざMachiKaniaのサイトやら、Githubやら、リンク先やらまで行って、
調べて回答した俺らの方が、よっぽどがっかりだわ。
0094774ワット発電中さん
垢版 |
2017/01/21(土) 22:48:18.49ID:B/wikFFh
>>91
なるほど、めずらしいパターンの荒らしだった。
おかげで、VELUDDA作ろうと思って、だいぶ前にパーツそろえてあったの思い出したぜ。
ありがとう。
0095774ワット発電中さん
垢版 |
2017/01/22(日) 16:22:22.28ID:G66/gOo5
PIC10F322をSLEEPさせます。
外部からの入力なしに、一定時間後に、
自力で通常稼働に戻させるにはどうしたらいいですか?
自分なりに調べてはみたんですが、
ボタンを押すとかの、外部からの入力で起こす方法しか見つけられません。
よろしくお願いします。
009895
垢版 |
2017/01/22(日) 19:45:37.91ID:SiJtOS5C
ありがとうございます。

>>96
時間が自由にならないですが、WDTによる復帰は使えそうですね。
AD変換の話は良く分かりません。

>>97
http://ww1.microchip.com/downloads/en/DeviceDoc/40001585D.pdf
p94のNoteやp100の18.1.6には、ダメそうなことが書いてありますが、
何か方法をご存知でしたら、教えてください。
0099774ワット発電中さん
垢版 |
2017/01/22(日) 20:05:00.75ID:Oj4TfZ1O
>>98
AD変換は変換用のクロックをシステムクロック(FOSC)ではなく、独自のFRCにするとスリープ中に
AD変換して終了時にスリープから復帰出来るようになってます。スリープ時にAD変換することにより
動作ノイズの影響を減らす為らしい。まあ時間も1〜6usと個体差も大きく時間の可変も出来ないから
他の用途には出来ませんね。
他にもNCOモジュールならクロック源をHFINTOSCに指定すればスリープ中も動作して割り込みで
スリープから復帰出来るみたいですが、こちらも最長で60ms程なので用途には合わないでしょう
010098
垢版 |
2017/01/22(日) 20:43:30.86ID:3H4FBIXs
>>99
ありがとうございます。
どちらも、SLEEPから復帰はするが、今回の目的には使えない。
という理解でよろしいでしょうか?
0102100
垢版 |
2017/01/22(日) 21:17:37.70ID:cON4lW6l
>>101
曖昧な質問で、大変ご迷惑をおかけしました。
後出しで失礼とは存じますが、
外部からの割り込みを使用しないで、
あらかじめ設定した時間が経過したのちに、
SLEEPから復帰させるのが目的です。
時間は数秒から、長くて30分程度を想定しています。
よろしくお願いします。
0105774ワット発電中さん
垢版 |
2017/01/22(日) 22:55:47.45ID:VS0QA1mi
>>102
p48を見ると、そこそこいろんな時間が選べるから、
起きたらSLEEPを適当に繰り返して、必要な時間にすればいいんじゃない?
0106774ワット発電中さん
垢版 |
2017/01/22(日) 23:37:04.20ID:TQqw26yh
「目的に沿ってない」と質問者が書いたけど、
回答者はその目的を知らないように見えたけど?

>外部からの割り込みを使用しないで、
>あらかじめ設定した時間が経過したのちに、
>SLEEPから復帰させるのが目的です。
>時間は数秒から、長くて30分程度を想定しています。

消費電力を低減したいのであれば、
30分SLEEPし続けさせなくても目的は達成できる。
すでに回答が出ているとおり、
数秒のSLEEPから何回も起き上がりながら、
目的の時間までSLEEPを繰り返せばいい。
SLEEPスリープし続けるのと殆ど消費電力は変わらない。

一般に、質問者の想定は回答者の想定とは異なる。
その認識が違うという事を理解しないと、
双方のフラストレーションが溜まるばかり。
0107774ワット発電中さん
垢版 |
2017/01/22(日) 23:55:33.65ID:ZRy6Gh16
まあ、でもあんた、>>101を見る限り、品性が疑われるよね。
で、>>106は完全な後出しで、>>105の後に良くそれ書いたな、って感じだ。
笑える。
0108774ワット発電中さん
垢版 |
2017/01/23(月) 00:02:09.26ID:Zd10jUOW
>>104
親切ではないが、ヒントにはなっている。
意外と良い教師である。

>>105
面白味は無いが、的確な回答。

>>ID:TQqw26yh
クソの役にも立たないゴミレス。
>すでに回答が出ているとおり、
弁解がましくて哀れ。
0110774ワット発電中さん
垢版 |
2017/01/23(月) 00:42:26.84ID:0QRZ9DGr
SLEEPを使って消費電力を減らすときにはWDTを使うと
劇的に消費電力を減らすことができます。
割り込みがない10Fシリースでも繰り返すことで長い時間
SLEEPさせたプログラムを自分でも使用しています。
(コンパイル時にClear bssオプションをはずすことと
 起動時のリセット要因で判断して変数の初期化する必要がある)
0111774ワット発電中さん
垢版 |
2017/01/23(月) 01:40:31.23ID:6xniVmLq
>>106
何か言ってること変だよ。
SLEEPでなくてBOOSTだったとしても、
「繰り返し行って時間を調節する。」
という回答になってたはず。
つまり、省電力はたまたま結果として目的だと言えるのであって、
逆に電力の浪費が目的だったとしても回答そのものに差はない。
わざわざそこに食いつくアンタの書いた>>101には、悪意しか見えない。
自分自身の悪意をコントロールできないフラストレーションを
外にまき散らしながら生きる人は迷惑。
0113たけぴょん
垢版 |
2017/01/23(月) 13:00:48.55ID:0tSyma+S
「MachiKania」の製作をされている >>73 さん へ。

http://jikken.jp/MachiKania/pic32wm.htm
をご覧の上(自分が行ったもろもろを記載しています)。
http://8130.teacup.com/kenken/bbs
で質問してみて下さい(ケンケン様の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 のありかですが
http://www.ze.em-net.ne.jp/~kenken/tools/pic32prog.exe
簡単にダウンロード出来ますがPIC32MX270F256には書き込めません(バージョンが古い?)。

https://github.com/sergev/pic32prog/raw/master/pic32prog.exe
githubの最新と思われるもの直接リンク。
自分の環境ではログインを求められ(求めらない場合は反応なし)ますがネットカフェのマシンではダウンロード出来ました
しかし、自分の環境では動作せず(ダンマリ)。

https://github.com/sergev/pic32prog/raw/e788d572ddeea63add8addf12a8f17d9b2099c5c/pic32prog.exe
インターネットアーカイブから紐解いてきたアドレス。

これだとPIC32MX270F256には書き込可能。
ただし、イレース(書き込み前のイレースは自動的に行われる)コマンドにないようです。
書き込みの一連(イレース、書き込みベリファイ)は正常に動作して「MachiKania」も正常に動作しています。

githubにしてもpic32progにしても使い方の問題なんでしょうけど誤魔化し、騙して使う事を模索している状態です。

「MachiKania」は、大変に良く出来たシステムで公開されているソフトだけでもそれなりに
遊べます。
諦めずに作っていただくよう希望します。
0114774ワット発電中さん
垢版 |
2017/01/23(月) 14:39:34.98ID:0nG5kzb2
PICkit2ではPIC32MXに書き込めないからpic32prog.exeを使う。
これから始めるのにPICkit2を買うことはない。
PICkit3の互換機は千円台で買える。

サイトの説明を読めば、PICkit3を使う前提で書いてあるのは明らか。
すでにPICkit2を持っている人がPICkit3を買わずに済むように、
pic32prog.exeの話が書いてある。

問題は、説明を読み、理解し、実行する能力の有無であって、
それが難しいならやめた方がいい。
安くて簡単に入手でき、子供でも扱えるゲーム機はいくらでもある。

>>113
>自分のように 「MPLAB X」がインストールできない動作しないという環境もあるのです。
>OSの問題、環境の問題いろいろあるようです。
それ、詳しく教えて。
どういう環境なのか知りたい。
0115774ワット発電中さん
垢版 |
2017/01/23(月) 20:20:23.65ID:1xk6dHtq
全角廚しね
0118774ワット発電中さん
垢版 |
2017/01/24(火) 03:43:22.23ID:lGuQ0imh
ユーザー名に全角文字があると動かないってのにはまって時間とカネを盛大に無駄にした
せめてこのくらいはMPLABのFAQに載せておきやがれ
0119774ワット発電中さん
垢版 |
2017/01/24(火) 04:05:02.08ID:qM8HCPXv
それ、MPLABに限ったことじゃない。
システムや開発環境に、不用意に全角文字を用いない方が良い。

「MPLAB 起動しない」
で検索すりゃ0.3秒で解決策へのリンクが表示されるけどね。

その程度の人でもマイコンを使える。
いい世の中になったってことだね。
0120774ワット発電中さん
垢版 |
2017/01/24(火) 04:09:04.21ID:EyT1wWPn
>>118
トラブルの原因は自分の無知なのに、それを認めようとしない。
そういうあなたのスタンスそのものが、無駄を呼び込んだの。
つまり、自業自得。
0121774ワット発電中さん
垢版 |
2017/01/24(火) 04:24:29.77ID:lGuQ0imh
勝手なこと言ってくれる
10年少し前に本の解説見ながらやっての話なんだよな
0122774ワット発電中さん
垢版 |
2017/01/24(火) 05:34:01.48ID:dOIouHNJ
それはアンタの勝手で、何の自慢にもならない。
むしろ、情報収集能力の欠如は無能さの要因の一つ。
0123774ワット発電中さん
垢版 |
2017/01/24(火) 08:16:25.97ID:9PJRL7mR
Unicodeベースなら問題無いのだが、WindowsがSJISなせいでそういう問題が起こる。
0124774ワット発電中さん
垢版 |
2017/01/24(火) 09:07:45.09ID:rqtjs0O8
ソフト開発者が2バイト文字コードに考慮しないからそうなる
0125たけぴょん
垢版 |
2017/01/24(火) 12:37:27.44ID:BebaeT5/
一応書いておきます。
>>114
>これから始めるのにPICkit2を買うことはない。
その通りです。
投売りされている PICkit2も手だという事。
(実際はそんなに投げ売りでな無いですけどね。)
pic32progを使うのも簡単だという事。

>安くて簡単に入手でき、子供でも扱えるゲーム機はいくらでもある。
これを書いてしまったらおしまいでしょう。

>どういう環境なのか知りたい。
JERの関係らしいとだけ書いておきましょう。
全角文字の問題ではありません。

自分の場合は、12F 16F しか使ってないからX無しのMPLABで間に合ってます。
よって細かい事は調べてません。(オラクルと喧嘩するのも面倒。)
0126774ワット発電中さん
垢版 |
2017/01/24(火) 12:45:01.11ID:BebaeT5/
>>125
JERの関係らしいとだけ書いておきましょう。

JREの関係らしいとだけ書いておきましょう。
の間違えです。
0127774ワット発電中さん
垢版 |
2017/01/24(火) 13:48:14.99ID:ZRXokxKF
秋月で買っても、16bitのPICはそんなに高くないと思うけど、
なぜ8bitの16Fが、まだまだ使われるのでしょうか?
16bitのPICだと不都合なことがあるのかなぁ
0128774ワット発電中さん
垢版 |
2017/01/24(火) 14:19:45.16ID:oQBAI5rl
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となります。
SDI1をオシロで観察するとSlaveが0x12を出ているのですが、Masterには何故か0x00となっています。
何故なんだろう?
0129774ワット発電中さん
垢版 |
2017/01/24(火) 15:28:40.39ID:qWlO2XDg
>>125
>>113の人?
自分はPIC32MXを使う環境でもなく、使ったこともなく、
MPLAB Xがインストールすらできない問題について詳しく原因を調べてもない。
で、そのいい加減な知識で、これからPIC32MX使おうという人にアドバイスしてるわけ?

いずれにしても、初心者スレでPICkit2を進めるのは、明らかなミスリード。
サポートが終了している物を薦めるあなたには悪意を感じる。

それとも>>117の言う通りなの?
0130774ワット発電中さん
垢版 |
2017/01/24(火) 15:38:35.95ID:TGLrWjOX
>>127
チップの選択から始めて、1からプログラムを書くならそういうことになる。
16bitどころか、HarmonyとPIC32の組み合わせの何と効率の良いことか。
でも、既存の物を使いまわすとか、先人の作例を踏襲するとかなら、古いPICを使う。
8bitで十分な用途も依然としてたくさんある。
そういう過去の資産が豊富にあるので、古いPICの出番がなくなることは無い。
0131774ワット発電中さん
垢版 |
2017/01/24(火) 15:41:19.37ID:AkAYVg04
最近16F1827使い始めたんだけど割り込みが複雑になっててなんかよくわからないんで質問します

1)
IOCIFとIOCBFのクリアについてなんだけどこれどっちが正しいの

INTCONレジスタの IOCIF ビットはRead only で直接クリアすることはできませんが、セット原因となった
IOCAFまたはIOCBF レジスタを全てクリアすることでIOCIF ビットもクリアします。
http://sky.geocities.jp/home_iwamoto/page/P16F/P16_A09.htm

割り込み条件になると割り込み関数が実行されます。状態割り込み自体のフラグはIOCIFフラグになりますが、
これは自動的にはクリアされないので、割り込み関数内でクリア(0にすること)します。
 8個ある端子のどの端子が変化したかはIOCBFレジスタで確認できます。IOCBFも自動的にクリアしない
ので、割り込み関数無いでクリア(0にすること)する必要があります。
http://www.robotsfx.com/robot/robohow/RoboHow154/RoboHow154.html


2)
なんで二つもフラッグがあるんだろ
どう使いわければいいの
0133774ワット発電中さん
垢版 |
2017/01/24(火) 16:43:46.14ID:pOFeXO9y
>>131
基本、>>132の通り。
最初の引用はピン数の違いで1827にはIOCAFが無いことを除けば合ってる。
2番目の引用はIOCIFのクリアの件がちょっと曖昧。

レジスタを1つずつチェックするの面倒だから、
IOCBFでいっぺんにわかるように用意したんじゃない?
0134774ワット発電中さん
垢版 |
2017/01/24(火) 16:44:56.47ID:pOFeXO9y
×IOCBFでいっぺんにわかるように用意したんじゃない?
○IOCIFでいっぺんにわかるように用意したんじゃない?
0138774ワット発電中さん
垢版 |
2017/01/24(火) 19:55:10.39ID:rQCbPhwQ
>>137
どうしても金に困ってるなら、サンプルもらえばタダだろ。
どうでもいい揚げ足取りは止めようぜ、ホントみっともない。
0139774ワット発電中さん
垢版 |
2017/01/24(火) 20:29:17.03ID:aw8CW685
価格について自分でレギュレーションかけて楽しんでいる人はいるだろな。
0142774ワット発電中さん
垢版 |
2017/01/24(火) 21:10:42.46ID:MpNEVV+k
>>138
揚げ足とり???

16bitの値段で32bitが買える
16bitが売れないのは高いから
同じ値段で比べるとショボいから
要するに16bitは糞
0143774ワット発電中さん
垢版 |
2017/01/24(火) 21:23:09.77ID:4hzrO4Bi
>16bitの値段で32bitが買える
そりゃね、いろいろあるから。
>16bitが売れないのは高いから
ソースどこ、脳内?
>同じ値段で比べるとショボいから
具体的にどぞ。
>要するに16bitは糞
どこの要点をつまんだのやらw
0147774ワット発電中さん
垢版 |
2017/01/24(火) 21:49:30.54ID:9l+aWVyl
>>145
それ、ぱっと見で、例えば、PIC32はADCが10ビット、PIC24は12ビットです。
何をどう比較しろというおつもり?
ダメだな、やり直し。

>16bitが売れないのは高いから
このソースはまだなの?
0151774ワット発電中さん
垢版 |
2017/01/24(火) 22:05:51.50ID:4O7kKBkw
>>ID:MpNEVV+k
同じ値段でPIC24の方が高性能な例を示しただけの徒労に終わりましたね。
ちなみに、扱いやすいSPDIP28pinで、ADC12bitなPIC32は1つしかありません。
一方で、16bitでは、PIC24だけでも11個、dsPIC入れたら大変な数です。
それだけ選択肢があるのです。

さて、
>16bitが売れないのは高いから
このソースはまだなの?
0153774ワット発電中さん
垢版 |
2017/01/24(火) 22:47:12.37ID:Qn3XIkar
>>152
たまたま、あなたの最初の比較例を見たら、
あら不思議、PIC24の方が高性能な項目がある!
それがADCだっただけですよ。
あなた、墓穴を掘りましたな。

それより、
>16bitが売れないのは高いから
このソースはまだなの?

それとも、その遠吠えで、もうお開きにする?
0154774ワット発電中さん
垢版 |
2017/01/24(火) 23:13:32.77ID:pGqVYo4O
PIC32は数値上では高性能かも知れないけど
何に使うかによっては性能を生かせないことが多いかもしれません
しかも、今までの使用実績もあるしそれほど高性能(数値上)
の必要がないのも事実かもしれません
自分も24FやdsPICは非常に良く出来ていると思っているし
普段使うのに十分な性能だと思うけど。
(消費電力の点ではもう少し何とかならんのか〜〜と思うことは
 あるけど)
0155774ワット発電中さん
垢版 |
2017/01/24(火) 23:51:12.26ID:0Rk62LgC
8ピンPICで消費電流とI/O本数の限界を極めようとすると
8bitしか選択肢ないんだよなー
14pinの24Fシリーズは待機電流も多いし
0156774ワット発電中さん
垢版 |
2017/01/25(水) 00:05:35.08ID:TrReYM5N
>>153
俺はあんたの方が分が悪いと思う
皆が皆ADC使うわけじゃないしな
作例もあまり見たことないわ
統計ソースはなくて、あくまで個人的な印象だけど
0158774ワット発電中さん
垢版 |
2017/01/25(水) 03:46:43.70ID:jPo5e6XN
>>156
>あくまで個人的な印象だけど
脳内情報だけを頼りに物を言ってる自覚はあるんだな。
その愚かさに気づけば、そこらの猿よりはましになれるのに。

ADCで一本取られた腹いせに、ADCそのものを否定したいようだね。
残念ながら、アンタが必要と思わなくても、ADCはすべてのPIC32に載ってるよ。
0159774ワット発電中さん
垢版 |
2017/01/25(水) 03:51:52.30ID:wSIL7mOg
24Fは変態アーキテクチャじゃないから安心
16Fはマトモなスタックもないのにローカル変数をよく実装できるもんだ
0160774ワット発電中さん
垢版 |
2017/01/25(水) 04:01:43.37ID:hCL8RwuQ
確かにADCのbit数もポイントだけど、プログラムを組むのに16bitのほうが楽ではない?
1回作ってしまえば使い回しで行けるし。クロックも早いので処理も速い。
特にUARTで960kbpsが使えるのは嬉しい。intが16bitなので、65535まで扱えるし、
メモリーも多い。CRCもあるし、UARTも2chあるし、ICSPピンが3カ所選べれるし
0164774ワット発電中さん
垢版 |
2017/01/25(水) 07:12:25.19ID:TrReYM5N
>>158
> ADCで一本取られた腹いせに、ADCそのものを否定したいようだね。
誰がそんなこと言ってんだよ
人のこと猿呼ばわりする前に日本語勉強しとけ
それとも顔真っ赤で冷静さ失っちゃってんのか?
0165774ワット発電中さん
垢版 |
2017/01/25(水) 07:21:29.68ID:bsaJsBrM
>>160
クロックが速い?
別に速くないでしょ

処理が8bitに対して速いのはクロックが速いからじゃない
クロックあたりの命令数も命令あたりの処理量も16bitの方が上だから

ていうか、PICの8bitが遅すぎる
16bitも他のメーカーに比べたら遅い
0166774ワット発電中さん
垢版 |
2017/01/25(水) 07:46:02.02ID:laalPaX2
PIC32MXがある今ではPIC24はnot recommend for new design 状態
0168128
垢版 |
2017/01/25(水) 11:29:53.41ID:f9hscvZX
>>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になってくれない。
0170774ワット発電中さん
垢版 |
2017/01/25(水) 12:22:32.27ID:laalPaX2
4ビットの人に言われても…
0173774ワット発電中さん
垢版 |
2017/01/25(水) 14:23:08.54ID:8TEfLvNe
>>172
そうやって並べてみると
そもそも、言葉は汚いし、書いてることに論理性のかけらも無いし
相手しちゃダメな人だったなw
0174natu
垢版 |
2017/01/25(水) 15:28:21.20ID:zULbvqaH
>>168
それでマスター側で受けられそうな気がしますね。
試しにマスター側の割込み内先頭でSPIの1クロック分Delayしてみては如何でしょう?
0175774ワット発電中さん
垢版 |
2017/01/25(水) 16:42:16.93ID:RJ7ammhR
>>172
> >ADCなんて誰も使わないから
だからそんなこと誰が書いてるの?
引用記号であたかもそんな発言があるように見せかけて、あんたやり方が汚いね
0177774ワット発電中さん
垢版 |
2017/01/25(水) 17:06:13.81ID:f9hscvZX
>>176
FF来ました。
オシロで見ると波形でてるが???
もう少し配線確認してみます。
0178774ワット発電中さん
垢版 |
2017/01/25(水) 17:08:42.48ID:f9hscvZX
>>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;
}
}
0179774ワット発電中さん
垢版 |
2017/01/25(水) 17:23:27.01ID:jc/n7fVD
>>175
>PIC32はADCが10ビット、PIC24は12ビットです。
のあとで、
>皆が皆ADC使うわけじゃないしな
>作例もあまり見たことないわ
と逃げるやり方が汚いから強調されたんでしょ。
俺が見ても「あ、屁理屈でかわしたな。」って思った。
最初からフェアなら誰もいじらないよ。
0181774ワット発電中さん
垢版 |
2017/01/25(水) 18:01:53.86ID:lG4G8hVv
https://goo.gl/Pj2ckp
この記事本当??
めっちゃショック。。
0183natu
垢版 |
2017/01/25(水) 18:55:08.10ID:zULbvqaH
>>178
うーん…解らんなぁー
マスター(SSP1)のSDOとSDIをショートすると、マスター側へ0x34が到着するだろうか?
0184774ワット発電中さん
垢版 |
2017/01/25(水) 19:57:30.31ID:f9hscvZX
>>182
レスありがとう。

RC3はSCK1のOUT設定なのでアナログ入力禁止は不要と思っています。
アナログ入力禁止はデジタル入力割り当て時と思います。

TRISCbits.RC3 = 0; // RC3: SCK1(OUT)

また、SlaveのSCK2(IN)に入力されてMasterのデータを受信できているのでRC3は稼動している思います。
0185774ワット発電中さん
垢版 |
2017/01/25(水) 19:59:18.00ID:f9hscvZX
>>183
ありがとうございます。
それ明日やってみます。

それでも解決しない場合はMSSP1をスレーブでMSSP2をマスターに入れ替えてやってみます。
0186774ワット発電中さん
垢版 |
2017/01/25(水) 22:07:07.10ID:0dfPhnYS
PIC32MXの一部はパイプライン利用で高速化している
使わなければ30MHzで命令読込動作
16bitデバイスは1命令の場合にクロック÷2の命令読み込み
(70MIPS 16bit除く)

つまり
割込をマイクロ秒でやる制御対象の場合
32bitは使い勝手悪過ぎ

16bitは使いやすい
ARMも似たような仕様多いけど
命令読込が100MHzとかで速いから
レジスタ退避の時間のみを考慮してやればいい
PIC32はウェイトバリバリ入りまくり

どっちかっていうと変態はPIC32じゃないのかな?
上はスーツで下はブリーフみたいな
変態紳士って感じするねPIC32は、、
0190774ワット発電中さん
垢版 |
2017/01/26(木) 03:42:44.94ID:65QtHP8g
しかし、クロックが速いのは何かと助かるよね。
へたくそなプログラムでも高速に走るし。

少ないメモリ、遅いクロックで悩むのは、もう終わりにしませんか?
PIC24FVなら、
・3.3Vでも5V電源でも使える
・DIP〜QFPまであり、使いやすいパッケージ。
・クロック用にPLL入ってる
・EEPROM内蔵
・UART 3ch
・割り込みベクトルがあるので、割り込み要因評価が不要
0191774ワット発電中さん
垢版 |
2017/01/26(木) 04:57:59.91ID:gMe9ephh
PIC32ついでに質問

XC32でハードウェア除算器使う場合って
どうやるん?
整数同士の割り算なんだけど普通に"/"使うと時間掛かって使い物になりません
XC32にビルトイン関数あるの?
見つけられない
0192774ワット発電中さん
垢版 |
2017/01/26(木) 07:09:37.30ID:qf2ElDd4
判断は時間だけか。アセンブラのコード見たりしないのか?
0196774ワット発電中さん
垢版 |
2017/01/26(木) 09:58:21.12ID:KAVOJH5Z
>>191
普通にコンパイラが勝手に使うでしょ

除算はスーパーコンピューターでも遅いから、パフォーマンスが問題になるようなら、なるべく使わないですむようにアルゴリズムをかえる
0197774ワット発電中さん
垢版 |
2017/01/26(木) 10:41:02.44ID:gxO+IVhM
>>183
マスターのSDI(RC4)とSDO(RC5)を接続してみました。
結果
From Slave Data = 00h
From Master Data = 00h
です。
残念ながら0x34にはなりませんでした。
スレーブのSDI(RD1)はオープンですが、0x00となりました。
0198774ワット発電中さん
垢版 |
2017/01/26(木) 11:03:06.80ID:u1uIHuot
>>189
Lチカを馬鹿にしちゃ〜〜〜いけねいよ。
8PIN PICでLED20個を16階調で点灯させるくらいは
4MHzでもできるよ。
プログラム能力があればだけどね・・・・・
0199774ワット発電中さん
垢版 |
2017/01/26(木) 11:10:07.04ID:KAVOJH5Z
>>193に対してずいぶんとレベルが下がったな
でも8pinマイコンだと20個個別に16階調は外部回路必須だよね
どんな回路がシンプル?
0200natu
垢版 |
2017/01/26(木) 11:55:30.98ID:v0iGtUjX
>>197
SCKは、予定通りの1MHzになっていますか?
0201774ワット発電中さん
垢版 |
2017/01/26(木) 12:26:04.36ID:YVLL11E2
>>197
SDIはシュミット入力だからVIHに注意が必要
SDI1の"H"レベルが足りているか
0xFFが受信できたときの電圧レベル
あたりが気になる
0202774ワット発電中さん
垢版 |
2017/01/26(木) 12:31:11.75ID:gxO+IVhM
>>200
オシロで確認しました。
SCKは1MHzでSDOはSCKの立ち上がりで確定しています。
0x34です。

SCK ~~~|_|~|_|~|_|~|_|~|_|~|_|~|_|~|_|~~~~~

SDO _________|~~~~~~~|___|~~~|_____________

です。
0204774ワット発電中さん
垢版 |
2017/01/26(木) 13:05:51.10ID:KAVOJH5Z
>>198
素直に14pinで作った方が安くて小さくて簡単じゃない?
8pinの回路図が見たい
0205natu
垢版 |
2017/01/26(木) 13:32:22.08ID:v0iGtUjX
>>202
SDI1ピンをHigh固定で0xffを受信
SDI1ピンをSDO1ピンからロールバックすると0x00受信(SDO1から0x34の波形)
 
矛盾しているようで良く解らんけれど
 
SDO1から0xffを送信してロールバックすると、やはり0x00を受信するんだろうか?
0206774ワット発電中さん
垢版 |
2017/01/26(木) 13:58:47.57ID:8Ln8Hdnn
>>195
コミュ障乙
>>190はこう書いとる。
>PIC24FVなら、
>・3.3Vでも5V電源でも使える
あと、その程度のリンクは誰でも探せるから、わざわざ張らんでええわ。
0207774ワット発電中さん
垢版 |
2017/01/26(木) 15:42:15.54ID:gxO+IVhM
>>205
SDOから0xffでSDIにロールバックすると0x00でした。
SCKが出ている間はSDIはHをオシロで確認しました。
SDIをVddに接続すると0xffでGNDに接続で0x00です。
もうわけわからんです。
0208774ワット発電中さん
垢版 |
2017/01/26(木) 15:51:51.25ID:gxO+IVhM
関係ない話ですが、main()の中でSPIのテストをしてますが、
SPIテスト以降のコードに行くのを止めるために
while (1) ;
を挿入するとビルドが数十秒のところ6分くらい待たされます。
これって以降のコードに到達できないのを最適化か何かで考え込んでいるのでしょうか?
環境はMPLAB X IDE 3.51 + XC8 1.40です。
0210natu
垢版 |
2017/01/26(木) 18:18:34.77ID:v0iGtUjX
>>207
>>208
不思議な具合ですな。
208の環境で2,3行のmain()をコンパイルしてみた。
main()を抜けると、再びmain()へ戻ってくるニーモニックが作成されているみたい。
From Slave Data = XXh
From Master Data = XXh
この2行表示が繰り返されているんでしょうか。
PS.
while(1);をmain()の最後へ入れても、変化ありませんでした。
0211774ワット発電中さん
垢版 |
2017/01/26(木) 19:50:19.49ID:Iqq8Kn9a
>>206
ほんそれ。
PIC32には5Vで駆動できるのが無いけど、PIC24なら5.5Vがそろってる、
というのが結構大事なポイントなのに。
わざわざそこ隠して引用してる>>195は、いったい何を比較させようってんだかw
まあ、よく知らないんだろうね。
0212774ワット発電中さん
垢版 |
2017/01/26(木) 20:16:18.19ID:gxO+IVhM
>>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
でした。
0213774ワット発電中さん
垢版 |
2017/01/26(木) 20:17:07.29ID:gxO+IVhM
>>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秒にもなる。
0214774ワット発電中さん
垢版 |
2017/01/26(木) 20:27:45.12ID:9MVc4KOn
5Vだと青色とかフルカラーとかのLEDが直接チカらせられるよね
勿体無いことするなとか言われそうだけど
0215774ワット発電中さん
垢版 |
2017/01/26(木) 20:39:02.80ID:I/wFRtdm
>>212
抜粋じゃなくて、コンパイル可能な最小限のコードを出すこと。
行数オーバーで書き込めないなら、行を詰めて複文にしてもOK。

今まで出てきていない懸案事項、
(1) GIE/PIE関係の設定がない。
(2) 割り込み内で使う変数定義が不明。
(3) 割り込み関数(名)の記述が不明。 省略せずに書け。

やってみること。
割り込みを使わずに、データの授受を試すこと、
まずこれが問題を切り分けるポイントになる。
0216774ワット発電中さん
垢版 |
2017/01/26(木) 20:45:28.01ID:gxO+IVhM
>>215
承知しました。
明日、最小限のコードで再現後にアップします。
よろしくお願いします。
0219774ワット発電中さん
垢版 |
2017/01/26(木) 20:55:02.81ID:gxO+IVhM
色々あってMSSP1とMSSP2の入れ替えコードでの評価はやれてません。
ごめんなさい。
0220774ワット発電中さん
垢版 |
2017/01/26(木) 20:55:11.72ID:u1uIHuot
>>204
5ピンあれば外部回路なしにLED20個は接続できるし
16階調くらいならソフトPWMでも何とか表示できるよ
Charlieplexing方式使えば・・・
0221774ワット発電中さん
垢版 |
2017/01/26(木) 21:23:56.49ID:jMiU9EsM
>>220
方法そのものは、普通に使ってるが、
恥ずかしながら、名前知らんかったわ。
なんかうれしい、ありがとう。
0223774ワット発電中さん
垢版 |
2017/01/27(金) 08:47:32.85ID:AK4K9kdF
>>220
実際やってみると輝度ムラが出る
抵抗値調整すれば改善はある程度できるけど
0224774ワット発電中さん
垢版 |
2017/01/27(金) 09:51:46.23ID:2HCbM6ow
やったのか
どういうアプリケーション?
ゲームとか?
まさかLEDを光らせること自体が目的の回路?

多色LEDなんかは固体差で色が変わっちゃうよね
キャリブレーションしないと
当然ソフト的に
0225natu
垢版 |
2017/01/27(金) 09:58:57.61ID:E5w1jbCa
>>213
おー、こちらでもLITEモードだと50秒、PROだと1秒となりました。
原因は、不明ですが
while(1) NOP();
無意味な命令を突っ込んやるとLITEでも1秒で終わるみたい。
 
SPIの方は、解らんけれど…
0227774ワット発電中さん
垢版 |
2017/01/27(金) 13:01:13.49ID:2HCbM6ow
なんか色々とヤバイな

回路
複数ボタンを同時に押すとマズイ

ソフト
どこから突っ込んで良いかわからない

3回処理が走る理由
IOCBFnをクリアしてないから
intrの先頭でIOCBFnが立っていたら3回ともifの条件に当てはまる
0228774ワット発電中さん
垢版 |
2017/01/27(金) 13:01:18.39ID:lzXdItNb
>>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;
void 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);
}
0229774ワット発電中さん
垢版 |
2017/01/27(金) 13:04:29.18ID:lzXdItNb
>>228
結果です。
START!
From Slave Data = 00h
From Master Data = 34h
上記2行が10回繰り返されます。
mainの最後にwhile (1) ;を入れるとビルドが待たされるので別の記述にしました。
0230774ワット発電中さん
垢版 |
2017/01/27(金) 13:39:12.46ID:IQwg2iIw
まず黒丸が無いから全く読めないよねw
十字は非導通T字は導通と好意的に読んでも、SW関係なく常時全端子が導通で藁
0231774ワット発電中さん
垢版 |
2017/01/27(金) 14:03:57.06ID:PHwc+gc4
それぞれのスイッチにダイオード咬ますかしたほうがいいんじゃないの
0232774ワット発電中さん
垢版 |
2017/01/27(金) 14:29:16.28ID:0J6SU+VS
LFの付いたやつで工作されてる方に質問なのですが、実際何ができるものなんでしょう?
電源範囲が低すぎてイマイチピンと来なくて質問なのですが
赤外線LEDは浮かんだんですがそれ以外はさっぱり
0233774ワット発電中さん
垢版 |
2017/01/27(金) 15:00:33.64ID:UUngqIy0
Tの場合は黒丸を書かなくても良いと言う話があるのだが…
それとも直線に接続されずに無接続に見えるのか?
0234774ワット発電中さん
垢版 |
2017/01/27(金) 15:12:54.96ID:1tZ1BrTo
接続点に黒丸付けないなら、交差での非接続を明示するのが決まり。
T字の扱いなどはローカルルールだから仲間内に留めておけ。
0236natu
垢版 |
2017/01/27(金) 17:03:18.11ID:E5w1jbCa
>>228
手元にMSSPが2つ入ったPIC16F1829が有ったので暇に任せてSSP1とSSP2とを繋いでみました。
>>228のプログラムを辻褄合わせして(クロックは32/16=2MHz)動作させてみると10回とも0x12,0x34を受信しました。
うーん、デバイスのバグだろうか?
0238774ワット発電中さん
垢版 |
2017/01/27(金) 18:07:49.12ID:ZwoSw9Np
>>237
ある品種用に書かれたプログラムを使いたい品種に移植して動くようになるかは全部お前の責任。
石のせいなんかすんなボケ。
0239natu
垢版 |
2017/01/27(金) 18:16:50.83ID:E5w1jbCa
>>237
マスターからスレーブへは、到達しているのだからERRATAの内容を試してみては如何?
プログラムの最初の方で
#define _XTAL_FREQ 64000000
を入れておいてSSPxBUFを読む直前に
__delay_us(2);
を入れて試してみるみる。どうかな?
0241774ワット発電中さん
垢版 |
2017/01/27(金) 19:20:48.12ID:tta3qDBp
>>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);
}
0242774ワット発電中さん
垢版 |
2017/01/27(金) 19:20:52.20ID:AZmvu2za
>>239
2回やって受けられてないから、待ちの問題じゃないと思う

>>237
端子を単純なインプットにしてLOW HIGHとも正しく受けられるのかテスト
PIC18F46K22 が2個あれば交換してみる
別のマイコンから送信してみて、片方だけ受けられないのか調べる
スペックシートを見直す
エラッタを見直す
回路を見直す
0244774ワット発電中さん
垢版 |
2017/01/27(金) 20:01:19.94ID:lzXdItNb
>>239
レス、ありがとうございます。
次回実験できるのは週明けになりますが必ず試します。
0245774ワット発電中さん
垢版 |
2017/01/27(金) 20:01:55.16ID:lzXdItNb
>>241
レス、ありがとうございます。
次回実験できるのは週明けになりますが必ず試します。
0246774ワット発電中さん
垢版 |
2017/01/27(金) 20:05:16.12ID:lzXdItNb
>>242
エラッタの内容が理解できていない A(^^;)
翻訳サイトで日本語にしてもイミフ
教えてくれませんか?m(__)m

MasterのSDIをVDDに接続すれば0xffでGNDなら0x00です。
0247774ワット発電中さん
垢版 |
2017/01/27(金) 20:13:55.76ID:fIuiUQNd
ダイオードなんかかますわけないだろ
おまいら何いってんの
0248natu
垢版 |
2017/01/27(金) 21:15:02.10ID:k9Lig1rx
>>242
帰ってきた。お湯割り飲んでもた
 
>>242 >2回やって受けられてないから
なるほど、1回前が遅れてBUFに転送されてれば2〜10までは、その値になるな。
そうだと、これは謎だな。
マスター送信→マスター受信のループバックNG
マスター送信→スレーブ受信OK
スレーブ送信→マスター受信NG
スレーブの送信かマスターの受信が何らかの不具合だと思うんだけど…なんだろ?
0251774ワット発電中さん
垢版 |
2017/01/27(金) 23:17:31.31ID:nLKx7vFj
>>246
CKE=1 の場合はエラッタを回避してることになるので、
今回の場合はSPIのエラッタ、無関係です。
0252774ワット発電中さん
垢版 |
2017/01/27(金) 23:55:41.85ID:QxpSP6n6
>>232
CR2032リチウムコイン電池駆動回路作るときにLFは必須やな
タクトSWで起動して処理終わったらSleepするような用途に最適
通常のFだとPowerdown電流食いすぎて1年くらいで電池無くなる
0253774ワット発電中さん
垢版 |
2017/01/28(土) 12:22:18.52ID:63KPBnZp
先にGIEをONにしていろいろやってるのが気持ち悪いな
全部設定が終わってからやるもんじゃないの?
0255774ワット発電中さん
垢版 |
2017/01/29(日) 03:08:27.35ID:yrDMp7Lt
回路(回路図?)を直す気はないんかいw

本当にその回路でやってるならソフトを確認するまでもなく絶対動かない
0256774ワット発電中さん
垢版 |
2017/01/29(日) 08:54:27.15ID:c4usQPqw
回路を直さなくても同時押ししなければ動く
同時押しすると壊れるかもしれないけど

それよりソフトがひどい
0257774ワット発電中さん
垢版 |
2017/01/29(日) 09:31:22.45ID:wW+UpGVC
優秀な技術者が育っておるようじゃのう...
日本の未来は明るいわい!
ガーッハッハッハッ!!!
0259774ワット発電中さん
垢版 |
2017/01/29(日) 10:05:11.41ID:1HXEM7G1
一度に1pinだけ0出力して他を入力プルアップにすれば壊れないし2個押しまで判別可能。
3つ押すと判別不能。
0260774ワット発電中さん
垢版 |
2017/01/29(日) 13:14:20.69ID:aN3IQ+hr
>>254
回路図の接続点に黒丸●を付けてくれないと分かりにくい。
同時に押すことがあるなら出力保護のためにダイオードを入れた方が良い。
0261774ワット発電中さん
垢版 |
2017/01/29(日) 14:34:07.27ID:17G4exzt
>>260
上にも書いたがJISC0617でT接続は黒丸無しと有りの両方書かれている
おまいが見難いからと言って他人にまで自分の意見を書くなや
0263774ワット発電中さん
垢版 |
2017/01/29(日) 14:47:02.91ID:yrDMp7Lt
T字の導通非導通が混在していて読めないのは問題にしないのな
0264259
垢版 |
2017/01/29(日) 15:50:10.80ID:auo5YU2C
>>262
3つ以上は無理
この回路のスイッチを電卓の数字同様に1から9に
番号付けしてた場合124と125と145と245と1245の
同時押しが見分けられない
これらは全部上二本左二本が電気的に繋がり区別不能
0265774ワット発電中さん
垢版 |
2017/01/29(日) 16:20:05.92ID:17G4exzt
>>263
安価付けて直接批判しる
俺はその点はコメントしない
絵が下手だからと言って批判出来る程俺も絵が上手では無いからな
0266774ワット発電中さん
垢版 |
2017/01/29(日) 17:05:17.16ID:aN3IQ+hr
>>261,265
自意識過剰なんだね、絵が下手だなんて一言もいってないのにw
表現したいことは分かったから「回路図の接続点に黒丸●を付けてくれ」と頼んだのに。
一番下の段のSWの両足のT字接続は?

あたいは安価つけて批判しる(しるの過去形が分らない)w
0269774ワット発電中さん
垢版 |
2017/01/29(日) 17:21:48.01ID:yrDMp7Lt
少なくとも、P0とP6は直結していてSW3は検出できないと思うんだ…
0270774ワット発電中さん
垢版 |
2017/01/29(日) 17:31:37.76ID:aN3IQ+hr
>>268
黒丸Cだけど、自分は線を接続していないところの黒丸は書かない(右下のSWなど)

>>269
垂直の線を少し長めに描いてくれれば「黒丸無し」でも良かったのかな。
でもマトリックス接続にしたいのは十分に分る。
0271774ワット発電中さん
垢版 |
2017/01/29(日) 17:32:27.78ID:17G4exzt
>>268
おう、黒丸必要論が気になり過ぎて回路図よく見て無かったわ
俺はCの状態で黒丸の有無は別問題だと言う意見だ
一応書いておくが、俺はT結線には黒丸を付ける主義な
でもT結線の黒丸の有無は両方認められると言うだけ
0272774ワット発電中さん
垢版 |
2017/01/29(日) 17:36:08.69ID:yrDMp7Lt
黒丸CのSW1,SW2の右端、SW6,SW9の右端、SW3の両端は●不要だったはスマソ
脳内補正たのむ
0273774ワット発電中さん
垢版 |
2017/01/29(日) 17:36:58.24ID:gZmVxdRe
回路にしろソフトにしろ
何を参考にしたのか逆に聞きたい
0274774ワット発電中さん
垢版 |
2017/01/29(日) 17:39:42.54ID:17G4exzt
しかしながら、実際書いている回路図通りに結線している可能性もある訳だが…
特に最下段
0276774ワット発電中さん
垢版 |
2017/01/29(日) 20:02:59.16ID:jq+vFXx0
いろいろ会社渡り歩いてるが結線に黒丸打たなくていい会社なんか無いぞ
0277774ワット発電中さん
垢版 |
2017/01/29(日) 23:27:12.52ID:8qfGp/aS
正規のの図面には当然黒丸を付けるが、自分しか見ない資料には付けないな。
0279774ワット発電中さん
垢版 |
2017/01/30(月) 00:01:04.40ID:di9uYH01
CADが付けてくれるかどうか、って話じゃなくて、
付いていない回路が間違っているかそうでないか、って話だよね。

結論からいえば、間違いじゃないから、T字結線黒丸なしの回路図も受け入れる
しかないわけだけど。
0281774ワット発電中さん
垢版 |
2017/01/30(月) 00:59:32.19ID:6Z6ta9ug
>>279
そうじゃない。
んなこたあ人間がグダグダ考えることじゃねえだろ。
CADに任せて、人は他に頭使えよって話。
0282774ワット発電中さん
垢版 |
2017/01/30(月) 01:16:30.15ID:zwYPFC25
未来の自分にも伝わらんと意味ないから手書きメモだろうがちゃんと書くよ
0284774ワット発電中さん
垢版 |
2017/01/30(月) 10:19:47.48ID:Qmzag/c6
>>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; }
}

結果、変わらずでした。
0285774ワット発電中さん
垢版 |
2017/01/30(月) 11:41:49.16ID:Qmzag/c6
>>241
お待たせしました。

START!
From Slave Data = 00h
です。
From Master Data =は表示されません。

配線を確認します。
0286natu
垢版 |
2017/01/30(月) 11:54:25.34ID:mXLhFY3c
>>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しなさい。じゃないかな
0289774ワット発電中さん
垢版 |
2017/01/30(月) 13:04:45.25ID:Qmzag/c6
>>286
SS2(RB0)を有効にしてGNDに落としましたが変化なし。
マスターのSS1(RA5)も有効にしてGNDに落としましたが変化なし。

TRISBbits.RB0 = 1;
ANSELBbits.ANSB0 = 0;

TRISAbits.RA5 = 1;
ANSELAbits.ANSA5 = 0;
0290774ワット発電中さん
垢版 |
2017/01/30(月) 13:05:57.91ID:Qmzag/c6
>>288
やってみましたが、(SS1,SS2は元に戻しました)
START!
From Slave Data = 00h
で同じです。
0292774ワット発電中さん
垢版 |
2017/01/30(月) 13:49:41.19ID:lh73Fqz9
電気的に繋がっていなくても線が繋がって見えることがあるから
CADは繋がってることを明示するためにデフォルトで黒丸を付けてるだけ

接続するかしないかは人が考えて人がCADに指示するの
0293774ワット発電中さん
垢版 |
2017/01/30(月) 14:51:09.93ID:csKlnRVG
>>ID:lh73Fqz9
お前が、何に噛みついてんのかよくわからない。

手書きでやってるから、T字に黒丸付けようかな、付けるのよそうかなって、
その都度つまらねえこと考えるんだろ?
CADでやれば、デフォでそういう設定なら、勝手に全部付くだろって言ってるんだ。
十字だって、操作次第で明確に付くか付かないかのどちらか。

大事なのは、統一性と曖昧さの排除なの。
0294774ワット発電中さん
垢版 |
2017/01/30(月) 18:09:15.57ID:lh73Fqz9
>>293
何にも噛みついてないが?
CADのデフォ設定で接続する操作をすれば丸が付くのはわかったからwww
丸が大事なんだなw

もとの回路図みなよ、見た通り作ったら機能しないでしょ?
マトリックスを作る意図で書いたであろう回路図なのに、考えて書いたようには見えない
手書きでも電気CADでも注意して他人に伝わるように回路図書こうよって
0295774ワット発電中さん
垢版 |
2017/01/30(月) 18:10:04.01ID:lh73Fqz9
回路図書いた当人は何とも思ってないのがそれはそれで面白い
0298774ワット発電中さん
垢版 |
2017/01/30(月) 19:55:42.75ID:f2hS/pJk
>>296
>導通か非導通かはCADに任せろ
とか勘違いしてる奴を、放置できんだろうがっw
0299774ワット発電中さん
垢版 |
2017/01/30(月) 20:02:11.70ID:QgsFPHjm
CADで黒丸有り無しは意味が違うんだから区別しろよ
最低限必要なことに頭使えよ、馬鹿どもw
0302774ワット発電中さん
垢版 |
2017/01/30(月) 20:28:48.70ID:xeElx1V2
こんどは他人の回路図に噛みついてやがる。
手書きなんかしてるから黒丸を統一できないんだろ?
CADも使ったことない馬鹿は知らないだろうが、勝手に接続されるからCADに任せとけばいいんだ。
0304774ワット発電中さん
垢版 |
2017/01/30(月) 20:35:24.98ID:7weOBQC0
自動配線もシミュレータも通らないし
アホは放置してたら良い
0307774ワット発電中さん
垢版 |
2017/01/30(月) 20:42:42.66ID:Qmzag/c6
>>305
解説ありがとうございます。
初めてのPICで初めてのSPIなんでご迷惑をお掛けしております。
0309natu
垢版 |
2017/01/30(月) 21:53:58.18ID:TrnVOvbI
>>289
MSSP1と2との入替は、どうなりました?
MSSP2をマスターにしてSDO2とSDI2とを繋いでロールバックしてみたらどうなるかな
 
SSPENは、設定替えの時に一旦クリアして設定変更終了後にセットすると思っていたんだけど、
当方で動作させてみたPIC16F1829のMSSPだとSSPENセットのままで変更替え出来た…
PIC18F46Jの場合は、最後にセットしなくて良いんだろうか。どうなんだろう?
0312774ワット発電中さん
垢版 |
2017/01/31(火) 09:46:42.56ID:ZIqHsoBv
>>311
これです。
http://i.imgur.com/plbYg3V.jpg

秋月のPIC基板にICソケットの一部を使ってブレッドボード風に配線しています。
配線はジュンフロン線です。
電源はミニUSBを使ってます。

これからMSSP1とMSSP2の入れ替え作業を始めます。
0314774ワット発電中さん
垢版 |
2017/01/31(火) 10:20:43.94ID:ZIqHsoBv
>>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);
}
0315774ワット発電中さん
垢版 |
2017/01/31(火) 10:23:58.43ID:ZIqHsoBv
>>314
何故か変な結果になってしまった???

START!
From Master Data = 1Ah
From Slave Data = 00h
上記2行が続く(繰り返しの文章書くとアボーンされるので)
0316774ワット発電中さん
垢版 |
2017/01/31(火) 10:33:41.41ID:ZIqHsoBv
>>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に受信できていないようです。
0317774ワット発電中さん
垢版 |
2017/01/31(火) 12:14:04.83ID:yMPyw2TD
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]); }
0318774ワット発電中さん
垢版 |
2017/01/31(火) 12:19:34.31ID:yMPyw2TD
ああ
unsigned char RCbuf[100];

分かるとは思うけど
0319774ワット発電中さん
垢版 |
2017/01/31(火) 12:39:04.74ID:ZIqHsoBv
>>317
レスありがとう。
マスターとスレーブのSDIとSDOでリングにしてやってみました。
MSSP1のSDIのRC4はオール0で
MSSP2のSDIのRD1は先頭からの8バイトに1が出ていました。
0
0
0
1
1
1
0
1
0
以下、オール0です。
RC4は入力に設定してるけど何でかなぁ。
0321774ワット発電中さん
垢版 |
2017/01/31(火) 12:55:16.67ID:pxOh6k1N
>>312
画像どうも。

(1) 電源はUSB端子から?
5V確認。
(2) 過去に、電源逆接続してマイコンが加熱したとか、
入力ポートを間違えて出力にしていたとか
過電圧加えてしまったとかの
こころあたりはある?
(3) ルーペか拡大鏡を使ってマイコン端子のハンダ付けが浮いていないかどうか
確認。
怪しい場合はSDI1端子にハンダをあてて確実にする。
0322774ワット発電中さん
垢版 |
2017/01/31(火) 13:03:06.09ID:ZIqHsoBv
>>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がランダムに出ました。
入力生きてそう。
0324774ワット発電中さん
垢版 |
2017/01/31(火) 13:07:56.94ID:ZIqHsoBv
>>321
(1)デジタルテスターで5.17Vでした。(HIOKI3801)
(2)たぶんないと思います。
(3)これから観察します。
0325774ワット発電中さん
垢版 |
2017/01/31(火) 14:23:30.20ID:EGgwqAXz
ずっと見るだけ見てるけど
初PIC 対 初PICをやめて、経験のあるuCOMやコンバータの類 対 初PICにしてみるとか
もうやってるか。横から口はさんですまんかった
0326774ワット発電中さん
垢版 |
2017/01/31(火) 20:11:48.77ID:pJOeA9Pv
今までの情報からだと受け側の問題でしょ

もう一個買ってきたら?
同じマイコン
0327774ワット発電中さん
垢版 |
2017/01/31(火) 21:03:02.27ID:ZIqHsoBv
もう1つ買います。
元々UARTを二個使ってプロトコル変換してる最中でデバッグ用にSPIで別のPICと通信して、そちらのPICのUARTからPCへだそうとしてました。
MSSP2は問題ないようなのでなんとかなります。
みなさんありがとうございました。
0328natu
垢版 |
2017/01/31(火) 21:21:31.73ID:de88MAfe
>>327
MSSP2のループバックは正常なの?
0329774ワット発電中さん
垢版 |
2017/02/01(水) 04:45:42.02ID:pLTlN+zH
>>328
入力できているので大丈夫と思いましたが、試します。
今日は出張なので明日試します。
0330774ワット発電中さん
垢版 |
2017/02/03(金) 23:08:11.43ID:tKu9mN1r
MPLAB X IDE v.2.35使ってるんですけど、最近新しいNew Project を作ったとき、
日本語文字が文字化けするようになりました
昔作ったのは今でも文字化けしないんですけど、なにが原因でしょうか
0336774ワット発電中さん
垢版 |
2017/02/05(日) 00:48:35.23ID:9vg449PK
>>335
なるほど
しかし、最近も新しいも同じでないの
新しいnew yorkを作る, これおかしいかしら?
0339774ワット発電中さん
垢版 |
2017/02/05(日) 09:30:03.60ID:HzVMGnHL
>>336
最近と新しいが同じ?すまんが言ってる意味がわからない
なんか話が斜め方向に行ってると思うが、新しいNew Yorkを作るは
"New York"が一つの固有名詞(地名)なので、問題ないんじゃないか?
>>330のNew Projectは"New Project"って名前のプロジェクトなの?
だったらいいんじゃね?

>>338
上の"New York"という地名の場合と同じ
0340774ワット発電中さん
垢版 |
2017/02/05(日) 10:36:06.43ID:TnMc9YCS
PIC32MXで使われてるMIPSは大学の講義で使われてることが多いようだな
MIPSの生みの親の現スタンフォード大学の学長が書いた有名な本が教科書で使われてたりするようだ
0341774ワット発電中さん
垢版 |
2017/02/05(日) 14:26:19.15ID:GUyXfJNE
だから何?
0343774ワット発電中さん
垢版 |
2017/02/05(日) 14:57:21.30ID:aXwGdUOX
初めてのスレでする
話のレベルじゃない。
0344774ワット発電中さん
垢版 |
2017/02/05(日) 23:34:47.43ID:nP2DXCaI
傘が開かないbyブチクシ
0345natu
垢版 |
2017/02/06(月) 10:59:25.66ID:2zf3mYxH
>>329
もう諦めちゃったかな?
症状は、
>http://www.microchip.com/forums/m551030.aspx
これと同じだとすると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;
SSP1CON1bits.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にしてます。
0346natu
垢版 |
2017/02/06(月) 11:40:55.52ID:2zf3mYxH
>>345
SSP1BUF = 0x12; // スレーブデータセット
LATDbits.LATD3 = 0; //select
SSP2BUF = 0x34; // マスターデータセット
SSP1と2が反対でした。
0347774ワット発電中さん
垢版 |
2017/02/06(月) 20:56:38.18ID:wSTZJXEm
>>345
諦めかかっていましたが、またトライします。
実は、第3の通信として、高位割り込みタイマーでソフトウェアUARTを組んで9600bpsはできたのですが、
プロトコル変換の元の通信が半二重で送受信の切り替えが230.4Kbpsで1char時間という厳しい条件のため
ソフトウェアUARTは不安定でSPIに戻ります。
PIC18F46K22の秋月基板も揃えたのでMSSP2のみでなんとかやれそうです。
0349774ワット発電中さん
垢版 |
2017/02/07(火) 01:56:18.87ID:N90MXYAT
>>347
間の流れ全然追いかけてないんでピント外れだったらゴメンなんだけど
そもそもMSSPって送信バッファ/受信バッファなんてのは無くてバッファ一つだけだよね
送信モードで使う時はバッファの中身をシフトレジスタに転送して送信し、
受信モードで使う時はシフトレジスタがいっぱいになったらバッファに転送するという形

だから両方のバッファに送信しようとするデータをセットして、ほにゃらら通信が終わったら
お互い相手のデータが受信データとして入ってるという想定がそもそも間違ってるんじゃない?

MSSP1が送信モードで送信されたらSSP1BUFはクリアされて0
MSSP2は受信モードで動作して1から送信されたデータが入ってSSP2BUFはMSSP1から送られた0x34

とまっとうな動作をしてるように見えるが・・・
0353774ワット発電中さん
垢版 |
2017/02/07(火) 23:05:52.46ID:Fkx50yed
まずはその部品を使った作例を設計してヒットさせよう
同じものを作りたい人がたくさん要望出すから扱いを始めるはず
0354774ワット発電中さん
垢版 |
2017/02/08(水) 06:48:58.03ID:nTDOkhkN
なんとかduino にしかならない予感。
0356774ワット発電中さん
垢版 |
2017/02/08(水) 10:35:04.41ID:JGkuAJ5Y
25MHz(25MIPS)のMIPS32って32bit以上の演算を多用しないと、32MHz(16MIPS)のPIC24Fより
遅そうなイメージなんだけど。実際はどうなんだろ?
0357774ワット発電中さん
垢版 |
2017/02/08(水) 11:22:56.40ID:LHlfoZUo
そんな事はない
MIPSの方がずっと速い
1クロックで1命令実行出来るし、1命令の処理もPIC24より濃い
0358774ワット発電中さん
垢版 |
2017/02/08(水) 13:16:09.83ID:aF6d60Ux
ついつい PIC24F を基準に考えてしまう。
PIC24Fは、良く出来てると思うし。
0359774ワット発電中さん
垢版 |
2017/02/08(水) 17:11:10.03ID:JGkuAJ5Y
>>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とか)
0360774ワット発電中さん
垢版 |
2017/02/08(水) 19:21:56.09ID:Y0/XOGAa
RISCの場合はスタックにpush、popするという操作より
あらかじめSPを退避に使うメモリ分だけ引き算してまとめてスタックのメモリを確保して
レジスタ間接でdispを指定してロードストアする方が効率がいい場合が多い
レジスタ数も多いからね
0361774ワット発電中さん
垢版 |
2017/02/08(水) 19:36:19.73ID:Y0/XOGAa
全然違う話だがRISCには64bitのARMのように
16バイト(64bitレジスタ2個)単位でしかスタックに積めないCPUもある
0362774ワット発電中さん
垢版 |
2017/02/08(水) 23:11:34.94ID:sArdp7VU
>>359
普通に16bit CPUと32bit CPUの格の差がある

MIPSの弱点はRISCなので演算は基本レジスタ同士なくらい
32bitなのでメモリのコピーやクリアや比較も当然速い (1命令で32bit分出来るので)
レジスタ数が多いので、関数コール時もレジスタ経由でコールしやすいし、
一時変数もレジスタ上に保持しやすい
結果ロードやストアの回数が減る

PIC24は弱点が非常に多い
直接メモリ上の値を使って演算出来るメリットも、
アドレッシングの即値オフセットがMOVくらいしか使えないので、
結局MOVを使う場面が多い
即値のビット数も少なく16bitでADDやANDも出来ない

演算と同時のポインタ移動も実はあまり恩恵が無い
即値オフセットを指定できないので、結果レジスタをたくさん使ってしまう
ポインタ移動自体はループのアンロールで減らせるので、
クリティカルポイントはアンロールすればいい(コンパイラが勝手にやってくれたりする)
スタックへのプッシュポップは1回でまとめてポインタを移動する

ハーバードアーキテクチャでROMとRAMが別アドレス空間なのもマイナス
数値テーブルやswitchテーブルなどのテーブル参照に余分な命令が必要だし、
ROM上のデータは基本RAMにコピーしないと使えない
(データの位置でコードを分ける方法もあるにはあるが)

フラグ?
普通に自由にレジスタに結果を入れられた方が良いでしょ
その後の演算にも使えるし、高級言語との親和性も良いし
MIPSは比較&条件分岐が1命令だよ
0364774ワット発電中さん
垢版 |
2017/02/09(木) 05:09:15.17ID:E32DEK8y
RISCはコンパイラが使わないような命令を排除して
極力ハードウェアを簡素化して高クロックで回せるようにして性能を上げるCPU
どんなに高度な命令を実装してても、C言語でプログラムを組むなら
コンパイラが使ってくれなければ意味がない
そういう発想

MIPSはRISCプロセッサの中で特にパイプラインを乱さないことを一番考えられて作られたプロセッサ
MIPSはMicroprocessor Without Interlocked Pipeline Stageの頭文字をとったもので
日本語に訳せばパイプライン・ステージがインタロックしないマイクロプロセッサの意味
分岐の遅延スロットは他のプロセッサでは抹殺してたものをMIPSでは使えるようにしてるだけで
余計に時間がかかってるわけではない

ttp://www.cqpub.co.jp/interface/TechI/Vol39/app/mips_asm.pdf
ここにMIPSの命令セットについてわかりやすく書かれてる
0365774ワット発電中さん
垢版 |
2017/02/09(木) 05:17:37.51ID:E32DEK8y
PIC32MMはmicroAptivコアだが
PIC32MXで使われてるM4Kコアは3万5000ゲートでゲート数はARMのCortex-M3とあまり変わらない
M4Kコアは高機能な16bitCPUと同等か下手をするとそれ以下のゲート数で済むほど単純なコア
0368774ワット発電中さん
垢版 |
2017/02/09(木) 06:18:29.83ID:EQQZP1lc
>>364
その命令セットみても、どの辺が濃い命令なのかわからないんだけど?
というかRISCに濃い(複雑な)命令なんて無い。
比較分岐が1命令って言っても、出来るのってレジスタ同士が同じか違うかだけの判定でしょ?
==100とか>100の判定するなら、100をレジスタに入れてから判定・SLTIで結果をどこかのレジスタに入れてから判定
実質1命令で比較分岐出来るのってzeroレジスタとの比較で==0,!=0だけ
32bitのベタコピーやクリアはそりゃ速いだろうけど、だから最初に>>356 (32bit以上の演算を多用しないと)と書いてる

RISCのメリットって命令を単純化してパイプラインで並列に高速動作させる所なのに、>>351のPIC32MMの
max25MHz動作ってメリットを放棄してるとしか思えないんだよな。
まあ実際は性能当りの消費電力が少ないとか、dsPICと比較するとコアのチップ面積が小さいとかあるだろうけど
0369774ワット発電中さん
垢版 |
2017/02/09(木) 06:28:10.51ID:Sms3lQxs
理解する気が無いなら自分でベンチマーク作って比較してみれば
0371774ワット発電中さん
垢版 |
2017/02/09(木) 06:37:25.32ID:Sms3lQxs
パフォーマンス的には、全ての命令が2クロック以上ってだけで論外
0372774ワット発電中さん
垢版 |
2017/02/09(木) 07:37:57.18ID:EQQZP1lc
>>369
濃い命令の例を幾つか上げてくれるだけでいいんだけどな、わざわざ>>359にレスしたのだからさ
BEQとBNEは特定の条件でPIC24より濃いのはわかったから他ので頼むわ
0373774ワット発電中さん
垢版 |
2017/02/09(木) 07:39:43.99ID:TOW8DL3+
大昔の80系vs68系の対立を思い起こしたw
つまるところは適材適所なのに、なんと不毛なって感じ
0375774ワット発電中さん
垢版 |
2017/02/09(木) 07:54:36.40ID:Sms3lQxs
>>359 みたいに例を出せって?
たくさんありすぎて

ていうか、>>359の例でも
PIC24は6クロック、MIPSはNOPを入れても4クロック, NOPじゃなきゃ3クロック
0377774ワット発電中さん
垢版 |
2017/02/09(木) 10:47:21.26ID:MuYSdd4M
PIC24FのDeep-Sleep時の消費電流はMIPSやARMには真似できない
最低動作電圧も低いし電池で使うならPIC24F
0379774ワット発電中さん
垢版 |
2017/02/09(木) 23:22:17.05ID:lyM1mj6t
アーキテクチャ論争なんて犬も食わない
何を実現して何を得るかの方が大事
0382774ワット発電中さん
垢版 |
2017/02/10(金) 10:20:08.72ID:9N8q2mNL
>>375
クロック数の話では無く、1命令の内容の話のはずだけど?
じゃあさ 下のPIC24Fの命令をMIPSで置き換えてくれないかな、できればPIC32の場合とMIPSの場合で
(1) BTG LATA,#0
(2) MOV #0xFFF0,W0
 AND LATB
0383774ワット発電中さん
垢版 |
2017/02/10(金) 12:07:47.83ID:Fhw3aJzh
>できればPIC32の場合とMIPSの場合で
ここ、笑うところ?
0386774ワット発電中さん
垢版 |
2017/02/10(金) 19:24:26.96ID:8qkjucvx
超初心者のためのスレ
という感じがしないのはオレだけじゃないと思う。
0387774ワット発電中さん
垢版 |
2017/02/10(金) 22:09:03.78ID:goC29ypH
>>382
PIC32だとPORTAINV, PORTBCLRが使えるね

単体の命令だけでいえば、
PIC32はMADD,MADDU,MSUB,MSUBU,CLO,CLZあたりが宣伝文句になってる
あとは普通に32bit命令が使えることだね
"32bit演算"じゃなくても普通に使うから
フラットメモリなのも強み

PIC24に無い物としては即値16bitの演算
PIC24だと普通に使えるのは5bit

アドレッシングモードだと、
PIC24はオフセット番地が使えるのがMOVのみ
唯一の強みとも思えるメモリを直接使った演算が使えるところが実は非常に限られている
構造体のメンバにアクセスしたりオート変数にアクセスするのに頻繁に使うのだが
0388774ワット発電中さん
垢版 |
2017/02/10(金) 22:26:33.09ID:goC29ypH
今のx86-64に比べたらMIPSなんかクソだけど

クロックごとに、256bit FMA2個、256bit 整数演算2個、256bitのメモリリードライトを同時にやっちゃう
クロックも3GHzとか
こんなコアが4個とか普通にのっちゃってる

数百円のマイコンと比べちゃいけないんだろうけど
0390774ワット発電中さん
垢版 |
2017/02/10(金) 22:41:22.48ID:1v28Z5il
AVR亡き後、内輪での争いが絶えんなw
常に敵が必要って馬鹿な連中だわ。
0391774ワット発電中さん
垢版 |
2017/02/11(土) 03:46:09.65ID:YbCTmQLx
クロック数無視して1命令で複雑な事できた方がエラいってんならCで書けば?
0392774ワット発電中さん
垢版 |
2017/02/11(土) 04:38:16.75ID:JK4DaRHz
>>390
PICのスレにはPIC32を敵視する書き込みがかなり多いが
Microchipが32bit製品を拡充するのをよく思ってない他の勢力の妨害のような気もする
0393774ワット発電中さん
垢版 |
2017/02/11(土) 05:12:19.29ID:SwSkx0KL
ここは、僕たちのような初心者が質問するスレです。
技術力のある皆さんなら、こなところで雑談しないでください。

PICでアセンブラをやるような高度技術のみなさんに、
最適なスレ見つけました↓

http://rio2016.2ch.net/test/read.cgi/denki/1470076841/l50

移動をお願いします。
0394774ワット発電中さん
垢版 |
2017/02/11(土) 05:16:14.85ID:JK4DaRHz
少し古い記事だがMicrochipの16bit製品は好調のようだが
16bitマイコン市場は縮小傾向のようだ
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入りを果たしました。
0395774ワット発電中さん
垢版 |
2017/02/11(土) 07:12:28.35ID:Jnv9nIOO
>>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)
0397774ワット発電中さん
垢版 |
2017/02/11(土) 07:51:02.73ID:4d8s8kqb
なんか色々と変じゃね?

割り込みがイヤだしCLRやINVを使おうよ
INVは複数ポートを同時にセットとリセットが出来る
同時であることが必要な時には使うかもね
0398774ワット発電中さん
垢版 |
2017/02/11(土) 08:23:35.88ID:GoyLqxcE
>>394
>16bitマイコン市場は縮小傾向のようだ
>16bitマイコンは32bitマイコンへの移行が進んでるのか
「ようだ」とか「のか」じゃないだろうなあ。
今、PIC以外の16ビットのマイコンを作ってるメーカーで、ARMをやっていないところってどれぐらいあるんだろう。(あるけどね)
ARMもやってたら、保守以外に継続してる理由が乏しいのではない?
0399774ワット発電中さん
垢版 |
2017/02/11(土) 20:31:04.60ID:JK4DaRHz
32bitMCUはARMが強いがライバルは必要だ
32bitMCUがARMばかりになったらARMはライセンス料を引き上げてくるかもしれない

インテルだって286までは他社に製造する権利を与えてたし互換CPUもいくつかあった
386から態度を一変させてセカンドソースを廃止
互換CPUメーカーに訴訟を起こした
NECなどは和解して互換CPUを作らないことを約束
AMDやCyrixなど極一部のメーカーだけが裁判で勝ち取って互換CPUを作れる状態にはなったけどね
ARMだってどうなるかわからない
0400774ワット発電中さん
垢版 |
2017/02/11(土) 21:26:20.22ID:GoyLqxcE
>>399
それはつまり
「現在は広くライセンスしているが、ライセンスをしないことが商売上有利だとAMR社が判断したら、ライセンスされなくなる。
そうなると世の中パニックだ」
ということですかね。

内情は知らんのですが、ARM CPUを出している大手メーカーは無期限の設計・製造ライセンスを取得しているんじゃないでしょうか。
特に組み込み用途ならパソコンのCPUと違って息が長いですし、明日から新しいARMのライセンス供与がなくなっても、今のARM CPUを
作りつつ、他のものへの乗り換えを考えるのでしょうね。

我々が危惧する程度のことですし、メーカーは手を打っていると思います。
0401774ワット発電中さん
垢版 |
2017/02/11(土) 21:26:42.20ID:pNXdlbAU
無線通信はBLEで低消費を追及
マイコンは8bitPICで低消費を追及
じつに素晴らしい組み合わせだ
0403774ワット発電中さん
垢版 |
2017/02/11(土) 21:56:08.66ID:hkaYfxCP
ARMの実行性能が高くとも1PCBoardのようにクラッシュして簡単にストレージ
破壊して停止するようなモノでは製品にならないだろう。
アンドロイドのような代物ではモーター回らないこともある。

だから初心者は深く考えず、初めからPIC使っていればいい。
マーケティングや市場とか命令セット比較は考えなくともいい。作ることに集中しろ。

以上。
0404774ワット発電中さん
垢版 |
2017/02/11(土) 22:24:02.45ID:8xqA0AD+
もういいよ。
君らが博学で経験も豊富なことは、よくわかったから。
技術力のある皆さんは、こんなところで雑談しないで
あっち↓行ってください。

http://rio2016.2ch.net/test/read.cgi/denki/1470076841/l50

移動してください。
僕たちのような初心者が質問できないよ。
0405774ワット発電中さん
垢版 |
2017/02/11(土) 22:57:07.56ID:QdTs6h/9
>>399
ARM が有利なのはLinux 動くレベルまでだな。
リアルタイムOS レベル以下になったら、周辺機能の互換性無くなるから、ARM にこだわる必要ない。
0407774ワット発電中さん
垢版 |
2017/02/12(日) 00:43:37.78ID:kLaQRIS/
おーし、質問するぞ

pic は時々プラスとマイナス間違えて繋ぐことあるけど、そうすると発熱するけど、なんでなの
反応なしなら納得なんだけど、なんであんなに発熱するの
0408774ワット発電中さん
垢版 |
2017/02/12(日) 01:18:55.52ID:cXYIzWzu
ここPIC初心者のスレなんで、電気電子初心者はどっか余所行って
0412774ワット発電中さん
垢版 |
2017/02/12(日) 07:20:07.07ID:dE5rcsfp
>>407
電源逆さしは、いろいろまずそうで、まずいからよくない、ぐらいにしか考えてませんでした。
とりあえず、PICに限らず、多くのC-MOS ICは、内部に
・GND側をアノード、信号側をカソードとしたダイオードと
・信号側をアノード、VCC側をカソードとしたダイオードが
たくさんあります。
GNDにプラス、VCCにマイナスをかけると、このダイオードに電流が流れまくりになりますね。
0413774ワット発電中さん
垢版 |
2017/02/12(日) 08:24:10.13ID:9zKD5Isg
>>410
測定対象と10kΩで分圧してAD変換してるから、
電圧がADC(8bit)の1LSB未満になるような抵抗は変換値が0になってしまう
ただ3Ωがその下限なのかはわかんないね

抵抗の測定方法はアプリケーションノートにいくつかあるよ
0414410
垢版 |
2017/02/12(日) 14:05:33.58ID:hiezMOyQ
>>413
ありがとうございます。
見たところそうですよね。

8bitのAD変換なので、
3÷10003×256=0.08
となって、40Ω程度ないと判定不可能、という理解でいいですよね?
でも、
>抵抗値が低いほど周期が短くなり、約3Ω以下で連続音になります。
と書いてあるので、どうやってんのかなと思いまして…。
0415774ワット発電中さん
垢版 |
2017/02/12(日) 14:41:33.93ID:icfOL1n0
現物合わせで12Ωを直列に入れて約3Ω以下でA/D変換値が
ゼロになるようにしたのでは?
0416774ワット発電中さん
垢版 |
2017/02/12(日) 14:41:53.70ID:cXYIzWzu
>>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という数字が出てきたのかは謎
作者に聞いてください
(作者に聞くぐらいならここで聞いてねーよという突っ込み待ち)
0417774ワット発電中さん
垢版 |
2017/02/12(日) 15:21:04.25ID:3cDueaFQ
作者はシロート
0418774ワット発電中さん
垢版 |
2017/02/12(日) 15:21:44.38ID:dE5rcsfp
作者に尋ねずにあれこれ想像するのも楽しいかな。作者にはちょっと悪い気もするけれど。

>>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 の境目があったのかもしれないですね。
0419414
垢版 |
2017/02/12(日) 15:23:50.85ID:Ej7Q05v1
>>413
アプリケーションノートですが、探してみてもなかなか行き当たりません。
よろしければ、リンクなど張っていただけると助かります。

>>416
設計上に無理がある、という自分の理解を確認したいだけなので。

となると、現実問題として、低抵抗値の測定というのはどうやるんでしょう?
ヒントや関連リンクなど、教えてください。
0420774ワット発電中さん
垢版 |
2017/02/12(日) 15:24:01.98ID:dE5rcsfp
>>417
てめえ何様だ。技術的評価もせずに罵倒だけするんじゃねえ。糞野郎め。
0422774ワット発電中さん
垢版 |
2017/02/12(日) 15:27:02.36ID:3cDueaFQ
本人乙w
0423774ワット発電中さん
垢版 |
2017/02/12(日) 15:28:57.63ID:dE5rcsfp
>>419
もともとこのアプリケーションでは、3Ω±〇%みたいな精度は目指していないはずですが、そういう測定を目指しておられますか?
だとしたら、プローブの接触抵抗も問題になります。

ケルビン接続 低抵抗

あたりで検索してみてください。
0424774ワット発電中さん
垢版 |
2017/02/12(日) 15:39:23.80ID:lYl+eNdf
でも、抵抗値によって音の周期が変化するって書いてる。
ま、連続的にとは書いてないが…。
0425774ワット発電中さん
垢版 |
2017/02/12(日) 16:30:52.11ID:cXYIzWzu
>>419
このPICで、この回路で3Ωを測定するというのは設計上無理があるというのは、その通りの理解で良いです

低抵抗の測定がしたい場合、単純な話で言えば12bitADなら更に1/16まで測定できますから
2Ω程度の精度で測定できます

他のやりかたとしては、測定対象にもっと電流流して構わなければ10kΩを小さいものに変えるという手もあります
たとえば1kΩにすれば4Ω、500Ωにすれば2Ω程度まで測定できます。
0426774ワット発電中さん
垢版 |
2017/02/13(月) 01:38:39.19ID:etYtCyuj
ノイズがあるから1と0の並びが変化して音色の変化として感じられるのだ
0427774ワット発電中さん
垢版 |
2017/02/13(月) 16:27:10.50ID:a6lpx5Np
PIC24FJ64GA002でRTCCを使おうとMPLABのデバッガで試してますが上手くいきません
RTCVALを読み書きするとRTCPTRがデクリメントされるという事ですが、どうもデクリメントされていないようです
なぜでしょう?
0430774ワット発電中さん
垢版 |
2017/02/14(火) 02:49:44.34ID:WgDNmqOk
あ、電流検出じゃなくて抵抗値を測りたいのか
素直にテスターを買えば
0431774ワット発電中さん
垢版 |
2017/02/14(火) 02:58:53.80ID:WgDNmqOk
>>401
何をするのか知らないけど、超低消費電力ってのはマイコンが起きてる時間を減らさないといけないわけで
8bit PICみたいな遅いマイコンが有利なのって、ほとんど何も処理しない、ただのログ取りみたいな用途だけじゃ?
0436774ワット発電中さん
垢版 |
2017/02/14(火) 07:00:24.64ID:mT47Xkdi
BLEチップには大抵ARM Cortex M0載ってるからPIC使うと無駄になるな
0437774ワット発電中さん
垢版 |
2017/02/14(火) 15:07:21.66ID:668cEdut
Cortex-M0、M0+は同じARMではあるけどCortex-M3、M4、M7とは別物って感じ
サポートしてる命令が少なすぎ
数個の命令を除くと16bit固定長のThumbそのもの
ほとんどの演算命令ではレジスタが8個しか使えない
0438774ワット発電中さん
垢版 |
2017/02/14(火) 15:21:25.45ID:668cEdut
ちなみにThumbは16bit固定長の命令セット
Thumb-2は16bit、32bit混在の命令セット
名前が似てるが持ってる機能の豊富さが全く違う
0440774ワット発電中さん
垢版 |
2017/02/14(火) 17:40:48.56ID:IXlqYgB6
Coretex-M0やM0+の対抗馬はMIPSのMicroAptivあたり
ルネサスが16bitのRL78でBLE用を出してるけど、これもPICの16bitより上

PICの8bitじゃ力不足
0442774ワット発電中さん
垢版 |
2017/02/14(火) 18:30:34.43ID:668cEdut
>>440
microMIPSが使えるmicroAptivはCortex-M4対抗らしいけどな
PIC32MXで使われてるM4KコアでもMIPS16eという16bit長の命令が使える
しかもMIPS16eの特徴は切り替え不要でMIPS32命令と一緒に使える利点がある

http://pc.watch.impress.co.jp/docs/news/535532.html
microAptiv
M14Kコアの後継となるMCU向けのmicroAptivは、
MCU向けとしつつも実際にはMCU向けとMPU向けの両方のラインナップがあり、
ターゲットとしてはCortex-M4からCortex-A5あたりまでということになる。
命令セットとしてはMIPS32に加えてmicroMIPSをカバーしており、
またDSP ASEのほかにeMDU(enhanced Multiply/Divide Unit)を追加したことでさらに性能を引き上げた、
というのが大きな特徴である(写真31)。
0443774ワット発電中さん
垢版 |
2017/02/14(火) 18:31:37.87ID:668cEdut
http://ednjapan.com/edn/articles/1311/22/news065.html

MIPS microAptivコアは、microMIPS命令セットアーキテクチャを採用している。
マイクロチップでMCU32開発およびマーケティング部門のディレクタを務めるRod Drake氏は、
「16ビットと32ビットの命令セットを組み合わせて用いることで、
ARMアーキテクチャベースの製品に比べてコード密度を約30%も改善している」と話す。
また、159個のDSP命令を追加している。
これによって、DSPアルゴリズムの実行に必要なサイクル数は、PIC32MXファミリに比べ最大で75%削減することが可能となった。
0444774ワット発電中さん
垢版 |
2017/02/14(火) 18:35:20.92ID:mVCAEs2r
>>ID:668cEdut
どーでもいいことをグダグダ引用すんなよ。
次からは、てめえのブログにでも書いて、リンク張ってくれ。
ジャマ臭いんだよ、お前。
0445774ワット発電中さん
垢版 |
2017/02/14(火) 18:38:04.16ID:MDm1Eu4g
>>444
スレタイすら読めない馬鹿に説教するだけ無駄
しかも、ただのコピペは無能の証でもある
0446774ワット発電中さん
垢版 |
2017/02/14(火) 18:47:53.95ID:668cEdut
PICのスレでARMの話をする方がスレチなのでは?
0447774ワット発電中さん
垢版 |
2017/02/14(火) 18:55:35.61ID:668cEdut
PICのスレなのになぜかARMの話をしても罵倒されないのに
PIC32の話をすると罵倒される不思議
0448774ワット発電中さん
垢版 |
2017/02/14(火) 19:21:19.38ID:668cEdut
初心者が誤解しないように追記すると
PIC32MMはDSP ASEはサポートされてません
DSP命令はPIC32MZのみです
0449774ワット発電中さん
垢版 |
2017/02/14(火) 20:53:50.60ID:D1FINN/J
>>444
な、無駄だったろ?
内容が陳腐なヤツは、理解力も低い
だから、言っても無意味
0450774ワット発電中さん
垢版 |
2017/02/14(火) 21:23:08.85ID:WgDNmqOk
このスレでPIC以外の話は確かにスレチだろうけど、完全に禁止にすると、PICしか使ったことがない井の中の蛙がPICを過大評価するからなあ
PIC24信者もいるし
比較位は良いんじゃないか?
現実を知らしめる意味でも
0455774ワット発電中さん
垢版 |
2017/02/14(火) 23:58:40.65ID:5X6yGNO/
>>450
「井の中の蛙大海を知らず、されど空の深さを知る。」
まだPICを突き詰めてもいない初心者スレで、
他所事を大声でわめく自分の愚かさを知るべき。

はっきり言わんと分からんようだから書くが、
要するに、あっちでやれってことだよ。
http://rio2016.2ch.net/test/read.cgi/denki/1470076841/
0456774ワット発電中さん
垢版 |
2017/02/15(水) 01:57:57.63ID:gWiu0BQn
もういいよ。
君らが博学で経験も豊富なことは、よくわかったから。
技術力のある皆さんは、こんなところで雑談しないで
あっち↓行ってください。

http://rio2016.2ch.net/test/read.cgi/denki/1470076841/l50

移動してください。
僕たちのような初心者が質問できないよ。
0459774ワット発電中さん
垢版 |
2017/02/15(水) 14:28:17.82ID:zy2EBJv8
>>457
流行っているようなので「プロ〜」とか書いてみた、ってか?
マジレスしとくと、
質問が書き込まれたら回答する、でいい。
それを催促するとか、ホントの馬鹿か?
0460774ワット発電中さん
垢版 |
2017/02/15(水) 15:39:58.64ID:n9VDmwMh
図々しい初心者にはなかなかまともな回答が付かないのは致し方無い事だ。
0463774ワット発電中さん
垢版 |
2017/02/16(木) 06:51:17.23ID:5OdJedHA
俺がいつも感心することは、こんな所でよく質問する気になれるな、だ。
0464774ワット発電中さん
垢版 |
2017/02/16(木) 15:24:09.55ID:6mPVFCUq
俺がいつも感心することは、そう言いながらよく覗く気になれるな、だ。
0465774ワット発電中さん
垢版 |
2017/02/16(木) 16:34:01.39ID:5OdJedHA
>>464
ビックリするようなやり取り、吹き出しそうになるやり取り、いつのまにか罵詈雑言になるやり取り・・・
横から黙って見ているのは楽しいです、覗きはやめられましぇ〜んw
0468774ワット発電中さん
垢版 |
2017/02/16(木) 21:15:33.36ID:802VgZ2S
車板へどうぞ。
0472774ワット発電中さん
垢版 |
2017/02/17(金) 03:39:01.45ID:X73zb/L+
CAN通信は、素人工作でも一般的によく使用されるのでしょうか?
0474774ワット発電中さん
垢版 |
2017/02/17(金) 07:06:32.93ID:ioTBblOz
>>467
dsPICを使って車とCAN通信してるけど、試行錯誤だったのでスキルとしてはかなり怪しい
0476774ワット発電中さん
垢版 |
2017/02/20(月) 22:28:56.10ID:it444mD/
dsPicいいと思うけどな〜〜
CAN通信は情報が少ないけどサンプルはそこそこあるので
それを使えば通信だけはなんとかなるよ。
後は試行錯誤になるのは仕方ないんじゃないかな〜〜〜
でも少数だけどやってる人はいるよ!!
0477774ワット発電中さん
垢版 |
2017/02/21(火) 00:41:41.70ID:/OG2CZS8
ちゃんと使ったことないからわからないけど、
dsPICってあまりいい評判聞かないのはなんでなの?
0479774ワット発電中さん
垢版 |
2017/02/21(火) 02:23:16.12ID:Jsfe6gaA
そうだよね、逆にdsPICの悪い所はどこ?
16Fに比べて
高い・ネット情報が少ない・消費電力多い・少ピンが無い
あとは?
0480774ワット発電中さん
垢版 |
2017/02/21(火) 12:49:40.10ID:k/TcGDvH
474だけど、dspic33fj64gp802でCAN通信して、カーナビにビデオ信号を出力してる
DSPは未使用wで、RAMが多い・CAN・DAC付、で選んだ
PIC32も検討したけど、スリープ時の消費電力が多いのでちょっと
0481774ワット発電中さん
垢版 |
2017/02/21(火) 14:09:35.97ID:gBrgL65G
>>480
CANってことは車載するんだよね?
電源個別に用意してるの?なんで細かい消費電力を気にするのか不思議。
0482774ワット発電中さん
垢版 |
2017/02/21(火) 14:16:00.51ID:ZEvfcdBJ
OBD2コネクタの常時供給電源から電源取るからでしょ。
イグニションoffでスリープするんだよね。
0483774ワット発電中さん
垢版 |
2017/02/21(火) 14:20:29.22ID:ZEvfcdBJ
イグニションoffでCANの通信サイクルが途絶えてスリープだ。
0484774ワット発電中さん
垢版 |
2017/02/21(火) 19:16:38.41ID:NI3CGX/C
>>477
自分の世界が狭いから。
井の中の蛙とも言う。
0485774ワット発電中さん
垢版 |
2017/02/21(火) 22:18:28.01ID:YpaMJ5Lp
>>481
483でコメントされている通りです
>>483
と、思うでしょ?でも実際は、直ぐには落ちないし、スマートキーを近づけるだけで起きたりするようです
0486774ワット発電中さん
垢版 |
2017/02/22(水) 07:10:44.12ID:xv8qlwq+
xc8でinline-asm(#asm 〜 #endasm)を使うと 赤!/赤線 が出てじゃまくさい
buildするとエラーは無く、結果も期待通りに動作する

無視すれば良いだけなんだが、なんか対策ないのかね
ググると似たような事聞いてるヤツが見つかるが
決定打が見つからない (Hintsをoffでも、まだ残る)
0487774ワット発電中さん
垢版 |
2017/02/22(水) 11:26:19.32ID:JWh9Wl65
XIDEのエディタが、該当部分をCの識別子として認識していません。
以下の設定で、ハイライト(赤い下線)がきえます。

Tools
Options
C/C++
Highlihting
Highlight Unresolved Identifiers
0488774ワット発電中さん
垢版 |
2017/02/22(水) 11:39:53.52ID:xv8qlwq+
わりい、それは見てた
IDEのVersion は v3.51、その項目無いんだよね。
それに相当すると思われるのが↑に書いた"Hints"の項目で、それでも全部は消えない
Verによる違いかな
0489774ワット発電中さん
垢版 |
2017/02/22(水) 12:34:47.58ID:uCVlHhkb
>>485
+Bからとるなら些細な差なんじゃないの?って話ね
少ないに越したことはないのは分かるけどPIC32じゃ
絶対駄目というレベルの話でもないよね?
それだけのメリットがソフトの作りやすさ以上にあるのか
疑問に思っただけなのさ
0490natu
垢版 |
2017/02/22(水) 15:55:20.28ID:bL3D4RLj
>>488
面倒くさいが、これは如何
asm( "movlw 0xff" );
0491774ワット発電中さん
垢版 |
2017/02/22(水) 18:48:18.83ID:Db7MQC2T
>>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"); <- こんな風にベタで書くと通るのは解ったけど
どっちも、イマイチなんだよね
0492774ワット発電中さん
垢版 |
2017/02/22(水) 19:06:31.21ID:4uekc3bV
>>489
そうですね。絶対ではないです。
うちの車だと暗電流が確か1割位増える計算でした(三端子レギュレータで落としてるだけなので)
0493natu
垢版 |
2017/02/22(水) 20:08:50.38ID:bL3D4RLj
>>491
"で囲っているので#defineが利いてないみたいだね。
ベタで行くしか思いつかないです。
0494774ワット発電中さん
垢版 |
2017/02/22(水) 20:26:03.62ID:Db7MQC2T
>>493
そのようですね

久しくやってなくて浦島状態だったから
俺 間抜けな事をやってるのかな?、 と思って聞いてみました
0495774ワット発電中さん
垢版 |
2017/02/26(日) 18:59:23.82ID:f49J2M/l
すみませんが質問です。12F683で状態変化割り込みを使う場合、どのピンの割り込みかを特定するには割り込んだ後にピンの状態を見るのが良いでしょうか?
また、スイッチのチャタリングをソフトで除去する場合割り込んだ後にウエイトを掛けてサイド読み込むのが無難な処理でしょうか?
よろしくお願いします。
0496774ワット発電中さん
垢版 |
2017/02/26(日) 19:54:06.49ID:5RjTfXNa
>>495
質問に書いた方法を評価する上での比較対象には、どんな方法がありますか?
0497774ワット発電中さん
垢版 |
2017/02/26(日) 20:30:18.46ID:zyRG5l57
>>495
普通10ms程度の周期のタイマー割り込みの中でスイッチを読み込んで状態が変化したらフラグ立て、その後何回かの割り込みでスイッチが変化しなかったらスイッチ操作認識
0499774ワット発電中さん
垢版 |
2017/02/27(月) 06:49:48.13ID:ub0q137w
>>495
自分がやってるのは、

タイマーを一つ用意しておいて、初期値として待ち時間の残り時間(後述)をセットしてスタート。

スイッチの読み取りルーチンで、タイマーのオーバーフローをチェックして
オーバーフローを起こしていなければ、スイッチの読み取り拒否をメインルーチン帰して終了。
(メインルーチンで必要な場合は前回のボタン読み取り値を利用する)

スイッチを読み込んだ後にタイマーに待ち時間分(チャタリング防止期間。自分の場合5ms程度)の値をセットしてタイマースタート。

メインルーチンに読み込んだスイッチの内容を返して終了。

こんな感じ。
0501774ワット発電中さん
垢版 |
2017/02/27(月) 13:42:04.95ID:eb46b5ti
.
unsigned char chat;  // 記憶
unsigned char PIN;   // フィルタ後のピン

void timer割込(){   // 1ms毎に入るタイマー割込み
  chat <<= 1;
  chat += ピン;
  PIN = (chat==0x0f)? on : (chat==0x00)? off : PIN;
}

void main{
  chat = 0;
  PIN = off;

  while(1){
    if(PIN==on){
      ・・・・
    } else {
      ・・・・
    }
  }
}
0502774ワット発電中さん
垢版 |
2017/02/27(月) 13:52:19.58ID:1UQ425zr
私は「SW入力変化でタイマスタート、タイマ完了割り込みでSW入力チェック」が多いかな?

SWの使い方はたとえばタクトSWなら
・押した瞬間に(立ち上がりで)動作させる
・離した瞬間に(立ち下がりで)動作させる
・長押しで(ON状態が一定時間継続したら)動作させる
などを組み合わせて色々。
0503774ワット発電中さん
垢版 |
2017/02/27(月) 14:00:07.19ID:eb46b5ti
>>502
でもそれだと、
ノイズが入っても、すぐに動作してしまうよね?
その論理が「一定時間連続するのを監視する」のが正しいと思うけど。
0504774ワット発電中さん
垢版 |
2017/02/27(月) 18:22:41.98ID:1UQ425zr
>>503
SWを押したときの信号の変化は「オフ状態〜チャタリング〜オン状態」だから
1)チャタリングの最初のオンでタイマをスタートして、
2)チャタリング時間経過後にタイムアップして、
3)サンプリングしてオン状態かどうかを再確認
で問題無いと思う。

SWオン状態で(オフ状態でも)ノイズが原因で信号がオン・オフするなら
別途、CR積分回路などの対策が必要になると思う。
0505774ワット発電中さん
垢版 |
2017/02/27(月) 18:29:53.65ID:1UQ425zr
追加
あ、もしかしたら、「押した瞬間に」が誤解を招いているのかな。
「瞬間」はもちろんチャタリング除去後の話です。
0506774ワット発電中さん
垢版 |
2017/02/27(月) 22:26:11.85ID:eb46b5ti
>>505
>あ、もしかしたら、「押した瞬間に」が誤解を招いているのかな。
そう。

>・押した瞬間に(立ち上がりで)動作させる
>・離した瞬間に(立ち下がりで)動作させる
この文章から、チャタリング時間経過後と 読み取れるわけないでしょう。

>「瞬間」はもちろんチャタリング除去後の話です。
そんなの当たり前じゃん。
0507774ワット発電中さん
垢版 |
2017/02/27(月) 23:42:07.57ID:MfSrOHod
押した瞬間がチャタリング除去後の意味とか
お前らおかしい。
0508774ワット発電中さん
垢版 |
2017/02/27(月) 23:52:37.61ID:VdfiF9jL
ID:1UQ425zr
ID:eb46b5ti
何一つ条件設定のないまま話が平行線で進むのがすごい。
0509774ワット発電中さん
垢版 |
2017/02/28(火) 00:16:31.33ID:3KrgdAth
結局はプルアップしたSWにコンデンサ並列で物理的にチャタリング除去が普通じゃね?

もちろん16連射とかは想定外でモード切り替えとか単純な装置のオンオフとか一般に連射しない用途で。
0510774ワット発電中さん
垢版 |
2017/02/28(火) 03:40:10.79ID:vQMfzjIG
>>509
>結局はプルアップしたSWにコンデンサ並列で物理的にチャタリング除去が普通じゃね?
それは違うと思う。
1円でもコストを下げたいのに、外付け部品なんか使わないよ。
ソフト設計で少しだけ苦労すれば、あとは繋ぐだけになるんだから。

>>509に質問
外付け部品でやるとき
・抵抗とコンデンサの各定数は、どのようにして決めてますか?
・プルアップしたSWにコンデンサ並列で物理的にチャタリング除去ということですが、
 コンデンサに溜まった電気を、スイッチで直接ショートしも良いのですか?
 スイッチが壊れないのでしょうか?
0511774ワット発電中さん
垢版 |
2017/02/28(火) 06:47:21.43ID:iE/pjPSI
また重箱の隅のつつき合いか。
0512774ワット発電中さん
垢版 |
2017/02/28(火) 08:18:24.85ID:BBrTVWSQ
チャタリングの除去はソフトだね。たいていはそっちの方が安いし。
0513774ワット発電中さん
垢版 |
2017/02/28(火) 08:23:12.72ID:oa2bb20a
ソフトで数回サンプリングして連続同じ値で確定が普通だと思う
応答性が不要ならとりあえず10ms3回
応答性が重要なら時間をつめたりオンオフ非対称にしたり
0515774ワット発電中さん
垢版 |
2017/02/28(火) 11:46:01.58ID:1xVlE5tE
>応答性が不要ならとりあえず10ms3回
そうそう、だいたいそんな感じね。
0516774ワット発電中さん
垢版 |
2017/02/28(火) 12:06:04.63ID:x7pRo4+V
>>511
次のお重まだ〜 チンチン☆彡 (AA略
0517774ワット発電中さん
垢版 |
2017/02/28(火) 16:33:30.28ID:MpXUGhLD
ゲームの話なら1秒60フレームだから16ms以内に判定を終わらせないといかんよね。
0519774ワット発電中さん
垢版 |
2017/02/28(火) 17:26:45.36ID:0GkoZ1fy
>>518
何度か見た方が外来ノイズや瞬時の接触不良に強いんだが
0521774ワット発電中さん
垢版 |
2017/02/28(火) 18:45:29.45ID:RwoSeGKX
外来ノイズでLOW/HIGHが変わっちゃうレベルだとボタン以外もヤバそうなんで他に何か対策がいるとは思うけど
0522774ワット発電中さん
垢版 |
2017/02/28(火) 18:54:32.10ID:iE/pjPSI
>>516
じゃ次のお題は「使いたいチップに5V版がない!レギュレータなんか付けるのイヤン!」かなw
0523774ワット発電中さん
垢版 |
2017/02/28(火) 19:19:45.97ID:ckAiE0Fi
>>510
定数ですが抵抗は10kを基準としてノイズなど気になる場合は少し電流を増やします。
コンデンサは充電の時定数を考えます。
なので使用するスイッチのチャタリング時間をオシロで100回くらい平均を取り決定します。
今まで余程粗悪なスイッチでない限り最大で10uFです。

スイッチが大丈夫かですが上記の容量の電力量ならばスイッチの抵抗で消費出来るので壊れることは有りません。
0525774ワット発電中さん
垢版 |
2017/02/28(火) 20:05:23.40ID:0GkoZ1fy
>>521
swを複数回見るだけでESDによる誤動作対策になるよ
>>523
weak pull-up と ソフト処理で部品を2個減らせることことに早く気づけ
0526774ワット発電中さん
垢版 |
2017/02/28(火) 21:40:06.95ID:1xVlE5tE
>>523
>今まで余程粗悪なスイッチでない限り最大で10uFです。
は? 10uF?
抵抗10kで100ms? そんな応答で許される製品なの?

>スイッチの抵抗で消費出来るので壊れることは有りません。
10uFあったら、スイッチやばいと思うけど。
スイッチの接触抵抗は何Ω?
0528774ワット発電中さん
垢版 |
2017/02/28(火) 22:05:12.18ID:ckAiE0Fi
>>526
作る製品は様々ですが例えばバイクのウィンカー制御など押してから0.1秒の作動で十分です。連打することなんて無いしね。
それに10uFはあくまで最大でスイッチによって変えるので普通はそれ以下。

スイッチが壊れるかですが
電流の二乗×抵抗×時間で消費電力が計算でかますが導通抵抗が50ミリΩで5Vでの運用で250V1Aを扱えるスイッチが壊れるとは到底思えませんけど。
0531774ワット発電中さん
垢版 |
2017/02/28(火) 22:44:01.11ID:0GkoZ1fy
>>527
以外見てなかったけど、ESD による誤動作が問題になるなら色々と考えなきゃいけないね。
ただ、体にたまった静電気は特に指からボタン回りに飛びやすいというのも一般論でしてね。
0532774ワット発電中さん
垢版 |
2017/02/28(火) 23:22:15.15ID:1xVlE5tE
>>528
スイッチの消費電力の話ではないよ。
スイッチの接点が、コンデンサの電荷をゼロΩでショートするのが
どうかと思うんだけど、それはいいの? 接点は劣化しないですか?

普通は、

Vcc----抵抗10k?-----(a)----コンデンサ----GND
(a)---100Ωとか---SW----GND
(a)-----マイコンなどの素子へ

と抵抗を入れて、電流上限を制限すると思うけど。
それはしなくてもいいのですか?
0533774ワット発電中さん
垢版 |
2017/02/28(火) 23:40:53.56ID:ckAiE0Fi
>>532
接点はゼロオームでは無いですよ。
接触時にも数十mΩ有ります。
なので数uFに5Vで貯めた電荷の消費程度問題なしです。
0534774ワット発電中さん
垢版 |
2017/02/28(火) 23:43:36.07ID:ckAiE0Fi
>>532
抵抗を入れる話、学問的に正しいのはその通りです。
実際と学問の違い。
別の言い方すれば製品と自作の自分用の違い。
言い方は色々有りますが電気的に問題なしです。
0536774ワット発電中さん
垢版 |
2017/03/01(水) 03:50:54.33ID:lZ2x3snw
>>533
>接点はゼロオームでは無いですよ。
もちろん知っています。でも1Ω以下なんて、ゼロとして考えて回路設計すべきです。

>接触時にも数十mΩ有ります。
私たちがよく使う、ALPSのSKHHのデータシートをご覧ください↓
https://www4.alps.co.jp/densokunou/productLineDetails/?productNo=SKHHALA010
初期値で100mΩmaxらしいですね。

>なので数uFに5Vで貯めた電荷の消費程度問題なしです。
5V / 100mΩ = 50A の突入が流れると思います。
100mΩmaxですから、実力値はもっと低抵抗なので、電流はもっと流れると思います。
しかしスイッチのデータシートを見ると、最大電流は 50mA らしいです。

最大電流の1000倍以上も流しておきながら、問題無いと言い切る理由を
示してもらえないでしょうか?

みなさん、すでにそのよう使い方をしていて、特に問題が発生していないという事実と、
自分の行いを否定されたようで しゃくにさわると思いますが、
知らなかったことは素直に「そうなのか」と理解してほしいと思います。
大丈夫な訳がありません。

それを知った上で、抵抗なしで使うのは、自己責任ですので問題ないと思います。

実は私も以前、リセットスイッチで知らずに直結で使っていて、
リセットが効かないクレームがあり、大問題になった経験があるので、
みなさんにもお伝えしたいと思ったのです。
0537774ワット発電中さん
垢版 |
2017/03/01(水) 03:55:44.09ID:YH78J68t
お前その電流を実測してみたかい?
脳内で騙ってるんじゃないよね。




と、上司に言われなかったのかな。
0538774ワット発電中さん
垢版 |
2017/03/01(水) 06:52:02.07ID:jGg6YGDA
>>517-521
ゲームの場合だと画面更新ごとに割り込みが来るから
その時に1度だけ読んでやればいいだけでチャタリング除去は気にしなくても平気だと思う。
むしろそれで駄目だと521が書いてるけどボタンが使い物になってない。
0540774ワット発電中さん
垢版 |
2017/03/01(水) 08:31:42.51ID:lMBKF5bl
仮にそれが問題でなかったとして、もし後日接点不良が起きたら、設計ミスと言われても反論できない。
0543774ワット発電中さん
垢版 |
2017/03/01(水) 10:33:43.66ID:3Hr8+0tz
まぁでも普通は抵抗を入れてCからSW接点への電流制限をするだろうな。
趣味の電子工作なら構わないけど、商品として代金を貰うなら。
0545774ワット発電中さん
垢版 |
2017/03/01(水) 11:34:13.03ID:vJ89aBY1
℃素人にありがち
0546774ワット発電中さん
垢版 |
2017/03/01(水) 12:19:34.25ID:1Hq0rl2/
>>541
>コンデンサの内部抵抗は考えないの?
もちろん考えますよ。

以下のサイトでESRを見てください。
http://ds.murata.co.jp/software/simsurfing/ja/
値を1uFにして「R」ボタンでESR見てください。1GHzで1Ωくらいです。
この抵抗がコンデンサに直列に入ったとして、5Vですから5A流れます。
最大電流より100倍も流れますよ。
0547774ワット発電中さん
垢版 |
2017/03/01(水) 12:25:02.36ID:1Hq0rl2/
>>544
>「接点のチャタリングがひどすぎる」って苦情言ってなかったけ?
あの200円のエンコーダーですが、
「普通のタクトスイッチと同じだろ」って使うと、填まるって知ってます?
なんと 0.5mAmax しか流せない。
5Vで10kが最低抵抗。回転接点としての応答性を上げたくて、電流多めに流すと
壊れてしまう。22kとか33kで釣らないと。
0548774ワット発電中さん
垢版 |
2017/03/01(水) 12:49:37.11ID:3Hr8+0tz
新しい部品を使うときは隅から隅まで資料読まないとダメだよね。
このエンコーダを普通のSWの接点のつもりで使って、
さらに接点保護の抵抗を入れなかったりしたらすぐに壊れるだろうな。
0549774ワット発電中さん
垢版 |
2017/03/01(水) 13:57:16.50ID:4TSKj4EP
僕は、実際にやってしまった。
それで覚えてるんですけどね。
0552774ワット発電中さん
垢版 |
2017/03/01(水) 20:42:57.93ID:j0WcgAHV
pic16f18313のEEPROMを使おうとして、Code Generaterで
void DATAEE_WriteByte(uint16_t bAdd, uint8_t bData)を使ってます。
ソースを見ると途中で
INTCONbits.GIE = 0; // Disable interrupts
やっていますが、何故ですかねぇ?
この行と戻す行はコメントにして使っていますが、
EEPROMに書き込み中にNVM関連のレジスタの操作を禁止にしたいだけですか?
詳しい方教えてもらえるとうれしい。
0556774ワット発電中さん
垢版 |
2017/03/02(木) 00:53:56.46ID:HHyu3iNr
>>552
意図しない書き変わり防止するために、特定のレジスタに連続して書き込み禁止解除の為の値を書く必要が有る。
この間に割り込み入ってしまったら、書き込み禁止解除されない。
0557774ワット発電中さん
垢版 |
2017/03/02(木) 13:03:31.99ID:EeXuME07
MPLAB IPE
トロくて、イマイチだな。

PICkit Programmer の方が軽くて良いや
16F18313 にも何とか対応してくれよ。
0559774ワット発電中さん
垢版 |
2017/03/02(木) 17:42:29.94ID:74RzwGvP
IPEなんて仕事の人しか使わないんじゃないの?
0560774ワット発電中さん
垢版 |
2017/03/02(木) 20:05:47.13ID:N0s8YU+O
12F1822 -> 16F18313 の移行をしてたんだが
IPE、この2つのデバイス指定を変更する毎に Firem WareのDownLoadが始まる
遅くてやってられない

結局、12F1822用/16F18313用 と2台使って凌いでる
トロイだろ
0562774ワット発電中さん
垢版 |
2017/03/02(木) 21:11:18.62ID:1FhwHjD/
PICkit3使っていますが、18F46K22と16F18313を使っているとファームの入れ替えがうっとおしいのですが、2個持つしかないのか?
0563774ワット発電中さん
垢版 |
2017/03/03(金) 00:24:02.56ID:209v4HrE
ソケットにして入れ替えれば?w
0565774ワット発電中さん
垢版 |
2017/03/03(金) 06:37:28.12ID:+8oGkG0y
待ってる間コーヒーでも入れてろ
0566774ワット発電中さん
垢版 |
2017/03/03(金) 12:49:20.18ID:7ihMsJ6o
昔はそういう待ちは煙草を吸いに行く絶妙のタイミングだったのだが、、
0567774ワット発電中さん
垢版 |
2017/03/03(金) 13:39:19.85ID:F7XCli1K
ん、タバコに火を付けるタイミングだろ。
いちいち席を立つのはめんどい。
0569774ワット発電中さん
垢版 |
2017/03/03(金) 18:40:46.53ID:bcU1L90N
ググりまくって
PICkit2 で 16F18313 の Prog-Rom / Config-Word の読み書きはできるようになった
(*EEPROMは駄目)

EEPROMは駄目だが、現状使ってないから 俺的は これでも十分可
0570774ワット発電中さん
垢版 |
2017/03/04(土) 19:15:19.57ID:dcpq6kP0
16F18313/18325も設定いじれば旧mplab&hitech-c&pickit3環境で行けるんか?
と思ったら秋月で16F1825在庫が復活したのでしばらくは凌げそう
0571774ワット発電中さん
垢版 |
2017/03/05(日) 13:09:40.03ID:xiw2H7Fo
PIC内のEEPROMをPICKIT3から書く用途が今一わからん
デバッグ用?
0573774ワット発電中さん
垢版 |
2017/03/05(日) 18:21:00.63ID:hyqnCFA/
EEPROMを書き込むプログラムを書き込んで実行すればいいんじゃない
0574774ワット発電中さん
垢版 |
2017/03/05(日) 20:20:11.05ID:lcB6T1MZ
>>573
それを省くためじゃないの?
シリアルなどは通常生産ラインで書き込むが?
0575774ワット発電中さん
垢版 |
2017/03/05(日) 21:29:33.71ID:pl2lSxxB
xc8 と asm のインターフェイス、
"*.c" 側じゃなくて "*.asm" 側での複数パラーメータ受け取り方法な

変態アーキのせいで、一般的な スタック or レジスタ渡しとは異なもので、
リエントラント制限とか、コンパイルド・スタックが どうのこうの・・・・ とか

"XC8 C Compiler User’s Guide" 見ても、お情け程度の事しか書いてない
FNROOT/FNCALL の辺りを使うらしいんだが、ググっても殆ど参考例が見つからない
変態すぎて誰も使ってないか? 詳しいヤツ、教えてよ。
0577774ワット発電中さん
垢版 |
2017/03/06(月) 08:24:45.73ID:BrnR3GtP
同じパラメータ、同じ戻り値のC関数をコンパイルしたのを参考にすると良いよ
0579774ワット発電中さん
垢版 |
2017/03/07(火) 22:05:06.98ID:6eZ/1MrL
pickit3のファーム書き換えは、一服するには、チト足りない
0580774ワット発電中さん
垢版 |
2017/03/08(水) 05:33:55.97ID:zEw+C8bu
はっきり言って 糞だね、MPLAB IPE
もし IPEを 使うなら、2000円程度の中華品でも買い足して凌ぐんだな
0584774ワット発電中さん
垢版 |
2017/03/10(金) 14:49:49.30ID:VuhaEHAd
ATtiny2313というものがありますが、
これはPICなんでしょうか?
また、.hexをpickit3で書き込めるんでしょうか?
0585774ワット発電中さん
垢版 |
2017/03/10(金) 16:13:49.36ID:HnXz3qJo
データシートくらい探してきて目を通せ。
書き込めるかどうかはその後だw
0587774ワット発電中さん
垢版 |
2017/03/13(月) 13:50:55.70ID:Gir9PL1C
>>586
マイコン使うにしても、まず言葉を知らないとな。

いき‐が・る【粋がる】 の意味
粋だと思って得意になる。また、虚勢を張る。

検索して探してきてデータシートに目を通すのが、「粋」な事らしいw
あ、そもそも「粋」を知らんか。
ホント、手に負えんな馬鹿は。
0588774ワット発電中さん
垢版 |
2017/03/13(月) 17:23:11.12ID:IZzXCKhh
通りすがりだが、
目を通せ。という命令形が偉ぶっている。
偉ぶっているといきがっているというのは似た言葉である。
まずはデータシートを探して目を通されてみては如何でしょうか。
なら同じ内容だがいきがっていない。
というわけで 586 の勝ちに1票。
0592774ワット発電中さん
垢版 |
2017/03/16(木) 20:05:55.10ID:BWWJNBee
最近気づいたが、MPLAB X IDE v3.52でビルドすると以下の状態。
Microchip MPLAB XC8 C Compiler (Free Mode) V1.41
Build date: Jan 24 2017
Part Support Version: 1.41
Copyright (C) 2017 Microchip Technology Inc.
License type: Node Configuration

:: warning: (1273) Omniscient Code Generation not available in Free mode
PLink.c:169: advisory: (1510) non-reentrant function "_InitEvent" appears in multiple call graphs and has been duplicated by the compiler
PLink.c:751: advisory: (1510) non-reentrant function "_SetSysLog" appears in multiple call graphs and has been duplicated by the compiler
PLink.c:3188: advisory: (1510) non-reentrant function "__memset" appears in multiple call graphs and has been duplicated by the compiler
PLink.c:3195: advisory: (1510) non-reentrant function "__strcpy" appears in multiple call graphs and has been duplicated by the compiler
これらのワーニング消せないかな?

ちなみに_memsetは以下の通り。
void _memset(unsigned char *ptr, unsigned char data, int size)
{
while (size-- != 0) {
*ptr++ = data;
}
}
0594774ワット発電中さん
垢版 |
2017/03/17(金) 04:20:10.19ID:PsReUh9H
_memsetとかを割込みの中で使ってんじゃないの?

PICはスタックが沢山無いから、通常はスタック上に取る引数を固定領域で代替したりするのでreentrantにならない
そういうreentrantが必要な場面をコンパイラが見つけたから複製(duplicate)しといたよというメッセージなので
別に放置しといても問題ない

どうしてもwarningが出たままだと許せないというアスペさんなんだったら、割込み内専用の_memset
(たとえば _another_memset() とか)を作って、割込み内ではそっちを使えばwarningは消せる
が、結局コンパイラがやってくれてるのを手動でやってるだけのオマヌケなのでオススメはしない
0596774ワット発電中さん
垢版 |
2017/03/17(金) 05:22:21.26ID:2NInbaBN
>アスペさん
>オマヌケなので
こういう、いかにもガキが喜んで使いそうな言い回しを
自制してやめられるようになれば一人前なんだけどな。
0598774ワット発電中さん
垢版 |
2017/03/17(金) 05:35:27.55ID:7a57gXD/
×いかにもガキが喜んで使いそうな
○ガキなのでつい喜んで使ってしまう
だった、すまん。
0599774ワット発電中さん
垢版 |
2017/03/29(水) 14:21:50.94ID:bRloouU8
xc8で質問です。
C++のclass書いたのですがビルドできません。
何か設定あるのでしょうか?
0601774ワット発電中さん
垢版 |
2017/03/29(水) 15:48:45.73ID:Y7S2NyjI
C++の方がいろいろと便利なんだよね
stlやnewが使えなくてもいいからコンパイラだけでも対応してほしい
0602774ワット発電中さん
垢版 |
2017/03/29(水) 16:19:00.47ID:FnfFgLxJ
>>600
対応してないのですね。
.hファイル作成したら、#ifndef __cplusplusがあるので対応してると勝手に思ってしまいました。
0603774ワット発電中さん
垢版 |
2017/03/30(木) 13:07:24.17ID:LUC1HmBt
MPLAB XIDE(v3.51)でXC8(1.41)を使っていますが、ソースファイルを5個に分けたたらビルドできなくなった。
_mainが無いとか出てる。main.cにあるんだけど。
ProjectsのSource FilesでNewでC Main File... とmain c...の2種類出てmainの引数有無の違いがあるのも良くわからんなぁ。
0604774ワット発電中さん
垢版 |
2017/03/30(木) 19:05:01.05ID:I95T1Hl4
MPLABXの外でソース分割したとか
0605774ワット発電中さん
垢版 |
2017/03/31(金) 07:15:43.43ID:dbnESJ8k
>>603
引数がコマンドライン文字列で、戻り値がint が、main の本来の形。

組み込みでは、引数無しとか、戻り値無しの形も多い。
0607774ワット発電中さん
垢版 |
2017/03/31(金) 12:11:52.21ID:yveclysU
PIC16F183xx コスパ高いんだけど、今の処 8Pinは16F18313だけ
PIC16F18314 予定無いのかな?、出てもよさそうなんだけどな
0608774ワット発電中さん
垢版 |
2017/03/31(金) 19:08:35.97ID:dhxytARY
mplab起動したらアップデートのお知らせじゃなくて、ライセンスがなんとか?ってきたけど、何か変更あったの?
0611774ワット発電中さん
垢版 |
2017/03/31(金) 22:51:32.72ID:A+G+0w29
PIC16F18313使ってるけど、色々入ってるのはわかるけど
入ってる機能使うにはちょっと数減らしすぎで、Demo用の
チップのような気がする。
たとえばCLCやタイマーやCCPは減らされると入っていても
使える用途が限られてお遊び程度しか出来ない。
0612774ワット発電中さん
垢版 |
2017/04/01(土) 07:08:51.70ID:TNLLjvn7
8pinだからね
安いし

個人的には18316がほしいが出ないだろうね
0614774ワット発電中さん
垢版 |
2017/04/01(土) 07:19:48.69ID:TNLLjvn7
PIC16F145xの後継も出てほしい
要望はRAM容量
1KBじゃいろいろ出来ない
0615774ワット発電中さん
垢版 |
2017/04/01(土) 07:29:09.29ID:RWOIGk3k
12F1822->12F1840 みたいな感じで
ROM/RAM 拡張版が出てもよさそうだけどな
0616774ワット発電中さん
垢版 |
2017/04/02(日) 07:44:00.25ID:mEftNjKW
RAM容量が大きいのはMicrochip的には24/32でカバーできているつもりなんじゃないですかね。
世間的には Cortex M3かM4でええやん、って感じで。
0617774ワット発電中さん
垢版 |
2017/04/08(土) 23:23:54.11ID:Bn9J7DVg
RAMやROMを増やすのが一番コストの増加につながる
しかも増やせば増やすほど歩留まりが悪化するため
必要最小限にとどめる戦略dと思う・・・・
でも、自分的にはあれば色々できるかなとも思うけど
現状でもほとんどのものが実現できているのも事実で
発売されてるチップの数が多いので、条件に合わせて
選べば不自由はないと思うよ。
PICはROM容量をワードで表示してるものが多いけど
AVRはバイトで表示しているので実際は半分の容量しか使えない
というのが実情です
(ATmega8は4K,168は8K、328は16Kwordが本当の容量です)
Tiny2313は1Kwordしかないのです・・
0619774ワット発電中さん
垢版 |
2017/04/09(日) 00:21:41.62ID:xjBuJ696
.
.
東京都三鷹市下連雀 元ニコ生主の莉里子 吉祥寺よ https://i.imgur.com/XYIO6ri.png  http://imgur.com/a/iO1sL (リスカ)

(整形後) http://i.imgur.com/SLcz3dS.jpg (整形前) http://i.imgur.com/zPvxpx5.png
不倫とか浮気・密会や不道徳な行為はね 著名な小説家もしているの だから私もやっている
ヘラって撮ってもらった黒歴史の私のヌードも見せてあげる https://i.imgur.com/vZeIuO3.png

■2015年2月 釣りニコ生主コジコジと沖縄旅行でオフパコ
2015年2月2日-3日...沖縄旅行でSEX/やり捨てされ逆ギレ
2015年2月4日.........莉里子の父親から電話があって脅されたとコジコジに放送で暴露される
2015年2月6日.........リスカ画像UP 
2015年2月9日.........ツイ全消し/コミュ爆破逃亡
http://imgur.com/a/58WQC 

■2016年6月 バンドマン兼ニコ生ツイキャス配信者と密会 その3日後にSEX〜継続中
http://imgur.com/a/Lx8o2

●土井莉里子●早川莉里子●土井寧々●土井剛●早川剛●星崎●りりこ●りりこし●にゃんぱす
●ね子●にゃこ●みんち●めう●ねね●猫又●剛

※名古屋のゲイ風俗ホストとも肉体関係※
0620774ワット発電中さん
垢版 |
2017/04/09(日) 00:22:10.22ID:xjBuJ696
.
.
莉里子(本人公表)1994年3月7日 or 1996年4月25日 http://imgur.com/a/oJZpv
生主時代(にゃんぱす、りりこし、莉里子)
剛 http://i.imgur.com/dQxxGuV.png  http://imgur.com/a/gPaof (俺の性生活は凄いワヨ) https://imgur.com/a/3peso
 
東京都三鷹市 【シティハイツ吉祥寺通り】4F (UR賃貸住宅)
http://i.imgur.com/UmTmbcu.jpg
http://i.imgur.com/cODTuzm.png
http://i.imgur.com/KdyuUod.png
http://imgur.com/a/eeixK (見せたがり乱交好きのメンヘラ) 

http://i.imgur.com/eaOxdEn.jpg KERAゴスロリバイブル (2012年3月号) 
http://i.imgur.com/lobby7w.png
http://i.imgur.com/AdewV6O.jpg
http://i.imgur.com/YQaNYBd.png
http://i.imgur.com/pdsCXHG.jpg

緊縛ハメ撮り師 『相馬ドリルrenji』 とラブホで緊縛ハメ撮り
https://pbs.twimg.com/media/CpFjMz0UEAAurD-.jpg 
https://twitter.com/somadrill/status/761498960028499968
http://imgur.com/a/3dnz5 少年A (勃起,精子,尿道,肛門)
0621774ワット発電中さん
垢版 |
2017/04/09(日) 06:54:48.95ID:/+0C9ysI
>>617
そのROM1KWしかないエントリモデルのtiny2313でさえAVRは実用的なマルチタスクが動かせるんだぜ、驚くだろ?
0622774ワット発電中さん
垢版 |
2017/04/09(日) 08:23:51.74ID:x92slAmF
普通過ぎて特徴が無い。
所詮、無くなる運命。
0623774ワット発電中さん
垢版 |
2017/04/09(日) 08:30:51.40ID:vRXU/K0K
どうでも良いが自分が発明したわけでも無いのに自慢するなよ。
0624774ワット発電中さん
垢版 |
2017/04/09(日) 16:42:57.58ID:qmcRkoA2
入信した人は自慢したくなり他を罵倒し争う
入信していない人は何そんなにムキになってるか分からない
0625774ワット発電中さん
垢版 |
2017/04/09(日) 18:03:42.91ID:K6Tvk61C
>>621
ちょっと賢い周辺IC を目指したPIC に、コア性能でしか張り合えないとか。
0628774ワット発電中さん
垢版 |
2017/04/09(日) 23:54:41.53ID:vNwWyrrs
PICとAVRならAVRの方が上なのは間違いがないけど、ARMやMIPSに比べたらゴミ
0629774ワット発電中さん
垢版 |
2017/04/10(月) 14:21:47.73ID:EGPb3ppz
そのゴミでさえちゃんと使いこなせないような三流プログラマしかいないけどw
0631774ワット発電中さん
垢版 |
2017/04/10(月) 19:11:23.86ID:yVqi6aA9
>>629
使いこなせなくても、ARMやMIPSをヘボながら使えて用が足りるんなら良いんじゃない?
0632774ワット発電中さん
垢版 |
2017/04/10(月) 19:48:52.38ID:Z7AwJSn7
ゴミを使いこなす方が難しい
変態アーキテクチャー&エラッタ
0634774ワット発電中さん
垢版 |
2017/04/11(火) 07:15:41.98ID:sxXPGV64
PICは100均工具だと思ってる。精度は悪いけど安くてどこでも入手できる。
欠点を理解しつつ工夫して使えば数千円の工具にも匹敵するパフォーマンスを発揮
0636774ワット発電中さん
垢版 |
2017/04/11(火) 15:15:08.85ID:P3SgVWU5
いつも感じていることだけど、趣味でPICを使っている人って健気だね、
オジチャンは感心しちゃったぞ。
そのうちにマイクロチップ・テクノロジー・ジャパンから表彰されるかもしれないな。
周囲の雑音なんて気にせずにガンバッテ下さい、陰ながら応援していますよ。
では失礼します。
0639636
垢版 |
2017/04/11(火) 17:13:59.41ID:P3SgVWU5
イヤミっぽい書き方になってしまって申し訳無い。
まぁ、でもガンバッテ欲しい、というのは本心です。
趣味の電子工作の道は違っても目指しているものは同じだと思うので。
気を悪くされた方がいたら、すみませんでした。
これで本当に終わりにします。
0640774ワット発電中さん
垢版 |
2017/04/11(火) 19:07:44.35ID:tV38dH3E
俺に取ってPICは(重要ではあるが)問題解決の一要素に過ぎない。
なので「フルパワーを搾り出す」とか「能力を使い切る」とか書いてあると
いい歳した大人のくせして…高校生かよ、と思わざるを得ない。
0641774ワット発電中さん
垢版 |
2017/04/11(火) 20:09:26.51ID:PXlBBbxq
昔のトラ技の記事
PICでブロック崩し作ってた人いたな
あれはすごいと思った
0644774ワット発電中さん
垢版 |
2017/04/12(水) 00:10:59.59ID:bKEPDT8H
PICとかワンチップマイコンを扱える人間なら
PICだろうがAVRだろうがお互いの違いに文句を言いつつも結局は扱えるだろうから
お互いを馬鹿にしたところでたいした意味は見いだせないだろうなぁと思ったり。
0646774ワット発電中さん
垢版 |
2017/04/12(水) 08:07:51.54ID:YozF6vpi
少なくとも「エラッタガー」って連呼してる特定の一人は悪意でやってると思うわ
0647774ワット発電中さん
垢版 |
2017/04/12(水) 08:14:43.90ID:k6/dpndU
いや、事実だろ

エラッタが多い
エラッタを放置
エラッタを未公開
0649774ワット発電中さん
垢版 |
2017/04/12(水) 08:17:25.46ID:k6/dpndU
コア性能とエラッタ

これがPICの悪いところ
それをわかってて使ってるんでしょ?
0650774ワット発電中さん
垢版 |
2017/04/12(水) 08:20:05.92ID:k6/dpndU
コア性能が良いとか、エラッタが他のマイコンと同等だとか、そういう事実と異なる主張の方がよっぽど悪意を感じられる
0651774ワット発電中さん
垢版 |
2017/04/12(水) 08:47:46.52ID:3wB+Q89U
バグも仕様のうち、という言葉があってな、
仕様を変えたら、今まで運良くでも動いていたソフトが動かなくなることもある。
チップメーカーは流通在庫をコントロールできないし、
製造業のユーザーがバージョン違いの両方で確実に動くことを確認することも難儀。
一旦世に出したら、かたくなに仕様(バグ、エラッタを含む)を変更しないというのもひとつのポリシーだと思うよ。
0652774ワット発電中さん
垢版 |
2017/04/12(水) 09:13:45.86ID:muX05FHA
エラッタ隠蔽も、エラッタによるスペック詐欺も、モデルチェンジでエラッタを引き継ぐとかもポリシーか
0653774ワット発電中さん
垢版 |
2017/04/12(水) 09:17:25.55ID:muX05FHA
カタログスペック「アナログを強化、12bit ADC搭載」
エラッタシート「12bit ADCはまともに使えません。10bitで使ってください」

カタログスペック「ウィンドウモードのウォッチドッグタイマー搭載」
エラッタシート「ウィンドウモードのウォッチドッグタイマーはまともにつかえません。非ウィンドウモードで使用してください」
0654774ワット発電中さん
垢版 |
2017/04/12(水) 09:22:44.74ID:LADl3ENd
場合によりけり
bra/brw 命令実行中に割り込みが入ると どっかに飛んでくとか、到底仕様とは言えない
この場合、直すか/使うなと言うか のどちらかだ。
0655774ワット発電中さん
垢版 |
2017/04/12(水) 09:41:56.24ID:bKEPDT8H
>>645
「悪い所を指摘している」のではなく
「悪い所を指摘しているのに気にしない人を馬鹿にしてる」んだよねぇ。見てるとさ。

しかも粘着の仕方が異常。
0657774ワット発電中さん
垢版 |
2017/04/12(水) 13:10:28.93ID:bKEPDT8H
>>656
それを言いたいが為にずっと粘着しているようにしか見えんし。
自分の意見を認めてもらえず、それが悔しくてに粘着してるんだろうなぁと。

使いたい人が使いたい物を使えばいいだけの話。
0658774ワット発電中さん
垢版 |
2017/04/12(水) 13:32:03.38ID:3wB+Q89U
>>657
エラッタのを回避ができなくて相当苦労したんだよ。そっとしといてやんな。
0659774ワット発電中さん
垢版 |
2017/04/12(水) 13:47:56.71ID:z+xyfOie
自分はまだ経験が無いけど、
作ったプログラムが正しく動作しない原因がCPUのエラッタのせいだと分ったときの
ショック、怒りは大きいだろうな。
しかし修正しないってのはメーカーとしてあり得ないと思うけど、どうなってんだ?
0660774ワット発電中さん
垢版 |
2017/04/12(水) 17:21:15.44ID:3wB+Q89U
> 作ったプログラムが正しく動作しない原因がCPUのエラッタのせいだと分ったときの
> ショック、怒りは大きいだろうな。

PIC の話ではないが、雇われ技術者の経験談としては、俺のバグではなかった、ザマミロ、とある意味ほっとする面があるんだ。
それと、エラッタ回避も自分の責任ではないと判明した以上、パズルを解くような楽しみさえある。
必ずしもいつもそうだ、というわけではないが。

> しかし修正しないってのはメーカーとしてあり得ないと思うけど、どうなってんだ?
エラッタ修正版が出てきたら出てきたで、テストを全てやり直し、もうエラッタ回避してちゃんと動いてるんだから勘弁してくれ、という気分になることも否めない。
0662774ワット発電中さん
垢版 |
2017/04/12(水) 18:23:49.04ID:8lJQkF1x
経緯分からないんだけど、結局そのバグとやらは
ちゃんとMicrochipに然る筋からキチンと報告したのかね?
ここで騒いでるだけで隠蔽だの言ってるのだとしたら
単なる粘っこい残念な人にしか見えないんだけど。
0663774ワット発電中さん
垢版 |
2017/04/12(水) 18:29:19.06ID:k6/dpndU
PICではないが、8bitマイコンのエラッタが原因で、出荷後にソフト変更を行ったことが1回ある
市場で発覚
負荷テスト1週間位でやっと発生する問題
エラッタに記載は有ったが、内容が正しくなかった為に、非常に低い確率で回避出来ていなかった
当然メーカーと代理店を呼びつけて説明して頂いた
損害賠償請まではいかなかった

10年くらい前の話
0664774ワット発電中さん
垢版 |
2017/04/12(水) 18:33:01.30ID:k6/dpndU
8bitだと、コンパイラのバグでソフトのバクを出したことがあった
これは幸い量産には間に合った

コンパイラのエラッタに記載が有ったが、その当時コンパイラのエラッタを確認するルールも習慣もなく見逃した
0665774ワット発電中さん
垢版 |
2017/04/12(水) 18:35:24.07ID:k6/dpndU
8bitレベルの小規模マイコンだと、思い出に残ってるのはこの2件くらい

一部上場電機メーカーの開発チーム20年のエンジニア
0666774ワット発電中さん
垢版 |
2017/04/12(水) 18:43:13.85ID:k6/dpndU
エラッタが直ったことで発生するようになった問題は今まで一度もない

通常、エラッタを回避する場合はエラッタが無くても正常に動作するコードにするので

エラッタが直らない方が良いと思ったことはないな

評価はエラッタが直ろうが直るまいが、リビジョンが変われば当然やるよ
おれがやる訳じゃないけど
0667774ワット発電中さん
垢版 |
2017/04/12(水) 18:44:09.04ID:k6/dpndU
PICは量産では使ったことがないし、使おうとも思わない
ただの趣味
0668774ワット発電中さん
垢版 |
2017/04/12(水) 18:47:49.10ID:k6/dpndU
簡単に回避可能なエラッタなら、情報を適切に公開してる前提で、直さなくても良いとは思うけど

PICの場合は、回避不可能なエラッタ、機能が使えなくなるエラッタ、回避コードがコード全体に影響するようなエラッタまで放置なんで

しかも適切に情報が公開されていない
0673774ワット発電中さん
垢版 |
2017/04/12(水) 19:29:43.79ID:8lJQkF1x
負荷テスト一週間程度で出る不具合が検出できてない時点で
チップメーカー非難する以前のレベルだろう。
事前に部品評価もQAもろくに出来てないんだろうな。
よくまぁ一部上場企業とかドヤァ出来たもんだなぁ・・・
0674774ワット発電中さん
垢版 |
2017/04/12(水) 21:27:00.15ID:k6/dpndU
>>673
発生した時のログと現象からピンポイントに絞った負荷テストだよ
普通の負荷テストじゃ1年やっても発生しないよ

ていうか、製品に夢見過ぎだな
ある程度の規模以上のソフトはなにかしらバグがある
0676774ワット発電中さん
垢版 |
2017/04/12(水) 21:31:35.17ID:k6/dpndU
これだけ使えない機能が有っても売っちゃうんだもんな
これでも氷山の一角
0677774ワット発電中さん
垢版 |
2017/04/12(水) 21:45:33.84ID:YozF6vpi
ほら、みんなで相手するからエラッタ君キャッキャ言ってるぞ。
「相手してもらったぁぁ!!」って夜も寝られないぞ。
0678774ワット発電中さん
垢版 |
2017/04/12(水) 22:05:13.54ID:bKEPDT8H
結局、メーカーに言えないからここで憂さ晴らししてるだけじゃんw
0679774ワット発電中さん
垢版 |
2017/04/13(木) 07:34:08.18ID:v458RkbW
安価で提供する代わりにアマチュアユーザーがバグ出し検証に協力していると思えばいいんや
対策版を企業ユーザが採用し、そこで得た利益を新製品開発に投入する・・・良いサイクルだ
0681774ワット発電中さん
垢版 |
2017/04/14(金) 20:37:35.96ID:0QKdpE4y
アマチュアユーザーはバグがあっても報告しない
Microchipはバグがわかってても対策しない
0682774ワット発電中さん
垢版 |
2017/04/15(土) 07:00:46.17ID:zvtsV9KH
PICユーザーはプログラムがうまく動かないときに
<自分のプログラムの問題なのか、それともCPUの問題なのか>
なんて悩まなければいけないのか?
考えただけでもゾッとする
0683774ワット発電中さん
垢版 |
2017/04/15(土) 07:45:48.39ID:r2tCQ5l+
苦情を出したいんですが英文が書けないのでここで憂さ晴らししています
0684774ワット発電中さん
垢版 |
2017/04/15(土) 09:02:50.30ID:fo+H1ii2
>>682
まず99%自分のバグを疑え、
errataなんて万策尽き果ててから真剣に見るもんだ。
それまではチラ見で問題ない

>683
データシート読んでる位ならかけそうなもんだが。
つかgoogle翻訳
0685774ワット発電中さん
垢版 |
2017/04/15(土) 09:19:05.48ID:wTgDpU+n
もうマジレスなんかしないでスルーしようぜ
煽って楽しんでるだけなんだし
0686774ワット発電中さん
垢版 |
2017/04/15(土) 09:36:22.03ID:4Lulqky0
>>684
普通のマイコンだとそれで良いんだけど、PICの場合は違う
そもそも記載もされてない
0689774ワット発電中さん
垢版 |
2017/04/15(土) 09:51:56.14ID:4Lulqky0
多くのモデルでDIP版がある
秋月でDIP版の品揃えが豊富
趣味の電子工作の小規模マイコンでは採用率が高く、作品例も多く紹介されている
低価格路線のシェアが比較的高い

基本的には廃盤にしないポリシー
モデル数が多く、古くて低性能高価格の物も売っているので、モデル選択に困る

CPUのパフォーマンスは全体的に低い
特に8bitは顕著
エラッタが多く、公開されてない物も多い
0690774ワット発電中さん
垢版 |
2017/04/15(土) 09:53:15.66ID:4Lulqky0
オレのお薦め
迷ったらこれを買え
(秋月に売ってるPIC DIP限定)

●USBなし
PIC10F200 マゾ専用 最低スペック 50円
PIC10F322 最安 45円
PIC16F18313 8pin 75円
PIC16F18326 14pin 130円
PIC16F18346 20pin 160円
PIC32MM0064GPL028 28pin 3.3V 175円

●USBあり
PIC16F1455 14pin 140円
PIC16F1459 20pin 180円
PIC32MX230F064B 28pin OTG 3.3V 270円
PIC32MX270F256B-50 28pin OTG 3.3V 380円
0691774ワット発電中さん
垢版 |
2017/04/15(土) 10:21:39.28ID:fo+H1ii2
>>686
AtmelだってAVRにerrataに載ってないバグあったよ。
心配ならルネサスでも使っとけ。
0693774ワット発電中さん
垢版 |
2017/04/15(土) 12:11:18.48ID:q8ZcRlhI
仕事で使ってる分にはDisconなし、ってのは有難い方針なんだけど、
趣味の方にはデメリットなの? MAPS onlineとか使った事ないの?
秋月の取扱いが全て?
0694774ワット発電中さん
垢版 |
2017/04/15(土) 12:41:00.38ID:zvtsV9KH
>>693
逆では?
遊びなら古いCPUを死ぬまで使い続けてもカラスの勝手だけど、
仕事で使っていると適当な期間で生産中止にしてくれないと困る。
0695774ワット発電中さん
垢版 |
2017/04/15(土) 12:55:50.24ID:LC9GeqPl
>>694
それは開発でお金をもらう立場だけの言い分では?

当たり前だけど、開発の主体となって製品を出す立場なら、部品は長期供給が続けられるものの方がいい。
ディスコンになったからといって開発部隊を動かしたり、開発外注にお金を払うのは避けたいわけだし。

一面だけ強調して「仕事ならディスコンしてくれないと困る」と代表されても、ナニコノヒトって感じ。
0697774ワット発電中さん
垢版 |
2017/04/15(土) 13:40:09.07ID:Y6UYVZCp
下請けだとディスコンになろうがなるまいが
供給責任という名のもとで長期間ほそぼそと作り続けなくてはならないのだよ
0698774ワット発電中さん
垢版 |
2017/04/15(土) 14:42:41.91ID:wTgDpU+n
>>691
仕事で使っていれば分かるけどルネの石も酷いもんだけどな
0699774ワット発電中さん
垢版 |
2017/04/15(土) 14:44:28.34ID:wTgDpU+n
>>695
普通はそんな0か1かみたいな話じゃなくて商品のライフサイクル決めて計画するだろ
0700774ワット発電中さん
垢版 |
2017/04/15(土) 14:57:56.94ID:oFAI+2Yl
>>698
ルネもRL78でSPI通信にエラッタあって
業務開発でモロに食らった経験ある
メーカー問わずシリアル通信の受信ユニットは
マイコンクロックと同期しないからバグが出やすい鬼門なのかもね
0701774ワット発電中さん
垢版 |
2017/04/15(土) 15:17:32.82ID:LC9GeqPl
>商品のライフサイクル決めて計画するだろ
ごもっともです。
0702694
垢版 |
2017/04/15(土) 15:28:34.23ID:zvtsV9KH
>>695
私がCPUの生産中止を望むいくつかの理由
・CPUボードはCPU1個だけで出来ているわけでは無い。
周辺の半導体はもちろん、コネクタ、スィッチ、ノイズフィルタ、CRなどが
1個でも入手できなければボードは作れなくなる。CPUだけ存在しても意味が無い。
・機能をアップしたくても古いCPUの仕様に縛られてしまう。
上位コンパチみたいな形で対応せざる得ないがソフト、ハード共に面倒になる。
・使っている客がいる限り、そのCPUボードのサポート体制(人と部品在庫)を維持しないといけない。
・修理だけでは儲けが出ない。適当なタイミングで新しいCPUボードに買い換えてくれ。

私と >>695 の考えが異なるのは、作っているものが異なるからか?
ちなみに当方の一番古いCPUボードはザイログZ8を実装した'90年頃のもので、
複数個のラック(マザーボード)をLANで接続してビルの管理をしており。
現在も24時間365日稼働している。
たまに落雷や工事で壊れたりするのだが、CPUボードの時計ICやPLD、
DC-DCコンバータなどが当然入手できないので、修理に四苦八苦している。
>>695 は本当にメーカーなのか? どんな商品を作っているのか?

……などと長々と書いてきたけど、
いつも君と意見が衝突するし、いつも同じような内容のやり取りだし
なんかとても下らない事にエネルギーを遣っているような気がしてきて、
突然もうど〜〜〜うでも良くなったw
レスは不要です。(もちろん書いても構いませんが)

関係無い人、興味ない人、長文ゴメン。
0703774ワット発電中さん
垢版 |
2017/04/15(土) 15:55:16.62ID:LC9GeqPl
>>702
それってCPUが製造中止にならなくても、作り手の意思で更新すればできることじゃないか。

自分たちで企画した製品でも社内の理解が得られなくて、CPUを更新することなんてできない、
いっそCPUがなくなればできるのに、って話なんだろうけど、
コンペチタが競合製品をぶつけてくるときは、その時点で合理的な部品の選択してくるよ。

だいたい言ってることに一貫性がない。古い機器について
>時計ICやPLD、DC-DCコンバータなどが当然入手できないので、修理に四苦八苦している
CPUがディスコンになっていなくても、他の部品がディスコンになっていることを理由に作り直せばいいではないか。
それができない現場なら、CPUがディスコンになっても類似CPU+周辺回路+ソフト変更でお茶を濁せって言われるぞ。
0704774ワット発電中さん
垢版 |
2017/04/15(土) 17:39:46.56ID:zYn3MdVE
こんなリスキーなCPUを
開発ベースとして選択してる時点で
設計担当者としては才能が無いと考えた方がいい
0706774ワット発電中さん
垢版 |
2017/04/15(土) 18:42:29.86ID:q8ZcRlhI
CPUコアからしてリスクだよ。
0708774ワット発電中さん
垢版 |
2017/04/15(土) 22:27:40.05ID:RcLZqHdC
初代Pentiumか何かがcmpxchg8bなんちゃーらを食らうとそこでハングアップするエラッタ無かったっけ?
バッファオーバーフローとかで好きな命令動かせるようになると威力を発揮する危険なエラッタが
プロテクトモードでも駄目なんじゃ無かった様な気がした
0709774ワット発電中さん
垢版 |
2017/04/16(日) 00:05:29.72ID:QDW3ZExO
エラッタというより非公開のメンテナンスコマンドだったというよな説も
フローティング演算結果がくるってるというのが結構有名だったよな。
0710774ワット発電中さん
垢版 |
2017/04/16(日) 06:36:00.87ID:8muWQQ0K
教えてください

テスターなどの表示数字の表現で、3桁半とか言いますが、この意味がわかりません。
たとえば、
・1999表示は、全部で4桁ありますが、半と言うのは何を示すものですか?
・3999表示、5000表示は何というのでしょうか
0711774ワット発電中さん
垢版 |
2017/04/16(日) 09:29:38.43ID:V8kSAIzA
1か0(無点灯)しかないものが1/2桁
3,2,1,0しかないものが3/4桁

最大表示が1999は3と1/2桁
最大表示が3999は3と3/4桁
最大表示が5000は知らん
0712774ワット発電中さん
垢版 |
2017/04/16(日) 11:15:51.76ID:MAavZdhC
PICの8ビットコアをAVRに変更する
エラッタの修正をAVRの設計スタッフに頼む
以上でPICの現状の問題点はとりあえず回避できる
0715774ワット発電中さん
垢版 |
2017/04/16(日) 12:02:08.73ID:Ieg48Zez
>>709
割り算テーブルが間違ってるヤツだな
intelはあれ以来エラッタを修正できるような仕組みをCPUに入れた
0716774ワット発電中さん
垢版 |
2017/04/16(日) 12:13:06.20ID:k/EKjZnH
>>712
そんなことしたら、会社が傾きどっかに買収されておしまいwww
0717774ワット発電中さん
垢版 |
2017/04/16(日) 12:54:53.32ID:wdCORCXK
ところでHarmony 2.0はいつbetaが取れるんだ?半年は掛かってるが。
0719774ワット発電中さん
垢版 |
2017/04/16(日) 15:45:20.10ID:78N4/02D
ARMの資料らしいけど、ARMの32以下っていつ位の時代の話だろう?

4bitは4bitなりにRTC内蔵とかデフォでやってるのでむしろ8/16bitが置いてかれるのは分からんでもない
0720774ワット発電中さん
垢版 |
2017/04/16(日) 16:17:45.87ID:wdCORCXK
組み込みCPUなんて所詮黒子なんだしいちいち盛り上がったとか凋落したとか違和感あるわ
(スマホのアプリケーションプロセッサは除く
0721774ワット発電中さん
垢版 |
2017/04/16(日) 16:47:20.75ID:nPr2MW5x
>>719
ARMは32bitと64bitのアーキテクチャしかないよ
ARMが提示した資料だけど、MCU市場全体のグラフ
0722774ワット発電中さん
垢版 |
2017/04/16(日) 17:05:38.65ID:78N4/02D
>>721
レスあり、PPCとかMIPSとか相手にしてた時代からの話って事?
(その辺しか昔から高ビットでやってたのを知らないのでニワカっぽかったらすまん)

このスレ的には逆に言うと8/16ならとりあえず各サプライヤのオリジナルとかも含めPIC/AVRあたりの独自マイコンを提示しとけって話になるのかな?
4bitは格安時計用に水晶二つ繋げる品名すら出てこない所を見た事しかないので済まない…

PICもディープスリープで時計になる様なのでないかな?
別に買ったらRTCと電源って高いよね?
理想的には外部電源とボタン電池で外部電源が切れる合間だけボタン電池で動く、数年は楽に持つようなのがワンチップ…とは言わないまでも実装可能なのが欲しいんだけど…
0723774ワット発電中さん
垢版 |
2017/04/16(日) 17:46:40.92ID:nPr2MW5x
90年代に8bitマイコンが使われてたような用途で
今は32bitマイコンが使える
90年代に2000年代に32bitマイコンが使われてた用途で
今は64bitマイコンが使える
時代は移り変わっていくもの
0724774ワット発電中さん
垢版 |
2017/04/16(日) 18:01:51.83ID:nPr2MW5x
PICなら32bitでもDIPパッケージとかあるし
毛嫌いすることもないんじゃないのか
0725774ワット発電中さん
垢版 |
2017/04/16(日) 18:48:28.27ID:wdCORCXK
つぎの言い訳「8ピンじゃないと…」
0727774ワット発電中さん
垢版 |
2017/04/16(日) 19:44:00.15ID:wdCORCXK
次の言い訳「5.0V電源でないと…」
0731774ワット発電中さん
垢版 |
2017/04/16(日) 23:33:16.97ID:pZfcpIMz
8ピンPICで簡単なロガー作ったことあるけど意外と使いものになる
一日数回A/Dした結果をEEPROMに記憶し、UART〜FT232経由でPCに吸い上げる使い方
0732774ワット発電中さん
垢版 |
2017/04/17(月) 11:44:34.52ID:0qtoA+So
USBの場合、
pin数がなんとかなったとして、
ROM/RAMはPIC16F18313に対して大幅に増やさないとUSBドライバが作れない

アセンブラでガチガチに作らないと機能が実現出来ないような製品を作るわけはないし

ROM/RAMを大幅に増やした8pinが出たら、USB機能以外にもいろいろとうれしい
0733774ワット発電中さん
垢版 |
2017/04/17(月) 12:05:09.86ID:3Y9BNQ4f
PICはペリフェラルI/Oコントローラとして作られたのだから
システムコントロール能力が低いのは当然であって
他のメーカーのCPUのような過大な期待をしてはいけない

731 のような単機能のフォーマット変換やプロトコル変換や前処理・後処理なら
エラッタありのPICでも十分に使えるし
この世にはそのような低レベルの需要はいっぱいある

エラッタがある、エラッタが未修正、マルチタスクが走らないなどと
文句を言う事自体が間違っているのだ
これでいいのだ (天才バカボン)
0734774ワット発電中さん
垢版 |
2017/04/17(月) 12:31:31.53ID:prFErPGw
じゃあ初心者が普通のマイコンだと勘違いしないようにテンプレに載せとけよ
PICはマイコン未満のデバイスですって
0735774ワット発電中さん
垢版 |
2017/04/17(月) 14:44:32.75ID:UgsDtckZ
>>733
逆に言うとPICに今時のマイコンみたいな
汎用性とかスケーラビリティとかを
期待しちゃダメだって話だな

PICは決まった処理の低レートの処理を
地味にこなす様な用途にしとけって事だわ

RTOSやら話が出て来た辺りから
妙な方向に話が突き進んでしまった様だ
0741774ワット発電中さん
垢版 |
2017/04/17(月) 22:24:32.17ID:cudeUdBJ
暗いと不平を言うよりも進んで明かりをつけましょう
0742774ワット発電中さん
垢版 |
2017/04/18(火) 06:49:36.06ID:iFuKAeSb
汎用処理が出来ないとかwww
℃素人にも程がある。
計算可能性理論とかの基礎から勉強すればいいのに
ユトリ世代って、箸にも棒にもかからないwww
0743774ワット発電中さん
垢版 |
2017/04/18(火) 07:01:21.34ID:epCQHyiq
計算可能性理論www

おれの得意とするところだが、この板でやる話題じゃない
0747774ワット発電中さん
垢版 |
2017/04/18(火) 11:05:37.61ID:tqcNMct/
バグだらけのPICに計算可能性理論…

世の中には理屈通りにいかない事が多いって
いつになったら気付くのか
0748774ワット発電中さん
垢版 |
2017/04/18(火) 11:10:53.81ID:yDusVdAZ
いやいやバグとかPICとか関係無いから
計算可能性理論

実際のコンピューターの命令とは関係なく、
計算オーダーですら無視するジャンル

無限のリソース、無限の速度のコンピューターで何が出来て何が出来ないか
とかそういうことを扱う学門

℃玄人がそんな関係無い話題を出したってことは、その学門の意味を知らないってこと
0749774ワット発電中さん
垢版 |
2017/04/18(火) 11:50:12.29ID:JR8MnlBr
>>748
で、お前の動かしたいプログラムは、PICだとどれくらいの時間が掛かるんだ?
0751774ワット発電中さん
垢版 |
2017/04/18(火) 12:04:51.78ID:Q/BMeSTo
うっせーなお前らの好きな16F84A 4096コでクラスタでも組んどけ
0753774ワット発電中さん
垢版 |
2017/04/18(火) 12:41:49.46ID:O7gD6+oR
PICを使ってビッグバン後の宇宙のシミュレーションをしたいと思っています
PICで実現できるでしょうか
PICは何個必要でも用意します
また有限時間でできるならいくら時間が掛かってもかまいません
よろしくお願いします
0754774ワット発電中さん
垢版 |
2017/04/18(火) 12:45:50.00ID:alcdMCUR
宇宙の素粒子の数分用意してください
10^(-100)秒間を10^100秒でシミュレート出来ます
0755774ワット発電中さん
垢版 |
2017/04/18(火) 12:51:06.29ID:O7gD6+oR
素粒子の数だけPICは用意できるでしょうか?
素人考えだと宇宙中から集めても材料が足りなくなる気がしており不安です
よろしくお願いします
0756774ワット発電中さん
垢版 |
2017/04/18(火) 12:52:59.11ID:alcdMCUR
何個でも必要なら用意するって書いたのはウソか?
材料が足りないなら他の宇宙から持ってこい
0757774ワット発電中さん
垢版 |
2017/04/18(火) 13:08:12.75ID:gD/4mnTW
ネタにしてもかなりお寒い内容だと
何故書いている最中に気付かないのか

せめて投稿する直前に一度読み返して
寒い内容だと自ら気付く慎重さが
開発者のセンスとしては必要だな
0758774ワット発電中さん
垢版 |
2017/04/18(火) 17:48:29.72ID:O7gD6+oR
自分がつまらなかったネタをスルーせずいちいち突っかかってくるセンスは
開発者にとって必要なセンスなのでしょうか?
0759774ワット発電中さん
垢版 |
2017/04/18(火) 18:42:33.87ID:Q0MstMN5
実力無い奴って、発想が貧困だから碌なネタを書けない。
他人の書き込みですこしスレが振るわうと、何故か悔しがって珍妙な書き込みするんだよなwww
面白すぎるw
0761774ワット発電中さん
垢版 |
2017/04/18(火) 19:45:35.97ID:kKnkEoaE
宇宙をいくらでも用意するから、お金の心配はするな。俺にまかせろ。
0763774ワット発電中さん
垢版 |
2017/04/19(水) 18:10:28.56ID:kBjANmcb
なんにもない なんにもない 全くなんにもない
0764774ワット発電中さん
垢版 |
2017/04/20(木) 15:39:35.47ID:CruiEdC8
>>759
>実力無い奴って、発想が貧困だから碌なネタを書けない。
>他人の書き込みですこしスレが振るわうと、何故か悔しがって珍妙な書き込みするんだよなwww
この発想はどこから来るんだ?
そもそもスレは誰かさんの所有物では無いと思うし、賑わって悔しがる必要も無いと思うけどな

もしかしたら 759  は少しでも他のレスが賑わうと、
悔しがって珍妙な書き込みをしている本人なのか?
--- AVRスレより ---
卵加
印加帝国
印加してもいーん…
あい〜ん

押下すんぞ?
インカのめざめ
インカの山奥で修行して
淫花ってのがあったなか
0768774ワット発電中さん
垢版 |
2017/04/20(木) 21:02:25.68ID:VB64gXVX
微妙に話それるけど質問。
MPLAB X IDE内蔵のエディタ画面中央に、縦の赤い線が表示されてるんだけど消せないんかな? 線幅1ドットで、画面を中央で分割するように上端から下端まで表示されてる。
もちろんモニタの異常ではなく、内蔵エディタでのみ表示されてる。
0769774ワット発電中さん
垢版 |
2017/04/20(木) 21:19:54.78ID:iq2WrmP5
左マージン?
0771774ワット発電中さん
垢版 |
2017/04/20(木) 21:40:21.39ID:UGPJK3LU
返信ありがとうございます。

>>769
画面ど真ん中なんでマージンと言う感じではなさそうです。

>>770
後で設定見てみます。
0773774ワット発電中さん
垢版 |
2017/04/21(金) 00:24:01.07ID:pAcs46UI
>>768=>>771です。
右マージンの設定値を200にすることで赤線消えました!あぁスッキリ。
皆さんありがとうございました。
0774774ワット発電中さん
垢版 |
2017/04/21(金) 00:30:13.86ID:pAcs46UI
ちなみに昔内蔵エディタの矩形選択について質問した者ですが、ctrl+shift+rで切り替え出来ることを割と最近知りました。ちょっと挙動不審な事もありますが。
0775774ワット発電中さん
垢版 |
2017/04/24(月) 15:39:00.89ID:RID0quF1
MPLAB X IDEの文字バケ問題解決したわ
win10から7に戻したら文字バケしなくなった

どうも俺のパソコンは10と相性が悪いらしい
0776774ワット発電中さん
垢版 |
2017/04/24(月) 16:21:01.78ID:ZiCHCTYf
IDE全体の設定と、プロジェクトごとの設定と、テキストファイルの文字コード、全てが一致してると問題は発生しない
0777777
垢版 |
2017/04/24(月) 17:05:53.60ID:v99EFr/B
777
0780774ワット発電中さん
垢版 |
2017/04/24(月) 23:29:50.43ID:xwrj0wag
あー8.92はないわ
ICD3とかのドライバスイッチとか面倒だし
全部8.92で開発出来れば使うんだけどねぇ

Xメモリバカ食い,1G近くも食ってるわ
32bitWinだと辛い
0783774ワット発電中さん
垢版 |
2017/04/25(火) 06:04:52.23ID:fs4ILXnQ
昔なら一台新しく組んでLinuxでって言えるけど今ノートPC買ったほうが安そうだしなあ
うちは部品が余ってたから一台組んでLinuxで開発してるけどそう言う時代じゃないし
一応5桁PIC使えるよ。当たり前か
0784774ワット発電中さん
垢版 |
2017/04/25(火) 13:33:22.58ID:i0Hy2f3x
初PICでPIC10F322いじってみてるんだけどLチカでは
つまらないのでPWMでブザー鳴らしてみたんだけど
ちょっと音階鳴らすだけのプログラムでもCで書くと
メモリあふれちゃうな。
こういう時ってどういうコードが生成されてるかを
確認する方法ってある?
サイズ内ならば生成されたelfだかhexを開発環境に
食わせて逆アセンブルの内容を見れるみたいだけど
なんとなく関数化されてるものが展開されてるように
見えるので確認したいなーと

環境はWindowsでMPLAB Xの最新の奴を使ってます
0786774ワット発電中さん
垢版 |
2017/04/25(火) 13:56:03.93ID:i0Hy2f3x
>>785
XC8でもはかれます?
試したけど生成物の中にそれらしき物が見つからず。
ググったらXC32の記事は出てきましたが・・・。
0790774ワット発電中さん
垢版 |
2017/04/26(水) 00:01:50.30ID:ukdQvwBe
>>784
音階を鳴らすくらいなら十分に収まります
自分はNCO使ってメロディーを鳴らしていますが
結構、音のデータも入ります。
0791774ワット発電中さん
垢版 |
2017/04/26(水) 00:02:01.10ID:/XhAPM2o
ふむ・・・よく見てみたらちゃんとビルドが通れば--asmlistでlstファイルが
はかれているね。今回の場合は生成されないので比較出来なかったけど。

コードを切り詰めて切り分けしてみたら__delay_msの書き方の問題みたいだけど
こういう事は出来ないの?while内に直接書くのはビルド通る。

#define _XTAL_FREQ 8000000
void WaitMS(int x)
{
__delay_ms(x);
}
void main(void)
{
while(1)
WaitMS(100);
}
0792774ワット発電中さん
垢版 |
2017/04/26(水) 02:06:18.77ID:VkYa0emu
良く判らんが待ち時間はタイマで測定して、別の処理させろや
0793774ワット発電中さん
垢版 |
2017/04/26(水) 04:24:17.12ID:xm4PEent
世の中には10種類の人間がいる。
二進法が理解できる人間と出来ない人間だ
0795774ワット発電中さん
垢版 |
2017/04/26(水) 07:05:28.45ID:ABwVJSdt
>791
__delay_ms とかは、実体はマクロだからな。
たくさん使うなら、関数化した方が良い。
0796774ワット発電中さん
垢版 |
2017/04/26(水) 08:54:01.04ID:u7frFePA
マクロだから変数は受付ないと思ったな、違ったらゴメン
少々の誤差は出るが
下みたいに定数を使った形に書き直せば通ると思う ・・・試してはいないけど

void WaitMS(int x)
{
 do {
   __delay_ms(1);
 } while(--x) ;
}
0798774ワット発電中さん
垢版 |
2017/04/26(水) 12:22:38.72ID:bItZi5Mn
単なる動作確認でちょいちょいと適当なコード書いたら
意図しない動きになったのでなんで?何が起きたかは
どう解析する?という話なのでタイマーを使えとかは
期待した答えではないんだがな・・・。

別に全然大したことしてないし、アセンブラで
書けば全然余裕で収まる内容なのは分かってんだけどね。
Cでも大差ないと思ってたから何でかなと思っただけ。

>>796
ああ、なるほど。
中身までよく調べてなかったけど、このマクロの中で
使ってる_delayってインライン関数なのか。
エラーの意味を勘違いしてたわ。サンクス。
0801774ワット発電中さん
垢版 |
2017/04/26(水) 17:49:38.04ID:Y/yZXMB8
Cは甘え
0804774ワット発電中さん
垢版 |
2017/04/26(水) 22:19:13.15ID:ukdQvwBe
どんな言語使ってもちゃんと動けば良いだけ!!
アセンブラ使ってもバグだらけではどうしようもない
開発効率が良いもの使って、精度が必要なとこだけアセンブラ使ったほうが
短時間で開発できる。
趣味でどれだけ時間がかかってもいいようなものなら別だけど??
0805774ワット発電中さん
垢版 |
2017/04/26(水) 23:40:21.74ID:ZczdK8/1
開発時間が掛かるのは能力無いから。
趣味でも向き不向きがあるから辞めとくのが吉
0807774ワット発電中さん
垢版 |
2017/04/27(木) 15:57:02.85ID:T2sZxQHd
以下の理由で、趣味であっても私はフルアセンブラを推薦する。
+ PICのような低レベル(低速、低容量、低機能)のCPUではアセンブラの方がパフォーマンスを発揮できる
+ たかだか数Kベイトのプログラムをアセンブラで書いても大した作業量では無い
+ フルアセンブラとインラインアセンブラでは根本的に設計方針(アルゴリズム)が異なる

趣味なら開発効率よりも達成感、充実感では?
妥協していたら進歩しない
0808774ワット発電中さん
垢版 |
2017/04/27(木) 16:20:25.41ID:nFjcxth6
PICってPIC10からPIC32MZまであるんですがご存知?

あとさ、趣味もいろいろあって、
手っ取り早く機能を実現したい場合は、フルアセンブラなんて遠回り過ぎて
移植性、可読性、メンテ、この辺を多少でも求める人にも向かない
回路は凝るけどソフトはそれほど興味がないとか

フルアセンブラは、PIC10にどれだけ機能を入れられるかとか、そういうことにこだわりがある人がやればいい

単にパフォーマンスが問題なら、問題となるところだけをアセンブラにするのがはるかに効率的
0809774ワット発電中さん
垢版 |
2017/04/27(木) 16:24:08.21ID:nFjcxth6
C言語、C++などで実現出来る機能をフルアセンブラで組むなんてのは、ソフト開発的にはアホ

趣味なら人それぞれ

8bit PICの糞命令を堪能したいとか、MIPSを勉強したいとか、そういう用途ならフルアセンブラはオススメですが
0810774ワット発電中さん
垢版 |
2017/04/27(木) 16:58:30.21ID:42HTgePb
Lチカしかしないならアセンブラは要らないな
0814774ワット発電中さん
垢版 |
2017/04/27(木) 20:41:39.96ID:X8m+3fLj
限界に挑戦するならアセンブラは必須
そういうごくごく一部を除けばアセンブラなど不要
仮にアセンブラが必要な場合でも、フルアセンブラである必要性は極めて低い
0815774ワット発電中さん
垢版 |
2017/04/27(木) 20:48:15.75ID:YJemsAiP
ポートに出力したり、レジスタに値セットする程度で
アセンブラ使う必要性があるのか???
しかもPIC程度のプログラム量で・・・・・
0816774ワット発電中さん
垢版 |
2017/04/27(木) 20:58:04.44ID:X8m+3fLj
どっちかっていうと8bit PICみたいな超貧弱マイコンの方がアセンブラが必要になることは多い

もちろん大規模プログラムでも使いどころでは使うが、率的には非常に低い

DSPが一番出番が多いかな
特殊な命令で非常に限られた処理時間で処理をする必要がある場合が多いので
0817774ワット発電中さん
垢版 |
2017/04/27(木) 21:02:35.59ID:X8m+3fLj
必要性にかかわらずアセンブラを勧めるようなヤツ、特に℃玄人は素人

アセンブラの欠点を理解した上で、必要であれば使えば良い

趣味なら御自由に
0818774ワット発電中さん
垢版 |
2017/04/27(木) 21:11:31.31ID:fSoH3WeS
XC8の無料版2ヶ月しか最適化されない問題が解決しないからASMで書くしかなかんべ
0820774ワット発電中さん
垢版 |
2017/04/27(木) 21:19:23.69ID:1Sco5vO4
-O1出来るんなら、それで十分だわ、俺には。
1バイトでも少なくナイト〜 とか 1サイクルでも早くナイト〜 とか、
興味ねえ。
0823774ワット発電中さん
垢版 |
2017/04/27(木) 22:57:57.26ID:cbw9yFHz
xc8の無料版、最適化なしは1バイト多くなるとかいうレベルじゃない印象
0824774ワット発電中さん
垢版 |
2017/04/28(金) 01:52:55.01ID:ANLUF9Cg
アセンブラでガリガリため息つきながらプログラム
DMA使いだしてからCでフンフン♪
0825774ワット発電中さん
垢版 |
2017/04/28(金) 02:15:05.49ID:dhuWO2+i
無料版ってアンインストールして再インストールしたら試用期間リセットされるっていう話は都市伝説なのかな。
サイズもスピードも厳しい用途ではないから試用期間過ぎてもそのまま使っているけど。
0826774ワット発電中さん
垢版 |
2017/04/28(金) 06:46:33.11ID:D4TTV0r8
Lチカならサイズもスピードも厳しく無いだろうな
0828774ワット発電中さん
垢版 |
2017/04/28(金) 07:10:00.03ID:FQ9CRD4h
32KB選んでも256KB選んでも&#165;100も違わないんなら迷わず256KB選ぶよ、趣味だし。 @PIC32MX2xx
0829774ワット発電中さん
垢版 |
2017/04/28(金) 07:14:52.28ID:aiz3Nj7I
PIC32MX270F256B-50
いっぱい買っちゃったよ
容量小さいのよりエラッタが微妙に直ってたりする
微妙にクロックが速かったりするし
0832774ワット発電中さん
垢版 |
2017/04/28(金) 08:04:14.24ID:aiz3Nj7I
>>830
コードサイズはもうすでに気にする時代じゃないね
データサイズや実行速度は気にするべき情況はまだまだある
0833774ワット発電中さん
垢版 |
2017/04/28(金) 08:09:03.38ID:aiz3Nj7I
Harmonyが超贅沢に(無駄に)コードを精製してくれるけど256kBあれば全く問題なし
スクラッチで組めば32kBでも全く問題ない

画像データとかフォントデータとか音声データとか、そういうデータだとまだまだ圧縮が必要
0834774ワット発電中さん
垢版 |
2017/04/28(金) 08:13:36.66ID:toX+alHR
そういうのは読み出しに速度が必要でないなら外にEEPROMでも置いておくべき
0837774ワット発電中さん
垢版 |
2017/04/28(金) 08:21:04.49ID:aiz3Nj7I
普通に考えたら SPI NOR Flash

256kBで足りないのにEEPROMは無いだろ
普通に買えるるのは128kBまでだぞ

いずれにしろ圧縮は普通やる
0842774ワット発電中さん
垢版 |
2017/04/28(金) 13:03:43.49ID:x+113Uwm
そもそも趣味のフルアセンブラ派は命令が貧弱なPICなんか使わん
0843774ワット発電中さん
垢版 |
2017/04/28(金) 13:16:27.81ID:O6DSaIjX
いやいや、世の中にはマゾがいるんだよ
糞マイコンである程燃えるヤツが
0845774ワット発電中さん
垢版 |
2017/04/28(金) 13:37:04.17ID:g81DkVic
>>800
> スルーされたからってしつこく書かなくて良いぞ


べつにスルーしなくたっていいのになあ
ここの人はなんかみんなギスギスしてるから、余裕とかほしいと思ったんだけどな
0849774ワット発電中さん
垢版 |
2017/04/29(土) 00:53:40.91ID:oD+sj+g0
W25Q128使えば無敵だ〜〜〜〜〜
ただし、書き込みは遅いけどな!!!!
0850774ワット発電中さん
垢版 |
2017/04/29(土) 06:59:25.59ID:MOSqG4fd
>>848
電飾彼女?
0854774ワット発電中さん
垢版 |
2017/04/29(土) 09:50:06.91ID:7fCIqlGR
>>853
あー。もしかしたら固定データか。だったら書き込み速度は気にしなくていいね。
0857774ワット発電中さん
垢版 |
2017/04/29(土) 23:04:53.88ID:8IJ4WcMc
連休は別に楽しくなくても良い。
ストイックに自宅に篭って普段時間がなくて出来ないことをする。
今日はPICのライブラリが少し充実した。
0858774ワット発電中さん
垢版 |
2017/04/30(日) 00:06:11.05ID:lRbNiGAM
過去に作った趣味の PIC ソースコードの
タイムスタンンプが GW ばかりだった。
0861774ワット発電中さん
垢版 |
2017/04/30(日) 05:40:39.31ID:xNrfEFr0
有限要素法、
0862774ワット発電中さん
垢版 |
2017/04/30(日) 09:47:07.32ID:lRbNiGAM
一年中2chで他人をおちょくってるだけの人生の方がもっと寂しい人生を送ってると思われてるよ
0864774ワット発電中さん
垢版 |
2017/05/01(月) 15:48:51.55ID:y4IQ0UTD
8bitマイコンでアセンブラで必死に最適化するより
32bitマイコン使ってC言語で書いたほうが楽
趣味なら尚更だな
0865774ワット発電中さん
垢版 |
2017/05/01(月) 16:03:05.13ID:WhxKxkpc
8bitマイコンでアセンブラで必死に最適化する趣味もあるし、
32bitマイコン使ってC言語で書く趣味もあるし、
64bitCPUでアセンブラで必死に最適化する趣味もある
0867774ワット発電中さん
垢版 |
2017/05/01(月) 16:44:09.04ID:uKpFtYkE
>>864
趣味なら「楽」を求めないだろ?
「楽しさ」なら求めるかもしれないが。
0868774ワット発電中さん
垢版 |
2017/05/01(月) 16:56:52.65ID:vN/u6K7o
今のプログラマーに
480kB制限でビジュアルRPG作れと言ったら
脱糞するだろうな
0870774ワット発電中さん
垢版 |
2017/05/02(火) 01:37:36.41ID:dafhF/sN
32bitは割り込みレイテンシが糞すぎる
25MHz品は致命的
8bitの方が勝手よろしいわ
0871774ワット発電中さん
垢版 |
2017/05/02(火) 02:15:24.89ID:DVmrWiHV
>>870
ワーストケースで32命令サイクルだもんなぁ
8bitアセンブラ大好き人間には到底受け入れられないわ
0872774ワット発電中さん
垢版 |
2017/05/02(火) 06:29:16.06ID:xPNxA8Um
楽にテストをするならCを使ってタイミング重視ならアセンブラを使う。
時と場合によりだなぁ。

>>869
プログラムが32KBで収まらずに
キャラROMにプログラムを入れてワークRAMにコピーして使うと言う荒業やってる。
0874774ワット発電中さん
垢版 |
2017/05/02(火) 11:55:05.97ID:qlEnXsDW
測定してみました。

ICNを使って、
ポートが変更されたら別のポートを変更する処理でオシロスコープで遅延を測定してみました。
どちらもC言語で作成、フリー版コンパイラの最高の最適化を行い、
割り込みハンドラの先頭でポートを変更しました。

PIC32の方はシャドーレジスタを使用するかどうかと、
割り込み時に実行している命令によって時間に差が出ますので、
最短と思われる、単純命令中のシャドーレジスタ使用時と、
最長と思われる、除算命令中のソフトレジスタ退避時と、
を測定してみました。

結果は、
PIC16F1454 (48MHz) : 1.2us
PIC32MM0064GPL028 (24MHz) : 1.5us〜1.65us

若干PIC16の方が速いですが、
通常よりクロックが1.5倍速い48MHzですので、
32MHzであれば逆転すると思われます。
0875774ワット発電中さん
垢版 |
2017/05/02(火) 12:01:34.81ID:qlEnXsDW
通常の処理は圧倒的にPIC32MMの方が速く、
割り込みハンドラはPIC16はすべての割り込みで共通、
PIC32はプライオリティ付き多重割り込み可
ですので、
割り込み応答性能が要求される普通の処理では当然PIC32の方が有利かと思います。
0876774ワット発電中さん
垢版 |
2017/05/02(火) 12:23:14.76ID:/JEBgCyz
>>874
突然まだマイナーなPIC32MMが出てきてびっくりした。

PIC32MXの50MHz使えば楽勝で勝てるでしょ。
なんでMMなん?
0878774ワット発電中さん
垢版 |
2017/05/02(火) 12:28:20.95ID:KC6CBPEs
>>876
>>870の書き込みに対して測定したからです
25MHz品と言えばPIC32MMでしょう

当然PIC32MXなら圧勝と思います
0880774ワット発電中さん
垢版 |
2017/05/02(火) 12:43:45.99ID:KC6CBPEs
>>877
アセンブラ同士はじゃあ後程
PIC32MXとPIC24もやりますか?

----
全ての割り込みプライオリティレベル用に個別にシャドーレジスタがあるようなマイコンもありますね
全くレジスタ待避を考えなくて良いので、パフォーマンスを考えて使用するレジスタを制限する必要が無くて最適化が楽です
実際は複数のプライオリティの割り込み全ての応答性能が重要なんて事はないんですが
0882774ワット発電中さん
垢版 |
2017/05/02(火) 15:27:54.51ID:twjbMQ0H
入力〜出力の割込み遅れ時間、興味が湧いたのでtiny2313(20MHz)で測定してみたら、
450nS〜550nS程度だった。
資料によると、
リターンアドレス退避などの割込み応答処理で4クロック
ベクタテーブルのジャンプ命令で2クロック
出力操作命令で2クロックという事で、計算上は8クロックx50nS =400nSだけど
割込み入力回路のサンプリングやディレイが関係しているのかも?

測定プログラム
;***** setup
RESET:
 LDI R30,0b11101111 ;Port-D input with pull up, output Low
 OUT PortD,R30
 LDI R30,0b00010000 ; output:bit4, input:bit0~2,4~7
 OUT DDRD,R30
;
 LDI R30,stack   ;set stack
 OUT SPL,R30
;
 LDI R30,0b00001000 ;triggered by -edge of INT1
 OUT MCUCR,R30
 LDI R30,0b10000000 ;enable INT1 interrupt
 OUT GIMSK,R30
 sei
;
;***** main
Loop:
 rjmp Loop
;
;***** INT1
IRQ2:
 sbi PinD,_Out ;toggle output
 reti
;
0883774ワット発電中さん
垢版 |
2017/05/02(火) 15:29:31.31ID:twjbMQ0H
大文字、小文字が混在してスマヌ
0884774ワット発電中さん
垢版 |
2017/05/02(火) 17:18:48.42ID:qlEnXsDW
C言語
PIC16F1454 (48MHz) : 1.2us
PIC16F18325 (32MHz) : 1.6us
PIC32MM0064GPL028 (24MHz) : 1.5us〜1.65us

アセンブラ
PIC16F18325 (32MHz) : 1.1us
PIC32MM0064GPL028 (24MHz) : 0.85us

入力ポートの値を読んで、その値を出力ポートに設定しているので、
>>882 とは微妙に処理が違います。

>>881
今日は無理そう
明日は忙しいので明後日以降にやります
0886774ワット発電中さん
垢版 |
2017/05/02(火) 17:46:18.94ID:qlEnXsDW
PIC32MXを追加しました

C言語
PIC16F1454 (48MHz) : 1.2us
PIC16F18325 (32MHz) : 1.6us
PIC32MM0064GPL028 (24MHz) : 1.5us〜1.65us
PIC32MX270F256B-50 (50MHz) : 0.9us

アセンブラ
PIC16F18325 (32MHz) : 1.1us
PIC32MM0064GPL028 (24MHz) : 0.85us
PIC32MX270F256B-50 (50MHz) : 0.75us
0887774ワット発電中さん
垢版 |
2017/05/02(火) 17:54:55.66ID:twjbMQ0H
>入力ポートの値を読んで、その値を出力ポートに設定しているので、
bit3のマイナスエッジ割込みから両エッジ割込みに変更して
割込み内では入力ビットのH/Lレベルを出力ビットにコピィする。
 sbis PinD,3
 cbi PortD,4
 sbic PinD,3
 sbi PortD,4
命令が3個増えるので100nS程度の増加かな(パイプライン処理があるので)
PIC18やPIC24はどの程度なんだろ?
0888774ワット発電中さん
垢版 |
2017/05/02(火) 18:32:26.63ID:OWZZ5U9w
888
0889774ワット発電中さん
垢版 |
2017/05/02(火) 19:52:56.38ID:E5i8LINT
>>886
割り込みの応答、12F1822@32MHzで700n前後だった気がする。
ちょっとプログラミング能力足りないんじゃね?
0890774ワット発電中さん
垢版 |
2017/05/02(火) 20:21:55.63ID:E5i8LINT
12F1822に下記プログラムを書くと、3ピンの入力エッジ毎に、2ピンにパルスを出力する。
遅延時間は600n秒位。
5ピンに500Hz位を出力するので、5ピンと3ピンを接続してオシロで見れば観察出来る。

:020000040000FA
:020000000928CD
:0800080080168012270093010D
:100010000900200000308C0023008C0024000030F8
:100020008C00210010308C002000F030210099005D
:0400300020000D2976
:100200005E30FD000B30FE000130FF00FD0B0629C3
:10021000FE0B0629FF0B062908000C30840085011F
:100220002700103091009200FF3013069305210043
:100230008B158B1720000021220004308C061A2910
:020240001A2979
:020000040001F9
:02000E00A40943
:02001000FF1DD2
:00000001FF
0891774ワット発電中さん
垢版 |
2017/05/02(火) 21:36:01.47ID:qlEnXsDW
最適化が目的じゃなくて比較が目的なので

元のCコードはこれ
void interrupt isr(void){
LATCbits.LATC4 = PORTCbits.RC3;
IOCCFbits.IOCCF3 = 0;
PIR0bits.IOCIF = 0;
}

これの動作を保ったまま普通にアセンブラにしたのが以下
特別冗長にしたわけでもないし、
ギリギリまで最適化したわけでもない

ISR CODE 0x0004
movlb 0
btfss PORTC,3
goto l1
movlb 2
bsf LATC,4
goto l2
l1: movlb 2
bcf LATC,4
l2: movlb 7
bcf IOCCF,3
movlb 0
bcf PIR0,4
retfie
0892774ワット発電中さん
垢版 |
2017/05/02(火) 21:42:19.12ID:qlEnXsDW
普通の処理であれば、
割り込み要因の確認が入ったりレジスタの退避を行ったりするので、
これでもずいぶんと少な目な値

本当であれば、割り込みフラグも先にクリアするのが正しい
割り込みフラグのクリア前にポートの値が変わった場合に取り逃すので
0893774ワット発電中さん
垢版 |
2017/05/02(火) 22:23:38.48ID:DVmrWiHV
は?ワーストケースでの話じゃないの?

データシートみたら割り込み遅延は
PIC32MXで 11〜34命令サイクル
8bitPICで 3〜3.75命令サイクル
16bitPICで(16〜40MIPS品で) 4命令サイクル
16bitPIC(70MIPS品)で 10〜11命令サイクル
PIC32MMは見つけられなかった
0894774ワット発電中さん
垢版 |
2017/05/02(火) 22:58:26.62ID:qlEnXsDW
PIC16F18325で、割り込み後の1命令目でポートが変わるようにして測ったら575nsでした。
4.6命令サイクルなので、ポート設定1命令後にポートが切り替わるとするとほぼスペック通り

>>890
600nsってことは4.8命令サイクルなので、
上の測定結果と同じで、割り込み後の1命令目でポートが変わるようにしてますよね?
てことは、明らかに >>884 の処理とは違いますよね?
それとも、PIC12F1822の割り込みは速い?
>>890の中身は見てませんが。

>>893
PIC32MXの34命令サイクルってのは、一番時間がかかる除算命令中ですよね?
除算命令以外は速いんで、遅延が問題なら割り算を使わなければ良いのでは?
8bitPICには除算命令が無いんで
除算中を除けばクロック数にして同程度、時間ではPIC32MXの方が速いですよ
0895774ワット発電中さん
垢版 |
2017/05/02(火) 22:58:52.82ID:Drqqsjtq
>>893
MM はフラッシュアクセスのWaitが入らないから、MXより、サイクル数としては少ない。
0896774ワット発電中さん
垢版 |
2017/05/02(火) 23:26:41.65ID:qlEnXsDW
ん???
>>871>>893 で内容が食い違ってるけど
どういうこと?

データシートを見たら、PIC32MXの割り込み遅延も見つからなかったんですが。
もしかして
「Early-in iterative divide. Minimum 11 and
maximum 33 clock latency (dividend (rs) sign
extension-dependent)」
を割り込み遅延のスペックだと勘違いしてたりしませんか?
0897774ワット発電中さん
垢版 |
2017/05/03(水) 00:22:22.61ID:xoCUtK0w
>>891
>最適化が目的じゃなくて比較が目的なので

結果が倍も違ってたら割り込み応答速度の比較にならんだろうにって話なんだが?
最適化云々の問題じゃない。Cしか出来ない奴はこれだからwww
0900774ワット発電中さん
垢版 |
2017/05/03(水) 06:05:40.74ID:Vpt+29rR
>>899
>>897
0903774ワット発電中さん
垢版 |
2017/05/03(水) 07:33:11.11ID:SXkpEE9K
割り込み要因をチェックしない特殊な条件で8bitの方が速いとか意味わからん
低遅延がお好みなら、FPGAでLチカでもしてればいいのに
0904774ワット発電中さん
垢版 |
2017/05/03(水) 08:39:41.17ID:Vpt+29rR
8ビットで割り込み要因をチェックしない例なんていくらでも有る。全然特殊じゃ無い。
だいたい、割り込みの遅延時間を調べるのに条件によって変化する要因チェックなんて入れれば本質が見えなくなる。
そもそも、状態変化割り込みなんてスタンバイを抜け出す以外で使うのは、ほぼ℃素人プログラムだしなw

結局、割り込みに掛かる時間は

600μ秒 普通の人が書いた8ビットアセンブラ
850μ秒 Cしか使えない奴が書いた鈍臭い32ビットアセンブラ
1100μ秒 Cしか使えない奴が書いた鈍臭い8ビットアセンブラ
1200μ秒 Cしか使えない奴が書いた鈍臭い8ビットC
1650μ秒 Cしか使えない奴が書いた鈍臭い32ビットC

って事で、Cとかアセンブラ以前に、個人の力量が一番効くって事だなwww
0906774ワット発電中さん
垢版 |
2017/05/03(水) 09:41:12.87ID:Vpt+29rR
悔しそうだなwww
0907774ワット発電中さん
垢版 |
2017/05/03(水) 09:55:23.77ID:eXTZRWHy
>>904
℃玄人は、
頭おかしいから もう来なくていいよ www

頭悪すぎwwwww
ワロタ www
0909774ワット発電中さん
垢版 |
2017/05/03(水) 10:55:27.12ID:c5vj0x3p
>>887
一つの信号の立ち上がりと立ち下がり別々に割込みを掛ければ
それぞれの割込み処理内で実行する命令はビットセット/ビットリセットの何れか1個で済む

余り意味の無い比較だがいずれにしろ最速はAVR
0911774ワット発電中さん
垢版 |
2017/05/03(水) 11:39:23.40ID:c5vj0x3p
>>910
お勉強は大事ですよ、孫子も言ってる事だしw

「彼を知り己を知れば百戦して殆うからず」
0913774ワット発電中さん
垢版 |
2017/05/03(水) 13:53:37.90ID:FwBY9WLP
>>909
でも先は無いけどな。
昔からそうなんだが、直交性だのプログラムが書きやすいだの必要クロックが少ないだの
信者が言い訳するCPUって、主流になれずにディスコンになるんだよなwww
0914774ワット発電中さん
垢版 |
2017/05/03(水) 13:57:20.80ID:FwBY9WLP
>>908

>>890を実際に書き込んでオシロで確認すればよろし
0915774ワット発電中さん
垢版 |
2017/05/03(水) 14:07:29.70ID:6nr34+pJ
実力って>>890でわかるようなうすっぺらいものなんですかね。

>>908の質問も答えを出しようのないものですが、>>914のはぐらかしの方向違いもすげえものです。
0916774ワット発電中さん
垢版 |
2017/05/03(水) 14:18:26.86ID:FwBY9WLP
レベルが低いなwww
℃素人文系の言い訳っぽいwww
0918774ワット発電中さん
垢版 |
2017/05/03(水) 15:13:59.02ID:6nr34+pJ
℃玄人氏って結構知識もあって適切なアドバイスもちゃんとしているのに、まずいところで引くってことをしらないな。
0921774ワット発電中さん
垢版 |
2017/05/03(水) 20:22:38.47ID:vPVo1FKz
実行中の命令に応答時間が影響されないPIC24にしかできないことがある
0922774ワット発電中さん
垢版 |
2017/05/03(水) 20:29:34.19ID:xWxYtnVl
言い負かされちゃってお気の毒様
0923774ワット発電中さん
垢版 |
2017/05/03(水) 23:01:56.83ID:SXkpEE9K
ポートチェンジでテストした人は、計測の手段として使っただけだろう
それに割り込み要因を調べない=一種類の割り込みしか使えないってこと
16ビット以上ならベクタテーブルがあるから、チェック不用

893の情報を読む限り、普通の使い方なら16bitの方が速くなるかと
指摘のポイントも的外れだし、そもそも8ビットが速い、じゃなくてアセンブラ使いの俺スゲーという独り言としか読めなかったのだが
俺もZ80の頃から使っているのでアセンブラは嫌いではないけど、904みたいなのは流石にどうかと
0924774ワット発電中さん
垢版 |
2017/05/03(水) 23:12:03.60ID:GLC3hWzf
dsPIC33Fで状態変化割り込み測ってみた
XC16最新版最適化O1
300nsec

ちなみに素人でCしか分かりません
シャドウレジスタ使ってない
割り込み内でLATBを全反転完了までの時間
0925774ワット発電中さん
垢版 |
2017/05/03(水) 23:22:40.87ID:CdyipY9o
>>903
遅延時間だけでなく、応答するまでの時間が一定で有る事が要求される用途もある。
0926774ワット発電中さん
垢版 |
2017/05/03(水) 23:24:00.92ID:GLC3hWzf
ちなみに測定器は
1万円で買ったDslogic

メインルーチンはインクリメントした32bit割り算の無限ルーチン

割り込みはビルトイン割り込み関数

24Fでも試そうかと思ったけど
手持ちなかった
0928774ワット発電中さん
垢版 |
2017/05/04(木) 00:18:18.71ID:dUTCmh+3
思った通り

>>890の中身は割り込みハンドラの先頭で
ただ単にポートを立ててクリアしてるだけ

004 : BSF INDF0, 5
005 : BCF INDF0, 5

>>886 とは比較してる内容がまったく違います
>>894 で私が測った575nsのコードの方がまだ>>886に近いですね

℃玄人の実力ってそんなもんですか
まあおそらく℃玄人本人のコードですらないでしょうが
0929774ワット発電中さん
垢版 |
2017/05/04(木) 00:21:41.16ID:dUTCmh+3
>>927
特定の割り込みであれば、
割り込みが発生してから同じ時間になるように待つことで
時間をそろえることは出来ますが...
0930774ワット発電中さん
垢版 |
2017/05/04(木) 01:47:56.86ID:J3xEVg5Y
>>928
後から「俺も出来る」とか言っても何の足しにもならない。
悔しさは十分伝わったけどな。
0931774ワット発電中さん
垢版 |
2017/05/04(木) 08:19:17.90ID:2AaGjDEI
ここまでの流れをまったく理解するつもりがない俺はたぶんどしろうと
0932774ワット発電中さん
垢版 |
2017/05/04(木) 09:28:21.84ID:5CNMKaJq
初めてのPICスレで、短いコードを持ち出して実力論議ですか。やめようよ。
そんなことで実力なんて判断できないから。

ちなみに℃玄人氏の力量はちゃんと答えたリアドバイスしているレスを見る方がよくわかる。
口汚く喚いているのが目立つだけなんだが、これって往年のVoid氏みたなものだよな。
Void氏ほどには洗練されていないけど。
0933774ワット発電中さん
垢版 |
2017/05/04(木) 12:05:43.86ID:ltdoCCfF
voidて・・・
やはりこういう所にいる人って50前後以上の人が多いんだろうなぁ
ずっと同じような会話が続いてるのもナンだよねぇ
0934774ワット発電中さん
垢版 |
2017/05/04(木) 12:25:46.66ID:omFaW0nA
℃玄人って8bitPICしか知らないからなあ
32bitなんて全くの℃素人
0935774ワット発電中さん
垢版 |
2017/05/04(木) 12:54:16.45ID:yfn7aMJj
数字が大きいほど難しい・・・、 とか思ってんのか
間逆だ、このバカ
0937774ワット発電中さん
垢版 |
2017/05/04(木) 13:41:40.95ID:9hc711by
>初めてのPICスレで、短いコードを持ち出して実力論議ですか。やめようよ。
どの程度の能力を持っているか、他のCPUと比べてどうなのかは初心者の知りたい点だろうし、
CPUが持つ能力をたとえ一部であっても第三者が実証(再現)可能な具体的方法で比較するのは
構わないと思うけどな。
そもそもこんな場所で長いコードで比較することは出来ないし、
短いからこそハッキリする事もある。
0938774ワット発電中さん
垢版 |
2017/05/04(木) 14:22:28.05ID:5CNMKaJq
>>937
言葉足らずで悪かった。俺が言っているのはCPUの実力ではない。 >>914 が言ってる実力。

>>908
> >>904
> あなたの実力が見たいです!

>>914
> >908
> >>890を実際に書き込んでオシロで確認すればよろし

あなたの実力を、と要求されて、914はこの短いコードを指示したんだよな。
このコードで人の実力がわかるわけがない。
0939774ワット発電中さん
垢版 |
2017/05/04(木) 14:32:28.47ID:nWotqCH4
割り込みの実力を調べるのに、2倍も実行時間の掛かる鈍臭いプログラムしか書けずに
鈍臭いプログラムで評価するのは実力の無い奴がする事。

どれ位実力が無いかというと、学生が初めてマイコン使って何か作ってみたレベルの実力。
製品を作れるレベルならば、割り込みに掛かる時間とその後の処理の時間は別に評価する。

いろんなプログラムが有るわけだから、余計な処理の入った鈍臭いテストプログラムなんて
害悪でしか無い。

それを示すための最短時間の割り込み処理だろう。
0940774ワット発電中さん
垢版 |
2017/05/04(木) 14:56:23.20ID:ESBEMp8t
結局割り込み遅れ時間は
C言語
16bit < 8bit < 32bit
アセンブラ
8bit < 32bit
(16bitは未検証)
但しアセンブラの場合、能力差で変動する
0941774ワット発電中さん
垢版 |
2017/05/04(木) 15:02:44.28ID:omFaW0nA
℃玄人がムキになってるwww
よっぽど悔しかったんだろうなwww
0942774ワット発電中さん
垢版 |
2017/05/04(木) 15:11:55.71ID:Z99TNjc5
>>940

>>904が正解。>>939に書いた通り、余計なプログラムがついた状態での評価なんて害悪でしかない。
そんな評価方法で違うCPUを比較するなんて愚の骨頂だわwww

違うCPUの比較をするならまともに動くプログラムで比較するか、純粋に機能分割して単体で評価するべき。
0943774ワット発電中さん
垢版 |
2017/05/04(木) 15:18:18.77ID:fLYQcNI3
今回は珍しく数字出たけど、数字を出してる方が℃玄人さんじゃないんでしょ?
こらカッコ悪いですわ…。
0947774ワット発電中さん
垢版 |
2017/05/04(木) 18:34:28.10ID:UrhMWXwD
℃玄人同士の子供じみたけんかは他所でやってくれませんかね
0948774ワット発電中さん
垢版 |
2017/05/04(木) 21:32:46.10ID:+mnu4Ee/
℃玄人は他人の書き込みをなじることが生きがいの
かわいそうなガキですから、スルーするがよろし
0949774ワット発電中さん
垢版 |
2017/05/05(金) 11:47:54.83ID:FLK5HDUM
ICN割り込み後の最初の命令でポートをセットするコードで遅延を測定してみました

PIC16F18325 (32MHz) : 500-612us
PIC24FJ64GB002 (32MHz) : 480-530us
PIC32MM0064GPL028 (24MHz) : 597-633us
PIC32MX270F256B-50 (50MHz) : 272-288us
0950887
垢版 |
2017/05/05(金) 11:52:38.30ID:4dRy2JcD
連休でヒマだから >>909 の意見を取り入れて
2個の割込みINT0、INT1を使って立ち上がり、立ち下がりの割込みを分離した。
(入力信号、出力信号としてはもちろん共に1個)
遅れ時間をオシロで見ると立ち上がり、立ち下がり共に約500nS。
CPUがやっていることに大差は無いので、結局はクロック周波数の差になるのかな。

入出力の波形画像 赤が出力(tiny2313の8番ピン)、黄が入力(6、7番ピン)
http://i.imgur.com/l4OROwk.jpg

プログラム(ベクタテーブルは省略)
;***** setup
RESET:
 LDI R30,0b11101111 ;Port-D input with pull up, output Low
 OUT PortD,R30
 LDI R30,0b00010000 ; output:bit4, input:bit0~3,5~7
 OUT DDRD,R30
;
 LDI R30,stack    ;set stack
 OUT SPL,R30
;
 LDI R30,0b00001011 ;triggered by +edge of INT0 and -edge of INT1
 OUT MCUCR,R30
 LDI R30,0b11000000 ;enable INT0/INT1 interrupt
 OUT GIMSK,R30
 SEI
;
;***** main
Loop:
 RJMP Loop    ;wait interrupt
;
;***** INT0/INT1
IRQ1:
 SBI PortD,_Out1 ;output Hi
 RETI
;
IRQ2:
 CBI PortD,_Out1 ;output Lo
 RETI
;

しかしPICスレは何で毎度毎度、最後は罵倒レスの応酬になるかねぇ。
おかしな奴は相手にするとキリが無い、 948 の言うとおり無視するのが一番だと思うけどな。
0952949
垢版 |
2017/05/05(金) 12:55:19.64ID:YP1uBrIs
ごめんなさい
単位間違えました

PIC16F18325 (32MHz) : 500-612ns
PIC24FJ64GB002 (32MHz) : 480-530ns
PIC32MM0064GPL028 (24MHz) : 597-633ns
PIC32MX270F256B-50 (50MHz) : 272-288ns
0953774ワット発電中さん
垢版 |
2017/05/05(金) 12:57:18.70ID:yldEq3SB
>>949
us って、 ns の間違いじゃないの?
もしそれが事実なら、 ええっ って感じだな
0958774ワット発電中さん
垢版 |
2017/05/05(金) 16:44:22.00ID:4dRy2JcD
>>957
確かに早い。パルス列の入力〜出力までに
20MHzのAVRが10命令サイクル程度(50nsx10、これは資料を読むと順当な値)なのに
8MHzのPICが4命令サイクル程度(125nSx4)なのは驚異的だ。
0959774ワット発電中さん
垢版 |
2017/05/05(金) 17:11:38.65ID:PToXWM7t
C言語で変数使うと退避レジスタ変わってくるよ
PIC32はSW命令入りまくる
多重使わなければシャドウレジスタ使えば解決だけど
PIC32MX1 PIC32MX2 シリーズには無いんだな
0960774ワット発電中さん
垢版 |
2017/05/05(金) 17:11:40.94ID:4dRy2JcD
tiny2313の割込み処理に必要なクロック数はタイミングで少し変わると思うけど
・割込み要求フラグのセットまで4クロック(これは下記のラッチなどのハードウェア)
http://i.imgur.com/DOf3HBx.jpg
・戻りアドレスのスタック退避などに4クロック
・ベクタテーブルのジャンプ命令で2クロック
・目的のビット操作命令で2クロックの2クロック
0961774ワット発電中さん
垢版 |
2017/05/05(金) 20:27:09.35ID:HDEWUA8W
8ビットPICの割り込みレイテンシは、バックグランドの命令が1サイクル
であっても2サイクルであっても、3サイクル一定だった。
もちろんCPUクロックと割り込み要求が同期している条件で。

ところが最近の1で始まる型番のPICではFSRを使ってプログラムメモリを
アクセスすると3サイクル命令となってレイテンシが4になる場合が出て
きて、ちょっと気を付けないといけない。
そういう命令を使わなければいいんだけど。
0962774ワット発電中さん
垢版 |
2017/05/06(土) 11:33:26.12ID:xxZduhKs
最近、どうでもいい内容ばかりだな〜〜〜
何に使うかが問題だよ。
0963774ワット発電中さん
垢版 |
2017/05/06(土) 11:48:06.70ID:xtWyOCES
使う物の中身を理解していないと何に使えるか分らないだろ
0964774ワット発電中さん
垢版 |
2017/05/06(土) 11:48:26.41ID:GdNtrEeg
PICのアセンブラは糞というけど
PIC24Fのアセンブラは別に糞でもなんでもないよね
AVRのアセンブラよりわかりやすいんじゃない?
0965774ワット発電中さん
垢版 |
2017/05/06(土) 11:53:54.00ID:cqCYsPtg
くそかくそじゃないかの判定基準をまず明示せよ
話はそれからだ
0966774ワット発電中さん
垢版 |
2017/05/06(土) 14:56:09.77ID:lgw22miz
ブスも3日で慣れ
一週間で愛着が生まれ
1か月で愛情に変わる

8bitPICはブサイク分類だろ
AVRは美人さんだと思うよ
0967774ワット発電中さん
垢版 |
2017/05/06(土) 16:20:14.74ID:xtWyOCES
>>964
異なる命令コードビット数(14、16、24など)のCPUを比べるのはどうなんだろ?
「CPU」というくくりで見ればどれも同じ条件だ、という意見も前にあったけどw

>>966
美人かどうかは分らないが
割込みを使って入力パルスを出力する >>950 のプログラムはシンプルで分りやすい
0968774ワット発電中さん
垢版 |
2017/05/06(土) 16:39:37.25ID:GdNtrEeg
PIC24のアセンブラはわかりやすいから
とりあえず、何かのアセンブラやってみたいという人にはオススメできると思うよ
0969774ワット発電中さん
垢版 |
2017/05/06(土) 16:45:42.41ID:GdNtrEeg
PIC24のPDF

ttp://www.microchip.jp/docs/DS39703A_JP.pdf
ttp://ww1.microchip.com/downloads/en/DeviceDoc/70157F.pdf
0970774ワット発電中さん
垢版 |
2017/05/07(日) 11:07:45.51ID:JzihJRAf
8bitだろうが32bitだろうが、アセンブラなんてどれやっても同じじゃね?
今使ってるCPUには無く他のCPUでは有る命令も
同じ事をプログラムを組んでやればいいだけの事だし。
0972774ワット発電中さん
垢版 |
2017/05/07(日) 12:32:31.95ID:V2b72ByA
アセンブラを語るなら最低でも以下を知らないと
x86
ARM
MIPS
0973774ワット発電中さん
垢版 |
2017/05/07(日) 13:20:00.76ID:4ERmWB3m
今更だが、ちょうど今やってたとこなんで 感想を一つ

MIPSは要らんなぁ
知ってて損は無いけど、PS2のHackingぐらいしか役に立たない
0974774ワット発電中さん
垢版 |
2017/05/07(日) 13:22:39.20ID:9pPXtG9m
>>973
MIPSコアのPICがあると聞いたけど、アセンブラとかどうなってるのかな?
PICよりなのか、がっつりMIPSなのか…
0975774ワット発電中さん
垢版 |
2017/05/07(日) 13:28:30.58ID:4ERmWB3m
PICは、8Bit (8Pin)にしか興味ないから知らない

あと、x86は 知ってると色々得する事が多い
例えば、CompilerをProModeに変えるとかな
0976774ワット発電中さん
垢版 |
2017/05/07(日) 13:45:40.55ID:VqavHuUv
>>968
データ16ビット、コード24ビットのPIC24のアセンブラはどんなものかな?
大いに興味があります。比べやすいように
 >>950「割込みで入力したH/Lをそのまま出力する」
をPIC24のアセンブラで書いてみてもらえないでしょうか?。

>>970
確かにしょせん1命令で済むか、2命令あるいは3命令必要か、程度の違いだよね。
しかも、この差が運命の分かれ道、なんて用途はそうそう無いだろうし。
そんな事よりアーキテクチャ(CPUの設計方針)の差の方が
影響が大きいと思う。
0977774ワット発電中さん
垢版 |
2017/05/07(日) 14:11:03.81ID:JzihJRAf
>>971
68Kをやった後に16F84Aを使い始めたけど、
64bitの加算と減算で「うわっ」って思った事はあるなぁ。

でも6502をやってたおかげで考え方はいろいろ応用が利いたと思う。

今は18F2620でLチカして遊んでる。
0979774ワット発電中さん
垢版 |
2017/05/07(日) 14:33:36.91ID:9pPXtG9m
>>978
まぜこぜって事? MIPS使いがうまく使いこなせなくて扱いにくそうだなぁ…。
まあどっちも知らん上に、コンパイラに任せてる身には何とも言い難いけど…
0981774ワット発電中さん
垢版 |
2017/05/07(日) 14:41:23.49ID:V2b72ByA
MIPS使いって...
普通はコンパイラを使うからコアが何かとか意識しなくても使える
速いPIC24と思っても良い

ガシガシに最適化する場合と、一部の特殊命令でアセンブラの出番となることはあるが
0982774ワット発電中さん
垢版 |
2017/05/07(日) 14:51:39.82ID:9pPXtG9m
>>981
ほうほう、PICと考えても使えるのね。
勘違いを正してもらってすまん。
8bitか16bitしか使ったことないので、他社のコアなんて使いにくいんだろうなぁ…と勝手に思ってた
0983774ワット発電中さん
垢版 |
2017/05/07(日) 18:14:59.83ID:IYbxdcLE
秋月でPIC32MM取り扱い知ってデータシートとか眺めてたんだけど
ADCのミッシングコードエラッタって、、
どんなアナログデータ来るか分かんないって事?
500nsec以下のシュミットエラッタもあるし

要所要所で痛いなぁ
0985774ワット発電中さん
垢版 |
2017/05/07(日) 23:15:50.40ID:V2b72ByA
PICではそのくらいは当たり前
エラッタ情報が開示されてないのもたくさんあるので注意
0986774ワット発電中さん
垢版 |
2017/05/07(日) 23:28:38.32ID:V2b72ByA
PIC32MMは格安でオススメ
16bitより安い32bit
ADCもスペック詐欺ではあるけど、スロー8bitなら問題ないんで、普通の用途だとそれほど致命的でもない

内蔵OSCで25MHzを作れない
I2Cが無い

といった、へんてこりんな面はある
0988774ワット発電中さん
垢版 |
2017/05/08(月) 07:48:35.24ID:stG1/0+L
1チップCPUしか使った事無いのかも知れない。
0989774ワット発電中さん
垢版 |
2017/05/08(月) 13:16:55.07ID:1qOltJ9c
1チップかどうかってあまり関係ない
コアだけのマイコンなんて無いから
0991774ワット発電中さん
垢版 |
2017/05/08(月) 13:21:00.34ID:1qOltJ9c
----- テンプレ ----

PICの特徴

多くのモデルでDIP版がある
秋月でDIP版の品揃えが豊富
趣味の電子工作の小規模マイコンでは採用率が高く、作品例も多く紹介されている
低価格路線のシェアが比較的高い

基本的には廃盤にしないポリシー
モデル数が多く、古くて低性能高価格の物も売っているので、モデル選択に困る

CPUのパフォーマンスは全体的に低い
特に8bitは顕著
エラッタが多く、公開されてない物も多い
0992774ワット発電中さん
垢版 |
2017/05/08(月) 13:21:46.62ID:1qOltJ9c
お薦めのPIC
迷ったらこれを買え
(秋月に売ってるPIC DIP限定)

●USBなし
PIC10F200 マゾ専用 最低スペック 50円
PIC10F322 最安 45円
PIC16F18313 8pin 75円
PIC16F18326 14pin 130円
PIC16F18346 20pin 160円
PIC32MM0064GPL028 28pin 3.3V 175円

●USBあり
PIC16F1455 14pin 140円
PIC16F1459 20pin 180円
PIC32MX230F064B 28pin OTG 3.3V 270円
PIC32MX270F256B-50 28pin OTG 3.3V 380円
0993774ワット発電中さん
垢版 |
2017/05/08(月) 14:41:26.98ID:stG1/0+L
Z80その他 相当数のCPUを全否定ですか
>>989
0994774ワット発電中さん
垢版 |
2017/05/08(月) 15:52:41.98ID:1qOltJ9c
>>993
ハードにアクセスしないでコアだけ動かすなんて無いから
Z80もI/Oポートなどは当然ある
コアだけでハードを意識しないマイコンなど無い
内蔵してなくても外付けのペリフェラルのアクセスは必須
0995774ワット発電中さん
垢版 |
2017/05/08(月) 16:37:18.56ID:tOhw0CS2
>Z80もI/Oポートなどは当然ある
Z80にはI/Oをアクセスする信号がいくつか用意されているが、
これをもって「I/Oポートはある」というのは少し無理があると思うナ。
8251、8254、8255、8259などの周辺ICの存在価値が無くなるw

文中の「ハード」の意味が不明瞭だけど、
ノイマン型コンピュータは演算装置と記憶装置と入出力装置とで構成され、
どれが欠けてもコンピュータとは言えないのは当然です。
0996774ワット発電中さん
垢版 |
2017/05/08(月) 18:18:49.95ID:QpZR+wcN
>>989が言ってるコアと周辺の組み合わせの話は、メーカーがワンチップに組み合わせたものの話だよね。
Z80みたいなマイクロプロセッサの場合は、ファミリに拘ることなくある程度自由な組み合わせもできるのだし、
一緒にはできないよ。
0998774ワット発電中さん
垢版 |
2017/05/08(月) 18:29:35.82ID:ZXPXpAmV
>>983
変換値に歯抜けがある。
抜け方、あなたのADCの使い方によって痛さが違うよ。
アナログ入力が連続的に変換したなら、変換値も1LSBづつ変わることを期待したいけど歯抜けのために不連続な変換値になってしまう。
0999774ワット発電中さん
垢版 |
2017/05/08(月) 18:31:10.68ID:K/wRvwBH
質問いいですか?
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 124日 6時間 45分 20秒
10021002
垢版 |
Over 1000Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.2ch.net/

▼ 浪人ログインはこちら ▼
https://login.2ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況