◎正当な理由による書き込みの削除について: 生島英之とみられる方へ:
初めてのPIC 0x0e ->画像>9枚
動画、画像抽出 ||
この掲示板へ
類似スレ
掲示板一覧 人気スレ 動画人気順
このスレへの固定リンク: http://5chb.net/r/denki/1518524799/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。
.
_ _ PICをさわるのは今日が初めて、という超初心者のためのスレです。
(O>――<O) PIC選び、PICを使った回路は、誰でも最初は不安なものです。
/ (・) (・) ヽ 恥ずかしがらずに何でも聞いてください。速攻で教えてくれますよ。
○ /▼\ ○ 質問のしかたは、初心者質問スレの発言1を見てくださいね。
|(ヽ二フ ) |
/  ̄ ̄ ̄ ヽ
f ヽ / | PIC関係のスレは、レベルに合わせて以下のスレもありますので、活用しましょう。
ヽ \ / ノ ・PIC専用のスレ
| \_ )(_/ ! 本家本元のPICスレです。口の悪い人もいますが、楽しくやってるみたい。
| | ここの話がわかるようになれば、あなたはもう一人前のPICerです。
| | ・マイコンソフト 悩み事相談室
| | ̄ ̄| | マイコンソフトやツールの質問は、こちらでどうぞ。的確な回答があります。
(_ノ ヽ_)
質問する時のコツ
・性格の悪い回答者はスルーしよう(相手すると逆効果)
・素人玄人などと 上から目線の回答者は、無視してください。相手してはいけません。
・そこそこ良い回答が出るまでしばらく再発言しないのもあり(良回答は後に出やすい)
・回答者のアドバイスで後日解決したら、結果報告しよう(とても喜ばれる)
・回答者は、僕たち初心者に優しくしてください。あなたも通ってきた道のはずです。
必要なソフトなど(基本無料)
統合開発環境 MPLAB X http://www.microchip.com/mplab/mplab-x-ide
コンパイラ (XC8 XC16 XC32) http://www.microchip.com/mplab/compilers (高機能版は有料)
コード生成プラグイン (MCC) http://www.microchip.com/mplab/mplab-code-configurator
マイクロチップ ライブラリ (MLA) http://www.microchip.com/mplab/microchip-libraries-for-applications
必要なハードなど
初心者はPIC16F1、PIC18F1以降の型番で始めると無理なく始められます。
プログラムの書き込みには書き込み器が必要です。持っていない場合はPICkit3(中華クローンでもまず大丈夫)を使いましょう。
PIC一覧、スペック検索 http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1005
さ、質問どうぞ〜っ
0x0d 2017/10/25〜 http://2chb.net/r/denki/1508935254/
0X0C 2017/07/27〜 http://rio2016.2ch.net/test/read.cgi/denki/1501157324/
0x0B 2017/05/08〜 http://rio2016.2ch.net/test/read.cgi/denki/1494235320/
0x0A 2017/01/04〜 http://rio2016.2ch.net/test/read.cgi/denki/1483498857/
0x09 2016/09/07〜 http://rio2016.2ch.net/test/read.cgi/denki/1473238791/
0x08 2016/04/30〜 http://rio2016.2ch.net/test/read.cgi/denki/1461994030/
0x07 2016/02/05〜 http://wc2014.2ch.net/test/read.cgi/denki/1454648249/
0x06 2015/07/18〜 http://wc2014.2ch.net/test/read.cgi/denki/1437151298/
0x05 2015/04/07〜 http://wc2014.2ch.net/test/read.cgi/denki/1428391368
0x04 2015/01/02〜 http://wc2014.2ch.net/test/read.cgi/denki/1420205108 (())))(())()(())((())()((()))))((()())()))(((()((()()()()))((())()(()()))(()
)(((((()())(())(((())()())()())())(()()())(())))())))((()))(()))))((()(((()(
()))()((()()())((()((()())())()(()((()))(())))))(()()()((()(())((())())))()(
))()((())))()(((()()()((())))()))))()((())())()()((()())((()()(()))))(()((((
(()))())))))()())))))((((()(()(((())())()((()))))()()())()())()((()(((()((((
()((((()))((((()())(()(()(()()()()())))())(()((())()(()))))())(()(())()())))
())))(())(((()(((((()))(((())(((()())()())()((()(()()))()))()))())((())())))
))()(((())((()))((()(())))((((()()()())(())()(()))()())(())))))))((((()()()(
()()()((())()))()(()((((())()()))))((()()()((())()()())))()()(())))()()(((()
)()()))()))((())(()))))()))()))(((((()))((()(()(((((()()()(()())(()())())(()
(((()((()((((()(()))()()((())())))))(())(())))())(()()(())))())(()(()((())))
)((())(())((()(()))))())()(()((()()((()((()()()))))())()((())(())(())))(()()
)()))(((()()()))()(()()())))((((()())()()())(()()))))(()))))(((((())()(((()(
))(()()))()()(((((((()(()(()))))))(((((())))()))(()()((()(((()))(()(()))))))
()())((()(()))(())))()()))))())()(()())))()(((())()((()(())()(()(((()())(()(
))()()(()((())((()))(())(()(()(()))()()((()()(((())()()))()()())()))(()))(()
()))())()()()(()(()))))))(((((()((()()))()(((((()))(()()(())))())()())((()()
)((((()))((()((())())(()())())))((())))()))))))(()(())))()))(()()((((()(((((
((()))))()()))(()(()()(())(((()))())())()(((()))))()())((()()))((())(((()(()
)(())()()))))()())())(()))))(()((()((()(()((()()(((())((((()()())())(()))))(
)((()(())))())(()()()))((())()(((())(((())))())((()))())())))()(()(((()())((
))(())((((())((()(()))()))(())(((()())))()()()())))(((()))(()()())((()(()())
))((())))(((((()()()))))())))()))()((()))((((((()())))())(())(())((()()(()((
()((((()())(()((()())((())())((((()((()))))())(((()())())())(()))()))()))())
()))))())))()())(()(()()(())(((()))())))(())))((()()))(()()()((()())((((((((
)()())()((())))(()()())())(()(()))))((())()()()())())(()(())(()(()()()()((((
(((())())))()))((())()))())(()(()(()(((()())()(())(()()()(((()))())))))(()((
())((())(())))()()()()))(((()()()(()())))((()((((((())))()))()((((())))))(()
()())(()))()((((()((())())(()))))()()())))(()))()()(()((((()(())()((())))()(
)))(())()())()()()))(()(()(((((()())(()((()))((())()()())(())))(()((()()()))
(()(((()(()()((((())))()(((((()))(()))((())(())(())()(())))))))()()))))(())(
))(((()())(((()))))((((()())()())))(((())(()(()()()(()))())()(()())()())))((
)((((())))))(()(()(()())((()())())())())(()(()((()(()((())))))(((()))(()()))
()(((()(()()))(())(()(()()((())()))((()))((())(())(()((())())())(()())))()))
()))())(()((((((((()))((((()())())()()))(())(()()))(()(()))((()))((()))))())
())))(((()((()()((()()(((()(()))))()))())(())())(())((())))())()()(()(())(()
))))))))())()((()))(((()()(())((((()(((()()())()(((((((())(())()))(()())))))
()(((())(())(())))(()((()()(()()))()(((((())()())())()(())(())(()())))()))()
((((((()))(()())()())()()))))()()))(())()()))()(()((((()((()())))()(()())()(
(()))))))))()(()))()(())(()))((((()(())(())(((()))(())())())())(((())(()((((
)()(())()(((((())())))(())(((()))((())(()())))())())()))(()))(())(()()(((()(
(((())()()()))())(()(()(()(((((()()))(()((()))((((())()()((())()))))))()))))
)(()()()()())))())((())((()))()(()()()))())()()))))(((((())()())()((((())(((
)()(()(()())))))()())(((()(())((()()(())())((((())()))(())))(((((()))(()))()
)()))(()()((())((())((()()))()()))((()((()()((())()()((()(())())()))(()))))(
(((()))()()(()(()))())))())))())((()((()())()()()(())((()(()()(())()()))()((
)()))))))))))(())(()))(((()(()())(()(()))))((()((((())(((())())(()))(()(((((
))()()((())(()))(()((()())())))(()(())((())()())))))()))())(()()((((()(()(((
))))(())))(()))()(()()(()((())()()()))())(()((())((()((()()())))(()()()()(((
(())()())))(())(())(((()(()()(())(()()()()(())))))())(()((())()()()))()(((()
電電板でこのスレだけが16進数表記なんやね…
MPASM的にはH'0E'なんだろうけど
Cでは、0x0e だけど、
MPASMでは、
H'0e' と、最後にも ' が要るの?
それでもいいし0x0eでもいい
MPASM/MPLINK User's Guideを読むべし
MPLAB の、Mはマイクロチップ、LABはラボですよね。
Pは何の略でしょうか?
Microchip Pic Love Adurt Boy
なるほど、PICのPですね。
ありがとうございました。
12LF1822を使って赤外線リモコン送信機を作りたいと思い調べてみました
PWMを1ピンで出力すると20-30mAしか取れませんが数ピン並列にすることで電流を稼ぐとWebで見たのですが
SinglePWM(CCP1)の出力を複数ピンに同じ内容で出すにはどのような方法があるのでしょうか?
Trなどの部品数を減らせないものか、アイデアをご教授ください
>>9 >>14 マジレスすると、adult 。。。
>>12のご指南お待ちしております
PICの割り込みフラグについて教えてください。
たとえば、Timer1割り込みが発生すると、PIR1のTMR1IF=1になると思うのですが、
このTMR1IFは、処理後に自分でクリアしないといけないようです。
でも、UARTのFERRなどは、次の受信をすれば自動的にクリアされます。
PICが フラグセットしてくれるのはいいのですが、
処理後に自分でクリアしなければならないフラグなのか
自動的にクリアされるフラグなのかの区別がわからなくて、躓いています。
データシートを見たのですが、例えばTMR1IFの説明では
割り込みフラグビットは、INTCONレジスタの対応するイネーブルビットまたは
グローバルイネーブルビット(GIE)の状態にかかわらず、
割り込み条件が発生するとセットされます。
ユーザーソフトウェアは、割り込みを有効にする前に
適切な割り込みフラグビットがクリアされていることを確認する必要があります。
と書いてあって「自分でクリアしなければなりません」とは書いてありません。
クリアされる要因や、あるいはフラグセットされた後に、私がしなければならないこと
の区別は、データシートのどこかに書いてありますでしょうか?
宜しくお願いします。
あー
データシートと喧嘩しちゃうタイプね
僕はそういうの面倒だから関わらない様にしてるんだ
俺面倒だから理由や根拠を考えずにMCCに書かせちゃうから、データシートをしっかり調べるのは偉いと思う!
>>16 the TMR1IF bit should be cleared before enabling interrupts
と書いてあるな、手元のデータシートには。
>>16 データシートの「割り込み」の説明にクリアしろと書いてあるよ。
TMR1IF説明の部分じゃなくて。
>>16 勝手にリセットされる割り込みフラグってあったっけ?
>>19 そうです。それが
>>16で書いた、
>ユーザーソフトウェアは、割り込みを有効にする前に
>適切な割り込みフラグビットがクリアされていることを確認する必要があります。
なんですが、割り込みを有効にする前に というのが、初回に有効にする前のことなのか、
毎回のことなのか、はっきりわからないんです。
>>20 ありがとうございます。
>「割り込み」の説明にクリアしろと書いてあるよ。
それば「次の割り込みを知りたいなら、クリアしなさいよ」と言うことでしょうか。
初期設定のGIE=1の前に、xxIF=0にしてからGIE=1にしないと、
いきなり割り込み処理が走り出すよ、という意味にもとれてしまうのですが。
>>21 >勝手にリセットされる割り込みフラグってあったっけ?
そうなんですよ。そういうことがデータシートに一覧で書いてないかな、と思ったんです。
xxxIF セットはPIC クリアは 1)○○が△△した時に自動クリアされる 2) ユーザーが毎回クリアする
などと書かれていると嬉しいのですが。
割り込みばかりでなく、FERRやOVERRでのエラー復旧のサンプルを探したんですが、
どれもFERRはdummy read、OVERRはCREN=0, CREN=1するだけでした。
本当にそれだけで良いのか、チップを設計したMicroChipがお手本を示してくれないかな、
と いつも思っています。
データシートにその辺の仕様が十分に載って無かったりするからな
割り込みはちょっと手を出してない範囲なので「明確に載ってなかったら全部手動でクリアしたらいいのでは?」と思うんだが。
チップごとにとか、機能ごとに挙動が違うとか言われても相手PICの専門家じゃないからは分からんと思うよ。
>>16 基本、割り込みフラグが立ってたら、割り込み禁止にしてない限りは、割り込みが発生する。
おおむねだが、検出されたら立つ 奴はクリアが必須。
タイマーとか、コンパレータとか。
処理の結果で立つ 奴は、自動的にクリアされるのが多い。
受信完了なら、データを読み出すだけでクリアされるとか。
>>26 何の情報にもなってない
データシートの方がはるかに多くの情報がある
そのデータシートにも十分な情報が無かったりする
>>27 そうなんか?
XCは使う予定はないんだが、CCSCでもだめ?
どういう所で弊害出るん?
>データシートの方がはるかに多くの情報がある
情報が多くて読み切れないことはわりとある話。
しかし、他人の書き込みに対して「何の情報にもなっていない」という人が
「データシートにも十分な情報が無かったりする」ことの具体例を
書かないのはおかしくないか?
皆さんありがとうございます。
結局のところ、それぞれのプラグに対して、どのように後始末しなければならないか、
どこかに書いてあるものでしょうか?
また、皆さんはどのようにして対処しているよでしょうか?
とにかく使用後は、クリアしまくるのでしょうか?
りーどおんりーでもクリアしてるのを見たことありますが、
訳もわからずやってるな、って感じです
皆さんありがとうございます。
結局のところ、それぞれのプラグに対して、どのように後始末しなければならないか、
どこかに書いてあるものでしょうか?
また、皆さんはどのようにして対処しているよでしょうか?
とにかく使用後は、クリアしまくるのでしょうか?
りーどおんりーでもクリアしてるのを見たことありますが、
訳もわからずやってるな、って感じです
データシート
サンプルコード
実験
の順に情報を集める
ほんとに載ってないかなと思ってデータシートみたが、ブロック図とかみればわかるじゃん
同じ用途で上手く動くソースを探して、何でそうなってるか考える
>>32 素直にプログラムを書けば、割込み関連のフラグのセット/リセットでそんなに悩む事は無いと思うけどナ。
割込み要求フラグの大原則は
「割込みを使えば自動的にリセットされ、使わないときは自分でリセットする」
です。
通信ハードエラー(フレーミング、オーバーラン、パリティ)発生フラグに関しては、
受信完了フラグが立ったら、通信エラーフラグが立っていないかどうかをチェックし、
立っていれば必要なエラー回復処理を行う。
立っていなければ受信データを読み取って処理する。
かな。
割込み開始時に、すでに割込み要求が発生しているなら(例えば通信でデータを受信済みなら)、
そのデータを捨てるか取り込むかはプログラムの仕様次第です。
不要なら要求フラグをクリアしてから割込みを許可します。
枝葉末節が気になって仕方ないヤツを相手したって仕方ないだろ。
何がしたくて、それが分からないとどういう支障が出るのかって話。
たぶん、そいつの脳内を除けば何も困ってないはず。
>>34 ありがとうございます。
>ほんとに載ってないかなと思ってデータシートみたが、ブロック図とかみればわかるじゃん
ありがたい情報、ありがとうございます。
ちなみにこれは、どの型番のデータシートのどのブロック図でしょうか、よかったら教えてください。
僕が見たデータシートPIC16F193x で、例えばUART受信のブロック図では、
割り込みで言えば、事前に僕がRCIEを1にしてあれば、
RCREGに受信データが入ったらRCIF=1になる(?)ようなので、and結果で割り込みがかかります。
割り込みはかかりますが、andの先は→で書かれていて、
誰が記憶を消すかは書かれていないみたいです。
>>36 ありがとうございます。
>「割込みを使えば自動的にリセットされ、使わないときは自分でリセットする」です。
この場合の"使えば"とは、具体的にどのようにすることでしょうか?
・割り込みを設定すること
・割り込みが発生すること
・割り込み結果を参照すること
ありがとうございます。
ISRから帰ればだろJK
実機持ってるんだろ?
不明点があれば仮説を立ててそれを検証すればいい
イミフな説明書いてエスパーの返事を待つよりずっと早いぞ
割り込みがかかったことを知りたかった奴が、
また次に割り込みがかかったことを知りたきゃクリアする。
そんだけのこと。
アンタが何をしたいかだよ問題は。
>>39 「割込みを使えば」とは
割込み処理ルーチンを書き、割込みを許可して、発生した処理要求(例えばUARTの1バイト受信など)を
割込み処理ルーチンで処理することです。
UART受信割込み要求フラグはCPUが割込み受付け時に自動的にリセットします。
「割込みを使わない」場合
割込みを使わないときは、1バイト受信フラグ(UART受信割込み要求フラグ)を
必要に応じてプログラマがチェックし(これをポーリングと言います)、
オンになっていれば必要な処理を行います。
受信割込み要求フラグはプログラマが適切にリセットしなければいけません。
なお、CPUによってはハードウェアで(プログラムの介在無しで)入出力処理が可能です(DMA)
で、ここで細かく聞くよりも
>>40 の言うように実践を!
>アンタが何をしたいかだよ問題は。
もしかして: 本人にもわかっていない
流量センサーの電圧出力(1V〜5V)をPIC(5V,PIC18F46K22)でA/Dして取り込んでいますが、最大出力が5Vなのでセンサーの方が僅かにVDDを越えるかも知れないと思って抵抗で分圧入力しているのですが、VDDをどれくらい超えたらPICは壊れるのでしょうか?
>>38 お前みたいな粘着系のめんどくさそうなやつに教えて、良かったと思うわけないだろ。
ちなみに俺が見たのは12F1822と16F87Xだが、ちゃんと書いてある。
>>44 >VDDをどれくらい超えたらPICは壊れるのでしょうか?
I/Oが壊れるのは大きい要因として
(1)電圧による破壊(をふせぐために決められた上限)
(2)内部の保護ダイオードや内部配線の限界
があります。
データシートの Absolute Maximum Ratings にI/Oピンの電圧限界として、
Voltage on any pin with respect to VSS…-0.3V to (VDD + 0.3V)
と書かれています。VDDが5Vなら5.3Vが上限ってことになりますが、
こういう表現は、たいていの場合、(2)のダイオードにでかい電流が流れないようにする電圧範囲です。
これを遵守するのが望ましいのですけど
Input clamp current, (VI < 0 or VI > VDD) …±20mA
とも書かれています。ダイオードのVFが0.6Vなら、電圧が高くなって(2)の電流が流れ始めるのは
5.6Vになってから。この時点で上の5.3Vは超えているのですが、これでは実際のところ壊れません。
偶発的に電圧が上がった場合でも(2)のダイオードに流れる電流を抑えるようになっていれば大丈夫。
たとえばセンサーとPICのあいだに入れておけば、
PIC5Vのとき、センサー出力が間違って6Vまで上がっても、クランプダイオードに流れる電流は
(6V-5.6V)/1k=0.4mAに抑えられます。
PICに電源を供給せずに、センサーだけに電源が供給される場合でセンサーが6Vまで上がっても、流入は5.4mAにとどまります。
どちらの場合もクランプダイオードを通じてセンサーから流れ込んだ電流をPIC側の電源ラインが吸収できることも必要ですが。
>>38 http://www.microchip.jp/docs/41364B_JP.pdf 77ページにRCIFがいつクリアされるか書いてありますぞ。
↓コツ
・PDFを開いたときに、RDIFで検索して見つかったところの前後を集中的に読むといい。
・日本語データシートがあるなら、無理に英語に拘らずにとりあえず頼ってみる。
・日本語データシートは古かったり翻訳に間違いもあったりする。見つかった役に立ちそうな情報は、英語の最新データシートでも確認してみる。
この調子で、PICのすべてのフラグについて、延々と質問が続くのであった…。
>>39 単純に考えればいいと思う
・割り込み要求は勝手にリセットされないからプログラマが自分でリセットする
・シリアル送受信のフラグは明確に書き込み/読み取りの動作でリセットされる
型式も分かんないのによくアドバイスする気になるよね
>>51 PICは、16Fならほとんど同じだからね。
よく分かって回答しているのは一部の人だけで、
他の人は適当にやって動いたから良し、
あるいは全然分からずにやってるみたいだね。
質問者が叩かれてるので、まさか自分もわからないと言えなくてね。
>>52 へえ、そうなんだね。
良く分かっている人のレスとそうでない人のレスを
具体的にレス番で教えて、参考にするから。
>>46 詳しくありがとう。
センサーのアンプ出力に約1K抵抗が内蔵されているから大丈夫だね。
分圧抵抗入れて、100と1000で何故半分しか出てこないのか悩んでいて内蔵1Kに気付いた。
出力短絡保護と思うが、分圧抵抗を撤去してダイレクトに入力する事にします。
割込処理ルーチンの入口でフラグクリアするのがよいのか
出口でフラグクリアするのがよいのか何時も迷うぜ
迷う?
どちらですべきか考えれば迷うことなんか無い気がするが
割り込み要因を取り除かないとクリアしても即セットされる物は要因を取り除いてからクリア
処理後、クリアまでに再度割り込み要因が発生する場合はクリアしてから処理
よく考えずに適当な場所でクリアすると
いずれ問題が起こる
多重割り込みが有効な場合は
クリア方法もよく考えないと
アマチュアでやりがちなのが
xc.hで定義されてるフラグにそのまま代入しちゃうこと
IFS1bits.U1RXIF = 0;
とかやっちゃうといずれ問題が起こる
>>61 えっ? 1bit単位で読み書きする方法があるの?
リードモディファイなんとかライトだから、
読み出してから書き戻す間に、
ハードウェアによって変えられても、
古い情報で上書きされてしまう、
と言うことじゃないの?
>>54 PICのADCはつなぐ相手の出力インピーダンス10kΩ以下を推奨してた気がする。
1kなら大丈夫と思うけど。
絵入りでわかりやすく説明してるページがあった気がする。
>>58 それ、いつもやってる。
>いずれ問題が起こる
とても心配なので詳細を教えてください。
>>61 へえ、どうやって回避すればいいの?
>>54 わりと多くのマイコン内蔵A/Dコンバータが図のような構成になっていて、
変換直前に一瞬だけスイッチをONにしてCにチャージしてから変換を行う。
この一瞬でCをチャージして、誤差が分解能の1LSB以内に収まる。
ソースの直列抵抗が小さいほどチャージの収束が速くなる。
それゆえ、分解能が高くなれば、ソースの抵抗は小さくないと性能を引き出せなくなるし、
逆に、要求分解能が低いなら、ソースの抵抗は大きくてもよくなる。
で、外部回路や応答性に問題がない範囲で、青のコンデンサを付けておくと
抵抗が大きくても外付けコンデンサが内部コンデンサへのチャージを助けてくれるよ。
>>58 はやくみんなの疑問に答えてください。
場合によってはMicrochipに報告しとかないと世界中に影響が出ると思うんで、
よろしくお願いします。
ピン変化割込IOCIFレジスタはIOCAFレジスタでないとクリア出来ないトラップに
はまって一週間くらい悩んだ…マニュアルはちゃんと読まないとダメだね
>>60 >>65 >>67 わからないならスクラッチで組もうとせずに
素直にMCCやHarmonyを使いなさい
>>69 MCCやHarmonyはあなたがダメ出ししたコードを吐く。
全く答えになってないね。
まあ、回答できないんだろうけど。
>>70 MCCやHarmonyが
>>58 のようなコードを吐いてるMCUは大丈夫
決して
>>58 のようなコードを吐かないMCUがある
それだと
>>58のコードはNG
>>71 >決して
>>58 のようなコードを吐かないMCUがある
具体的にPICの型番でお願いします。
あと
>それだと
>>58のコードはNG
の理由もね。
そっちが元の質問なんで、いいかげん話をそらさず、よろしく。
結局、大丈夫な理由もNGな理由も出ずじまいか。
予想通りだな。
初心者さんには気の毒だけど
幾度かつついても具体的な回答を出せない>>ID:MZkAGnSRのようなヤツは無視
知識のあるヤツだけが回答してるわけではないから時間の無駄
>>71 吐いてるMCUと吐かないMCUの型番マダー?
みんな待ってるよ
質問者です。
みなさん、貴重なご意見ありがとうございました。
やはり、全部のフラグについて、データシートにも
はっきりと書かれていないみたいですね。
また、みなさん先輩の中でも十分な理解でなく使って
いらっしゃる方も、いるようです。
そういう特性のことかもしれませんね。
みなさんのご意見を参考に、
フラグは、ReadOnlyも含めて、全部自分で上げ下げする
という自分なりの決まりを持つことにしました。
みなさん、どうもありがとうございました。
>>58の発言は、気になるところですが、
>>77のような執拗な言動も
どうかと思いました。
ありがとうございました。
勝手に決めるな、書いてある。
アンタが読んでないだけ。
データシートに全部書いてある
なんて時代は終わったのだよ
例えば非常にシンプルなUART
8bit, 16bit, 32bitで割り込みの仕様はまったく異なるのだが
データシートに1行書いてあるだけ
ここに十分な仕様が記述されているわけがない
条件が整っている時にセットされ続けるのか
条件が整った瞬間に1回セットされるのか
FIFO付きでもFIFO4, FIFO8 でその辺が異なる
USBのデータシートを見たことがある?
レジスタが書いてあるだけ
あんなんで設計なんて出来ない
8bitのUARTはエラッタシートに載ってないエラッタがあるから注意
タイミングによって送信がダブる
>>77 Harmonyって書いてるんだからわかるだろうに
コードを検索すればたくさんヒットするよ
なぜ
>>58がマズいか?
それは自分で考えなさい
いやでも、PIC32のCLR, SET, INVは非常に便利だよな
他のマイコンも真似してほしいくらい
他のマイコンだと
クリアのみ可能
とかにすることで問題が発生しないようにしてたりするね
まあそういうことを一生気にしない人もいる
ごく稀に問題が発生してもノイズのせいにしたり
趣味の電子工作ならそれでも良いのかもしれない
自分のスキルを誇示して詳細は語らないいつもの御仁ですか
ID:H6YmXlV3の見ているデータシート(とID:H6YmXlV3が呼んでいる何か)と
私が見ているデータシートは別物だということが分かった。
したがってID:H6YmXlV3 から何かを得るのは不可能。
どうもお疲れでした>>ID:H6YmXlV3
>>83 >なぜ
>>58がマズいか?
>それは自分で考えなさい
説明出来ないなら出てこなければいいのに。
>>87 苦労して会得したんだから、
簡単には教えたくないんだと思いますよ。
知っていても教えない
知らないから教えられない
黙っていれば、どっちかわからないから、
都合よく振舞っているんだと思うよ。
バカ「その問題間違っていまーす」
生徒「え?何処?何処?俺解いちゃったよ」
先生「何処が間近っているのかな?」
バカ「それは自分で考えなさい(キリッ」
どう考えてもコミュニケーションがとれないキチガイだろw
教える気も無いのに初心者スレでホラを吹く。
これ、品性の問題だからどうしようもないね。
ん?
場所と品性は関係ない。
どこだからどう振舞うかとかぶれること自体が品性の無さの表れ。
>場所と品性は関係ない。
だからですよ。ここ、5chですよ。
判らないですか?
ここ、5chですよ 馬鹿も居ますよ
最近のゆとりは、ただ反駁したいだけで中身が無い。
なので、「だって〜」「だから〜」と幼児並み。
あ、そうそう、返す言葉は必ず「判らないですか〜」と決まってる。
あぁ、そうだった。
少し前に馬鹿と阿呆の罵り合いに飽きてこのスレ見限っていたのに。
ちょっと怖いもの見たさで除いたら、結構有用な情報があったものでズルズルと見続けてしまっていた。
データ削除します。
PICスレには残念な人が居座っているから諦めた方がいい。
>>66 直結で期待通りだけどRssば1K位でセンサーの出力インピーダンスは1K位で分圧されないのはキャパシタがチャージするからでしょうか?
>>102 追加する抵抗R1は信号源抵抗Rsに直列に入るだけですので、分圧というのは違うように思います。
センサーの直列抵抗が大きくなっていても大丈夫なのは、サンプリングのスイッチが短い時間だけ
ONしたときに、CHに一気にチャージするときに流れる電流をC1から供給できるからですし。
>>44で書かれていた「分圧」は右下の赤の回路ですよね?
>>103 >サンプリングのスイッチが短い時間だけONしたときに
ちょっと認識が違う気がする。
サンプリングのスイッチは常にオンになっていてGO/DONEビットを
セットするとオフになってからA/D変換が開始される。
前回A/D変換したときにチャンネルセレクトを切り替えておけば
ずっとチャージしたままになる。
>>103 レスありがとうございます。
直結前の回路は赤色の通りです。
勉強になりました。
>>104 あーっ。ご指摘の通りです。別のA/Dと混ざっていました。
PICのA/Dの場合は、サンプルスイッチはチャンネルセレクトを切り替えてから
変換開始までどれぐらい待つかを決定するために信号源抵抗(とコンデンサ)を考慮するのでしたね…。
チャンネルを切り替えてから変換開始までに時間的余裕がある場合で、変化も遅い信号をサンプルするときに
信号源抵抗を考慮する理由は端子のリーク電流でした。
>>105 …ということでして、おはずかしい。
チャンネルを切り替える必要がなく、変化の小さい信号源なら外付けコンデンサにあまり意味ありません。
アホの知りたがりは必要悪
アホの教えたがりは社会悪
教えたがりでも知りたがりでも無いと思いますし、
少なくとも「
>>107 アホの意味の無いイヤがらせ悪」よりはずっとマシだと思いまぁす。
馬鹿なほど知ったかして、得意げに教えたつもりになってるから卯財
>>106 別のA/Dとは?
参考にしたいので教えてください。
>>114 16bit PIC なら、メモリー容量的にSPI モードで十分だしな。
>>109 > 馬鹿なほど知ったかして、得意げに教えたつもりになってるから卯財
教えようとしてるだけエライじゃん
イヤなのは、なんにも教えず説教をたれたいだけのジジイ
>>109 お前はバカだ、知ったかだ。と言うなら
どこが間違っていて、正しくはこうだ。
と書かないと、
あなた自身が、馬鹿な知ったか、に見えるよ?
初心者です。教えてください。
2つあります。
MPLAB Xをダウンロードしてインストールして、ふー炉じぇくとを作って、コンパイル(ビルド?)をしました。
画面の下部にあるエラーとかワーニングが出る窓の文字が小さくて、とても使いにくいです。
この文字を大きくするのは、どこをさわればいいでしょうか?
Toolsのoptionsの中にfont設定があるようですが、
outputペインのfont設定までは見つけられませんでした。
今まではMPLAB IDE8.92を使っていたのですが、それに比べるとコンパイルに時間がかかります。
もっさりした感じです。これで正解なのでしょうか?
どうぞよろしくお願いします。
>>119 マウスのホイール押しながらホイール回す。
デフォルトだと、一度に8つ?のファイルを同時にコンパイルしようとするから、非力なマシンだと、かえって遅くなる。
シングルコアCPUマシンならMPLAB 8.92の一択
最近は安くて早いPC充実してるからMPLAB X使うなら買い替え
そりゃPCがボロ過ぎる
サクサク条件は64bit4コア8ギガかな
今時中古ノートでも2万もあればそろえられる
ケチって買わないならコンパイルのんびり待ちましょう
待つのは無料だからね
JAVAで開発された物って
開発は楽チンなんだろうけど
メモリバカ食いだよな
オイラもXの遅さに耐えられなくなって
去年PC新調した口
ついでにSSD化も
デュアルディスプレイ化もして超快適
>>120さん
どうもありがとうございました。できました。
この設定は、どこかのプロパティを開いて調整できるものではないのでしょうか?
よろしかったら、教えてください。
>>121,122
みなさん、ありがとうございました。
僕のノートPCは、17インチ1920*1200で広いんですが、
コア2ディュオというCPUですので遅いです。もっさり感たっぷりです。
あと、もう一つ教えてくださいませんか。
文字を大きくしたoutput paineですが、エラーの表示はどこを見れば良いのでしょうか。
どうせ僕のプログラムミスなので、
○○行目にsyntax error ; が必要 とか出れば良いのですが、
いろいろと表示されすぎて、わからないです。
英語のNotice Caution、コンパイル時のエラーメッセージなんかは、
同じ単語が結構出てくるので、一冊ノートを作ってわからない単語を書き出してその意味を書いておくといいよ
ノートの単語が増えてこなくなったら、アルファベット順に再編するとかなんかしておく
その頃にはだいたい意味がわかるようになってる。
PCにText文章で作ってもいいけど、書いたほうが覚える感じがする(個人的に
みなさん、ありがとうございます。
ご親切にありがとうございました。
なんとか、プログラムが動き出しました。
outputペインの文字サイズは、outputペイン上で右クリックして、settingに行くとありました。
error表示は、英語を頑張って読むことにします。
ただ、makeとか知らない言葉が出てくるので、メモしておくことにします。
Syntax Error in 123 とか、色を変えて出てくれるとありがたいですね。
あと、ビルド成功の文字を、若草色から変えたいのですが、わかりません。
上記の右クリック...の画面で、Build Successの色を青にしたのに、
若草色のままです。
PCは遅いので、関数50行、main 20行くらいでも、1分くらいかかります。
なんだかなって感じです。
>>124 出力タブのウインドウでCtrl+Sで保存して、ここに貼り付けてみるのはどう。
お金も無くて頭も無い半人前だけど
文句だけは一人前
なんだかなって感じです
>>127 makeも知らないのか
お前の組のことだよ。覚えとけ
>>129 理系はアフォばっかりだから、挑発はやめろ
無視すればいいんだよ
コンパイラの途中経過には興味はない。
Cで書いて、コンパイルして .hex が出来て、picに書き込んで動けばオーケーです。
途中のmakeでこけるとかはMPLABの都合なので、僕らには関係ないです。
makeとかリンカーとかを知らなければマイコンが動かせない訳ではないでしょう。
立派な考えなので全部のコードをハンドアセンブルして手打ちでhexファイルまで作って下さい。
ライブラリなんて安直な考えはダメですよ
動かしたいだけなら全部、他人に作ってもらえばいいんじゃないの
仕事ならお金払って、趣味なら駄々こねれば。
C言語で組んで何が悪いのかね〜〜〜
出力されたアセンブラコード見て適正なコードが
出力されるようにCソース変更することでも結構
いい結果得られるし、だめなら直接アセンブラコードで
書けばいい。
ぐだぐだ言うやつはFreeエディション使ってるんだろ〜〜
Proモードでコンパイルすれば何の問題もない
ていうか、メイクとかリンカーとか、知らないとpic使えないのか?
Cでソース書いて、コンパイルして、目的のことが出来たなら、それで充分。
今確認したら MPLABX4.15 の javaw.exe で1.4GBも喰ってる
いつの間にこんな馬鹿喰いデブになってまったんだ、、、
あれ?なんか近くにそんな人居る、、、
4GB頭打ちの32bitOSだと修行僧とか忍耐力ある人じゃないと
運用無理じゃないの?
>>142 取り敢えずメモリー確保して置くってソフトは多いよ。
>>143 存在するのはわかるけど、やだなあ、それ。
PCを更新したのでPIC環境も最新にと思い、X IDEの3.61から4.15を入れて、XC8は1.45Bを入れた。
しかし、X IDEのツールチェーンに登録されない???
入れたドライブとパスは、D:¥Microchipです。
おれIDE使ってないから、適当なこと言うけど、
javawコマンドは最大メモリ量とか初期メモリ量をオプション指定できるよ。
下記のページ見て-Xmsとか-Xmxとか起動する場所に指定してみたら?
https://docs.oracle.com/javase/jp/1.3/tooldocs/win32/java.html 例えば、-Xmx1G とかやればいいと思うけど、自己責任でどうぞ
>>142 Harmonyを立ち上げるとそのくらい使うねえ
まあでもメモリたくさんあるから気にしたことない
それより、MPLABXを複数起動出来るようにして欲しい
他の多くのIDEは出来るのにMPLABXは出来ない
mplab_ide.confに書けるらしいぞ
MPLAB メモリ削減でググって2番目くらいに表示される記事参照
>>150 使われなければスワップアウトされるだけだしな。
パフォーマンスや使用リソース量よりも開発効率や移植性を優先したから
つまりMicrochipが悪い
>>142 32bitの4GBの限界もそうだが、
32bit Windowsでは通常、32bitアプリは1プロセスで2GB(実際は1.5から1.6GBくらい)までしか使えない
64bit Windowsでは32bitアプリでも
実行ファイルにLargeAddressAwareのフラグが立ってれば4GB(実際は3.5GB程度)まで使える
>>156 32bitだから4Gしか使えないなんてのは、Windowsの64bit売るための言い訳仕様に過ぎない
Windowsはメモリ利用効率が何気に悪い
linuxもBSDもハードウェア限界まできちんと使えるし、MPLABもWindowsより多少はマシ。
java環境がマシなだけかもしれないが。
>>157 32bitのx86 Linuxでは1つの32bitプロセスが使えるメモリは3GBまでだよ
今時、32bit Windowsを使うメリットなど無いし今はもう64bit Windowsが主流
NVIDIAなんて32bit Windows用の新しいドライバは作らないと発表してる
LinuxだってUbuntuで18.04から32bitのUbuntu Desktopはサポートされなくなる
スマホもPCも64bitが当たり前の時代だよ
ごめん、17.10からUbuntu Desktopは廃止されてたわ
2017年9月28日 Ubuntu,Artful Aardvarkで32ビット版サポートを中止へ
http://gihyo.jp/admin/clip/01/linux_dt/201709/28 2017年12月21日 Canonical,Ubuntu 18.04 Serverでの32ビットデイリーイメージのサポートを中止へ
http://gihyo.jp/admin/clip/01/linux_dt/201712/21 あのーここはPICのスレなんですが
PICも32bitだとMIPSで様相が全然違うけど、
8bitのやつとなにか共通点ってあるの?
名前だけ?
16bitと32bitではペリフェラルの共通点はけっこうあるが、
8bitと32bitはそういうのもあまりない
もっとも、
8bitと32bitで同じペリフェラルだったとしたら、
8bitがよほどリッチか32bitがショボいか、
バランスが悪すぎると思う
開発環境は共通点が多い
レジスタの名前とかは同じ名前をつけようとした痕跡があるな(よりリッチになってても)
>>165 最近の8bitPICの周辺機能は、16bitPIC相当になってきてる
UART, SPI
8bitはFIFO無し
16bit, 32bitはFIFO有り
割り込み
8bitはハンドラ共通
16bit, 32bitは要因別ハンドラ
スレ民「開発効率や移植性、メンテナンス性が良いC使えや!アセンブラとか使ってる場合かよボケカス!」
スレ民「開発効率や移植性?知るかそんなもん!MPLABバカデカくしやがって!Microchip死ねやボケカス!」
どうしてこうなのか・・・
>>169 PIC18の新しい奴は、割り込み要因別にベクタが有る。
PIC18の羨ましいところは、AVRには無い10進演算補正命令がある事かな。
アセンブラだと<入力→16進変換→16進演算→10進変換→出力>より
早くて簡単な<入力→10進演算→出力>でやりたい場合がある。
10進数演算
昔x86にもあったけど64bitで廃止された
加減算くらいしか使えないし、
10進の入出力は大抵遅くてもいい部分でしか使われないから
世の中のマイコンの性能も上がったし、
普通に気にせずC言語とライブラリでやればいいよ
PICはCPUが遅いから色々と気を使う必要が出てきて大変だとは思う
いまだにオールアセンブラとかの人もいるし
時代的に30年前な感じ
>10進の入出力は大抵遅くてもいい部分でしか使われないから
昔、秋月で売っていたDDSの8桁の発振周波数をロータリエンコーダで増減し、
(PCとの任意のタイミングのUART通信でも変更、増減できるようにしていた)
液晶にその発振周波数を表示する、というパルスジェネレータを作った。
ロータリエンコーダを最高速度で回しても、操作性(応答性)を良くするために
1クリックの時間内で、液晶表示とDDSの周波数の更新が出来るようにしたかったので、
後から色々と悩むよりも、最初から最高速を目指してアセンブラで作った。
もっとも、あらかじめ厳密に時間計算したわけでは無いので、
Cでも可能だったかもしれない。
ところで10進数演算命令ではなくて、10進数演算「補正」命令で十分。
PIC18では2命令(加算と補正)で済むのに、AVRではフラグの問題もあり、
2桁のBCD加算に21命令もかかる(参考AVR204)、残念っw
>>174に書いたx86は10進数演算「補正」
使われなくて消えた命令
>>176 さすがに液晶の表示よりは速いんじゃない?
2進数===>10進数 変換
10進数===>2進数への変換はいずれにしろ必要
ロータリーエンコーダーの処理と
液晶や実際のDDSへの設定は
同じタイミングである必要もないし
ていうか、
1クリックで毎回液晶更新してて間に合うのか?
ロータリーエンコーダーのパルス間隔は
瞬間的に速く回せばミリ秒オーダーになるが
>>178 そんなこといいはじめたら最高速でまわすエンコーダーに追従するよりも
最高速で回さなくてもいい自動ステップなどの工夫を入れるべきだ、とか言い出すやつが出始めるぞ
ソフト設計がおかしいって言ってるの
いかにも初心者が作った感じ
各要素どれだけの処理遅延が許されるかを考えて
それぞれ適した場所で処理するものだ
UART受信は1msの遅延で取りこぼす
エンコーダーは1ms遅延までは許容する
液晶表示は20ms遅延まで問題ない
DDS設定は50ms遅延まで許容
じゃあUART受信とエンコーダーのカウントは割り込みで処理
他は割り込みじゃない普通の処理で
UART取りこぼしよりはエンコーダー取りこぼしの方が影響が少ないから
割り込み優先順位はUART受信の方が上
とかって決めるもの
アセンブラを使った最適化なんてのはもっとずっと後
>>180 初心者というか、いかにもフローチャートでしか考えられない感じだよね
非同期タイミングなイベント駆動のステートマシンで考えて欲しいところだ
まぁアセンブラで早くぶん回せばなんとかなるだろ的な設計にありがち
言葉を覚えたての初心者?
使いたくてしょうがないんだね
まったくフェーズの違う話題が突然出てくるところが笑える
ステートマシンとかフローチャートを使った設計とか
30年前の話題だ
さすがPICスレ
手前に頼んでるわけじゃなし
空きにやればいいと思うよ
無駄な?カリカリチューンも趣味ならでは
失敗った
✖空きに
○好きに
コンパイルしてlstみて気に入らないとasmで書き直して
ほとんどasmになったりするけどw
>>176 一桁を1バイトで表せばそんなに長くないだろうに?
そもそも、
遅くて良い処理を、
速くやらなきゃならないところでやってるから
問題なわけで
>>177 申し訳ありません、私の知識不足でした、調べればすぐに分った事なのに・・・。
Cが一般的な今、10進演算命令は不要だと思われるのは仕方が無いですね。
AVRで採用されなかったのもこれが理由だと思います。
>>180 もちろん各処理の許容時間を十分に検討して作ります。
でなければプログラムは作れません。
さっきこのDDS制御プログラムリストを見返したら、
使用している割込みはエンコーダ・パルス入力、
UARTの受信、タイマ2個の合計4つでした。
誰がどうやろうと、タイマ以外の割込みはこうなるのかな?
私の基本的な設計方針は、
<最速最短の処理プログラムをチャッチャッと書いて終わり、
これで出来ないならソフトでは不可能でハードの追加が必要>
ですw
(一文入魂の作文に疲れたので他の方へのレスは謹んで省略)
(どうしてももう1レスだけ)
>>187 一桁を1バイトで表せばそんなに長くないだろうに?
別の理由であまり深く考えなかったけど、今、検討してみたらかなり簡略化できそう。
もしもバージョンアップする機会があれば採用してみたいです。
じゃあ結局
>>174の通りで
>>176は間違いでしたってことだな
命令数が少なくすんでも
2命令で8クロックだからなあ
PICは遅い
>>194 何に使うかだろ?
Z80より速いだろ。
何に使うって
>>176の話だよ
遅いからアセンブラでBCD命令を使ったんだろ
速けりゃそんなもん不要で
なにも気にせず標準ライブラリで済んだわけで
アセンブラじゃ開発期間も移植性も可読性も最悪
質問です。
mplabxide+xc8の環境で、ビルドした際のチェックサムについてです。
ソースを変更した場合、チェックサムも変わるものですが、コードプロテクトをかけてビルドするとソースの内容によらずチェックサムが同じ値になります。
こういうもんなんでしょうか。
プロテクトをかけた時点でチェックサムも計算できなくなると言うことですかね。
君がコードプロテクトと称してるのはconfig ビットの中の事?
>>198 レスありがとうございます。
そうです、config内のCONFIG5LからCONFIG7Hまでの設定です。
>コードプロテクトをかけてビルド
ソース中にconfig記述してるの?
結果が仕様なんだろうな
プロテクトしたら実物でもチェックサムに意味は無いのだから
気にしたら負け
>>200 ソース内と言うか、
mplab x ideでコンフィグを設定→
吐き出されたコードをコピペしてconfiguration.hとして保存→
main.cでインクルード、とやってます。
コードプロテクトの方法としてもっとオーソドックスなやり方ってあるんでしょうかね。チェックサムの件はあまり気にしないことにしますが、今後のためにご教示いただけるとありがたいです。
>>197 チェックサムはコードが一致してるかの確認用。
プロテクトは外から内容を読み出せない様にするもの。
>>202 mplabでコンフィグ設定すれば、インクルード不要と言うことですか!全然知りませんでした…今の状態でヘッダ無しでどうなるか確認してみます。
コンフィグ結果をテキストとして吐き出せるので、てっきりヘッダやソース内に記述するもんだと思いこんでました。
>>203 ありがとうございます。それは認識しているつもりですが、プロテクトをかけて中身は分からないにしても、チェックサムだけは確認できないものなのかなと思っていました。
皆さんレスありがとうございます。
mplabでコンフィグ設定、ソース内にインクルードせずにビルドしたところ「コンフィグ設定されてないんで初期値を使う」旨のメッセージが出ました。
なので取りあえず今まで通りで進めます。ありがとうございました。
何でヘッダ?
configuration.c だろ
>>206 ・configuration.hをmain.cの先頭でインクルード
・cofiguration.h内のインクルードガードを削除してconfigration.cとして保存、main.c内先頭のインクルードを削除
のどちらでもビルド出来ました。後者が通常の(正しい)方法なんでしょうか?何せ基本が分かってないため手探り状態なので…
ヘッダは普通複数ソースからインクルードしても良い物に使う
>>207 インクルードファイルは名を.cにする方が自然かもね。
ヘッダに書いてもソースに書いても動くようですが、複数のソースにインクルードされないのでソースに書いてmain.cの先頭でインクルードすることにします。
皆さんありがとうございました。
スタイルの問題だけど
ふつうは宣言を.hにしないか
.cは記述
includeで.cを取り込むのは何となく気分が…
(一般に、コンパイラによってはソースレベルデバッグで混乱をきたすこともある)
実行コード含まない配列の中身dataを取り込むときとかには使うけど
コンフィグレーションビットの設定が何なのか(宣言?定義?それ以外?)と言う話なんでしょうかね。
取りあえず個人用にやってるもので移植する予定が無いのであまり気にしないことにします。
公開不要な宣言や定義をグローバルヘッダに書く初心者が多いよな
迷惑
>>211 .cをincludeするのは気分良くないけど、
.hに実行コードがあるよりマシだと思って使う。
普通にconfiguration.cで何の問題もない
#pragma config
は単なるアドレス指定のデータの実体
そもそも複数ファイルにインクルードする必要があるのか?
configuration.cにして単にビルド対象に加えるだけで終わりじゃないの?
>>213 データシートをちゃんと読めばそんな疑問は出てこないと思うが
ここはデータシート読まなくて大丈夫なスレだから大丈夫だよ
最近のデバイスはconfig word 1 とword 2と設定が増えてるから
xc8の__configにどう記載すれば良いか悩むよね
>>225 悩んでもどうせ分からないので検索サイトでサンプルを探してパクるのが早道
MPLABXにconfigのソースを自動生成する機能があるが
コンフィグレーションビットはPICに書き込むときにソースの通りに
書き込むかプログラマで指定した値を書き込むかを選択できる性質の
データだからコンパイルに影響するようなものではない。
ど初心者です。アドバイスください。
定期的にRS232Cから文字列(数値を表したもの)出してる機器の信号を取り込んで、アナログ電圧として出力するだけのデバイスを作りたいと思い、PICを初めて触ろうと思います。
開発環境を作ろうと思ったところ、PICkit4なるものが出てるじゃないですか。PICkit3を買うべきか、PICkit4を買うべきか。
デモボードも買うべきか(そもそもデモボードって何ですか)。
よくわからないので、アドバイスください。お願いします。
またエラッタ厨とかの好きそうな奴だな
PICkit3買っとけ。っていうか、この時代になぜPICを選ぶ?
デモボードってのは、安倍辞職とか書いて道路練り歩いてる連中が首からぶら下げてる奴のことだ
>>233 PIC以外にどんな選択肢あるですか?
必要なときだけ接続する、可搬デバイスを作りたいのです。
シーケンサはごついです。できるだけ小さなデバイスを作りたいです。
デモボードが飾りなのは理解しました。
はじめまして、開発環境とコンパイラをDLしてみようと思ったのですが
HPにてエラーにたどりついてしまいます。
今は開発環境とコンパイラはダウンロードできないのでしょうか?
>>241 そこは古いのしか置いてないけど古いのでいいの?
>>233 なるほど、その手があったか!LED100x200くらいで首から下げてメッセージ流すやつ
作るか。もっとも、できるころには総理大臣2人くらいは変わっていそう。
>>232 arduinoでもつかえば ?
パチモンでよければ基板は数100円からあるし
開発環境無料だし
>>232 arduinoにするほうが絶対に良いと思う。先人のサンプルも多いし、ハードも一つ買えば完結する。
・基板は数100円からある
・開発環境無料
が、なぜ
「100円の基板じゃ無料で開発出来ない」
になるのか?
読解力以前の問題。
数100円で完結するというミスリードだし
初心者にパチモンを勧めるのもアホ
まあそもそも
>>232自体いつもの作り話な感じもするが
「開発環境無料」がなぜ「無料で開発出来ない」に変換されるのか?
初心者にパチモンを勧めるのはアホは言い過ぎな気がする。
根拠は何なんだろうね。
・道義的なもの?
Arduinoの互換品はルール的な問題はない。
Pickitの酷似商品よりはマシだと思う。
・問題が発生したときのよりどころの問題?純正なら切り分けができるから?
それだったら、ちょっと前まで初心者がよくやっていたライターを作ることもアホ。
からなずしもそうはならんよね?
>>256 >否定だよ
ああ、そうだね。すまん。
なぜそういうズレた否定をするんだろう。
言いたいことは「数100円払っている段階で無料ではない」だろ?
でも元レスは「開発環境が無料」って言っているのであって「無料で開発出来る」って言ってるわけでもない。
それに、基板やチップ自体にお金がかかったとしても、
IDEが無料で使えて、特にライターも要らないのであれば、人口に膾炙した表現として「無料で開発できる」で
通じるだろね。
元の質問が作り話であっても、
>>249の
>>248へのスカタンなコメントは作り話じゃないと思う。
>>261 ここ、PICスレだから具体名をあげてまでの話はスレチだしやめておく。
知りたければAruduino互換スレで尋ねるか、UNO 互換 で検索すればよかろ。
別に知りたいわけじゃないんだが
そんなもん無いだろアホが
ってこと
>>264 >そんなもん無いだろアホが
と、過去に思っていた、という話だよな。
>>262で、存在することはわかっただろ?
良かったじゃないか。自分がそれを使うことがないとしても、知らなかったことを知るようになったんだし。
井の中の蛙に教えてやろう
amazonでattiny85で検索すると出てくる274円
ハードはこれだけで開発できる
ソフトは無料のarduinoIDE
PICにもこういうのがあるといいね
ebayまで足を延ばせば ARM(STM32)環境だって数100円だ
ST-Link 239円
STM32F103C8T6 ボード226円
SW4STM32 IDE 無料
500円でおつりがくるな
大海を少しは知れたかな?
しかもARMの方はこれでソースレベルデバッグまでできる本格派
(PICでいえばICDあたりの環境?)
スレチと言われればそれまでだが不毛なカスの無価値な議論よりは
役に立つ情報だろうから書いてみた
ところで
「PIC」で一括りにしているけど、8ビット、16ビット、32ビットでスレを分けた方が良くないか?
違いが大き過ぎる
良いよ分けなくて
どの話をしてるのかわかればそれでいい
ビット数で分けても
PIC10とPIC18じゃ大違いだし
MMとMZでも大違い
叩きたい人は分けて有ろうが百羽一絡げに叩くから意味なし
>>268 おまえがPICでデバッグしたことないのは良くわかった
>>254 作り話じゃないです…
私企業の化学者でして、今後のことを見据えて少しずつ実験を機械化していきたいのです。
で、データロガーに取り込むときにはアナログ信号の方が都合がいいのですが、電子天秤の電送出力が軒並みシリアル通信でして。しかも十進数の測定値をそのままascii文字列で送るというクソ仕様。
しょうがないので自分で作るか、と。
そんなのをアナログのデータロガーで取ろうというのが前時代的
そのままパソコンのシリアルに繋いで記録取りゃいいじゃないか
後処理でそのデータからグラフでも何でも書けるだろうに
次にはPWMDACのキャリアとサンプリング定理とダイナミックレンジとノイズについて・・・
いや、なんでもない。
企業の化学者がろくな精度も出ないそんなもの作ろうとして、それを5chで質問してる時点で
お前はむいてないからさっさと転職しろ
ここの雰囲気はホントに殺伐としているね。
桜の便りもチラホラ聞かれる今日この頃なのに
「物言えば唇寒し秋の風 」
PICスレは民度が低く嫌味な人が多い。
その用途ならPIC関係なくArduinoかラズパイのスレの方が
優しく教えてくれるよ。
>>277 いやいや、とりたいのは天秤データだけじゃないんですって。温度は基本的にK熱電対の電圧を直接取り込みますし、その他もろもろ、アナログ信号出す機械が多いんですって。
シリアルを直接PCに取り込むソフトならなんぼでもありますが、あの機械はこのソフト、その機械はあのソフト、温度はデータロガー…とかやってたら、後で時間揃えてデータを統合するのが死ぬほどめんどくさいでしょ?
だから全部アナログ信号に直して、1台のデータロガーでまとめて収集するのが一番楽なんです。
デジタルよりアナログの方が精度劣るのはわかりますが、この際気にしません。
匿名という保険を掛けつつマウント取りたがる人間には居心地がいいんだろ
普通に作って教え教えられてならSNSの方がいいのかも
>>281 目的を聞けば聞くほどarduinoを進めたくなる。
でもそれはマイコンを使う必要あるんだろうか
データ➡rs232c➡usbシリアル変換➡usb➡pc
pcでそれぞれのポートの固有番号がわかるから、番号ごとに定期的に時間とデータをエクセルにでも追記したら。適当なソフトは分からないけど他で質問したらどうでしょう
概してマイコンのDAはADより貧弱(PWMでやるとか)なので、
出力をフィルタするとか必要ならオペアンプ類でデータロガーの電圧レンジに
合わせ込むとかしなきゃいけない キャリブレーション不要ってことは無いでしょう?
DCレベルだからオフセットの調整もある。
独立した用途に合ったDACを外付けしたほうがいいかもしれない
マイコン/アナログ両方の知識が要るから0からちょっと質問して出来るようなものではないと思うよ
既成品があるか知らないが、まずそういうものがあるかどうか調べたら?
>>281 このスレに来たってことは、
PICでやるって決めてるって事だよな
シリアルのフォーマット、送信間隔
必要な出力チャンネル数
必要な電圧
必要なビット数
を書けば設計してやるから書いてみな
交流成分だけで良ければアナログ音声出力を使うのが簡単だけど
そういうわけにはいかないよね?
>>287 アナログ出力インピーダンスと
電源電圧も
おおう!さよならした途端にみなさん優しくなった!
>>284 arduinoも考えてみますね。聞きかじったところだとunixも動かせるとのことで、そりゃいくらなんでもオーバースペック…と考えておりました。
熱電対を入力出来るから、
ロガーでいくらでも調整出来るとは思うけど...
まあわかることは出来るだけたくさん書いて
>>286 データロガー側は±1V, ±5V, ±10Vのマルチレンジ対応です。オフセットはデータロガー側で設定できます。たしか。
DAC外付けはちょっと考えてました。分解能8bitじゃ足らんよなあ、と。
dsPIC33FJ64GP802 じゃだめですかね?
12bitでぎりぎり足りるかな…ってところですが、本音をいうとも少し欲しいので、16bitのDAC載ってるやつです。
>>287 エクストリームありがとうございます!
明後日出社したときに、天秤の取説コピーしてきます。
んでもってやりたいことをもっと明確にしますので、少々お待ちくださいませ。
>>281 うちの会社でも電子天秤はRS-232Cなので0-5Vに変換して圧力やら、Pt100Ωやらと一緒に記録計で記録してます
PICでやるより、Arduinoの方が簡単確実です
UNOには、D/Aが無いので、10bit I2CのD/AコンバーターICをつなげて、使ってます
そういう研究所やら、企業は結構在りますよね
あと、四方から「PCでやれよ…」という幻聴が聞こえますので言い訳すると、
1. PC置くと作業スペースが減る。
2. PCを実験台上に置くと、1週間以内に有機溶媒をディスプレイやキーボードに垂らして( ;∀;)…
のため、あまりPCを近くに置きたくないのです。
8pinのPIC(PIC12F1822)とSPIのDAC(MCP4922)位か
DACの出力がシングルエンドで良いなら簡単にできそうだ
なぜPIC12F1822?
8pinならPIC16F18313だな
秋月に無くていいなら15313でも
>>296 私が作りましたが
4-20mA出力も可能です
部品代で2kくらいかな
ググってご自分で作って下さい
売るなら8万くらいかな
必要なチャンネル数くらいすぐに書けると思うんだけど
PICはUARTがあれば何でもいいな
あとはMAX3232とかも要るかな
電源は5Vから3.3Vに安定化した方がいいか
あとはDACの出力をバッファするかどうかだが
秋月だとNJM27463辺りか これはSOPだが
もうこれで回路出来るな
基板上なら千円程度でおつりがくるな
まともなケースに入れるとケース代が一番かかる
なんでも良いのになぜPIC12F1822と書いたのか気になる
12F1822は、出た当初、結構人気があった。
今はもっと選択肢が増えているからそうでもないが、
未だに最初に頭に浮かぶ人は結構いそう。
という程度な意味くらいしかない。
UARTもSPIもI2Cも使えて便利だから今でも1822を最初に選んでるな
ちょっとピン数が増えたりプログラムが大きくなりそうなときは14ピンの1825がセカンドチョイス
>>244 スマホからですみません
勉強用にとりあえず今使えればいいので、古いバージョンでやってみます
>>245 スマホからですみません
僕が見たときはエラーだったんですが(泣)
とりあえず勉強で軽く触ってみたかったので、古いバージョンでやってみます
PICで教えてください。
UARTを2ch使いたいのですが、XC8やXC16では、printf()はUART-No.1側に固定のようです。
fprintf(ch1, "hello");
fprintf(ch2, "hoge");
など、出力先を切り替えて使いたいのですが、どうしたら良いでしょうか?
stdoutとstderrで分けるとか
printfの出力先を切り替える関数を追加するとか
sprintfで文字列に変換してからUARTドライバを直接たたくとか
>>311 printfはputc()に書くので、putcを自分で書いて、出力先を切り替えるようなフラグを盛り込めばOK
>>281 おまえら研究レベルで、k熱の電圧直接取り込みとか言う時点で気づけ。
この手は、精度は関係ないとか言って、後から精度が出ないとか泥沼に引きずり込まれるパターンだね
しかも16bitアナログだってさ
ここでアイデアを出したって、最終結果に責任を持つのは本人だよ。
>泥沼に引きずり込まれるパターンだね
協業した人に引きずりこまれた経験は誰しも大なり小なりあろだろね。
「自分だけが見通せているエライ人」みたいな振る舞いはどうなんだろう。
>>315 アマチュアレベルだとそう考えるんだろうな
工業ようデータロガーがどんなものか知らないんだろう
PtじゃなくK熱でんついで測定だから
ラフでいんだよ
と、読めない
もっと幅広く勉強したらどうだ
>ど初心者です。アドバイスください。
なんだ、やっぱりいつものパターンか
>>312-314
ありがとうございます。
そのレベルで操作するのですか。
XC8, XC16では、fprintf(,)は使えないのでしょうか?
出口フラグ = 1;
printf("test\r\n");
void putc(unsigned char c)){
if( 出口フラグ==0 ){ TXREG.0 = c; }else { TXREG.1 = c; }
}
こんな感じでしょうか? 自分で_fprintfとか作って、その中でハードに合わせた処理を書けや
それをやってくれるのがコンパイラーさんだと思うけど。
fprintfは関数なのでコンパイラの仕事でなく関数を書く人間の仕事だ
予めコンパイラに関数が登録されている事もあるが、無ければユーザーが独自に書く必要があある
>>321 fprintf(stdout, ...)
fprintf(stderr, ...)
で切り替えろってこと
#define ch1 stdout
#define ch2 stderr
で希望通りになる
関数のオーバーライドできるの?
ライブラリのソースってあったっけ
それなら、X Cコンパイラ作った人がサボったってこと?
>>326 >>327 なるようにするんだよ
writeを自作するだけだ
通常は関数名の前に_(アンダーライン)とか付けて同一の名前にならない様にするが、該当の.hファイルをincludeしなければ標準関数と同一の名前は作成出来る
標準関数はあくまで関数であって文法ではない
トンチンカンが現れた
インクルードするかどうかとリンクするかどうかは関係無いし
ていうか、fprintfから自作するつもりか?
リンカで指定しているライブラリ中のコードと自分のコードのシンボル名が重複したらどうなる?
ということだな
PICは良く知らんのだがarmとかだとweakと指定してあれば重複しても指定していない(強い方)
シンボル使ってリンクしてくれるのだが(C++とかのオーバライドのことではなく、リンカの機能)
こんな機構が処理系にあれば、気軽に低レベルI/O関数のwrite等をユーザー定義の関数に
すげ替えられる。
それが無いと標準ライブラリから特定のオブジェクト抜き出して使用するとかしなけりゃならない
(何らかのフック機構が用意されていればいいけど)
で、PICのXCの場合はどうなん?
上書き出来ないわけが無いだろうが
組み込み初めてか?
あと、
>>331に対する
>>332の意味はわかるよな?
グズグズいうまえにやってみればいいのに。
普通にできる。
>>317 さすがです。その通りです。
まあそもそも、化学業界でPtなんて、オーバースペックもいいところだと個人的には考えてますが。使いにくいし。
それこそ分野によるのでしょうが。
仕様はも少しお待ちくださいな。今帰宅中ですので。
飯食って風呂はいってから、、、疲れて寝るかもしれませんが。
>>336 化学プラントではPt100Ωが標準的に使われてるけど…
ラフな温水調節とかでは熱でんついが多い
医薬品プラントはほぼPtだよ
5chでこんなこと書いてるなんて
余程レベルが低い会社にお勤めなようで
俺もだが
>>338 そりゃ知ってますよ。
Pt100はドリフトせず、断線するときは基本的に即死しますから、異常検知しやすいんです。壊れにくいしね。
K熱電対はドリフトしやすく、壊れやすい。異常検知が難しいのでプラント向きじゃないです。
ただ、精度の観点でいえば、Pt100じゃないと!ってのはダウトですね。Pt100とK熱電対の精度を語る前に、槽内循環改善しろって話です。
さて、ご飯食べてきますね。
>精度の観点でいえば、Pt100じゃないと!ってのはダウト
熱電対と比較して?
>>287
お待たせしました。仕様書きました。よろしくお願いします。
【天秤仕様】
ボーレート: 150, 300, 600,1200, 2400, 4800, 9600から選択可能
パリティ/ビット: 8bit, 7bit/パリティなし, 偶数, 奇数から選択可能
ハンドシェイク: 無し, ソフトウェア, ハードウェアから選択可能
【天秤からの伝文】
"S" (スペース) [A-Z] (複数のスペース) (測定値) (スペース) "g" [CR] [LF]
これがひたすら天秤から投げつけられ続けます。
送信間隔は不明ですが、もともとプリンタへの出力を想定した端子なので、せいぜい1秒だと思います。
(測定値)は小数点を含む数字です。負数の場合のみ"-"が付きます。
浮動小数点数型みたいな気の利いた型ではなく、ただの文字列です。
なお、天秤のオーバーレンジ、アンダーレンジの場合はそれぞれ以下の伝文になります。
"S" (スペース) "+"
"S" (スペース) "-"
【DA変換仕様】
分解能別に12bit, 14bit, 16bitの3ケース示します。もちろん高いほうが嬉しいです。
12bit: 測定値の絶対値を返してください。出力レンジは0〜409.6g, 1LSB=0.1g
14bit: 出力レンジ-409.6〜+409.6g, 1LSB=0.05g
16bit: 出力レンジ-655.36〜+65536g, 1LSB=0.02g
出力電圧は、12bitの場合0〜5V, 14/16bitの場合-5〜5Vでお願いします。
【その他】
Ch: 1
PICkit4買いました。
よろしくお願いします。 >>347 「選択可能」の意味は?
オーバーレンジ、アンダーレンジ、範囲外の場合の動作は?
ハンドシェイクの意味は?
(受信だけだし速度も遅いのでビジーにはならんでしょってこと)
レンジがおかしいので修正を
>>349 選択可能の意味は、天秤側は設定で変えられますんで、作る人がやり易い方法でお願いします、という意味です。ハンドシェイクも同様。…書かなかったら書かなかったで文句いうくせに。
オーバーレンジ、アンダーレンジ、範囲外の時は、近い方のレンジ端で出力してください。っていうかアナログ出力なんで、それ以外の表現方法ないですよね?
レンジがおかしいってのは、1ビット分多いぞごるあ!ってことですか?好きな方切っちゃってください。ユーザー側からしたら、どっち切っても同じことです。だってアナログですから。
よろしくお願いします。
>…書かなかったら書かなかったで文句いうくせに。
「選択可能」という言葉を書かなかったら文句が出るでしょうけど、そうではなくて、
「選択可能」の意味を書かないといけないですよ。
>ボーレート: 150, 300, 600,1200, 2400, 4800, 9600から選択可能
は、少なくとも下の2つの解釈ができるのです。
・このうちのどれでも作りやすいのでいいです(
>>351の説明でこれだとわかった)
・なんらかの設定で150, 300, 600,1200, 2400, 4800, 9600を任意に設定できるしくみになっている。
>それ以外の表現方法ないですよね?
オーバーレンジ、アンダーレンジを受け側で判断できるようにしなければいけないようなもので
0-5Vの出力を持つもののとき、
正常測定範囲を0.5V〜4.5Vに振って、アンダー、オーバーその他トラブルのときに、範囲外電圧を出力する、
という要求は見たことがあります。 どれぐらいの意味があるかは用途次第ですけど。
やっぱりシリアルロガー作ってデータ編集はPCでやったほうが楽な気がする
そだねー
全体的にラボのシステム見直すべきと思うな
PC置くと液体で汚れるからイヤだ?
データロガーなら汚れてもいいのか?
自分だったらアナログで統一なんて「大バカ」なことはせずに
デジタルで統一して記録するがな
>>351 あんまり態度が悪いと放置するぞ
PIC32MM0064GPL028 175円
PCM5102A 500円
ICL3232CPZ 130円
出力は±3Vで良ければDACからそのまま出せる
電源は3.3V単一
±5Vが必要なら追加の部品が必要
DACはオーディオ用なのでDCの質は未知
あとは基板、コネクタ、抵抗、コンデンサ、ケース、電源が必要
とりあえず、±3Vくらいで良いかどうか書いて
エラー通知の方法はいくらでも方法がある
アナログ出力からパルスを出すとか
別のポートから出すとか
自分だったらESP8266でも使って隣室のPCにデータ飛ばすな
作れないなら売ってる
例えば、
>「Wi-Fi RS-232C 変換アダプター REX-WF60」
>離れた場所にある電子天秤などの計測系にもiPad・Android端末にも利用できる、
>WiFi to RS-232C 変換アダプター。
電子天秤が広告文面でてきてワロタ
まともなやつが使ってるのはこういうものだ
dsPIC33FJ64GP802 480円
でもいいか
0V〜3.3V出力で良ければそのまま出せるし
±5V必要なら出力段の回路が必要
PWMのDACでいいなら8pinのPICでできるけどな
予算\500
コネクタ+基板+PIC+CR少々+ケースは100均のタッパ
ああ、RS232の12Vは適当にDi+抵抗で受ける
誰もお前に頼んでいないし
俺も誰にも頼まれていない
気楽に行こうや
書きなぐりでも誰かの参考に僅かでもなるなら
それでいいじゃないか
さすがの企業の化学者さまは一味違った違うな
肝心の出力電圧の誤差とリップル、出力インピーダンスと交流応答特性が完全無視
こんな仕様で出した測定器でどんな代物ができるんだろう
100g中の重量誤差も温度許容差も無視の企業化学者様だぜ
交流応答特性?
ほとんど直流でしょ
リップルもどうせロガーでローパスされるからあまり関係無い
熱電対も入力出来るんだから
ロガーの入力インピーダンスも非常に高い
と思った
精度は気にしないと言っておきながら
16bit欲しいってのがちょっと
化学は畑が違うとはいえ こんなことがあった
発振回路の水晶に薄膜が着くと周波数変わる、というセンサにしたかったらしい
それが発振しないというので見てくれと化学科の人間が持ち込んだ代物は
水晶片から配線が約1mピローンと伸びて駆動回路に繋がっていた
これでまともに動作するわけないよと言っても、なんで?というので
・・・以下略
化学の人が水晶発振器を使ったセンサを考えた
すごいじゃないか
QCMと言うんだよね
うちの会社でも物性屋が研究してた。
ナノグラムの変化を周波数変化で見るって。
経年変化が問題だった。
ちょっと教えてほしいのですが、16F1705にてUARTを使用しようと思っています。
そのために、RX、TXの設定をしたののですが、PPSにて設定する場合、下記の書きかたで問題ないでしょうか?
(うまく動作しなくて一つ一つ原因を追究中の状態です。)
//TXピンをRC4とし、RXピンをRC5に割り当てる場合は?
RC4PPS= 0b10100 ; // 出力(TXを割当てる)
RXPPS = 0b10101 ; // 入力(RC5を割当てる)
TRISA = 0b00000000 ; // ピン(RA)は全て出力に割当てる(RA3は入力専用)
TRISC = 0b00100000 ; // RC5(RX)だけ入力その他のピンは出力に割当てる
>>365 シリアルの変動に対する出力変化の追従やジッタをどうするかということだよ
16ビットのアナログ値の精度の取得と発生を簡単に言う奴に、ちゃんとしたやつはいないと思ってる
>>372 受信間隔がせいぜい秒だって言ってるんだから
追従性やジッタなんてどうでもいいだろ
気にすべきところはそこじゃない
>>373 どうでもいいことはないだろ、出力変化点の仕様を決めてなければ回路含めた低レベルの設計ができず
動いたからいい、たまにロガーがおかしなデータを受信して、運用のデータ処理でデータ廃棄するという
汎用のない代物が出来上がる
何を心配してるのかさっぱりわからん
DACの出力が秒遅れても問題ない機器だぞ
シリアルの入力パルスの影響でDACの出力が変動することを心配してる?
そんな事よりもっと心配する事があるだろ
>>375 だから、
DACの出力や変動が秒遅れても問題ない機器
ということを仕様に書けよ、ということ。
もっと心配することは大量にあるが、そこのところをきちんと書くのが仕様というもの。
書けないやつは永遠に書けないし、このスレの趣旨でもないのでもういいよ。
遅延がどうでもいいことは今までの書き込みでわかるだろ
非線形性
温度特性
まず気になるのはこの辺だ
これもスペックに書いてないからどうでもいいんだろうけど
変化がわかればいいって可能性もあるので
ビット数が有れば精度はどうでもいいって可能性もある
まあでももう何の反応も無いから
やっぱり作り話かな?
デジタルで入力されてんならデジタルのまま処理しなよ。
チャンチャン♬
自分が想定したストーリーに合わないときに「作り話」って言うのが好きな人がいるね。
>>377 シリアル入力をそのまま整流して、ローパス通して、適当にオペアンプでバイアスと増幅すればいいんじゃね?
そりゃPIC好きな時点でヘンに決ってるよ、
ジーチャンに限らずニーチャンだってオジチャンだって。
>>388 久しぶりに声出して笑ってしまったじゃねえか
ガベージインガベージアウト
ゴミ仕様からはゴミしか生まれないってこった
ヘンとヘンを集めて もっとヘンにしましょう
タイヘンだダダ
みなさま遅くなりました。3日放置してて申し訳ないです。平に謝ります。マジで。
>>356 3.3V…ええ、それでいいです。大丈夫です。
でも、勉強のために5V出力するためにはどうすればいいか教えていただけると
なおうれしいです。
>> 357
ほへー。そんな手が。失礼しました。
>>378 その通りです。絶対値の精度は問題じゃなくて、変化の具合が重要なのです。
どんな塩梅で遅くなったか、とか。だからこそデータロガーでデータをとる
意味があるのです。
>>372 無意味に16bitを指定してるわけじゃないです。
確かに天秤に乗せた容器に少しずつ、400 gまで(つまりレンジいっぱいまで)
液体入れていくなら、16bitもいらないです。
でも同じ天秤で、最終的に40 gまでしか液体入れないときもあるわけです。
しかもそれを3時間かけてゆっくりゆっくり入れていく、といったときもあるわけです。
そういうときに必要な分解能は、400 gをちゃっちゃと入れる時よりも
(重量単位では)小さくなります。
測定レンジは必要最大値で、分解能は必要最小値で、という仕様にすると、
必然的に16bitが欲しいなあ、となります。
>>377 ご指摘ありがとうございます。
温度特性はだいたい常温付近でしか使いませんから、
あまり気にしなくていいと思っています。
非線形性は気にはなります。
maxisのDAC見たところ、チップのグレードによって
線形性が変わるようでしたので、基本的な回路をご教示いただければ、
あとは私のほうでグレードを選べばいい、と理解しています。
(間違ってますか?)
>>395 1年前に別件でPLCのスレにお世話になったときも、LabView勧められましたねえ…
結局melsecシーケンサの勉強しましたけれども。
食わず嫌いです。
シーケンサで組むより再利用性やら考えたらLabVIEWの方が良いだろう
値段も変わらん
別に答えなくて良いや
人が書いた文章をまともに読んでないようだし
態度を改める気が無いようなので
以降相手にしないことにする
>>399 だね、自分も同様に思います。
ここの自称初心者はこんなのばっかり。実は一人なのかもしれないけど。
>>324 XC16の標準の奴はunixに近い仕様だから、逆に使い勝手悪い。
俺はXC8の doprnt(printfの中身)を、修正して使ってる。
俺はlight weight printfつかってる
dspicをいじるのにxc16を使っていますが割り込みの中で関数呼び出すのは禁止なの?
誰か教えて
>>403 その関数を実行中に、割り込み入って、さらに、その関数が呼ばれる とか無ければ、問題はない。
ありがとうございます 了解しました
割込み処理中に割込みが入らないようにして
実験してみます
推奨されないだけで禁止ではないのですね
推奨の有無とかの話じゃない
何が起こっているか/起こるか理解しておいて使えというだけの話
8bitならともかく、DsPICとかなら、割込み内部からの関数呼び出しでスタックやらバンクやらの問題は
かなり大丈夫になってるんだろ?
何をやって良くて何をやってはいけないか
わかってないなら割り込み自体使うべきではないよ
まあまあ、お仕事でも無いなら、しくじって覚えてもよいでは無いか。
割り込みからはできる限り速やかに戻った方がいいよ。
いや、真面目に知らない
今までまったく気にしたことがなかったけど
8bitだとなにか制約があるの?
一般の8bitCPUなら特に制約は無い
旧来のPICだとスタックが小さいので割り込みとかネストに制約がある
dsPICと比較しているからそういうことを言いたかったのだと思う
>>419 確かにスタックは小さいけど、大規模なプログラム組むわけではないので
インライン展開などコンパイラが自動でやってくれるので
バグになるようなことは少ないと思うし、スタック使い切るようなくらい
ネストさせなければならないプログラムを書く必要性ってあるのかな??
プログラム能力で回避可能だと思うけどね。
PIC程度の速度なら割り込みを多用するよりポーリングの方が応答速度が
速い場合があると思うよ
(過去の納入実績での話なのですべてが当てはまるわけではないけど)
割り込みよりポーリングの方が応答速度が速いってどんな場合?
>>422 そういうことをわかっていればいいんだけど、という話でしょ。
mainで関数コール(下手すれば多重)の中から、割り込み呼ばれる可能性もあるわけだからさ。
>>423 よこからだが、こんなん割り込みより早いだべさ
BTFSS GPIO,0
GOTO $-1
BSF GPIO,1
BTFSC GPIO,0
GOTO $-1
BCF GPIO,1
GOTO $-6
>>425 それならマイコンなんか使わずにバッファでいいだろ
どうやっても「割り込みを多用」するようなコードに置き換わらないし
実際の使い方でだよ
ポーリング間隔の最悪値が割り込み応答速度より短いって
ほとんど何も処理出来ないぞ
>>425レベルのコードくらい
>>422 スタックオーバーフローしないように
なんてのはPICに限ったことじゃないし割り込みに限ったことでもない
>>425 こんなベッタリボーリングでも12〜20クロックもかかるのか
やっぱりPICは遅い
ちなみに割り込みを使うと16〜20クロックで
>>425の動作が出来るので
こんなあり得ない処理でも同等
実際の処理でポーリングの方が速いってどんな処理????
>>427 PICのスタックはすぐにオーバーフローするから問題なんだよ。
そもそもPICは「周辺・入出力・制御器」であって、
スタックが深くなるような複雑な処理、用途には向いていないw
すぐにオーバーフローするって
いつの時代のPICの話をしてるの?
>>425 確かにサンプルの処理なら割込みと同等程度に早いとは思うけど、
そのかわりポーリングの処理にかかりっきりで、他には何も出来ない。
複雑な処理、用途には向いていない「周辺・入出力・制御器」だから当たり前かw
一番売れているPIC、なんて、ワールドワイドな統計資料なんて公開はされていないだろう。
筆がすべっただけだろうし、
>>435も無理なことを要求してはいけない。
ここはひとつ、秋月の人気順を見てみてはどうだろう。
ハードウェアスタックの段数が問題になるようなPICは今は人気も落ちてるに違いない。
8位入賞圏内のPICは…。(2018/3/31 8:01現在)
1. PIC12F629
2. PIC16F873A
3. PIC16F1827
4. PIC12F683
5. PIC16F88
6. PIC16F84A
7. PIC12F1822
8. PIC16F887
むう。意外なぐらいにコンサバティブであるな。
秋月の人気順て売れてる順なの?
実は売りたい順とかだったり
それにしても、
84Aに300円も出す物好きがいるのか
>>437 PIC16F84Aは教材需要と、それに引っ張られて「それなら使える」という需要が今でもあるのかな。
作例の数はGoogleの件数って訳にも行かんなぁ・・・
デバッグも出来ないようなマイコンを教材にか
教える気が無いとしか思えないなあ
特殊で癖のあるアーキテクチャーを教材に
ってだけで違和感満載なのに
割り込みの応答速度と割込み処理時間の区別がつかないで、
ポーリングと速い遅い言ってる人がいるスレはここですか?
>>440 ガッコの授業なんてそんなものだろ
指導要領に書いてあることが教えられればそれでいいんだから
そもそもアーキテクチャの良し悪しを語れる教師なんてそんなにいない
>>441 >>429は処理まで含んだ実測値ですよ
入力ポートが変化してから出力ポートが変化するまでの時間をオシロスコープで測った値
当然入力ポートへ入れるパルスはマイコンとは非同期
あ、
割り込みじゃない方は測ってないけど
大体そんなもんでしょ
OSも無く、いきなり割り込み処理を書くなら、
そんなに変わらんでしょう。
普通のCPUとOSだと、本来の処理以外に
環境保存、割込識別、要因除去や再設定、環境復元
が必要で、GHzのCPIでも数μ秒かかってしまう。
8bitでOS?突然何の話?
比較対象は
>>425だぞ
普通のCPUやOSなら尚更
>>425なんてコードはあり得ない
当然応答性能も割り込みよりはるかに悪いし
CPUも占有する
最悪のコード
>>448 そりゃ間違いだよ
高性能計算(スパコン等)で最も高速に通信する際、
割り込みなしのポーリング処理が普通。
そういう使い方もあるってことね。
スパコンでの高速通信でCPU?
相変わらず作り話の多いスレだ
「普通のCPUやOSなら」という条件が
発言全体にかかっているのかいないのか不明瞭な
最悪の日本語
>>450 今時のスパコンはインテルのxeonでOSはlinuxがほとんどだよ
自分の無知を晒さない方がいいよ
>>454 ほんとpicのスレは耄碌した無知な井の蛙
呆れるばかり
>>443 つまりメインでたいしたことやってませんということを言いたかったということでOK?
>>454 xeon, linux の環境でCPUがポーリングで高速通信
相変わらず作り話が多いスレだ
>>457 あなたは救いようのないバカですね。
自分の知らないことを間違っていると言い張るのは
学びを放棄する愚か者です
こんな年寄りにならないように心がけなきゃ。
>>454 スパコンで計算や演算用の演算装置が通信までやってると思ってるのか?
しかも割り込みやらポーリングで?
スパコンの構造とPC同じだと思ってる人がいるんだね
>>459 低レイテンシ通信のためDMA完了をpollingでチェックする。
終了割り込みは、かったるいから使わないんだよ。
本気で勉強したいんならlow latency communication Infiniband MPI
あたりのキーワードで探してごらん
そりゃ単位の大きな待ちならCPUを使うことも当然あるだろうね
ていうか、元の話題は理解してる?
>>422だぞ
話題は8bit PIC
>>425は1bit単位の処理
割り込みを多用するよりポーリングの方が速い処理って何?
って話
意図的に作った実用性の皆無な
>>425でも同等
>>429が実測
>>422から読むと
>>445がいかにトンチンカンかがわかるでしょ
自演までしてwww
>>410 デフォルト設定では、関数の再帰呼び出し不可。
>>415 デフォルト設定だと、ローカル変数も、リンク時にアドレス確定するから速いが、再帰呼び出し可の設定にすると、ソフト的にスタック処理されるから、かなり速度落ちる。
>>460 あんたTop500って言うスパコンのランキングサイト見たことあるか?
どんなシステムかCPUかも書いてあるから上位100システムぐらい見てみな。
DellだのHPEだの聞き覚えのあるインテルサーバーの名前がいっぱい出てくる。
これが今のスパコンの姿だよ
ちなみに京だってTofuって変な名前のネットワークだけど
通信完了はポーリングだよ。
あんた単に攻撃するだけで学びもせず相手にならん
これで終わり。
PCだろうがスパコンだろうが
CPUで高速通信なんかしない
どんなCPUだろうと、それが持っている最高の速度で動かしたい、
という要望を私は持っているし、努力している。
(なぁんちゃって。 どう? 決った?)w
ここはPICのスレなのにスパコンでは・・・
という「出羽之守」が出てくるから話がおかしくなる
もとよりお呼びじゃないんだよ
割り込み使うと応答時間の最低量が必然的にCPUのメカニズムで
取られるから(PCの退避etc)それ以上の応答時間が必要な場合、
あえてポーリングで使用してキリキリチューニングすることもあるし
スタック使えないときもポーリングで処理することもある
(昔RAM無しのZ80でそうやったな)
なにも特にスパコンだけに関係した話じゃないし
説明するのにスパコン引っ張り出す必要もない
もちろんポーリング処理にすることはある
PIC32MM-GPLでSPIを50MHzで動作させたければ
ポーリングしかない
ただしブロッキング処理になって(割り込み以外は)処理が止まってしまう
もっとも、SPIマスターの場合は遅延はまったく問題ないのだが
50MHzはSPIモジュールへ投入するクロックの周波数で
SPIのクロックは最大25MHzですね
平均8クロック以内でデータのセット、データの取得、各種判断を行わなきゃならないので
ポーリングでも多少の工夫が必要なのだが
最近は8ビットPICの話しで始まっても、必ず最後には32ビットPICになるね。
大は小を兼ねるからな
だが人類はいまだに膀胱と肛門が分離している
価格、消費電力、処理能力、入手性、開発のための情報、自分の持ってる情報やスキル、パッケージその他いろいろの
総合の「合目的さ」に大小の評価がつけられるのなら、大は小を兼ねる、で良いのですけど、
PIC32がPIC16をカバーする「大」って単純すぎますね。
ただ単にPIC16ユーザーを煽りたいだけとちゃうんか、みたいな気がすることもあります。
煽っても好きで使っている人は、のってくれませんよね。
ドアセンサー張り巡らし中・・・
スイッチ1つをSPIやI2Cへ乗せるのに、マイコンは大袈裟だなぁ
できないことはないけど、いくら家の中といっても SPI、I2Cを張り巡らせるものなのか…。
センサー+BLE+PICマイコンを1チップで実現できんもんかの?
Atmel買収したんだから
SPIやI2Cを長距離伸ばすのは不便過ぎる。元々そういう規格じゃ無いしな。
俺は電源、信号込みの2線式で独自プロトコルにしてる。マスタがスレーブを呼び出すまでスレーブは送信しないから100個でも200個でもスレーブを繋げられる。
>>479 PIC 関係ないけど、我が家では X1800 の LED 信号 (ダイナミック点灯してやがる)
をフォトカプラ経由で PC で受け、異常を検出するようにしたな。例えばトイレから
長時間出てこないとか。複数センサーあると移動方向も把握できる。
>>483 我が家のオートロック付きインターフォンは0-24Vの2線式。
たまにエラーになるので(玄関ドアの開表示LEDが点灯しない)、
電源と信号を分離し、ノイズ対策目的でRS485で通信したいと考えて、
とりあえず玄関外で操作する解錠キースイッチの4線式制御部を作った。
将来はマスター・スレーブ方式で解錠スイッチを増やす予定だけど、何時になるやら。
なるほど、通信方法も考えないとダメですな・・・
没
昔、偉い人の「工場にパソコンを置くな」で
RS-232Cが文字化けしまくったのを思い出した。
>484
最終防衛線(玄関)はX830です(;ω;)
家の中でも、いや通線しにくい家の中だから、10m以上かつ3台以上の場合はLANですね
>>489 電源が必要だからPLC。と言いたいけど
世の中そうはならないね。
>>491 lanは配線が必要だから美的に面倒。
もしPLC付きACアダプタなんてのが1000円ちょっとで
買えれば良いのに。
>>492 松下利権で固まってるガラパゴス機器がそんな値段で買えるようになる訳ないだろ
POEのLANの簡易型を自分で作るか、無線LANにしたほうがうんと簡単。
太陽電池+zigbeeがいいよ
日陰ならコイン電池で10年
有線の長距離インターフェースってLANくらいしか無いんだなぁ
CANとか見ないし・・・
>>495 上の方でも出てるけどRS485
差動伝送で速度との見合いになるけど遅ければ電話線で1kmぐらいでも行ける
家屋内程度なら数百kbpsぐらいは大丈夫
UARTに485のドライバIC付けるだけで使える
汎用的なものだからドライバICも安く簡単に手に入る
http://akizukidenshi.com/catalog/c/crs422/ 電気的な伝送規格だけなので、マルチマスター(送信元が複数)の場合のアービトレーションとかは自前で何とかしなきゃいけないけど
内蔵されてて便利だけど
USBって5mしか引けないジャン
タイマー割り込みを使わなくて、80マイクロ秒プラスマイナス5マイクロ秒の精度でピンにワンショットパルス出す方法ありますか?
>>498 昔はよく使われていたが、ethernetに取って代わられて使われてないのはいろいろ使いにくい理由があることに気づけ。
ひょっとしてアセンブラマンセーで使い続けてる人かな?それならいまだに485推しとかわからんでもない。
>>500 普通にタイマー使えば?割り込みとかソフト介在する意味なにかある?
>>501 ありがとうございます。
PIC18F46K22(秋月ボード)でTMR5とCCPR1でコンペアして、RC2に出力させました。
TMR5はFOSC/4の16MHzで1/8で2MHzカウントにしました。
CCP1はCCP1M=0x09のCompare ModeとTMR5を使うC1TSEL=0x02としました。
CCPR1に160をセットして、TMR5を0にセットして、
LATCbits.LC2 = 1 でRC2をHにして、T5CONbits.TMR5ON = 1としましたが、
出力は340μSくらいのHighパルスがでました。
80μSにならなかったけど結局コンペアマッチした時点でRSTかSETしかできないので、
最初にセットした時刻からTMR5起動までがソフトなのでタイマー割込みと同じですね。
TMR5でのタイマー割込みで約80μSパルスは作れていたのでCCP1は諦めます。
このパルスをFETゲートに入れて通信線を80μ秒短絡して、相手の過電流検知を働かせるものです。
出来るだけ正確にと思ったのです。
>>505 できるだけ正確に、というのであれば、まず水晶は交換しよう。
TCXOとかはいわないが周波数の分周くらいは割り切れるのにあわせるべきだ
>>503 8ピンの小さなRS485トランシーバーICを付加するだけで
マルチドロップで長距離通信出来るし、
制御プログラムも簡単で、PICやAVRの小さなCPUでも負担にならないし、
コストやスペースの点でもメリットがあると思う。
CPUのI/OにUARTが存在し続ける限り、
RS232規格と共にRS485規格も使われ続けるのでは?
>>507 それは設計屋の都合な。いまどき長距離なんて光だしな
現場に行って、LANと485のどっちが施工と保守しやすいか聞いてごらん
485を使うようなシチュで、製造単価とメンテ費用のどっちにウェイトが置かれるかってことだな
ま、俺も485はきらいじゃないがな。232同様、今後増えていく存在ではない
>>505 K22ならタイマーIC558見たいな機能のモジュールも入ってたはず。
FAでは485未だによく使うけどあとは422
アナログだけどカレントループはノイズに強くLANより優秀
連続なのが何より楽だ
そもそも485とLANをいっしょくたにしてるのが間違い
初期のLANで媒体として485使ってるものもあったが、485はLANのための規格じゃない
高速・大容量という志向に合わなかったからLANの媒体としては485が使われなくなっただけ
現在でも工場とか高ノイズ環境では使われてるし、舞台照明コントロールのDMX512Aとかでも使われてる
ものの価値を価格でしか評価しない種類の人なんでしょうね。
>>503 キミは無能です。
適材適所があるのです。
いくらかのプロトコルをハードウェアがやってくれるものと、そうでないものを比較するのもどうかと思うけど、
傾向としては、前者に移行していくものですかね。
本来は
複雑なプロトコル処理→ハード・ソフトが複雑→高価
のはずなんだけど、
量産効果が効いて価格が下がり、情報豊富でソフト作成も容易。
シリコンもソフトも複雑度ではなく普及度で価格が決まり、
思いのほか差が出にくくなるという事。
>>516 複雑なロジックもシミュレーションが楽にできる様になったからな。
昔はちょっとした物でも一週間とか掛かってたから。
複雑なものってトラブったら交換しか手がないからなぁ
自己診断とか異常検知なんて健全な状態でしか使えない意味不明なバカ仕様がほとんどだし
一連の話の大元は
>>479だぜ?
いくら昔に比べて安くなったとは言え、ドアセンサーのためにLAN引けとかファイバー引けとか頭沸いてんの?
そりゃ既にLAN張り巡らしてるならそれに乗っかるのはアリだけど、それだけのために引くのはアホだろ
>>519 普通にLAN引くな
ドアセンサーが必要ない鈴ですむようなところならともかく、普通は10m以上引っ張って、
さらにドア一つでなくて複数のセンシングするよな。
しかも一ヶ所センサーラインが短絡やノイズ、地絡で異常になっても他に影響することなく
切り分けとか確認できないと普通は困る。
でもって、最終的にランプつけるだけとかならともかく、Webで見たり、ログ取ったりするので、
24時間可動してるサーバ系PCなどに入力する
だったら最初からLAN引いてしまったほうがすべてが楽。
ごめん、中学生がママがきたセンサー作るのなら、485/422.232で充分以上。
傾斜SW+315MHz送受モジュール
モジュールはebayで\200位で売っている
電波法は知らん
315MHz送受モジュール
電波法気にするなら秋月で\3000弱出して買うが良い
私もRS485だな。
そもそも
>>486 で書いてある「LEDの点灯エラー」の解消と、
「複数のセンシングする」とか「Webで見たり、ログ取ったりする」は関係無い。
>>527 たしかにそうだけど、それならまずエラーになる原因を調べるのが先じゃないかしらね?
それやらずに他のアプローチって時点で問題解決能力レベルがわかっちゃう
そういえば、昔、
AC100Vを50Hzクロック源とする時計が進むので、
調べたら、同じコンセントから取っている冷凍庫のコンプレッサーがオン・オフするときに
カウントが進むことを発見した。
コンセントを分けるのは難しいので、
冷凍庫と時計にクランプ式のフェライトのノイズフィルターを入れたらかなり改善された。
家庭用のAC電源なんてノイズだらけなんだろうな。
>>529 無線の屋外運用で、AC100V発電機で動かしたら、時間がめちゃくちゃになったことはある
>>530 >>531 オン/オフ時に火花が飛んで(もちろん設計が悪い)バーストノイズが発生すると、数十回分のパルスになってしまう。クランプ式フェライトコアで改善されるほどの高い周波数成分が影響してたんなら時計の方も設計不良だな。
昔、会社の先輩に八丈でどうも時計が狂うから調べたら島内に発電所が1箇所でそこの周波数が狂ってたって聞いた
オシロで見ていると、コンプレッサーがオンすると時計のAC電源ラインにノイズが乗る。
誤差は半月で数秒程度で、時計の電源を別のコンセントから取るとOK。
ノイズは時計の電源回路経由で回り込んでいるのか?
それとも、私が設計した時計用クロック・パルス検出回路がマズイのかな?
飽きたし、きちんとは原因を究明せずに「結果オーライ」で放ったらかしだけど、
趣味の電子工作なので笑って許してw
7、8年前に作ったが、今は半年に1回ほど気が付いたときに、
誤差(1、2秒程度)を修正している。
冷蔵庫のコンプレッサのオンオフ周期の例
シャープの家庭用
たぶんインバータじゃないやつ
家庭用冷凍庫のオンオフ周期の参考資料
シャープのインバータじゃないやつにロガー突っ込んだ
連発しちまった。
ノイズが10回/日だとして、
0.2秒/日余計に進む。
冷凍庫のオンオフが原因ならもっと激しく進む気がする。
毎回綺麗に同じノイズが出るわけでもない
今なら高調波とか規制されているから少しは(まともな機器なら)
綺麗なのかな
いや、電灯線モデムPLC使っている友人は、ご飯炊く時間に決まって
回線速度が落ちるとかなんとか・・・
>>536 なんで入力側にツェナー使ってるの?
普通のdiでいいじゃない。
それとcrの後のインピーダンスが低くて入力のCrフィルタが
あまり効いてないね。
rを一本cとカプラの間に移した上でcを数倍大きくすると、ずいぶん違うと思うよ。
スパイクノイズのフィルタリングは、フォトカプラの出力側1本で良いと思う。
そのためのシュミットトリガでもあるし。
ツェナーはなんでなんだろな。このツェナーのカソード→アノードに電流が流れだす
ときには、すでにLEDは断線しているような気がする。
>>546 よね、と言われても…
ここでLEDを使うメリットって何なんでしょ。
あえて言えば、そこに通電していることのインジケータにもなる、ということですかね。
たいていは小信号シリコンダイオードよりも高価だし、
透明プライスチックパッケージは、実装時にちょっと注意が必要だし。
趣味で手持ちLEDを手ハンダ実装するし、見えるのは重要かな。
>>544 ツェナーダイオードにしたのは、ノイズやサージが入ってきたときの
LEDにかかる過渡的な順方向電圧を制限するため。
充放電時の積分回路の時定数は約0.1・0.15mSで、AC電源50Hzのオン・オフ時間は10mSだから
もう少し大きくしても構わないと思う。
ただし、ノイズ対策はソフトでやる、というのが私の基本的な設計方針であり、
ソフトのシフトレジスタ方式のノイズフィルタの時定数を色々と変更してトライするつもりだったので、
その効果がよく分るように、ハードの時定数はわざと小さくした。
(でも何年もたつのにまだソフトのフィルタは組み込んでいない)
なお、一つ思い出した事があり、製作後に追加したノイズ対策として、
トランス式のAC100Vアダプタから整流ダイオードと電解コンデンサを取り外してAC出力に変更し
交流パルス源とした。(入力側の47KΩの抵抗も変更)
>>549 >ノイズ対策はソフトでやる、というのが私の基本的な設計方針
えーそうなのか、俺はノイズはハードだけどな。
電源系のノイズや信号系のコモンモードとかソフトでどうやって取るんだ?
ノイズでなくてただのフィルタリングであって信号処理じゃないのか?
ハードで取りきれないノイズはソフト処理だが、極力ソフトでノイズ処理はしたくない
スローでいいADCは、ハードでノイズを取ってソフトで複数回サンプリング
通信系はハードでのノイズを取ってソフトで異常検出&再送
スイッチ類のゆっくりなチャタはソフトで複数回サンプリング
>>549 >ツェナーダイオードにしたのは、ノイズやサージが入ってきたときの
>LEDにかかる過渡的な順方向電圧を制限するため。
順方向の電流を押さえるなら電圧を制限してから抵抗を入れないと
効果がないと思う。
順方向電圧が5.6Vにもなったらアンペアオーダの電流が流れている
ことになる。
ヤフオクで 100円で落札したトランジスタラジオのイヤフォンジャックの音声信号を
8pin 8bit PIC で AD 変換し、時報を認識するソフトを完成させたぞ。
時刻カウントの水晶の分周比も固定小数点で補正するのだ。
デバッグが大変だったぞ。
ある意味電波時計だ!
昔のビデオデッキでNHKの時報に合わせる機能があった。
職場の放送設備も、チャイムの時刻合わせ用に、NHKFMの周波数をセットして、時報で時計を補正してた。
>デバッグが大変だったぞ。
そりゃ、1時間に1回しかテストできないからな
>>553 そもそも47kの抵抗二本入っている回路で
例えば100mA流れるのは何ボルトの時だ?
答え
10kV
>>556 音声信号認識なんだから録音しときゃいつでもテストできるじゃん
>>559 そう。PC に WAV で録音して散々デバッグしたのでありますが、
御多分に漏れず、PC からの音声だと上手く時報を検出するように
なっても、ラジオからだとうまく検出しないとかでもはまりました。
40/60khz デコードしたほうが正確じゃないか?
一応以下の理由
・40/60kHzはコイルが面倒(というか設計ができない)
・40/60kHzが長期停波しても受信可能
・日時などの情報も得られるようだが面倒くさそう
・40/60kHzより部屋の奥まで電波が届く(場合もある?)
・正確さにそんな大差はないんじゃないか?
・時報の音声信号を 8pin PIC のソフト処理のみで検出できるか作ってみたかった
GPSはUSRT使ってASCIIコードで受けられるからJJYと比べたら超簡単。
JJYみたいに停波もないしね。
軍事衛星だから有事の時はどうなるか知らんが。
>>559 録音機のワウフラッターが悪いと、テストにならないよ
>>561 ラジオのイヤホンジャックから取り出すときは、ダミー負荷抵抗を付けて。
トランスでコモンを切るればばっちりだと思うけど、何にくろうしたの?
AMラジオの帯域すべての周波数を直接サンプリングして時報検出する時代だろ?
>>567 帯域すべての周波数をサンプリングして、って書くあたりが
理屈分からず書いている感がよく出ていて微笑ましい。
えっ?ダイレクトサンプリングしたSDR知らないわけじゃないよね?
日本語での表現はともかくとして。
>>566 ラジオの電源の GND (BAT-) とイヤホンジャックの GND に少し電位差が
あったが、それは抵抗でごまかして、トランス不使用。
それと、ラジオの電源を入れたままイヤホンジャックに PIC のアナログイン
をつなぐとうまく動くが、ラジオの電源を切って入れなおすとうまく動かない
だったけ。ご指摘の通りイヤホンジャックにダミー抵抗負荷付けて解決。
>>567 DSPラジオのご時世その通りなのだが、8bit PIC 君では歯が立ちませぬ。
>>565 時報の周波数は±10% くらいで検出してるから、±1% くらいのワウフラッターはものともしないはず。
1%のワウやフラッターってwww
いつの時代ですか?
>>569 「周波数」はサンプリング対象じゃないよね
帯域内の信号はサンプリングするけどさ。
放送波がいろいろな周波数を持つことは話の前提であっていいわけだから、
帯域すべての周波数をサンプリングして
は
帯域すべての周波数(の信号、または放送波)をサンプリングして
と、普通は解釈できるよね…
そうじゃない解釈で書き手が書いていると、真面目に考えてるのかな?
残念だが
このお粗末な書き方じゃ
文句言われても仕方ない。
高電圧が流れる。と同程度だな。
526.5kHz〜1606.5kHzか・・・
頑張れば丸ごと録音(記録)できそうだな
日本語読解力のある俺は
>>567,
>>572の書き方で問題ない
わからん奴は下らん煽りだけしてないで黙っとけば?
ある専門分野の人間は、その分野でありえない言葉が使われると敏感に反応する。
高電圧が流れると言った時、電気分野外の人達は普通に解釈し何が問題か理解しないだろう。
それと同じ。
お客さんやユーザが、高電圧が流れるとか言ったときに、本当にマジ顔で突っ込むやつがいるんだよ
しかも上司の横で。
またはじめやがったとかみんな下向いてニヤニヤしてるのに気がつかず得意顔
意味/意図を汲み取れないという典型的なアスペだな
或いはただの悪ふざけ
或いはただの馬鹿
>>157 技術系専門板では、専門用語の誤用に日本語読解力云々で開き直らず、素直に直せば良い。
入門と言いつつ、過去をおもいっきり引きずった内容だなwww
新しいことを始める前に過去のエラッタを何とかしてくれ。
せめてこれから出すやつのエラッタをどうにかしろ
あとエラッタのせいで使えない機能や性能をスペックとして語るな
詐欺だ
影響がほとんどない、問題ないって判断だろ
設計やり直すとものすごい開発費かかるし
マイナーチェンジするだけのキャッシュカウに金は使えんだろ
金がかかるからスペック詐欺を続けると
最悪な会社だな
損失を被ったならこんなところに書いてないで訴えればいいのでは?
日本の裁判所は請求額を値切るのが仕事みたいになってるけど
懲罰的損害賠償が認められてるアメリカで訴訟起こせば何億とか取れる
かも知れないね。
エラッタって何度も叫んでるの、1人なんだろうけど、
「わぁ、また相手してもらえたぁ!」的気分なの?
USARTのエラッタなんて発現する使い方自体がセンス無いガキの使い方だし
エラッタを隠したくてしょうがない人がいるみたいだな
特にPIC32MXとPIC32MZ ECはひどすぎる
MZ EFもI2Cは使えない
USART なんてそもそも通信でエラーを起こすもの。
初心者から脱却して、ECC や リトライ を勉強しましょう
という試練かもな
初心者にもエラッタの存在を教えておかないと
>>613 顧客に「マイコンのバグなんで」って言うのかね?
アホですね
プログラムがチャント動かないのは自分のバグか?
それともPUのエラッタか?なんて悩むのはツライな
ごめんよ、PU → CPU
パワーユニットではありません、セントラルプロセッシングユニットです
システム不調の原因がハードかソフトか切り分けられるだけでも追及の難易度がぐっと下がるのに。
ハードブロックがハングする問題が
ECCやリトライでなんとかなるとおもってる馬鹿がいるようだな
誰もテメー固有の問題なんかに興味ないから前提知らなくて当たり前
万一未知のエラッタに当ったとしてもそこから仕様通りの動作に持ってくのが本当の技術力
ココで延々グダってんのは下の下。
万一って率じゃないですねPICの場合
日常です
万一なんて言ってるのはまともに評価したことが無い証拠です
発見しやすいエラッタしか無いと思ってる所も初心者丸出しですね
>>622 じゃあ使わなければいいとしか言いようがない
Microchipに直させることができないなら、切ればいいだけ
マイコンは他にもあるし、選択権は自分にあるんだから
欠点を欠点として認識出来ない
ラリ期ってやつですかね?
欠点がまったくないものだけを使ってればいいんじゃないかな?
お前の人生と同じだよ
「PICはエラッタが多い」
「エラッタが嫌な人はPICを使うな」
これだけ
主イエス「Errataの存在しないマイコン信者だけが、まずPICに石を投げなさい」
エラッタが発生するのは、ある程度は仕方が無いことだと思うけど、
分らないのは
なんでマイクロチップテクノロジのCPUにはエラッタが多いのか?
なんでマイクロチップテクノロジはCPUのエラッタを放置するのか?
技術陣がアホで経営者が無責任野郎だから?
それでも売り上げ落ちないからじゃね
無責任だとは思うが
errataになっちゃえばある意味仕様だからな
昔インテルがバグで交換したけど
そんなことにはならないように予防線張ってるだろうし
「課長、PICのエラッタのせいで納期間に合いません!」なんて報告受けたらお前どうすんの?
「何とか回避しろ!」としか言わんよな。
その程度の事を何ヶ月も顔真っ赤っかにして書き続けるとか、余程の狂人
トラブル起きてから泥縄式に調査するのはレベル低い
枯れたデバイスを選びエラッタ読み込んでから開発に着手するのがプロの姿
>>631 それでも売り上げ落ちないからじゃね
なぁるほど、たとえエラッタが多くて未修正でも、
PICはそんな欠点なんか問題にしないほど沢山売れ続ける、魅力的な素晴らしいCPUだからか。
技術陣も経営者も大したもんだ。
アトメルも少しは見習えば良かったのに。
(世の中、バカばっかり)w
>>631 社会を知らない奴だな
代理店経由で大手顧客にしかエラッタを教えないデバイスがほとんどだ。
マイクロチップは多く公開してくれているだけ。
>>632 お前が係長以下だということは良くわかった。
課長以上になることもないだろうとも思う。
そもそもエラッタ君の言ってるUARTのエラッタって、本来割り込み後に割り込み要因確認のために読むべきフラグを
ポーリングでブン回して読んだらタイミングが1クロック早かったってだけの事
要は使い方が悪いからおかしな事になってるだけなので、そりゃメーカも放置するわな
そういうエラッタがあるとわかってて、どうしてもポーリングで読みたきゃ、1クロックずれるだけってわかってんだから
フラグ確認後NOP一つ入れれば回避できる
何年も執着して掲示板荒らすネタにするようなもんじゃない
使った事が無い
まともに評価検証したことが無い
という自己紹介?
最適化全面オフにすればMCCも使える。
以前、MCCでTMR0を16ビットにしたら上位が正しくセットされなかった。
世間的に製品出荷を止めるぐらいに重大とみなされるエラッタなら製品出荷を止めてる、という当たり前の話。
重大な問題のために使い物にならないなどと言うが、それがずっと流通していることについての説明ができていない謎。せいぜいが「使う奴がバカ」だとか。
多いとか少ないという相対的表現を、比較対象もエビデンスもなしに使うのは論理的ではない、という基本。
チップ固有の問題が存在する場合、回避方法を議論する方が前向きですね。
>>648 100%の人が協力的でなければ議論できない、と思うなら、5chで議論なんかできませんよ。
あなたには向いてないんじゃないですか?
エラッタを報告しても
「ソフトのバグ」
「使い方が悪い」
という感じなので
一時期ここでも話題になったUARTの問題も
>>639のような謝った認識の人が多いようです
意図的なミスリードかもしれません
>>649 一人も協力的な人がいなければ議論になりません
そういうレベルのスレです
UART送信ダブリのエラッタはPIC専用スレPart54-252で回避できるんやから
蒸し返さんでもええやろ
同じPIC系統で今まで問題なかったが、エラッタのために異常動作したコードを披露するとかやってよ。
>>650 >エラッタを報告しても
一般論ですが、ソースコードの開示と動作の説明をしないと意味ないですね。
>>652 54-252にエラッタのことなど書かれてないけど
>>651 >そういうレベルのスレです
なんて諦めたような見方をするぐらいなら、あなたがここにいる意味はないと思います。
>>654 それはフェーズによります
いきなりソース開示なんてことは普通は行いません
RX使っているけど、こいつもエラッタが結構です。
エラッタ回避のコードで対処するが、エラッタが修正されても何時生産ラインに紛れ込むかも知れないので回避コードのままだわ。
>>655 議論としては、エラッタがある、ない、ソース出せよ、出さない、みたいな不毛なものと違って、面白いと思うけどな。
http://2chb.net/r/denki/1470076841/252- >>657 1個目のレスでソースなしで「エラッタがある」はともかく、
それに対する応答として「ソース出せよ」のリクエストがあれば、その時点でソースを出すフェーズです。
そうでなければ掲示板で議論もできないですし、
ソースを出すつもりもないなら、デマと区別もできなくなる恐れのある掲示板に正当なエラッタ報告をする意味が薄くなります。
デマと区別ができるのは、第三者検証が可能なようにすることができてこそです。
>>660 え? そうなんですか?
>>659のリンク先は普通にブラウザで見えてますが。
文章だけだと判りにくいのでUART内部構造図と合わせて読むと理解しやすい
>>659 あ、見れました
読めばわかるけど割り込みを使えないということですよ
使い方が大きく限定されます
業務コードでUARTをポーリングなんて普通しませんので
>>665 ぐるぐる回るな。
いつも具体例を出して議論をしましょう、って話なんですよ。
ソースコードが出てきているから、
>>659のリンク先の議論もあとから評価もできるわけです。
>>662 ごめんなさい、2chmateだと駄目だった。
心配になったけど普通に送信割り込み使っていれば関係ないのね。
良かったわ。
結局情報が上がってもこういうミスリードする人のせいで間違った情報に化けるんです
>>669 掲示板でやれば不特定多数、玉石混淆なんで
意図するしないにかかわらずそりゃミスリードは発生するわ
自分でブログでもPDFでも何でもいいから文書にまとめて発表したら?
UARTはまだマシですが
EFのI2Cは全く使い物になりませんね
皆さん気を付けましょう
結局なんやかんや言ってるが自分の方が議論したりまともな情報を発信する気はないということだな
意図はわかったからNGにするわ
>>672 >EFのI2Cは全く使い物になりませんね
ソースコードを出してください。有意義な話にしましょう。
>>673 まともに聞く気が無い人に発信しても無駄
と言うことは今までの流れでもわかるでしょう
本当に知りたいならそれ相応の態度で
まあ私なんかに聞かずにMicrochipや代理店に聞く方が良いとは思いますが
>>670 そこ詳しく知りたいです。
割り込み発生でTXREGにライトした時点で二重送信になるの?
>>681 TXIFで割込後にTXREG書くとごく稀にダブってしまう…
割込ルーチン入ったら1バイト送信時間分NOP()を並べるという対処療法で凌いだ
>1バイト送信時間分NOP()を並べる
これは酷い
タイマー使ってポーリングのほうがマシだな
タイマーが空いていればだが
>>682 割り込み時点でそこそこクロック消費してるのにnopかよ?
>>681 TXREGに書いた時点で2重に書かれる
2重に書かれるかどうかは完全にタイミング依存
割り込みかどうかは関係無い
問題が発生するのは非常にシビアなタイミングであり
1命令サイクルでもズレれば問題は発生しないが
これを回避するのは難しく
何かしらを犠牲にする必要がある
何も犠牲にせずに簡単に回避出来ると主張する書き込みもあるが
その具体的方法について語られたとこは無い
報告があったのはPIC16F1459, PIC16F1454, PIC16F18313 だけど
PIC16Fで1で始まるもの全部という認識じゃなかったか
いわゆるEnhanced mid rangeファミリーやね
>>682 これってハードの設計ミスでしょ。
ホビーとしては許容できても産業用には信頼性が低くて使えないな。
エラッタ厨はTXREG以外のエラッタって何も話題にできないんだ?
>>691 産業用ルネRL78でもSPI通信に爆弾抱えてるのだけど
代理店とやりとりして不具合回避して使った経験あるから
そんなもんだと諦めて使えばよろし
十年以上前にEMC試験やったことあるけどPIC16は優秀だったなー
他社8bitマイコンを最高クロックでぶん回すとノイズ撒き散らしてラジオ聴こえなくなったり
movaケータイ接近させるとレジスタ化けたり暴走したりとかあった
一方でPIC16は余裕で試験クリアしてた
>>694 ヘーッ、そうなんだ。
そう言うのは次のロットから回路パターンが修正されてるとかは無いの?
PIC32MXですが、IOをHi → Lo → Hiとタイマーカウンターでウエイト
いれてパルスを作ってみたのですが、どれだけ早くできるか
ウエイトを徐々に小さくしてみましたところ。500nsecが最速でした。
10MHz(100nsec)くらいまでいけると思ったのですが・・。
そんなに無理させて、チンチンに熱くなったりしないの?
>>704 プログラムのスキルと仕様次第
LATAINVにセットし続ければ
コアクロックの半分の周波数まで出せる
>>705 チンチンはたまには熱くなった方が良いです
>>704 500nsっていうことはパルスの極性反転に250nsでクロックが最大の40MHzだと処理に(250/25=)10クロックサイクルかかってることになるね。
I/O命令とタイマー割り込み処理だけだけど結構クロック使うんだ。
だからPICに限らずマイコンはPWMとかパルスジェネレータを内蔵してるのかな?
>>707 oh...
そんなワザがあったのですね
実は、関数でSPIを作ろうと思っていまして、SCLK=10MHzくらいに出来ないか
チャレンジしておりました。wait_fast(1) = 500nsec
それ以前に↓だと、SCLKがLowに貼り付いたまま・・・
void SPI_Data(unsigned iData)
{
int iCnt1,iCnt2=0;
int iloop=0;
unsigned int iBuf[770];
SCLK = 0;
SDO = 0;
LAT = 1; //データラッチ
wait_fast(1);
LAT = 0;
//データ格納
//10進数を2bit -> 配列に格納
while(iData>0){
iBuf[iCnt1]=iData%2;
iData=iData/2;
iCnt1++; //配列カウンタ用
iloop++; //データ カウンタ用
}
iloop=iloop-1;
//データ出力
for(iCnt2=iloop;iCnt2>=0;iCnt2--){
SCLK = 0;
if(iBuf[iCnt2]==0){
SDO=0;
wait_fast(1);
SCLK = 1;
}
else{
SDO=1;
wait_fast(1);
SCLK = 1;
}
wait_fast(1);
}
SDO = 0;
SCLK = 0;
}
>>709 有難うございます。
PIC32MX340F で80MHzですが、汎用IOが単に遅いだけだと思っていました
内部処理なのですね・・
割り込みで10クロック周期の処理なんて不可能
だから
>>704は当然ISRによるポート処理ではないはず
もっとも、
なぜ40MHzが最大だと思ったのかもわからず、
80MHzで動作していて500nsが1回の処理の時間であれば40クロックですので
ギリ可能な感じ
>>275 まぁ電子天秤の出力フォーマットは全部似たり寄ったりだからね
1個作れば他の天秤でも使える
安い優先ならPICKIT3(互換機)を海外通販で
でなければPICKIT4
作例の多い16F1455(USB内蔵)使ってMCCでさくっと
ただDACのアナログ出力が面倒なので、デジタルでどうにかした方がいいと思うよ
SDカードUSBメモリとか、PCにUSB出力とか
「PIC SD」でぐぐれば作例出てくる
DIPじゃないパッケージは大変なのでやめるべし
ArduinoやRasberryPiでもいいし
早く始めた方が、仕事が早く楽になると思うよ
>>710 そういう低レベルな処理の最適化は得意
色々とアドバイス出来ると思います
wait_fastは関数?
であればNOPを並べただけのマクロに変更
あとはループアンロールなど基本的な最適化技術を学びましょう
最終的にはアセンブラ化ですかね
なんとか、自作SPIでました
ソースが間違いまくってました。
unsigned iData -> unsigned int iData
int iCnt1,iCnt2=0; -> int iCnt1=0;
int iCnt2=0;
>>712 勉強になります
>>715 >wait_fastは関数?
はい。
Timer1をカウントしてます。
iwaitの係数は"8"が限界でした。
周辺クロックは80MHz = 12.5nsecなので、計算上は12.5nsec x 8 = 100nsec
ですが、限界の500nsecになります。
void wait_fast(unsigned int iwait)
{
unsigned int val = iwait * 8;
TMR1 = 0;
while ( TMR1 < val){}
}
>あとはループアンロールなど基本的な最適化技術を学びましょう
・・・難しそうですね・
>最終的にはアセンブラ化ですかね
インラインアセンブラでしょうか?
皆さん、いろいろと有難うございます。
一旦オチ致します
>>718 (暇なときに書いて)
前処理含めてSPI_Data全体を速くしたい?(処理時間短縮)
それとも通信時間だけ縮めたい?(バス占有時間短縮)
アセンブラはインラインじゃなくてループ全体をネイティブで
規模的にはアセンブラでも問題ないレベルなので
端子を好きに変えて良いならDMAも使える
そもそも何でPIC32MXのSPIの機能を使わない?
数が足りない?
端子を変えたい?
単に勉強用?
>>711、
>>712 ごめんなさい。
PICのことはよく知らず
>>1にあるMicrochip社のホームページにあるチップの一覧表で最初に出てきたPIC32の仕様から40MHzを引っ張ってきてしまいました。
それにしてもポート反転処理に20クロックサイクルもかかるとは、規模が大きくなるとマイクロ命令を使ったハード処理が多いからなんだろうか?
8bitだとクロックを揃えたとしてももっとかかるよ
xc8の無償版
数ヶ月経つとアセンブラ命令書いたら最適化されないと聞いたけど本当でしょうか?
sleep命令の後にNOP入れたいんだけど、本当の話なら困る
インライン?
インラインアセンブラによってコンパイラの最適化が阻害されるのはごく普通のこと
影響があるのはせいぜい関数内とか近い部分だけだよ
インラインアセンブラを使う使わないに関わらず
無償版は最適化に制限がある
お金があってパフォーマンスが重要であれば
有料版を買いましょう
個人ならより速いマイコンを選ぶ方が良いでしょう
>>722 C言語だからコンパイラのオーバーヘッドがあるっていう意味?
確かにそうだけどコードがシンプルだから最適化すればかなりコンパクトになるかと思って。。。
すみません。
すみません
未だにMPLABのアセンブルの見方が分からなくて・・・サイズしか判断できません
NOP入れるとサイズが倍になるので困ったなと
NOPぐらいは最適化して欲しいなー
どうやってnopいれてるん?いろいろあると思うが。
シンプルに
sleep();
nop();
asm("nop");ではありません
>>727 処理内容は見たの?
関数を2回呼んで、
その中でタイマー待ちをしたりしてるんだけど
そんなにシンプルか?
じゃあ逆に8bitだとどれくらいだと思った?
パッと見で
>>730 それを「アセンブラ命令を書く」というのか...
インラインアセンブラと比べて見ては?
コンパイラの最適化の設定は0〜3まであって
無償版はお試し期間を過ぎると0〜1しか選べない
試したければ最適化の設定を1にしてみれば良い
そもそも今は3になってる?
>>721 8bit (PIC16F18326)と32bit の処理時間を比べてみました
ループ1周
8bit 388クロック
32bit 41クロック
圧倒的に32bitの方が速いですね
32bitの方は80MHzですので
クロック周波数を加味するとさらに差が開きます
8bitは1命令4クロックなのと、関数コールに時間がかかっているのが主な遅い要因のようです
ちなみに、
純粋にCPUの処理時間を比べるために
タイマーの待ち時間はゼロにしました
それ以外は
>>710 >>716 >>717 のままです
>>734 ヘーッ、ビット数で大きく違うんだ。
参考になりました。
ありがとう。
32bitでアセンブラでガシガシに組んだら
1ビット平均4.5クロックくらいになりました
SCLK HIGH 2クロック / LOW 2クロック
残りはループやデータロードなどオーバーヘッド
ただし、
純粋にCPU部分だけの性能なんで
回路やバスがボトルネックになるかもしれません
非常識なコードまで含めれば
最短、2クロック + オーバーヘッド
になります
>>710 もういないかもしれませんが
SDOやSCLKはLAT*bits.LAT**のdefineだと思いますが
これに直接代入は危険です
ISRや他のタスクで同じポートグループにアクセスしてない確認が取れた場合だけにしましょう
取れた場合も、移植時やコード変更時の無駄なトラブルを避けるため、
直接代入は止めた方が良いです
割り込み禁止で包む
ASET / ACLR 命令を使う
LL / SC 命令を使う
LAT*SET / LAT*CLR / LAT*INV を使う
など、アクセス中の割り込みでも問題ないように
8bitでアセンブラで考えてみたけと
ループやデータ読み込みを除いても
1ビット送信に20クロックもかかってしまう
非常識な方法でやっと10クロック
ベテランさんだともっと縮まるのかな?
℃玄人さんとか
定期的に、
8bitを過大評価
32bitを過小評価
した書き込みが有るんだよな
PICは8bit信仰が根強い
ARMなんか、APBに書き出すと1サイクルなのに何十クロックもかかるよ。
ここはPICスレなんでよろしく
PIC32の競合となるCortex-Mならともかく
Cortex-Aの話が何の脈絡もなく突然出て来ても
「で?」としか言えん
センサをI2Cで制御して無加工のままUARTで吐くような
単純処理にしか使ってないので8bitで十分なワシ
UART送信を詰め詰めで送るほどシビアなタイミングは要求されてないので
1バイト毎にTRMTビットをポーリングしながらのんびり送信してます。
それゆえエラッタとは無縁なPICライフでハッピー♪
電子工作未経験ですが質問させてください
例えば、PICを用いた自作キーボードを作りたい場合、
デバイス側としては、電子回路(USBシリアル変換モジュール・USBケーブル含む)と
PICに書き込むC言語だけで完結できるのでしょうか?
VB.netを勉強せずに済むなら、書籍代や時間労力を節約できるので
教えていただければ幸いです よろしくお願いします
USBシリアル変換だと
PC側からキーボードとして認識しない
PIC16F1454などUSB機能の付いたマイコンを使いましょう
電子回路(マイコン、キー、USB端子などを含む)
プログラムをマイコンに書き込む為の道具(PICKIT4など)
統合開発環境(ソフト、無償)
が必要
開発言語はC言語のみでOK
もちろん開発に使うPCは必要
質問の答えになってます?
一から作るのか先人の作例を真似するのかにもよるが
未経験者には結構ハードルが高いと思う
できればもう少し段階を踏む方がよいのだが
>>746 結果だけ有れば良いという事なら18F2550の作例を何から何まで提供しますがw
PS2/USB 変換器使って、PS2プロトコルで送ると超簡単
1.キーボードを買ってくる
2.分解する
3.観察する
4.デバイス外す
5.目的のスイッチと配線する
6.楽しむ
>>747 >>748さん
>USBシリアル変換だとPC側からキーボードとして認識しない
>PIC16F1454などUSB機能の付いたマイコンを使いましょう
なるほど、勉強になります
USB内臓PICでUSB機器として作るとなると、
USBフレームワークとかHIDクラスとか難しそうだったのと、
仮想COM接続でシリアル通信するのが簡単という意見を読んだので、
USBシリアル変換モジュール(FT232RL USBシリアル変換モジュール)を使えば良いのかなと思ってました
でも、実はUSBミニBコネクタ付きのPIC18F2550のマイコンボードも発注済みなので色々努力してみようと思います
>開発言語はC言語のみでOK など
安心しましたw 以上、詳しくありがとうございました
とても勉強になりました C言語の勉強を頑張ります!
>>749さん
まだPICでLEDチカすらさせたことないですw
自作キーボードとまで行かなくても、
電子回路内のタクトスイッチを押すと、PCのアクティブウインドウに"a"と送信されることを
目指して頑張ります
>>750さん
ありがとうございます
キーボードコントローラというものあるんですね
詳しく調べてみようと思います
>>751さん
貴重なご提案をありがとうございます
未経験者なので回路図もプログラムも難しくて理解できないと思いますけど
差し障りなければ、後学のために是非お願いしたいです
PIC18F2550のUSBモジュール内臓PICはもうじき届くと思いますので
いつか理解できるようになりたいです
>>752さん
Arduino互換ボードみたいですね
読んだ書籍がPICだけなので、今回はPICでやってみようと思います
次回からそちらも視野に入れて検討してみます ありがとうございました
>>753さん
FT232RL USBシリアル変換モジュールを使った仮想COMポートのシリアル通信の外にも
PS/2-USB変換器を使ってPS/2プロトコル通信する手段も有効なのですね
ありがとうございます 勉強になります
あとで調べてみますね
>>755さん
ありがとうございます
分解して改造してみるというのが物作りには大事ですね
いつかやってみようと思います
以上、皆さま貴重なご意見をありがとうございました! 大変勉強になりました
度々すみません
>>751さん
受信専用の使い捨てメアドを用意しました
zyvzwywm★abyssmail.com (お手数ですが★を@に置き換えて下さい)
お作りになられた作例の回路図やプログラムのファイルなどをDLできる
サイトのURLをこちらへお送ってくだされば、後学のために勉強させていただきます
ご厚意に甘えてばかりですみません
ご面倒なら無視して下さって結構です
>>759 あなたの現在のスキルとその理由なら、買った本を埋没費用としても、今からでも遅くないから、PICと同時平行でpromicroもやってごらん。
今からaliでポチって、ネットの情報だけで片手間でやってもpromicroの方が早く出来上がる。
ArduinoよりPICを選ぶ場面は今後出てくるから適材適所だと思うから買った本は無駄にならないとは思うけど。
>>736 非常識と思ったコードの方、
実用の可能性は無いかと思ったけど可能性ありそう
8bit送信するコードを256通り作って
1バイト単位で分岐する
LAT*INVへの代入15個とリターン命令の16命令で良いので
256個作っても16KB
80MHzで動くPIC32はどれもROMが64KB以上あるので
ソフトSPIのパフォーマンスが重要なら有り
当然コードはプリフェッチキャッシュには収まらないが
それでも真面目に1bitずつデータを作るよりは速い
CPU時間だけでいうと平均2.7クロックで1bit送信出来る
トータル処理量よりもバス占有時間を縮めたいなら
送信するコードをRAMに展開する手も
1ビット送信に2命令8バイト使うので1回で送るデータ量は限られるけど
1ビット送信時間は2クロックに近づく
NYTから
チェコでも人手不足でロボット化を推進
Robots Ride to the Rescue Where Workers Can’t Be Found
https://www.nytimes.com/2018/04/16/business/labor-robots-jobs-eastern-europe.html Zbynek Frolik氏が、急激な受注を処理するために新しい従業員を必要としたとき、彼はチェコ中に
広告を出しました。しかし、応募してくる人はほとんどいませんでした。賃金を引き上げても、住宅補助を
だしても同じでした。そこで彼はロボットに目をつけた。
「十分な人間を見つけることはできないので、私たちはできる限り人と機械を入れ替えようとしています」
と、100以上の国々で最先端の病院用ベッドを販売しているFrolik氏は言う
東ヨーロッパでは、労働者不足の解決策としてロボットが採用されています。 チェコ共和国、ハンガリー、
スロバキア、ポーランドの企業が機敏かつ競争力を保つために、新しいタイプの雇用創出に役立っている。
近年、共産主義崩壊後の低コストの製造拠点となったこれらの国々の成長率は、世界的な回復に支
えられて5%となっています。
その中でチェコは郡をぬいていて、トヨタの車やデルの家電製品を生産するチェコ共和国の沸騰する
経済は失業率をわずか2.4%に下げ、欧州連合(EU)で最も低い。
しかし、人材の不足は、チェコ企業が拡大する能力をそいでおり、 チェコ連邦産業連合によると、ほぼ
3分の1の会社が注文を断りはじめている。
同社の会長のヤロスラフ・ハナック氏は、「これが成長にブレーキをかけるようになっている。もし企業が
ロボット化や人工知能を向上させなければ、彼らは姿を消すだろう」と言う。
労働コストも別の要因です。 東欧は多国籍企業を低賃金で誘致することで製造業の勢力となった。
しかし、その優位性は失われつつある。 チェコ共和国の月額平均給与は昨年8%増の1,400ドルで
した。 ドイツの3分の1ですが、今後も上昇すると予想されている。
そこで、企業は外国人労働者を増やすことが助けになると言います。 しかし、保守的な政府は
移民制限を続け、最近は外国人就労ビザに厳格な上限を設定した。
同様に、長期的に心配な傾向があります。 家族は、退職に向かう人々を置き換えるのに十分な
子どもを育てていません。
米国最大の自動車メーカーであるSkodaは、人口動態の変化や賃金圧力に直面するための
自動化を「大幅に加速すると」と言う。
中略
ロボットが人間の生計を助けるか脅かすかは、激しい論争を巻き起こしている。
批評家によると、将来の景気後退が起こると、労働者は苦しむというリスクがある。
「ロボットの電源を切って人を戻すことはできない」からだ、という。
チェコの組合は警告を発し「ビジネスリーダー、政治家、労働組合は、今後の産業革命に前向きに
責任を持って対応しなければ、雇用はさらに脅かされる可能性がある」と述べた。
今のところ、企業はロボット化が新しい仕事を生み出すと主張しているのだが。
産業用ロボットに国際的競争力があるとかいう日本にとっては有利じゃん。
本当にそうなら、だけど。
>>764 どっちみち、単純作業に高い給料出せないからな。
「人手不足」は、まあ結構多くシーンで「(安い賃金で文句を言わずに言われたことを正確にする)人手が不足」の意味だよな。
PICを含めてマイコンは単純労働から人を追い出すことに貢献してきたんですよ。
>>765 業界にいると分かるけど中国からの大量発注で今、日本のロボット業界は史上最高の好景気。
産業用が中心だが、ロボット製造メーカーだけじゃなく関連部品メーカーも。
パーツによっては1年待ち。
PICは即納だけどmurataのチップコンデンサが
納期38週間とか言われて新規量産着手できない状態
どのコンデンサメーカーも品薄だけど特に村田がヒドイ…
客にドヤされたmurata営業がTDKのセラコン持ってきたなんて噂話までまことしやかに囁かれる現実
少量生産だとdigikey辺りで代替品テキトーに買えばいいのだろうけど
量産だとそんなわけにはいかないのでしょうねぇ
コンデンサごときで量産止まるとか
そんなことがあるのか
特殊なコンデンサ?
>>778 量産だと、たとえば製造用部品リストに
ごくあたりまえの 1608サイズ 25V 0.1uF 10% R特性 として、
25V 0.1uF 10% TBK製作所 C16081ER104K-R12
なんて書いてあったとして、それが品切れだったときに
「代わりに大洋誘電とかムラ夕製作所とかの同等品がありますやん」
が通じなかったりしますよ。
まぁ、指定の型式以外は、使っちゃいけないんだから、しょうが無いね。
汎用部品でいくらでも代わりがあるものを
何もせず待ってるだけなんて考えられないんだよね
量産が止まるって普通は大損害なわけで
それは調達部署がアホってだけ。
設計にはなんの落ち度もない
調達部署が調達失敗を隠蔽してた
とかならその言い分もわかるが
抵抗とか電解コンデンサなら他社同等品切替でもまぁ問題は起きないけど
コイルキャパシタは他社相当品に代えた途端、ライン検査NG出まくりで
変更指示出した購買が責任もって不良品買い取れ!なんてことも…
大口なら供給が危うくなれば事前に連絡が来るだろ
購入側も需要予測出してるだろうし
穴を開けたら大変だから間に合うように代替の部品認定や設計変更する
>>785 いやいや。その「ちゃんとした変更手順」が大変ってことなんでしょう。
積層チップコイル、チップセラミックはメーカーが変わると怖い、って考え方もわかります。
ノイズ試験(特に出す方)、振動試験、温度サイクル試験からやりなおせ、みたいな。
それをやらずに、市場にでてから問題になったら、
それがたまたまのものであっても、他の原因が大きくてもやっぱり変えたからだ、なんてことになりかねません。
誰も自分では責任を取りたくないから、弱いところに責任を押し付けるでしょう。
OKを出したエンジニアに道義的責任を押し付けて昇進・昇給機会を奪うぐらいならまだしも、
量産を請け負っている会社が提案して代替品に置き換えて問題が起きたら目も当てられないことがありますよ。
PICを使う初心者も部品選定には気をつけましょうってことで
そんな事言ってたらPICを使う初心者も癌には気を付けましょう
とか際限ない
>>789 それ、何の初心者やねん…。量産にかかわるプロの初心者ですね。
そもそも部品選定に気を使う初心者ならPICを選ばない可能性が・・・
意外とMicrochipは納期トラブル起こさないんだよな…
買収したAtmelとかはちょくちょくやらかしてたのに
実装始める前にチラ見して自分の使い方に関係なければ放置。関係あったら回避するよう実装する。
それだけ。
記載されていないエラッタだったら?
自分のバグかCPUのエラッタか分らなかったら?
正攻法が使えなくて、裏口で遠回りでしか入れないとしたら?
初心者には使いづらいだろうな。
初心者はありふれた使い方しかしないとは思うけど、
いっそエラッタの心配をしなくても済むCPUを選んだ方がいいのではあるまいか。
>>798 記載されていないエラッタが存在しないCPUは何?
>>798 エラッタの心配しなくて済むCPUってなに?
いろんな他社のマイコンやFPGAでもエラッタはあるのに
ちゃんと公開してる分まだいいでしょ
実装はじめる前に見ないと駄目ですよ
機能が全く使えないのもあるので
あと、記載されてないのもあるんで注意
機能が使えないのにスペックには機能を有するように書いてあるのはPIC位では?
ひどい会社だ
>>804 マニュアルに書いてある全機能が問題なく使えるメーカーっ具体的にどこですか?
PICしか使ってないと、
宣伝文句に嘘があるのは普通
だと思っちゃうのか
PIC信者の方がキモチワルイ
欠点の指摘に対して全力で否定
嫌なら使わなければいいだけ
エラッタあるのは皆知ってる
中にはデータシートに記載されていないものもあるだろう
それでも使いたい人は使うし嫌って使わない人もいる
君は後者なだけであって、それを否定するつもりはない
君の気持ち悪い点は
使わないという価値観を他人に押しつけている所
皆がエラッタあるけどPIC使え!と君に押し付けているか?
君に押しつけているなら、そりゃ布教信者だな
エラッタを全力否定している訳では無い
エラッタを含めて使用する事を肯定しているだけ
君はPICエラッタ信者w
エラッタの指摘が「PICを使うな」に見えるのか
病気だな
PICにエラッタがあるのは十分わかったので、
それ以上新しい情報がないならもう来なくていいです
君がわかるだけじゃダメ
初めて君がわからないと
テンプレに載せれば良いと思う
良い点も悪い点も
エラッタエラッタと連呼する粘着質では女にモテませんよ
くだらない書き込みをする暇があったら
その性格を少しでも直して外に出れば、彼女もできるかもしれませんね
NYTから
デジタルの世界へ進出するGE
”G.E. Makes a Sharp ‘Pivot’ on Digital”
https://www.nytimes.com/2018/04/19/business/ge-digital-ambitions.html General Electric社より積極的にデジタル化の波をを受け入れた老舗の企業はないだろう。
G.Eのデジタル化の野望は、同族企業の内部にGE Digitalを設立した2015年に全面的に展示されました。
最高経営責任者のジェフリー・R・イメルト氏は、2020年までにG.E.が「トップ10のソフトウェア企業」になることを
大胆に宣言しました。
今日、そのような野心はありません。 GE Digitalの支出は、レイオフとG.E.の急激な縮小目標の下で縮小されている。
昨年8月に最高経営責任者に就任したジョン・フラナリー氏は11月、GEの経費を今年25%(約4億ドル)削減
すると発表した。彼はG.Eのデジタルイニシアティブは、同社にとっては「非常に重要」なので、もっと集中した戦略が
必要だと付け加えた。
G.E. は判断ミスにより、大きな発電事業の問題をかかえており、それが財務部門のGE Capitalにも負債に関する
不確実性が残している。さらに、 サウスウエスト航空の事故でフランスのサフランで作られたエンジンがどう関わったのか 、
調査結果に注目を集めている。
しかし、GE Digital社の再考は、あらためてデジタル技術を採用している現代の工業用ソフトウェアを製作することの
難しさを指摘している。
低コストのセンサーやデータの氾濫、コスト削減、燃料節約、より優れた製品設計のための洞察を提供すべき賢明な
ソフトウェアなど、いわゆる産業用インターネットの重要なビジョンについては誰も異論を唱えていない。しかし、同社は、
壮大なビジョンを達成するために必要なすべてのソフトウェアを作成するという課題を過小評価してしまった、と
元G.Eマネージャーは述べています。
G.E.の技術力は、発電所タービン、ジェットエンジン、医療用画像機器などの大型機械の設計と製造にあると述べて
います。伝統的なソフトウェアスキルは、機械や工場操作を制御する特殊なプログラムにあります。 GE Digitalは、
クラウドベースのインターネットソフトウェア、データ解析、機械学習などの人工知能ツールへの飛躍的な進出でした。
UBSのアナリスト、Steven Winoker は述べています。 「GEは専門外の世界にあまりにも速いスピードで
飛び込んでしまい、それは金銭的なブラックホールになった」と。
どれくらいのGE Digitalに投資しているかどうかは不明ですが、数十億ドルにもなるでしょう。 昨年のハーバード
ビジネスレビューの記事では、2016年に「分析ソフトウェアと機械学習能力の開発に約40億ドルを投入した」と
書いている。
中略
「今我々は、一生懸命努力をしてる。今にいい結果を出してみせる」とルー氏は語った。
Flannery氏は、G.E.のデジタル産業に対する支持を一貫して宣言していますが、GE Digitalの
未来を保証するものではありません。 Flannery氏は会社を合理化するために事業を売却している。
GE Digitalを売却するかもしれない。
一部のアナリストは、G.E.の独立系のデジタルユニットは必要ない。電力や航空のような産業部門のような
すべての顧客に近づけるようなソフトウェアを開発するよう推奨している。また、財務分析会社のメリウス・リサーチの
スコット・デイビス最高経営責任者は、「GE Digitalは存在すべきではない」と断言する。
良いじゃねえかエラッタ連呼はここしか活躍する場がないのだからおおめに見てやれよ。
PIC信者って哀れというか、ミジメというか、気持ち悪いというか、普通じゃ無いというか、
なんかもう表現する言葉が見つからないな。
これからもガンバって使い続けて下さい、期待していますw
>>817 今では、8bitマイコンは只の部品に過ぎないのにな。
エラッタみたいな事ってすべての工業製品に共通の事だろ、
自動車や飛行機は人命に関わるからそれなりの扱いになってる
それだけ。
ふうふうで冷めればいいけど
>>682みたいな対処法しかないとなると
UARTエラッタ人ってずっと粘着してるの?
メーカーに問い合わせしないで?
ここでエラッタ粘着??
UART送信をTXIFで割込みかけて送信するなんて
しょっちゅう使っているんだけど
そんな送信がダブったなんて経験した事がないんだよな
粘着君以外で他に経験した人がいるの?
いるならもっと騒がれていいはずなんだけど
海外でも見ないよね、、なんでだろうね
本国は英語版で十分なので、日本語版はおまけですって某社もあるけどな。
エラッタどころかリファレンス自体も更新しやがらねえよ。
それどころか英語版のこんなふうにできますよの使用方法すら日本語版にはデータがないので公開できませんって言われてて流石に同情した。
>>827 えっ酷いね!
どこの会社?
インテル?STマイクロ?
>>826 まともに検証してないだけだと思う
>>827 日本語なんかいらんだろ
更新してなくてもどうでもいい
つか他のデータシート全部英語なわけでマイコンだけ日本語にしてもらっても無意味。
>>826 1人の書き込みだと思ってるのか?
少なくとも
>>682 >>798は別の人
ていうか、
逆にバグ有りUARTを使ってて気づかないっていう方が驚きだ
普通に割り込みで作れば2重送信の可能性があるコードになる
あとはタイミングだけ
簡単な負荷テストで発生する
PICユーザーは動作検証しない
って言ってるようなものだ
エラッタ知ってる大先生は他のCPUやらチップやらのスレでも
後進の指導にご尽力なさってるのかしら
>>828 STMは英語のサポートチームがサポートしてくれる分ましかな?
ADI社は英語の資料を見ろって言っておきながら英語の資料のデータが無いから教えられないとか言い出す。
しかも国内サポートがてんでばらばらだから御社の〇〇様にこういう感じでサポートして頂いたのですがっていう一連の流れを出さないと、みんな「そこAだから」みたいな一番最初の答えしかくれなかった
まあ5年位前だから改善しててほしいんだけど。
>>829 上司が気に入ってどうにかなる時は良いんだけど、
自分が気になるけど上司は興味無い時とか日本語資料ないと困るんだよね。
うちだけだと良いんだけど。
>>826 PIC16F1574/5/8/9に対してはエラッタが出てるんだよ。
実際にはエンハンストミッドレンジ全部に関わっているはずなのに他の
ファミリーに対してはエラッタを出してないのが問題視されているところ。
PIC16(L)F1574/5/8/9 Family Silicon Errata and Data Sheet Clarification
http://ww1.microchip.com/downloads/en/DeviceDoc/80000642C.pdf >1.1 Transmit Mode
>Under certain conditions, a byte written to the
>TXREG register can be transmitted twice. This
>happens when a byte is written to TXREG just as
>the TSR register becomes empty.
>>836 今度の週末に試してみよう。
たまたま出ていないだけかもしれないし。
>>836 >実際にはエンハンストミッドレンジ全部に関わっているはずなのに
http://ww1.microchip.com/downloads/en/DeviceDoc/80000653D.pdf PIC16(L)F1717/1718/1719のシリコンリビジョンA1ではその問題は「−」になってる。
モノによっては修正済みとかがあるのかな。
>>839 そのエラッタは気付かなかった。
どうせモジュールは使い回しで、マイクロチップ内ではどのチップで同じ
問題があるかは分かっているはずで、どういう基準で対応してるのかな。
遅いから割り込みが発生してTXREGにライトするタイミングならダブル送信は発生しない。
丁度TXREG が空になったタイミングだと発生する場合があるだけ。
送信割り込みフラグ確認してから送信バッファーなどの処理をしてからTXREG をライトすれば問題ない。
同じモジュールを使っててもその間の配線が違えば
遅延も違ってくる。
→ピンやソフトから見えるタイミングも違う可能性がある。
十羽一絡げにしてギャーギャー言ってる人達、なんだかね…
十把一絡げ、だよな。
アヒルみたいなのが10羽、紐でまとめて縛られてギャーギャー騒いでいる様子を想像した。
10羽ひとカラアゲ…
さておいて。
>>839のErrataのWork around 回避策? に、
Monitor the Transmit Interrupt Flag bit (TXIF).
Writes to the TXREG register can be performed
once the TXIF bit is set, indicating that the
TXREG register is empty.
って書いてある。TXIFを見よ。立ってたら空っぽだ。と。
割込みがかかるときって、TXIFが立つときではなかったっけ。
このスレで問題にされているのは、送信割込みで2重送信が発生する、ということだと思うのだけど、
それだと因果関係が前後するような気がする。別の問題?
俺自身の習慣が
>>841みたいなことなので、問題になっていないのかな?
TSRが空になる瞬間の書き込みがマズいんだから
TXREGが空である確認をしても対策になってない
wレジスタ → TXREG → ShiftRegister → Tx端子
↓TXIF ↓TRMT
先にTXREGが空となり、続いてShiftRegisterが空になったその瞬間にwレジスタから書くと
TXREGとSR両方にコピーされてダブルってことやからErrataのは回避策になってないんだよな
TXIFとTRMTをポーリングしてTXREG書くとか、ウェイト入れてSRが捌けるのを待つとかすべき
TMRTは対策にはなるが
それをどうやって実装するのって話になる
割り込みでループして待つ?
タイマー割り込みで監視?
どっちも最悪ですね
送信割り込みの意味がない
もう一個
TMRTを待ってから送信では送信データに毎回隙間が空いてしまう
受け側がFIFO+タイムアウト割り込み
みたいな高級な回路だったら
1バイトずつ割り込みがかかる最悪な動作
それこそ攻撃みたいなパターンになってしまう
そんな問題のある可能性のある送信じゃ製品には出来ない
こんなことをずいぶん前にも書いた気がする
現象を書いたら
「お前のバグだ」
コードをアップしたら
「こんなコードじゃうまく動かないのは当たり前」
エラッタだとわかったら
「回避は簡単」「対策できないのはお前がアホだから」
PICスレは非常に民度が低い信者のスレだと思ったよ
巨大な受信バッファ持ってるPCが受信相手なら隙間だらけの送信でも全然問題なっしんぐなので
自分はTRMTポーリングで対処してます
PICが受信相手でもFIFO溜まった時点で割込みかかるので隙間だらけの送信でも負荷増えないし
FIFOがたまった時点で割り込みが発生するだけだと
FIFOのデータが少ないときは受信したことがわからないので
受信してから隙間が空いた時にも割り込みがかかる
っていう回路がある
PCだとRS-232Cの負荷なんて誤差レベルだが
負荷は増えてるかもしれない
>>848 >先にTXREGが空となり、続いてShiftRegisterが空になったその瞬間にwレジスタから書くと
>TXREGとSR両方にコピーされてダブルってことやから
確かにこの問題は以前に話題になっていたと思う。
で、問題は、
>Errataのは回避策になってないんだよな
これは、
>>839のErrataの回避策を指してのことだと思うのだけど、別の問題ってことはないですかね。
最初の問題を直したつもりで、別の問題が出てきたとか。
>PICスレは非常に民度が低い信者のスレだと思ったよ
民度は眺めるものではなくて、自分でなんとかするもの。
サッカースタジアムや、羽生パレードのあとのゴミも、みんながみんなゴミを捨てなかったのではなくて、
捨てた人がいても、それを拾った人がいるから、結果としてスゲーって思ってもらえるわけだし。
今気付いたけど
TRMTと書いてあるマイコンと
TMRTと書いてあるマイコンと
両方あるみたい
上のリンクのエラッタは両方TMRT
データシートのエラッタが仕様になっちゃったみたいな?
TRMTとTMRTで対策済か否かを見分けるようにして欲しいな
初めてスレで延々とやる話題かね
本スレでやればいいのに
>>853 そんなことはない。トータルの転送量だけ考えるとたいしたことなさそうだが、
232Cを10ポート20ポートつないでフルフルで動かすとPCの負荷はけっこう大きい。
CPU負荷だけの問題じゃないぞ。ハードやドライバの作りにもよるが。
俺のエラッタ回避方法は
1. 割り込み禁止が1文字送信時間を超えるようなコーディングをしない。
2. n文字送信関数で最初の1文字送信のときにリングバッファが空ならTRMTが1になるまで待つ。
>>861 232や485を10や20つなぐPCなんて工場とかではザラなわけだがWindowsあたりだとけっこうコケる
TCPでセッション100張るほうがうんと負荷軽くて楽
チップセットとプロトコルが頭いいと楽だね
Microchipが重視していない姿勢を鑑みるに
ごく一部のユーザーが特殊な条件で使用する時のみ
影響する事象なので
EnhancedMidrange全型番のエラッタに載せてないんだろうね
ほとんどの初心者には影響ないからスルーして良いかと
>>863 最大2文字分のビジーループが発生する
稀なタイミングしかオーバーヘッドが発生しないのと
ハードが不要なのが利点か
おれのUARTエラッタ回避法は
フリーランタイマーでヤバいタイミングを調べて
可能性があればnop 1個でタイミングをずらす
ビジーループは無いがタイマーを使う
(タイマーは共用可能)
割り込み禁止期間の制限は特に無い
18F46K22でI2Cを使うのでMCCでMSSP1を選んだが動作しない。
EUSART1、TMR0、ADCは動作しています。
SCL1とSDA1のピンはHighのままです。
I2C1.hのEMULATED_EEPROM_Write/Readをコピペしているが、
PICKit3のデバッグでPAUSEにすると
while(status == I2C1_MESSAGE_PENDING) ;から抜け出せないようです。
MSSP2にしても同じです。
EasyタブはI2C Master/Enable MSSP/Slew Standard/SDA Hold 300nS/7bitで
I2C Clockの0x03≦0xA0≦0xFFで99.379KHzと表示されてます。
RegistersタブはBCLIとSSPIのチェックとADD=0xA0/BUF=0x0/CON1=0x28/CON2=0x0/CON3=0x8/STAT=0x80
SSP1MSKが0xFFで赤くブリンクしているのが気になります。
PICエラッタの最良の対処方法はPICを使わないこと。
何故にマルチタスクも動かせないようなこんな低レベルCPUにこだわるのか?
>>869 こだわってるのはあなた
他人が何を使おうが勝手でしょ
人の財布の中覗いてケチつける
他人の家の冷蔵庫開けて食材にケチつける
朝鮮人文化には馴染めません
こだわっていないし、ケチもつけてませんよぉ。
ただただ疑問に思っただけ、理由を知りたかっただけです。
PICの何がそんなに魅力なのか?
もしかしたらPIC信者ってMなのか?
ハハハ、私のレスは無視して下さい、ちょっと退屈していただけなので。
春になるとわくものに釣られすぎ。別人だろうけど、他の板のスレにもこの時期になるとわいてくる。
PIC信者を NGワード化して久しいが
これがまだ続くなら エラッタ もNGワード
にしようかと。兎に角しつっこいからな。
ここまでPICをdisってるエラッタおじさんはどんなCPU使ってるの?
もうウザイから、たった今、エラッタもエッタラも NGワードに登録したぜよ
>>878 文句言いながらもここを覗きに来てるって事は、根っからのPIC信者なんだろ。
趣味でも仕事でも、ファンだから使う、は有りうる。
仕事でその理由は有りえない、と思う人は、そういう立場を知らないだけのこと。
なぜファンなのか、他のものの比べた上で判断したのか、なんてのは野暮。
バグを知らないで遭遇したらとんでもない時間を浪費することになるし
納期を間に合わせるために原因不明のまま対処療法の対策で納品する
なんてことにもなりかねない。
感情的にならないで有益な情報として受け入れた方がいいと思うけどな。
ライタを持ってるから
本を買って持ってるから
PCに環境を作ったから
使い方を覚えて染み付いてるから
買い置きが残ってるから
これまで書いたコードが流用できるから
困ったことや痛い目に遭ったことがないから
全て消極的理由だが、趣味なら乗り換えない理由としては十分
別に特段の魅力は感じてなくてもPICで良いって人間もいるんだからほっといてくれ
ほんと余計なお世話
こういうのに難癖つけるやつに限って
自分の使っているチップ型式を云わないのな
AVRとかだったりするのかねぇ
> 困ったことや痛い目に遭ったことがないから
というより、困ったことや痛い目に散々遭って、それを時間をかけて
克服してきた実績と自信があるから、違うチップでまたやり直すの
やだなあみたいな先入観があるな。
#流用できる完動するコードがある、に帰着するかもしれないが。
導入の壁乗り越えて
自分なりのお気に入りライブラリー揃えてしまうと
今更他のマイコンに乗り換えるモチベーションか
PIC自体の良いところが何一つ出て来ないところが泣けるねえ
PICに問題があるからダメだって話はするくせに、問題のないチップは出てこない。
PICは問題が多いというが、結局のところ多かろうが少なかろうが自分が使うところにその問題があるかどうか。
バグがたとえゼロでも供給に不安があるならダメだろう。
バグは開発段階で回避できるかもしれないが、製造段階で全く互換で置き換えられるものの供給が滞るとかなりイヤ。
ユーザーが多いほど問題は既知のものになりやすい。
ネットで情報発信しているユーザーが多い方が、問題解決はしやすい。
>>888 いちいちまとめることもしないけれど、見えてないフリしてるだけだと思う。
勝手に泣いてろ。
取るに足らない問題に当たった0.1%以下の人間がギャンギャン吠え続け
問題がないか,自分で解決したほぼ100%の人たちは黙ってる
DIPパッケージ、PPS、外付部品少なくて頑丈
今更な長所だけど趣味には重要だよ
入手性とか考えたらホビーユースだとPICかAVRぐらいしかないし、PICの内蔵ペリフェラル機能は活用できると便利だから使ってる。
>>867 リングバッファでなくてTXIEを見れば、ビジーループを最大1文字分にできることは知っているんだが、なんとなく気持ちわるくてね。
>>868 どうも 868 です。
PIC18F47K42で同様な現象の記事を見つけましたが私には理解できません。
http://www.ccsinfo.com/forum/viewtopic.php?p=217541 下のコードを追加するようなんですが、どのファイルなのかわかりません。
//Select I2C with PPS
#PIN_SELECT SCL1IN = PIN_C3
#PIN_SELECT SCL1OUT = PIN_C3
#PIN_SELECT SDA1IN = PIN_C4
#PIN_SELECT SDA1OUT = PIN_C4
#use i2c(Master,Slow,I2C1,FORCE_HW)
最後のスレの
//Select I2C with PPS
#PIN_SELECT SCL1 = PIN_C3
#PIN_SELECT SDA1IN = PIN_C4
#PIN_SELECT SDA1IOUT = PIN_C4
//Using the peripheral name always forces hardware
#use i2c(Master,Slow=100000,I2C1)
が正解なのかも知れないが、どこに挿入するのだろう?
>>896 せめてmain.cぐらいは見せないと何もわからんよ。
>>896 すまん、18F46K22にはPPSは無かった。
>>894 LPCとかSTMもあるし、8051系もありますよ。
>>897 こんな感じです。
EMULATED_EEPROM_Read関数はMCCが生成したi2c1.hの例文をコピペして、main関数の前に定義しました。
EMULATED_EEPROM_Read関数のwhile(status == I2C1_MESSAGE_PENDING) ;から抜けられないようです。
オシロでSCL1(RC3)とSDA1(RC4)を観察してもHighの状態です。
双方とも4.7KでVDDにプルアップしています。
I2CデバイスはDS1307(カレンダー)です。
TMR0とEUART1とADCは動作しています。
void ReadDateTime(uint8_t *pDateTime)
{
uint8_t dt[8];
// Read DS1307 Reg.
EMULATED_EEPROM_Read(0x68, 0, dt, 8);
*pDateTime++ = ((dt[6] >> 4) * 10) + (dt[6] & 0x0f);
*pDateTime++ = ((dt[5] >> 4) * 10) + (dt[5] & 0x0f);
*pDateTime++ = ((dt[4] >> 4) * 10) + (dt[4] & 0x0f);
*pDateTime++ = ((dt[2] >> 4) * 10) + (dt[2] & 0x0f);
*pDateTime++ = ((dt[1] >> 4) * 10) + (dt[1] & 0x0f);
*pDateTime = ((dt[0] >> 4) * 10) + (dt[0] & 0x0f);
}
void main(void)
{
uint8_t DateTime[6];
SYSTEM_Initialize();
INTERRUPT_GlobalInterruptHighEnable();
INTERRUPT_GlobalInterruptLowEnable();
INTERRUPT_PeripheralInterruptEnable();
TMR0_SetInterruptHandler(timer);
printf("Start!¥r¥n");
ReadDateTime(DateTime);
ここに来ない
>>895 TXIEを見た後TXREGにセットするまでの間に
割り込みがバタバタっと来たらアウトじゃないか?
>>897 コピペの関数もそのまま添付します。
void EMULATED_EEPROM_Read(
uint16_t slaveDeviceAddress,
uint16_t dataAddress,
uint8_t *pData,
uint16_t nCount)
{
static volatile I2C1_MESSAGE_STATUS status;
I2C1_TRANSACTION_REQUEST_BLOCK readTRB[2];
uint8_t writeBuffer[3];
uint16_t timeOut;
// this initial value is important
status = I2C1_MESSAGE_PENDING;
// build the write buffer first
// starting address of the EEPROM memory
writeBuffer[0] = (dataAddress >> 8); // high address
writeBuffer[1] = (uint8_t)(dataAddress); // low low address
// we need to create the TRBs for a random read sequence to the EEPROM
// Build TRB for sending address
I2C1_MasterWriteTRBBuild( &readTRB[0],
writeBuffer,
2,
slaveDeviceAddress);
// Build TRB for receiving data
I2C1_MasterReadTRBBuild( &readTRB[1],
pData,
nCount,
slaveDeviceAddress);
timeOut = 0;
while(status != I2C1_MESSAGE_FAIL)
{
// now send the transactions
I2C1_MasterTRBInsert(2, readTRB, &status);
// wait for the message to be sent or status has changed.
while(status == I2C1_MESSAGE_PENDING) ;
if (status == I2C1_MESSAGE_COMPLETE)
break;
// if status is I2C1_MESSAGE_ADDRESS_NO_ACK,
// or I2C1_DATA_NO_ACK,
// The device may be busy and needs more time for the last
// write so we can retry writing the data, this is why we
// use a while loop here
// check for max retry and skip this byte
if (timeOut == SLAVE_I2C_GENERIC_RETRY_MAX)
break;
else
timeOut++;
}
}
mainのprintf("Start!¥r¥n");を以下の行に変えたてみたが、SCL1もSDA1もHのままだわ。
printf("TEST1¥r¥n");
SSP1STAT = 0xC0;
SSP1CON1 = 0x28;
SSP1CON2 = 0x00;
SSP1CON3 = 0x08;
SSP1ADD = 0x9F;
SSP1BUF = 0x00;
printf("TEST2¥r¥n");
printfは正常に表示された。
別のソフトでRC3,RC4をGPIOでOUTにしてH/Lの出力を確認できたから生きているはず。
>>904 オシロがあるならI2C.hで宣言されてるシンプルなリード、ライトをためしてみたら?オシロでなにも無いようなら、初期化周りが怪しい気がする。関数内だからこっちはどうなってるかわからんが。
PC USBロジアナ安いからおすすめ
〜\1000程度で買える
RS232やI2Cの解析なんかには十分な
24MHzサンプリング8ch
amazonとかebayで買える
>>902 >>863のリングバッファが空だったらってとこを、TXIE(TX割り込みイネーブル)が0だったらと変えるだけ。
>>905 main.c内に下記のtest関数を定義して、MCCの初期化と割込み許可直後でtest関数を呼び出した。
void test(void)
{
static volatile uint8_t buh[16];
I2C1_MESSAGE_STATUS status = I2C1_MESSAGE_PENDING;
I2C1_MasterRead (buf, 4, 0x68, &status);
printf("%02x, %02x, %02x, %02x¥r¥n", buf[0], buf[1], buf[2], buf[3]);
}
オシロにはHレベルのままでI2C1_MasterRead関数から返ってきた。
4バイトとも0x00でした。
何故かその後に呼び出されるReadDateTime関数内の
EMULATED_EEPROM_Read(0x68, 0x0000, dt, 8)から抜けられるようになった。
でもデータは全て0x00でオシロにも出てこない。
別ソフトで1mS周期割り込みでRC3,RC4を毎回反転するのを書き込むとオシロにちゃんと矩形波が現れる。
>>905 MCCの初期化部分が先のコードです。
SSP1STAT = 0xC0;
SSP1CON1 = 0x28;
SSP1CON2 = 0x00;
SSP1CON3 = 0x08;
SSP1ADD = 0x9F;
何故かSSP1CON2が無かったので追加したが変化なし。
この状態で
SSP1BUF = 0x00;
すれば送信が発生すると思うのだが?
初期化間違っているのかな?
SPIは何度も使ったけどi2cはPICでは初めてです。
>>909 設定はそれで問題ないはず。速度は計算してないから、合ってるかわからんけど。
BUFFにデータ入れるまえにCON2.SEN=1でスタートコンディション発行しないと駄目。これだけでSDAは一旦Loになるはず。
>>910 ありがとうございます。
明日、試します。
MCCのコードをPIC16系と見比べたけど同じだった気がする。
明日こそ!
>>907 それはわかってる
TXIEを見てから送信バッファに書くまでのタイミングに
UART以外の割り込みが来て、
そこからUART割り込みでTXREGに書くまでに
ダブるタイミングになったらマズイだろ
って思ったけど
割り込みが1文字送信時間分占有しないと問題が起きないし
1文字占有したら受信もマズいので
まああまり気にしなくていいかな
ボーレートが速くてUSBも使ってたりする場合は注意が必要っていうくらい
ソフトのバッファでも猶予が倍になるだけて同じだな
一応条件に加えておいた方が良いかと
>>910 おはようございます。
SCL1、SDA1が共にLowになりました。
SSP1CON2bits.SEN1 = 1;
SSP1BUF = 0x00;
MSSP1は生きているようなのでもう一度PIC16FとPIC18FでのMCCコードの違いを探します。
>>910 速度はFOSCがPLL使用で64MHzで100KHzになっているつもりです。
PICのI2Cはエラッタだらけ
MKやMMにI2Cが無いのはエラッタで全く使い物にならないからスペックから消した
不自然にI2Cが無いのはそういう理由
MZは使い物にならないけどスペックに載ってる
エラッタエラッタうるせーバカだな
おばQのOちゃんかよ
>>910 解決しました!
PIC16FのMCCコードと比較した結果
I2C1_Initialize関数の最後に// add行を追加
// clear the master interrupt flag
PIR1bits.SSP1IF = 0;
PIR2bits.BCL1IF = 0; // add
// enable the master interrupt
PIE1bits.SSP1IE = 1;
PIE2bits.BCL1IE = 1; //add
I2C1_BusCollisionISR関数に下記add行挿入
PIR2bits.BCL1IF = 0; // add
I2C1_MasterTRBInsert関数の前に以下のインライン関数を定義
inline void I2C1_WaitForLastPacketToComplete()
{
while(i2c1_state != S_MASTER_IDLE)
{
// If your code gets stuck here it is because the last packet is never completing
// Most likely cause is that your interrupt is not firing as it should. Check if you have
// correctly enabled all MSSP, Peripheral and GIE interrupt settings.
}
}
I2C1_MasterTRBInsert関数の最後の
// for interrupt based
if (*pflag == I2C1_MESSAGE_PENDING)
{
while(i2c1_state != S_MASTER_IDLE)
{
// force the task to run since we know that the queue has
// something that needs to be sent
PIR1bits.SSP1IF = true;
}
} // block until request is complete
を以下に差し替え
// for interrupt based
if (*pflag == I2C1_MESSAGE_PENDING)
{
I2C1_WaitForLastPacketToComplete();
// The state machine has to be started manually because it runs only in the ISR.
// If we called the ISR function here function duplication would double the code size
// because this function would be called both from interrupt and from mainline code.
PIR1bits.SSP1IF = true;
} // block until request is complete
これでI2C通信が正常に動作しました。
DS1307のアドレスポインタは8bitなのでEMULATED_EEPROM_Read関数の16bitを書き換えました。
うっかりするとエラッタの存在見落としがちだから、
騒いで騒ぎ過ぎは無いと思う
エラッタ情報をデータシートと分けてあるのは
嫌がらせ超えて隠蔽体質だと思うよ
PDFファイル合冊して発行すればいいのに
それともデータシートのどこかに書いてある?
製品としての仕様であるデータシートと
実装の問題であるエラッタは分けといてくれる方がいい
シリコンリビジョンが上がる度にデータシートが更新されるなんてあり得ません
エラッタなんてここじゃなくて、あっちでやってほしい
全然意味がわかんなあいーー
>>922 いや、シリコンリビジョンが上がってもデータシートが更新されないなんてあり得ません
エラッタも治らないならいい加減仕様として明記しろって話だよ
>>924 リビジョン毎にデータシートなんて出さないよ。
リビジョンなんかほとんど変わらないし
変わってもエラッタ直らないし
使えないものはデータシートから消してほしい
>>927 918です。
EEPROMも配線して、どんどん拡張です。
質問してくれていいよ
他の話題で活気付けば誰もエラ男の相手なんかしないから
NYTから
”A.I. Researchers は100万ドル以上の高給を得ている”
A.I. Researchers Are Making More Than $1 Million, Even at a Nonprofit
https://www.nytimes.com/2018/04/19/technology/artificial-intelligence-salaries-openai.html シリコンバレーで公然の秘密の一つは、人工知能の専門家が巨額の給与とボーナスを得ているという
ことです。 今、OpenAIと呼ばれる研究室によるちょっとした税金申告によって、そのような驚くべき
金額が公になっています。
OpenAIは、2016年にトップ研究員であるIlya Sutskeverに190万ドル以上を支払った。その年の
3月から採用されたにもかかわらず、もう一人の有力な研究員、Ian Goodfellowに80万ドル以上を
払った。 両方ともGoogleからリクルートされました。2016年6月に採用された、元カリフォルニア州立大学
バークレー校の教授で、ロボット研究者のPieter Abbeelは$ 425,000を得た。 これらの数字には
すべて契約ボーナスが含まれています。
OpenAIが非営利団体であるために、公開された税務書類に記載されている数字は、世界中の組織が
A.I.技能者に支払っている金額を垣間見せてくれた。 しかし、注意すべきなのは、OpenAIでの報酬は、
非営利団体としてストックオプションを提供することができないため、これらの研究者はこれでもまだ安売り
してるかもしれないということです。
これらの技術を理解している人は少なく、何千もの企業がその技術を使いたいと思って居るので、
トップA.I.研究者の給料は天文学的な数字になってます。
カナダの独立研究機関によれば、真に重要なA.I. researchをを行うために必要なスキルを持っている人は
世界中の22,000人しかいないと推定しています。
「需要が山のようにあるにに、一方供給は水のしずくのようにしかありません。」
AIの事業を立ち上げたSkymindの創業者であるクリス・ニコルソンは語った。
それは大学や政府にとって重大な問題を引き起こす。 彼らにもまた、A.I.技術者が必要です。
次世代の研究者に教え、これらの技術を軍隊から薬の開発に至るまで実践に移すために。
しかし、彼らは決して民間セクターで支払われている同額の給料を払えません。
以下略
>746 に送ったが何も反応ない。「使えねーよボケが!」でも良いんだけど。
アドレスが受信専用って書いてあるからねえ
「受け取りました」くらいはここに書いても良いとは思うけど
メールアドレスってもともと受信に使うものなんじゃないのかな?
送信に必要なのはSMTPなどの送信サーバーにアクセスする権利なだけで。
>>760を見て
送ってくれたメールの送り主に対してメールを送るつもりはありません
という意志だとわからないと
ただの面倒くさいヤツ
送信専用のアドレスって何だよwww
と思ってもそれを言わないのが大人
ID:u90n8Wf/ は拗ねたものの見方をする人だな。
大人にも拗ね方が強い人と、そうでない人がいますね。
秋月にPIC16F18323をリクエストした人がいるっていうが、18325と10円しか違わない。
18323は18325のサブセットだと思ってた。10円でも節約して秋月で買うべきものなんだろか。
リクエストした時点では金額はわからんしな
10円でも1000個買えば1万円の差
PICKIT4はMicrochip Directには在庫があるけど、DigikeyもMouserもなし。
なんでだろなー。
仕事でPIC使ってるならともかく、急いで買う必要あるの?
>>951 俺は使ってます。
ってか、俺の周りの人も会社も、マイコンはいろいろ使うせいか、エミュレータも割と安めのものを使ってる人が多いな。
PICについてはICDを使ってる人がいない。
PICKIT3×PIC32だと遅くてたまらん、という話もあるけど、PIC32を使わんし。
でも、PIC32でもPICKIT4なら少しはマシなんだろかと期待。
>>950 個人的には急いで買う必要はないけれど、
・今から始める人は3か4かを迷うであろうな。4が出るまで待つか、みたいな。
・Directにあるのに流通しないのは、Directは独立採算の商社として、一定のチカラがあるのかなと思ったり。
・それとも何かの理由で出荷を抑えているのかなと、もやもやしてみたり。
・SAM対応を標ぼうするのはまずいのでは、と社内の保守派からブレーキがかかってるのかな、と邪推を楽しんだり、
・出すならAVR対応に、と社内と推進派からクレームが入ったのかな、と邪推を楽しんだり。
趣味の電子工作を始めたい、部品を買う必要はありますか?
まあ、買う必要があるでしょうね。いつももらって済ますわけにはいかないと思います。
罵倒する前にちょっと考えて欲しい。
趣味だからこそ採算に囚われることなく買いたいものを買う。必要だから買うのではなく、買いたいから買う。
という立場もあれば、
趣味だからこそ実費としての出費は抑えたい
という立場もある。
違う立場をイメージできないことを罵倒することはないよ。
ID:d2WYD48g は無視することにしました。
GW突入前にPIC18F46K22のI2Cで悩んだ者です。
MSSP1のI2CにEEPROMにアトメルの128KByteのAT24CT1024Bをぶら下げました。
何故か256バイトのページライトが出来ません。
128バイトまでは成功します。
なので128バイト以下でライトする様に使ってます。
何故?
>>964 指定したアドレスがページを跨いでしまうと書き込めない
アドレス0000で256byte書けるか試してみるべし
AT24C1024Bなら普通に出来てるなあ
256B単位の書き込み
おはようございます。以前質問させていただいた
>>746です
おかげさまでLEDチカ、USART+TeraTermを用いたPCとのシリアル通信は
上手く行きましたが、USB - HIDクラスを使った通信でお手上げ状態になってしまいました…
デモの内容を確認するために、Microchip社ライブラリの真新しいフレームワーク(HID_Mouse - low_pin_count_usb_development_kit_pic18f14k50.x)を
秋月18F2550マイコンボード用のコンフィグレーション、LED用LATA、TRISA、Button用PORTA、TRISAへ適合するように
設定し直して、Debug Project で運用してみましたがダメでした…
宜しければ、ご助言いただけないでしょうか
以下、内容
[system.c] - Configration クロックに関する設定
#pragma config PLLDIV = 5 // PLL Prescaler Selection bits (Divide by 5 (20 MHz oscillator input))
#pragma config CPUDIV = OSC1_PLL2 // System Clock Postscaler Selection bits ([Primary Oscillator Src: /1][96 MHz PLL Src: /2])
#pragma config USBDIV = 2 // USB Clock Selection bit (used in Full-Speed USB mode only; UCFG:FSEN = 1) (USB clock source comes directly from the primary oscillator block with no postscale)
#pragma config FOSC = HSPLL_HS
電源に関する設定
#pragma config PWRT = ON
#pragma config VREGEN = ON
Debug Project - Step Into で1行ずつ実行した場合
usb.device.c 582行目
USBDeviceState = ATTACHED_STATE;
を実行すると、UnknownDeviceになる
→USBDeviceState が POWERED_STATE までしか進まない
その状態で、Debug Project - Reset→Continueした場合
USBDeviceState == CONFIGURED_STATE まで進むが、
app_device_mouse.c 258行目あたり
currentButtonState = BUTTON_IsPressed(BUTTON_USB_DEVICE_HID_MOUSE);
で、S1の状態を取得するものの、S1を押した状態にしても、離した状態にしてもそこから先へ展開せず
Main.cのwhile(1)ループへ戻ってしまう
その状態でまたContinue→Pauseして1行ずつ実行してみると
今度はusb_deviece.c 647行目
if(USBSuspendControl == 1){
USBClearUSBInterrupt();
return;
}
へ入りreturnしてMain.cのwhile(1)ループへ戻ってしまう そして、以下、変化無し
通信なんだから
途切れ途切れじゃ会話が通じない
デバッグはUARTとかポートで
>>934さん
お返事をしないままでいてすみません
アドバイスと温かい励ましの言葉をありがとうございました
スレは覗いていたものの、少し見栄っ張りで、「USB - HIDクラスできました〜」と成果を上げてから
お礼の言葉と一緒に書き込みたかったのですが、このようなところで引っ掛かってそのまま時が経ってしまいました…
力及ばずですみません
>>972さん
>>973さん
そうなんですか!
勉強になりました!!
速レスありがとうございます もう少し挑戦してみます
申し訳ありません
しばらく色々やってみましたが、自力では解決できないようです
懲りずにDebug Project の Continue で USBDeviceState ==CONFIGURED_STATEを獲得した後、
Step Intoを使ってスイッチOn/Offを押し分けて、mouse.movementModeの値をtrueにしたのですけど、
やっぱりカーソルが自動的に動かないです
皆様のお力に頼っても自分には無理でしたら、PS/2通信の方に切り替えて改めてそちらに挑戦してみようと思います
だからstep実行してはダメなんだって
ある一定時間ごとにデバイス(=PIC)が応答することをホスト(=PC)が期待している
step実行するとデバイスが応答を返さなくなるので正常動作しない
一度でもbreakしたらcontinueはできないと思った方がいい
mlaのソースの中に、ある間隔でこの関数を呼べ、とかコメントが書いてない?
デバッガでデバッグではなく、
>>973のようにポートなりUARTなりに
状態を出力させるコードを書いてデバッグする必要がある
976さん
お世話になっております
せっかく前の方々に適切なアドバイスをいただいたのに
十分に理解できなくてすみませんでした
ご指摘を受けて私にも状況が少しずつわかってきました
>mlaのソースの中に、ある間隔でこの関数を呼べ、とかコメントが書いてない?
拙い英語読解力で読んだところ、
1.main.c _ USBDeviceTasks();
2.usb_event.c _ USER_USB_CALLBACK_EVENT_HANDLER
あたりが該当するように思われます
とりあえず、1番でUSBDeviceState == CONFIGURED_STATEになり、
2番によって、LEDが高速点滅するところまで到達しましたが、
その先、Mouseのカーソルが自動移動するまでに至らないようです
USB通信のデバッグについては、先にもアドバイス頂いたように
ポートやUARTに状態を出力させる必要があるのですね
大変よくわかりました
ただ、電子工作入門1週間ちょっとの私には手に余るレベルのような気がします…
もういっそのこと、秋月PIC18F14K50マイコンボードを買って、ライブラリそのままで焼いてみようかと検討中です…
大変丁寧かつわかりやすいご助言をありがとうございました!
ご厚意を活かせるように頑張ります
繋いだPCのデバイスマネージャとかにはもう出てくるよね?その状態だと。
SnoopyPro(USBスニッファ)の出番かな。
デバッグモードにせずに接続した場合、LEDは高速点滅するか?
またMLAの18F14K50のソースを流用した場合、ボタンはRA3ポートに接続されていることを想定しているが、そうなっているか?
>>978さん
ご助言ありがとうございます
ご推察の通り、私の環境でもPC(Windows 7 Pro 64bit SP1)のデバイスマネージャには、
HIDってことで表示されてます
>SnoopyPro(USBスニッファ)の出番かな
英語のも少し読みましたけど、古くて危なっかしい感じのレビューが目立ちますね…
それにWin7 ProではXPモードで運用する必要があるみたいで、
私の今の環境だとCドライブ:SSDの容量が大幅に不足していて難しいようです
USB通信のデバッグがここまで難しいのかと改めて思い知りました
>>980さん
お世話になっております
>デバッグモードにせずに接続した場合、LEDは高速点滅するか?
はい、点滅しています
>またMLAの18F14K50のソースを流用した場合、ボタンはRA3ポートに接続されていることを想定しているが、そうなっているか?
18F2550用に自分の回路の都合でRA0へ書き換えちゃいました
buttons.c _ #define S1_PORT PORTAbits.RA0
これ、いけなかったですかね?
デバッグモードでは、ボタンに反応してるようでしたので、大丈夫だと思ってました
面倒がないUSB スニッファだとこんなのもある。
freeusbanalyzer.com
試用期間中は至れり尽くせりな感じだけど、
試用終わるとSnoopyProとどっこいどっこいの機能。
>>981 > 18F2550用に自分の回路の都合でRA0へ書き換えちゃいました
それなら大丈夫
あと一息の気がする、頑張れ
【追記】
始めに、system.c _ void SYSTEM_Initialize()関数で、
ADCON1レジスタを全てデジタルI/Oへ設定するように
0b00001111; を代入し、 (18F2550 データシートp.262参照)
buttons.c _ #define S1_PORT PORTAbits.RA0 を元の
#define S1_PORT PORTAbits.RA3 へ戻し、
同じく buttons.c 内 void BUTTON_Enable(BUTTON button)関数でも
TRISAbits.TRISA3 = PIN_INPUT; とTRISAもRA3用に設定し直してみましたが、
やはり状況は変わらず、LED高速点滅はするものの、mouseは自動移動しないみたいです…
>>982さん
良さそうなソフトのご紹介をありがとうございます!
ただ、試用版の使用条件がめちゃ厳しいですねw
1度に10分間、4日間だけ体験可能の制限付きの中、初心者が使いこなすのは難しいそうですね
>>983さん
前のレスが行き違いになってしまいましたが、
それなら良かったですー
そろそろスレもおしまいですし、
お世話になってるので、次スレを立ててみようと思います
テンプレに特に変更の必要は無さそうですよね
スレタイと過去スレ一覧を書き換えるだけですが、やってみます
>>987 >建てられました〜
他の人に、先にに立てられてしまった のか
慣れない自分にも 立てることができた のか
>>990 いや、話す人の思いやりが足らないだけ。
複数の意味に受け取られる表現になっていないかを、書き込む前に確認するべき。
スレの終わりが差し迫っているのに次スレが立たない。
制限がかかって立てられない人がいる
立てる気もないけど、立っていれば来る人もいる
立てるのにひと手間がかかることは事実。
とりあえず、ここは立てた事実に敬意を払えばいい。
善意を装って、アンチなタイトルでスレ立てする屑もいるけれど、
>>987はそうではない。
残業時間を少なくするくらい空気や行間を読まないとなw
>>989 >>986、
>>987と読んでその疑問なら読解力不足。
埋め
また質問させて貰いました
USB通信の道のりが険し過ぎる……
232Cならチップだけど、USBはボードだなぁ・・・
はい、逃げてますw
埋め
)((()(()()))())(()()()))(()())(((()())(()))()))))())(()(()(()(())((()(())()(
)()()))))))))((()())(((()(((()((()))((())(())(((()())))))))()(())(())(()((((
)()(()))()())())))())()()((()()())(())())(()((()(((()))(()(())(()))))()(((((
(())(()())()((((()()))()()()(())()())()(()))())))())((()(((()((()((())()))))
()))))())))())((()))((())))()())()(())()))())(()((((()()(((()(())(()()()((((
)()()((((())()()((()((()()())()))(()))((())))())))()()(())())())()(()((((())
))))((())()(((()(())()(()((())())()(()(()))()()()()())))()(((()())()()((()))
)())(()(()))(((()())()))())))))))(((((()((()()()))((((()()()()()()))()()(()(
(()((()())(((((()))((()()))))())(())))())))())(()(())(()())()()))(()))((((((
()()((())(())((((()(()()))))()())(((((((()()())))())()()()()))(()))())()()()
))())(()(())))))()(()(())(((((()))(()))((())()((()())((()))((())()())())(()(
()))())))())))))(()(()()())(()()())()))(()))(((()(()(())))((())(()()((((((((
)())()(((()(((())()))))()()(()(()()()(()())())))())()()(())()()()())(()((()(
))(((((((()((()()()())((())(()())())(()())(()(())()((())(())()()()()))))))))
())()))(()((((()())(()((())))(()(((())()()()()(())))))))))))((()()(()())((((
)))()(()((()))((()((()((()(()))()()))(((()))(())())())(()())))((()())())()((
))(()()(((())(()(((()())()))))((()()())))(())(()))(())(()))()()((()(())(())(
))(()(())))))()()()(()())((((((()(())((())())))()()()()((())()((())())(()())
())(())))(((()))()))()())(((()(())((()()(()())()))(()(()((((())()())()()()))
()))((())()))))))))))(()(((()(()(()))(()(()))(((((()()(((())))()(())))(((()(
)(()))()))()())())(()))((()()()(())((())())))((((())()())()(((((())(())))(((
(())())()()()()())(((())))(()()((((((((()))()((())()))))()()(()())))(()))()(
))))(()()((())()))))(()))(())(())()))(()(()()()()()()()())((((())((())((()((
((())()((()()()())(()((())))(())(()()()))()))()()(()((()((()((())())))))()()
()(())())(()(()(((((()((((())))(())())(())()))))))(())())(()(((()())(()())))
)))))((()())((((((())(())(((((()()))())((()())()())()))))))(())))((()))(((((
)(((()()))(()()(()))))()()))()()()(()(((((())((((()))()()))())))))(()(())(((
(()()((()()(()(())))())()((()())(((())((((((()))))))(())))((((()()))))))()()
)(()())(())()))())))())(()))(((())))((())))))((())())((((()((()((())((()()((
)))((())((()((())()))())(((((((())())((()))(())()(()))())())())()())()(())((
))(()(()((()))(((())((()())()(()()())(()))))))())()((((()())(())(((())()()))
)))())((((((()))))()(()(())((()())())))(()(()((()))()())()(())(((()()((())))
)())))(((((()((()))())()(())((()()))((()())())(())()(()((()()()))()()()(()))
))((()))))(())(((((()(()((()()()))))((((()(()()))(()))(((((())()))))))(()())
))())())(((()((((()()))((((())(()()())))(()()(()()))))()))(()((()()()))(()()
)))))(()(()((())))(())(()))()))(()(()()(((()(())(()((()))()(()))()()()((())(
(()((()()(())()))(()(((()()()))(())))()))()))))())(()()(())())(())((((()(()(
()))))))(()))()))(())(()((()()())())))(())(()()(()())(((())()()()())((((((((
)))(())((()(((()(())(()()()())()))))))((())))(())(((()()()()())(())())((()((
(()((()()(())(()()((())())((((())(())))()(()()()((())))())))()()(())))()()()
)))())((((()))(()))()()((()(((()()()(())(())(()())()()))))()((()(()()())(())
)((((())(()(()())))((()(((())))())((()()))())))))())()(((()((())()())(()(())
()((())))()())()(()((())(())(((()))(()(()(()((((()())))))(((((())))))(()))))
()(())(((()(()()))))))()(()((((())(()((((()())))(()))))()()(()()()))(()()())
))()()(()(()((()))))))())(((((()))()))))()))()(()()()(())((())))(()(((((()((
)()())()))))((((((((())()(()(((()()))(()()(())(()))((((())())))()()()))(()))
(()(()))()))(())())()))()((()()(())(((()))))())(((()((()(((((()())()()))()))
(())()())()()))(()))(())))())))())(()(()()()(((()(((()))))((()()))((())(((((
)))((()))(()((()())()((()))))(())))))))((()()(())(((()())()))((((())(((()()(
)(()())(((((())))(()()))))(()(()())(()))))(()(((())))(()()()))(())((())(()((
-curl
lud20250129170158caこのスレへの固定リンク: http://5chb.net/r/denki/1518524799/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。
TOPへ TOPへ
全掲示板一覧 この掲示板へ 人気スレ |
>50
>100
>200
>300
>500
>1000枚
新着画像
↓「初めてのPIC 0x0e ->画像>9枚 」を見た人も見ています:
・初めてのPIC 0x0C
・初めてのPIC 0x0A
・初めてのPIC 0x0B
・初めてのPIC 0x12
・初めてのPIC 0x11
・初めてのPIC 0x14
・初めてのPIC 0x15
・初めてのPIC 0x13
・初めてのPIC 0x10
・初めてのPIC 0x08
・初めてのPIC 0x09
・初めてのPIC 0x05 ©2ch.net
・初めてのPIC 0x20
・初めてのPIC 0x23
・初めてのPIC 0x25 ※顔文字は禁止です。
・初めてのPIC 0x24 ※顔文字は禁則事項です!
・初めてのPIC 0x03
・初めてのPIC 0x06
・初めての東方に紅魔郷を選んだんですが…
・初めての宝島
・初めての現金化
・初めての現金化
・初めてのアナル
・初めての雑談スレ!
・初めてのデリヘル読んだ
・勇気を出して初めての現金化
・お前らの初めてのホモセ
・初めてのアクアテラリウム
・私のおじいさんがくれた初めてのキャンディ
・初めてのCADでサーキット作ってみた
・令和で初めてのガンダムを予想するスレ
・初めての空に感動したのにお前らはFFか
・初めてのサバゲ武器、装備のすすめ59
・【精通現象】初めてのオナニーのズリネタなに??? ★3
・初めてのバイトの給料で買ったイヤホン
・風俗の良かった思い出、初めての思い出
・僕にもコテとして初めての後輩が出来るわけですね
・痛風野郎も安心!尿酸値下げる初めてのサプリ
・初めてのカテコ挨拶2022回目【無断転載禁止】
・【英国】初めての補聴器に大喜び、赤ちゃんの動画が話題に
・タンブラーってのを初めて買ったんだけどすごいねこれは
・【悲報】ワイ初めてのコインランドリーで300円損する
・NMB市川美織(23)、人生初めてのショートカットになる
・NMB市川美織(23)、人生初めてのショートカットになる
・「初めての人は不安よね。明日花キララ 動きます」←これ
・【金キツネ】 初めてだらけの広島遠征対策会議
・初めてTWICE観たんだがパフォ悪くないじゃん
・【宇宙】地球型惑星に水蒸気 存在を初めて確認
・初めての売り専
・初めての投稿
・初めてのスレ
・初めてのスレたて
・初めての出会い系サイト 13
・初めての彼氏におっぱいを
・初めてのスレ立てしてみた
・初めてのオナニーは何歳で?
・初めての出会い系サイト 14
・恋愛とは初めての相手とするもの
・初めての出会い系サイト 65
・初めての出会い系サイト 52
09:34:14 up 17 days, 10:37, 1 user, load average: 9.79, 9.30, 9.14
in 0.057219982147217 sec
@0.057219982147217@0b7 on 013023
|