1 :
仕様書無しさん :
2008/01/13(日) 12:24:58
2 :
仕様書無しさん :2008/01/13(日) 14:18:58
>>1 乙
では、僭越ながらチャタリング論争について
■チャタリングとは何か
スイッチのON/OFFにおいて、スイッチのバウンドによって生じる信号
波形としては ________|_|~U~~~~~~~~~~~~~U~~|___|_________ のような感じになる。
大型のスイッチはパチンと音がする。つまり接点の振動が続いている間は運が悪いと接点が外れたりする
リレーやリミットスイッチのようにA接点B接点が付いてるものでは配線の仕方でチャタリングが出ないように
することも可能だ。
■チャタリング取りとは何か、
昔の大型のスイッチはパチンと音がするくらいでチャタリング時間が長く、酷い場合には100msもあり
チャタリング対策でサンプリングを遅くするとなると応答が当然悪くなる。
そこで、チャタリングの後半で生じるヒゲ(リバウンド)については 短時間しか出ない事に着目した処理が行われた
これが【チャタリング取り】として浸透し、このヒゲを取る手法を【チャタリング取り】と呼ばれている。
現在主流のゴム・メンブレン・タクトスイッチでは押してもカチであり、これはクリック感を付ける為にワザワザ
出してるわけで、多くのスイッチのチャタリング時間は10ms以下となっている。
よって、チャタリング取りと書かれた処理はチャタリングを実際には取るためのものではないが、
歴史的経緯よりそう呼ばれている。
3 :
2 :2008/01/13(日) 14:29:52
■ヒゲとは _______________|_______________________ のように信号中に短いパルスで来る信号をヒゲと呼んでいる。 ■チャタリング取りの実際の手法 一定時間T毎にサンプリング N回一致採用 というのが一般的な手法である。 カウンタを用意し、不一致でカウンタをリセット、カウント値がNになれば採用するというもの。 これはデジスイッチなど変更途中で正しくないコードが出るものでは現在も使われる。 前回のビットと一致した場合に採用するという2回一致採用が ビット単位にチャタリング取りをする手法として良く使われる。 これは論理演算だけで書け、多ビットを一度に処理出来る為にコストが低い為である。 このチャタリング取りは(N-1)*Tより短い単発のヒゲを取る事が出来る。 サンプリング中にヒゲが確率pで来た場合 およそ p^2 に誤動作を下げられる。 pが1日に数度の状態でもp^2は十分に小さく、コストの割りに効果は大きい。
4 :
2 :2008/01/13(日) 14:33:50
■論理演算によるチャタリング取りの例 前スレで紹介されていたもの static int key=0; int chatKey(int newkey) { int wk; static int oldkey=0; wk =(~(oldkey^newkey)) & (key^newkey); //2回同じで かつ異なるbitを1に oldkey=newkey; key ^=wk; return wk & key; //今回1に変化したビットだけ1にする } このコードが有用であるのかどうかが前スレで議論された
5 :
2 :2008/01/13(日) 14:47:02
私は有用派で、実際に使ってるので、その理由を書くきます。 スイッチやポートの入力での誤信号を レベルで来る場合と、ヒゲで来る場合の2種類に分けます。 経験上、レベルで来る場合は壊れている場合が多く、ヒゲで来る場合は外乱の場合が多いのです。 故障は接触不良やショートであるので当然といえば当然です。 ヒゲで来る外乱は、 操作する人が静電気を帯びて、その放電 近くのモータの接触不良でバリバリと火花が飛んでる すぐ近くにリレーあってその動作による誘導 放射線の影響 というように当然短いパルスでやってくる場合が殆どです。 もちろん違法無線や携帯電話のようにある程度レベルで来る場合もあります。 故障のようにレベルで来る誤信号はどうしようもありません。 ただ、故障であれば再現性があり、誰が見ても故障だとわかります。 一方、ヒゲで来るノイズはそうではありません。 「ノイズせいでしょう」と答えるよりは、これをある程度除去すべきだというのが採用の理由です。 なお、ヒゲのようなノイズから保護する為にコンデンサを入れる事が多いのですが、 その結果、そのコンデンサの容量によっては、逆にパルス幅が長くなってしまうので チャタリング取りの周期Tとこの時定数をあわせる必要があります。 時定数がサンプリング周期より長いと何の意味もありません。
ジェネレーションギャップによる例: 上司 「チャタリング処理を入れておけよ」 部下 「はい大丈夫です」 実際はチャタリング時間をカタログで調べたら10msで、サンプリング間隔が20msだから必要無い という意味の大丈夫であった。 上司はチャタリング取りという名の、ノイズ取りを入れておけという意味だったのに
>>6 それはジェネレーションギャップ関係なく駄目だろ
確率1/2でゴミ拾うじゃん
チャタリング講座ワロタ どこまで親切なんだよw
>>8 レビューって言葉だけがはやってるだけみたいだよ。
11 :
あ :2008/01/13(日) 17:22:41
チャタリングで喧嘩する これこそ組み込みの真髄
チャタリングって なんか奥が深いんだな。 去年ROM出したのが不安になってきたよ。
前すれでヒゲって何?って聞いた者だけど 教えてくれてありがとう
煽りじゃなくて素で知らなかったのか
>>14 うちは小ロットだからそういうのは採用出来ないな。
でも低EMSって、
ノイズ減らす為に普段はキースキャンしないで ポートをLにして待ってるって事かな
いやぐだぐだいうより石買ったほうが安いこともあるんじゃねえの?
俺のところだとスイッチ数個しか使わないからなあ。専用の石をつけるほうがややこしくなる。 たくさん使うときには専用のがあったほうがいい場合もあるだろうけど。
だぁかぁらぁ ポーリングで状態を定時サンプリングすれば、ヒゲノイズもチャタもみんな消えるよ。 周期は最低限度のなるべく遅い周期にすること。
ソフトでノイズが消えるわけないだろう、何言ってんだ…
ソフトで消えるよw おまえら、木を見て森を見ずだろ。
>>21 大体は3回もチェックすれば実用範囲内でチャタは取れるよね?
ヒゲを拾っちゃう確率が1万分の1だとしたら
3回殴って地球を救え
3回拾って3回ともヒゲである確率は1兆分の1になるわけで
これだけでだいぶ違うと思うが、どうよ?
ハード的に発生するノイズをソフトで消せるわけないだろ
ソフトでできるのはノイズを拾わないようにするだけ
>ポーリングで状態を定時サンプリングすれば
さっぱりわかんね、周期を100ms以上とるのか?
えらく応答の悪いものになりそうだが
>>23 3回って周期は・・・?
たまたまこのスレを開いた組み込みにぜんぜん関わってない者だけど、 チャタリング講座に思わず読み入ってしまった。(`・ω・´)
>>24 さぁ
それこそモノしだいというかノイズ源次第じゃない?
適当な間隔でいいんじゃないの?
人が手で押すスイッチなんかなら10ms間隔も取れば
十分だけど
27 :
あ :2008/01/14(月) 01:18:38
C-R delay+シュミットをつけたいところだが、コストが上がるとかの理由で ハード屋が許さないんだよな
だいたい、チャタとかサージとか言っても、10msより長い不安定状態なんて無いんだよ。 だから10ms以上の長い周期でサンプリングすれば、チャタを1回くらい拾っても影響は少ないからね。(0から1に変化する途中に1か0が1度だけ現れても連続である事に変わりないから) そんなに神経質になるような事じゃないさ。
>>28 それは長期的に見れば安定したデータを拾うから
問題ないと言ってるのか?
チャタでもヒゲでもどうでもいいが、
神経質にならなくて良い入力なら、そうだろうな
影響が大きいから対策が必要なわけで、
「何れ安定するからたいした問題じゃない」
ってのは、前提からして違うだろ
>>29 だから、人が死ぬほどのとこならハードでガッチガチにきめるけど
1兆分の1の確率で起きることなんてどうでもいい ってとこなら
ソフトでチャタとってその分量産コスト下げるでしょ
>>27 せめて直列抵抗1本入れてもらうといいよ。
最近の組み込みマイコンは全部のポートが双方向だから、
普段は出力にして、前回の読み出し結果を出力しておく
ポートを読みたい時だけ 入力ポートに変更して、読み出す。
直列抵抗とポートの浮遊容量でシュミット特性が出せるよ。
入力ポートに変更してから読み出すまでの時間で特性が調整出来るよ
>>28 チャタリング途中を拾っても、サンプリングが遅いなら問題は無いけど
サージによる誤信号ならひらってしまうと、それは誤動作って事になるだろ。
サージのように再現性の無い信号で誤動作の頻度高いと出荷した先々から問い合わせ来て
走り回る事になるぞ。
>>30 2度一致採用は、確率pに対してp^2で効くから、ハードでガチガチに対策するような
場合に入れればpが小さいのだからさらに効果が大きいね。
ハードでやってるなら、なおさらそれだけ気を使ってるって事だから簡単なノイズ取りは入れておこうと思う。
1:サージ対策の2度読み 2:チャタ対策のms単位の定期読み どっちも必要だお。
周辺にLSIくっつけてあったとして、割り込みがエッジ検出だったとしても、エッジのチャタリングがあるといって 割り込み制御線をソフトでポーリングしてとか言い出す奴はまあいないんだろ? つまり、ハード屋がへぼですかぽんたんで手抜きのハード設計押し付けてくるときだけ発生する 悲しい出来事だってことでいいんじゃねえか?だから「プログラマー」のスレッドなのに回路どうするで 解決しようとする輩がでてくるんじゃないのかねぇ。
>>35 組み込み屋が回路無視してどーする
組み込みってのは、H/WとS/Wの協調して
目的のシステム作り上げる物なんだから
境界は壁作るんじゃなくてお互いに1歩踏み込んで
やらなきゃ良い物出来る訳無いだろう
まぁ、組み込みに限った話じゃないが
大体、分担決めると隙間できるもんな。
ハード屋:戦士 ソフト屋:魔術師 組込屋:侍
>>33 だから、確率論が適用できないものに確率モデルを当てはめるのがそもそもの
間違いだと何度言えば……。
MCUならMCUの入力ポートにノイズが乗ってくるような環境なら
入力ポートの電位があるレベル以上かどうかは確率事象とは限らないのは
ちょっと考えればわかるだろう。
だから単なる自己満足に過ぎんよ。
Nothingとは言わないがほとんど意味なし。
で?
幼稚臭い奴。 こういうのが40面下げたオッサンだったりするからな今日日の日本は。
>>35 スイッチや外部入力にノイズ対策をするのは、配線がそれだけ長くなるのと
コネクタ等も入ってくるので、当然確率的に頻度が多くなるからさ。
さすがに1チップマイコンの内蔵なら疑わないけど
周辺LSIならもしノイズが入っていてもリカバリーが出来るかどうか くらいは考えておくけどな。
>>39 確率論なんて適用出来ないというのはどうして?
その時にノイズがどれだけ来てるかどうかはその場所で調査すれば判る事。
ノイズ測定モードとか作ったりしない? たとえばチャタリング取りが
取ったエッジの回数(その後で採用しなかった回数)とかさ
火花試験とかする時、そういうデータ取っておかないと
単にチャタリング処理入れただけじゃどれくらい強度があるか判らないでしょ?
>>42 人間的な時間尺度(たとえば秒のオーダー)ならほぼ確率モデルでOKだと思う。
10msのオーダーだとたぶん微妙。
理由は電位というものはサイコロの目のように時間軸上で離散的な値じゃないから。
本当は理由はそれだけじゃないけど、 すまない電磁気学な知識と語彙が不足しているのでうまくいえない。 でもノイズが乗ってくるような環境において、時刻T1の前後のT0,T2における電位が T1における電位と無関係であるはずがないことはなんとなく分かるでしょ
>>43 離散的じゃないってのはある程度幅を持ってるって事を言いたいんだよね?
それは実際にノイズがやってきた時の波形を見て言ってるんだよね?
ノイズ取りをしないって発想が出るって事は、キミの所のハード屋が頑張ってるのさ。
だから、CRが入っていれる。
CRが入っていると、、パルスが入って来る頻度は減るけど入って来た場合は長くなるよ。
だから、この手のチャタリング取りを入れる場合は 回路屋とそれなりにコミュニケーションを取らないといけない。
CRの時定数に比例して強度は増すだけだけど
2度読みを入れれば一気に2乗に出来るから、CRの時定数を減らして貰って2度読みを入れた方が
より安全側で使えんだからさ。
>>44 ノイズの原因を考えてごらんよ。
携帯電話や違法無線ならある程度レベルかもしれないが、
火花放電や電磁誘導ならパルスで来る。
それこそ電磁気的にしかノイズはやって来ないんだからさ
真の一流ぞろいだから、言うことが流石やわwwwwwwwww
>>43 何か勘違いしてるみたいだけど
幅があるならサンプリングレートもそれにあわせて変更するものだよ
「ヒゲが10ms出るんすよ」って言った日にゃそれ以上の幅で
観測しなきゃ意味が無いのは自明でしょう。
うん、だから何度も繰り返すけど そもそもノイズが乗っかるような環境ならこちらが想定するような「都合のいい」 ノイズのみが乗っかる保障は何もないよ。 10ms間隔でスキャンしているとする。 そんな外乱が乗ってくるような環境では、パルスが20ms超える可能性も否定できないし、 のっかるノイズがN*100Hzの成分もってる可能性も否定できないし、 パルスが(10/N)ms間隔で連続して数回のってくる可能性も否定できない。 こういう自分の頭の中のモデルに「都合のいい」ケースだけを想定する人って プログラマにもハード屋さんにも結構いるけど、俺には理解できない発想としか言いようがない。
「都合の悪い」ケースだけを想定して、「都合の良い」ケースを一切無視するってのもどうかと思うぞ
51 :
仕様書無しさん :2008/01/14(月) 15:05:14
>>50 だからその発想が理解できないわけ。
というか、なるほどそのような発想で万事オッケーってことならそもそも
ノイズ除去かんて考えなくていいじゃん。
「都合のいいケース」ではノイズなんて乗ってこないからw
回路的に想像できるケースだけでいいだろ。 それ以外は故障なんだから。
>>49 そりゃ都合の悪いケースは沢山あるよ。
でもその10ms以上のノイズはどうやって空中を飛んでくるわけ?
検波回路が入ってなければ空中を飛んでくるノイズでそんな長いパルスになる事はないよ。
そういう長いのは接触不良で起きるから別にいいんだよ。
機械の故障なら再現性があるから、ソフト設計のせいにはならないんだからさ。
そういう意味じゃヘタにハードでチャタリングを取ろうとすると、それが検波回路になりかねない。
ハードは抵抗1本くらいにしてもらって、ソフトで短いパルスを取った方が安全だ。
抵抗を入れておけば普段出力にしておけるからね。
タイミング良く連続してノイズが来たら取れないけど、パルス幅が十分短いなら
たとえ連続してパルスが来ていても連続してみる確率は低い。
そのためにもポートの入力の時定数を短くしてもらう方がいい。
CRで長くしてしまうと それを見てしまうチャンスも増えてしまうからね。
ここらでAlpha原理主義者が割り込んできてくれないかなぁ
>>49 そんなの仕様次第でしょ
たとえば10ms以上HiがあったらONとするという機器を
接続してる状況なら 外乱が20msあったって
そんなの知ったことか で終了でしょう
組み込みと聞いて飛んできましたがここはチャタリング議論スレでしたか?
つーか何が議論になってるかわからん。 もっと対立軸をはっきりしてくれ。 想定されるのより酷いノイズが来るから、 対策はまったく意味がないとか主張なのか知らん。
ソフトでのチャタ除去に意味があるか無いか という話 ・どんなときもハードでチャタ除去しなきゃ駄目だろ ・いや、いつだってソフトのチャタ除去は万能だ ・状況次第でどっちも意味あるし使うだろ常考 がベースとなってる
・ ノイズ対策はソフトだけでやるのは無理だけど、ハードだけでやるのも効率的じゃない。 も入れてておいて。 ハードで頑張るにはCR入れて時定数を増やすわけだけど これはノイズを取る頻度は下げるけど、入ってしまった場合にパルス幅を広げてしまう。 ソフト側がポーリングしてるなら逆に拾う確率を上げてしまう。 だから、ハード側で頻度を下げた上で、ソフトで2度読みを入れて誤動作の確率を下げるのが最善。
2度じゃ足りないとは思うけど、そこ以外は同意
んなもん要求仕様で変わるだろうに一票で。 >・状況次第でどっちも意味あるし使うだろ常考 これに近くなるのかな? ソフトで対応可能ならそうした方が一般的にはコストは下がるだろうし。
結論は普通に3だな。想定される製品で変わるわ。 ゲームのスイッチと医療機器のスイッチじゃ 求められる性能とコストがそれぞれ違うもん。
普通結論はそうだろ ソフトチャタとりなんかしてんじゃねーwwwバーカバーカってのが一人暴れてるだけ
たとえばコストは制限なしで、 絶対に誤検出しないスイッチを作れ とか言うと議論が成立するぞ。 核ミサイル発射ボタンとかな。 まずは無停電電源からかな〜
チャタリングだけの問題なら、チャタリングが出ない配線にすればいいんじゃいの? 接点2ついるけどさ
そこまで条件がつくと、ここでやる話題じゃないような気がする そもそもそんな仕事をする奴がここに居るのかって
核ミサイル発射ボタンは応答性悪くても構わないから簡単なんじゃないかな。
そもそもマイコン入ってないと思うぞ。
>>69 それじゃぁワンボタンで複数サイロからの時差発射はできんだろ。
>>70 NASA謹製のピタゴラ核発射スイッチに決まってんだろ
遅延管を使ってるとか
>>63 ま、そうだよな
ゲームのスイッチは医療機器に比べて要求性能がかなりシビアだからな
75 :
仕様書無しさん :2008/01/14(月) 20:42:40
>70 スイッチ入れる→ベルが鳴る→宿直が導火線に点火。
>>64 俺はその一人をどうしても説得したいんだ。 俺の今年の目標だ。
あれって2人で ready? go. って同時にONしないと 発射しないんじゃなかったけか。 随分昔の映画で見たな。
艦長と副長と政治士官が...
只のリレーのAND? ぽ − り ん ぐ は?
スイッチ2個を直列じゃダメ?
>>80 そりゃだめ。
狂った1人が時間差でオンできちゃうから。
2人で同時というのが味噌。
スイッチが2つあるとき、同時に押されないようにしたいんだけど どうしたら格好いい? なんかANDとかORとか使って同時押しを防げる手段は無い? シビアなタイミングはまぁ無視してもいいや
日本語になってないでしょ。 「同時押しを防ぐ」とは?
先に押した方だけ有効、とか?
>>31 いいアイディアを教えてもらった、ありがとう。
片方押したら反対側が飛び出るようにすればおk?
>>86 ハード屋を説得する場合は、
CRで鈍らせた方がいい筈だって人も多いからさ、
ノイズはパルスで来るから、
ソフト側でチャタリング処理をするには出来るだけ時定数が短い方がいいって事を辛抱強く説明する事。
また、出力ポートにしてる間はポート側のインピータンスは普段は非常に低くなってるから
確率的には故障し難くなってる事。 も言うといいよ
>>84 同時押しっていうのはスイッチが同時に押されること
片方が押されている間はもう片方が無効になって星井
完全に同時なら1P側が勝つようにしたい
>>83 ハード的にやるならフリップフロップ+早押し回路 でgoogelさん
ソフトでやるならパラレルで読んで
0なら待つ
0以外なら、0b10 か 0b01 の時にはそのまま読む
0b11の時にはランダムに選択でいいんじゃないの?
>>64 そんなことはいってないでしょ。
人のいってること勝手に変更するなよ。
俺が言ってるのは、
「N度読みして一致したら採用、なんて手法はただの自己満足に過ぎず実効的な意味は殆どない」
多分、ここの住人は、核施設のメルトスイッチとか、ICBMの発射スイッチを想定してるのかな? あ、だとしたら、10秒間押し続けて初めてONとかにするかw
>>93 そりゃ2度読みを連続して行ったら意味無いのは当たり前だろ
十分な間隔を空けないと効果は無いのは赤子でもわかる
>>95 まーた人が言ってもいないことを勝手に捏造するw
もちろん 十分な間隔 というのは要求仕様に依る 10ms必要なときもあれば10usで十分なこともある
>>93 自己満足では無いと思うよ。
チャタ拾い率を1/100としたら2回読むなら1/10000になる
3度読みなら1/1000000だ
この場合、読み出し間隔を一定に開ける必要あるけど
その間隔は何を繋げてるか、によって変わる
>>93 「適切な間隔を空けずに」という条件は書き忘れか?
だったら、あながち間違いじゃないが
まぁ、仕様。回路なんかの条件次第だけど
>>94 基本的な考え方はまさにその通りじゃないか
10秒押されることが条件なら、途中で2,3秒押されたって
チャタとして除去するという話でしょう
>>98 だから確率モデルは適用できない筈、と何度もいってるでしょうがw
まあこのスレに限らないけど鳥頭多いな
うわ、違うんだ。。。。。。
>>94 そのときは、あれだな、大雑把に言えば
1秒周期でサンプリングを行い10回連続でONだったときにミサイル発射
とかそういうレベルの話だろ
これをmsだのμsだのでやればおkじゃね?
>>101 なぜ適用できないの? 興味わいてきた。
数学的に解説キボン
工業製品のすべてが確率論の上である程度の不良品を市場に出している。
106 :
仕様書無しさん :2008/01/14(月) 23:15:35
おい。
>>93 。お前はどういう手法なら満足するんだ。まずそれを言え。
>>103 ああ、きっとそうだろうな。
その1回のサンプリングで、毎回暗号化された承認コードの確認をしてるんだねw
そして、サンプリング結果を暗号化してサーバーに保管・・・。
>>107 まあ普通にその程度以上のことはやってると思うよ
>>104 繰り返しだがマクロな時間的尺度ではおそらく確率モデルで考えて問題ない。
10msのような時間尺度の場合はかなり微妙なはず。
直接的な説明をする能力が申し訳ないけどないのでたとえ話で勘弁して。
たとえば一週間の間に雨が降るかどうかは、場所と季節が同じなら
恐らく純粋に確率モデルで考えて問題ない。
問題ない、とは先週雨が降ったかどうかとは独立した事象と考えてよいだろうという意味。
同じことを日(day)単位で考えたらかなり微妙、時間単位で考えるのは完全に狂った発想であるのは分かるよね?
つまりそれと同じことよ。
なんかすげー的外れなこと考えてねーかおまい
天候を確率モデルで考えて問題ないなんて、 全世界のスーパコンピュータメーカを敵に回すような言い方。
>>109 チャタは得てして連続して起こるから、直近で再入力取っても意味ねーよ
ってことを言いたいの?
それでも、そのチャタを拾う確率は2度読み3度読みで
減りこそすれ 間違っても少なくとも増えることは無いよ
>>111 そういう揚げ足取りしなさんな。
もちろんそういう観測情報が与えられない情況を仮定した場合の話に決まってる。
ノイズの話にしたって、たとえば電子ライターのカチカチ(何ていうんだろう?あの小さいスタンガンみたいの)
を持っている人間からしたら、次の1秒間の間に装置が入力をご認識するかどうかは決定論の問題になるが、
装置側から見たらそんなの想定外の事態で確率論ですらないでしょ。
>>114 入力が10ms以上あったときONにする みたいな条件下で
それに近い値でノイズがばっこばっこ出るような状態なら
そりゃハード屋の開発ルームに海原雄山が殴り込むけど
そういう最低限っぽいところは乗り越えてる前提でなら
どうよ
で、何が言いたいんだろう。 その手のノイズは系の時間特性から十分な間をおいた数度のサンプルで多数決をすれば除去できるんじゃないのか
>>116 「系の時間特性から十分な間」というものは計算出来ないから
したがって サンプリングによるチャタ除去も出来ない
という主張と思われます
>>117 むー。
設計とはなんと心得るか、て感じだなあ。
ま、ヨホドひどいハード屋を擁したところにブッコまれた過去があるんでしょう そういった辺が信用出来ないトラウマを抱えては、生きるのもからいでしょう。
>>117 「つまり
>>115 の前提は無しで、ありとあらゆるノイズが
入力され続ける可能性がありうる」ってことか?
そりゃ、チャタ・ノイズ云々言う前に使い物になんねーだろ
>>117 だから違うってw
チャタじゃなくてノイズの除去の話をしてるんでしょ。
N回スキャンして一致を取るべき、っていってる人も、
純粋にチャタの除去に限ればそんな面倒な操作は不要であることは認めてるはずだと思ったけど?
ていうかN回サンプリングでノイズが取れるならチャタも取れるだろ
>>114 電子ライターにはマイコン載ってない
ほんと何が言いたいのかわからん
決定論とか確率論とかずれずれだな
いろんな本いっぱい読んで日本語文章作成能力を鍛えよう
>>123 おいおいマジメにいってるのかよ
まあ電子ライターのカチカチっていうのは年代を選ぶ知識かもしれないけど、
確率論とか決定論っていうのは常識的に誰でも知ってる述語だろうw
ラプラスの悪魔とか知らんのか。
ちなみに「カチカチ」っていうのは電気的な火花を飛ばすライターの着火装置のことで
昔は(今もあるのかもしれないが)それを使って特定の電子装置を誤動作させる
犯罪行為がよくあったらしい。
>>124 で、
>>114 の作る装置は誤動作するわけだな。
N回サンプリング入れとけば対処できるのにね。
>>124 そういう問題じゃなくて、
何故そこから、N回読み出しなんて無意味という結論になるのかが
誰も理解できないんだと思うぞ
>>126 「誰も」じゃなくて「君が」理解できないんでしょ。
だから繰り返し何度も言っているように実に簡単な話だ。
N回スキャンして一致を取るとノイズが除去できる(誤認識の確率を低くできる)、という命題は、
それを主張している人が書いているように、各スキャンの結果が独立事象であり
確率論的に扱えることを前提としている。
だからその前提が成立しないことを示せばそれが間違っていることの証明として
必要十分でしょ?違うかい?
>>127 それは何度も確率で示されてる、といいます。
それを覆す「証明」をキボンしてる、といいます。
>>127 ????
電子ライターの例を挙げてるが、
その方法で誤動作する原因と
その信号パターンに対する考察結果を示した上で
何ゆえ意味が無いか説明できるか?
>>127 何を言いたいのかよく分からんが、サンプリングのタイミングとノイズが偶然同期することを心配してるの?
それってものすごいレアケースじゃね?
チャタリングは、チャタの幅より長い周期のポーリングで解決。 不意に起きるスパークノイズは、もともとポーリングでは拾わない。 つうことで、対象の信号を直接割り込みなんかに使わないで、 タイマー周期でサンプリングすれば全て解決!
電子ライターをすぐそばで使うなんてレアな状況を誰が想定するんだよ… パチンコみたいにわざと誤動作させるような奴が居るのでもない限り、 設計時点でそこまでの動作保障なんか考えんぞ 周期的なノイズがある環境で使われることがわかってるなら、 最初からその周期への対策をする(フィルターを入れる、サンプリング周期を変える等)だろうし
臭気的な野伊豆なんて、基板腐ってる証拠。
>>131 まあそれが一般解だよな (例外もあるだろうけど)
誰か、チャタリング除去・ノイズ除去講座を ニコニコ動画で揚げてくれないか
カチカチはゲーセンで大活躍したね もっと強烈なショック与える家電もあるがそれでカチリとすると 人間がショックで倒れるほどのショックが・・・ 基盤焼けるよな・・・
>>109 つまりノイズの発生確率が乱歩的だといいたいんだよね?
ノイズが起きたあたりではpが異常に大きくなってるというモデルなわけね?
たとえば1秒で見たら Pは1/10000くらいだけど ノイズが起きた後10msではPが1/100くらいになってると。
だから2度読みを入れても1/100^2 = 10000で同じだと。
それは違うよ。この場合の確率はP1*P2になる。
何もしない場合は1/1万で対策を入れたら1/100万なら対策を入れるべきだろ?
>>131 不意に起きるスパークノイズは、短いパルス幅だから確率的に滅多に拾わないって事?
でも滅多に拾わなくて、タマに拾うから厄介なんだぜ。
滅多に拾わないから2度一致を入れれば、その滅多をありえないくらい少ない頻度に出来るんだぜ。
138 :
仕様書無しさん :2008/01/15(火) 08:33:07
>>132 機械の周りで火花飛ばして試験したりしないの?
電子ライタ横で使うなんてレアじゃないし、
プラントなんかでは電子ライターの火花並のがアチコチスパークしてるぜ。
家電だって、冬場は静電気でパチパチ火花飛ぶのは覚悟の上なんだぜ
>>137 >滅多に拾わないから2度一致
だから2度目は次の周期で読む
>>140 うん、入れる。
個人的には2度では足りないと思ってるけど、まあいいや
N回一致ということで。
ここで納得した気になっても、多分どっかで痛い目見るぞ。 二度読み云々はとりあえずやめとけ。自分の頭使うほうがいいんじゃね?
そりゃそうだ 知識だけじゃ意味が無い 血肉にしなきゃ
自分の頭使えないなら、とりあえず15〜30msのサンプリングで2度読み不一致読み捨てを入れておけ。 魔よけにはこれで十分だ。
ロザリオ?
こいつらが医療機器担当でないことを切に思ふ。
モカさんよりも
確かに携帯電話くらいで誤動作するペースメーカ作ってるなんてな
いいえ、ケフィア(みたいなモノで誤動作)です。
>>137 最初の二行はおっしゃる通り。
まあ確かに、MTBF的な発想において多少の意味があることは認める。
だたP2の大きさの見積もりは、例によって「都合のよいように」考えすぎだと思う。
そもそもノイズの影響を心配する必要がある環境なら、P2 = 0.99の影響を及ぼす
ノイズ源がこの世に存在していてそれがたまたまそばにない保証は何もない。
我々は(?)「もしもの時の」フェイルセイフ的機構を考えているのに
運がよいケースだけを想定してそれを作ることに意味があるのかな。
もちろん1mおきに大穴が開いているセーフティーネットでも「ないよりはマシ」
という発想もあろうけど、俺は「そんなアテにできないものに存在意義などない」と考える。
>>151 そんなノイズ源、もともとソフトじゃどうにもならないだろ。。。
議論の論の外だ
>>151 は同僚に煙たがられてんだろうなぁ。「理屈ばっかで使えねぇ」と。
>>152 中学生レベルの読解力はおありか?
だから最初からそういってるんだけど。
最初からノイズを心配しなきゃならんようなハードならN度読み一致取りなんて
無意味だって言ってるじゃないか。
>>152 そもそも
・高周波ノイズはLPFでとる
・ショットパルスはS/Wでとる
って条件無しに全てS/Wだけでどうにかって前提で話してるのか?
だったら「N回一致なんて対策した気になってるだけだ」って理屈はあってるが
P=0.99の(現実には存在しない)ノイズ源に対応できないからP=0.00001のノイズ源にも対応しないってこと?
何?どんなハードであっても万能に正確に機能するSWを考察してるの?
どういう非現実的な環境を想定してるんだこの
>>151
151の任期にshit!
>>155 それってハードでどうにかなるものなの?
誰も想定しない状況だけどもそれに対処できないから駄目、ってことかよ。 こんなのがレビューに居たらしっちゃかめっちゃかになるな。
>>163 大丈夫、「そうだね」といってそのまま流すから
まあ、なんでも、いいですけれど。
DMAアクセス関連しかやってない新人組み込みPGの俺に 結局どうすれば良いのか教えてくだしあ チャタリングって知らんかった・・・
ソフトから入るとチャタリングにはまるよね 特に最近のI/Oボードは最初からLPFが入ってて普通に使う分にはチャタが起こらないしさ 俺が初めて設計した基板もLPFつけるのを完璧忘れてて つか、それまでI/FにLPFが入ってるということすら知らなくて そこで初めてチャタリングに遭遇したよ
>>151 よく考えてみよう。
P1が起きた後P2は大きくなり、P2は時間を置くほどP1に近づくってモデルなんだから
P2=0.99なら、それは時間が短すぎるか
入力ポートに入ってるCRが信号を伸ばしてるって事だ。
後者なら、とりあえずノイズ試験として火花バチバチ飛ばしてみれば判る事。
>>155 >ノイズを心配しなきゃならんようなハードならN度読み一致取りなんて 無意味
みんなの意見は逆。
ノイズ対策ってのはハードだって、どんなに頑張ったってPを下げるのは簡単じゃない。
ハードで出来る対策はPを比例的に小さく出来るだけだからね。
ノイズ対策の為には、ハードでインピータンスを下げる工夫をした上でソフトで2度読みする方が
同じコストなら何桁もノイズに強いものが出来る。
逆に、ハード側でヘタに対策を入れると Pが1/1万 ⇒ 1/10万にはなるかもしないが
ソフト側で2度読みを入れても効果がなくなってしまうという事になりかねない。
ソフト側で2度読みを入れただけで 1/1万^2 になるんだから、ソッチがずっといい。
>>169 また今までの議論を全部ゼロにする鳥頭がw
だからそんな確率モデルは適用できないはず、とずっといってるんだけど。
こういう人って昔流行った四コママンガの「ゴリエ」みたいな頭してんじゃねえの?w
なんか一晩寝ると頭の中全部リセットされてる感じか。
>>170 確率モデルが適用出来ない筈じゃなくて
確率モデルが適用出来るようにハードと協力しようって話だよ。
もちろん、モデルを立てて実験しての話だよ。
あなたの話こそ妄想でしょ?
>>169 >ソフト側で2度読みを入れても効果がなくなってしまうという事に
1/10万 が 1/100億 になるね。
二度読みに意味が無いと主張してるのは一人だけだよね?
>>172 それじゃ2度読み無意味論者と変わらん。
ハードでノイズ対策を厳しくするって事は、大抵の場合、
それでも通過して来るパルスに対しては長くなってしまうもんなんだよ。
だから2度読みしても無意味になってしまう。
>>173 人数の多さが正しいかどうかの指標にはならない。
自分の理屈が正しいと思うならキチンと反論するべきで
多数だからなんて言い出すのはどうかと思うよ。
1,0での判定だから、限界はあるのでは?
チャタの出ないSW作ったら?
>>177 そんなスイッチは既にあるぞ。
プラントで使うようなスイッチにはメークのほかにブレーク接点があるから
両方を使った配線すればチャタなんて完全に無いようにハードで出来る。
あと、誰かのソースに「チャタリング取り」って書いてあっても、
大抵の場合、スイッチのチャタを取る為のコードじゃない。
昔からの慣習でそういう名前が付いてるだけ。
>>176 アナログならもっと悩む事になります。 それは確実にそうです
>>175 そりゃそうだ。
今回間違ったことを言っているのがたまたま一人なだけだ。
>>178 「チャタリング取り」って言ってるのが、おかしいってこと?
>>181 ようするに、このテクニックに付けられた名前。
今はスイッチの性能が良くなったから実際にチャタリングを取る必要は殆どない。
もちろん大型のリレーやプラントで使うようなメカメカなスイッチなら別だけどね
>>182 じゃ、一定間隔でSWを読むだけでいいってこと?
>>184 最近の組み込みで使われるメンブレンとかのスイッチはチャタリングは10ms以下しかないから
チャタリングに対してはそれ以上の間隔で取れば、普通は問題はない。
ただ、スイッチってのは人間が操作するから押してるタイミングで2度触ってしまう場合もあるだろうから
チャタリング以外の誤動作やノイズ対策として入れてるって事。
だから チャタリング対策じゃないけど「チャタリング処理」は必要って事。
あれだよ。 ダイオキシンは毒じゃないけどダイオキシン類は毒みたいなもん。
>>186 サンプリングのタイミングによってはおかしな読み込みすることがあるから
その対策をしておけば、いいってことになるのかな?
>>187 ちょっとニュアンスは判らんけど
スイッチも新しい間はいいけど、古くなると押してる間にヒゲが出るようになる
たぶん接点が酸化して、接触抵抗が高くなるんだろうね。
そういう対策の為に「チャタリング処理」は必要で、でもそれは「チャタリング対策」の為じゃないって事。
名前が混乱させるわけだけど、この名前で通ってしまうんだから仕方ないでしょ。
>>185-186 何度話をループさせれば気が済むんだろ。
本当、三歩歩くと全部忘れる鳥頭だね、としか言いようがない。
だからN度読み一致取なんて手法は、
その「チャタリング以外のもの」への対策なんかには全くなっておらん、
という話をずっとしてるんでしょうがw
こういう奴って健忘症が始まってる50代以上かと思うと、
案外単に読解力が欠如してる20代だったりするんだよね。
>>189 だから、対策になってない理由ってのは脳内だけなんだろ?
現実に試験して言ってるわけじゃないんだろ?
試験して言ってるんならハード屋ともうちょっとコミュニケーション取れ。
というかハード屋が根負けしてるんだろ。
もしかしてハード屋がFPGAで2度読みしてたりしてな。
> だからN度読み一致取なんて手法は、 > その「チャタリング以外のもの」への対策なんかには全くなっておらん、 > という話をずっとしてるんでしょうがw まとめをお願いします。
192 :
仕様書無しさん :2008/01/16(水) 12:59:29
>>189 放電やモータやリレーとかから来る電磁ノイズを取りたいとする。
電磁的に来るノイズは短いパルスでしか来ない。
普通は1us以下の短いパルスになる。
このノイズが1秒に1回来る酷い環境で、マイコンが1MHzで動いているとしよう。
サンプリング周期が10ms だとすれば、ノイズを見てしまう確率Pは 1/10K だ。
このノイズを取りたい場合どうするの?
>>192 よーわからんけど、レベルでみると駄目だけど、エッジでも見るようにすればいいような。
194 :
192 :2008/01/16(水) 13:09:56
表現が悪かった。 ノイズを受け取りたいんじゃなくて、ノイズで誤動作しないように取り去りたいって事。
>>194 2度読みというか、サンプリングで2回レベルが確定すればいいような感じにすれば、取れるんじゃないの?
>>195 でも、2度読みは意味が無いと主張してる人がいるんだ。
>>196 サンプリングするとかわかってない人がいるってこと?
198 :
196 :2008/01/16(水) 13:59:35
>>197 確率モデルが適用できない、とか意味不明なことを言ってる。
タイマー割り込みとか使わないでSW監視しようとしてるの? DIP-SWなら起動時とかにしか読み込まないからわかるんだけど...
>>199 「タイマー割り込みとか使わない」なんて話は一体どこから出てきたんだ?
4bit時代の亡霊?
何bit時代だろうが、基本的な考え方は変わらないんじゃないかな。
発想が4bit時代を引きずってる人がたまにいるから...
まとめてもまとめても終わらない仕事のように。
実装ミスしたソース見て、あーでもない、こーでもない、やってるとか?
組込みの人って痛いなあ・・ スキル的にもCやアセンブラ、良くてC++程度なんですよね? web系だと3年目の人でも、スキルシートに Java, HTML,Javascript, JSP, CSS, SQL, UML、struts とか色々書けるのに。 組込みの人損してますよ?
そうですね。 アセンブラでも色々種類あるから大変なんですよ。 新しいCPUなんかだとアセンブラから作ったりするんで、結構面白いですよ。
ていうかCPUから作るよね
別に悔しくないのは歳とったせいだな。
すげぇ
>>189 って昨日とか一昨日からずっとやってんだな
H/Wに密着してない言語の砂上の楼閣感が嫌なんだ。 まぁ歳のせいだろうけど。
これからのテーマ。 ×チャッタリング ○WEBっプログラマと組み込み爺とどっちが得か。
214 :
仕様書無しさん :2008/01/16(水) 20:49:17
>>212 確実に歳のせいだね。
そもそもそれをいうならHWに対する理解だって、固体物理学的知見に「密着していない」、
電子工学的レベルの理解なのに、そっちはぜーんぜん気にしないんだろ。
だったら「H/Wに密着してない言語の砂上の楼閣感が嫌なんだ」なんて感覚は、
漠然とした不安感から逃避するためのオナニーに過ぎないわけだし、
多少自分に突っ込む癖のある人間なら恥ずかしくてそんな心境は吐露できんだろ。
216 :
仕様書無しさん :2008/01/16(水) 21:01:54
Webなんてバカでも出来るからな。 スキルシートにHTMLとか書いてる時点でアホ確定なんだがw
普通の技術屋ならC以外だってある程度はわかるもんじゃね? 主業務はCのみの俺だってアセンブラ、C++、Java、VBくらいは多少わかるぞ。 HTMLやCSS、SQLも入れていいならそいつらも書けるし。 こんなの組み込みorWebとか関係なしに個人差だろ。
218 :
仕様書無しさん :2008/01/16(水) 21:19:36
つーか、○○言語出来ます!って豪語してる時点で レベルが見えちゃってるんだがw
219 :
仕様書無しさん :2008/01/16(水) 21:22:53
まーあれだ。 Webとか業務系やってる連中はレベルが低い 組込系>> 越えられない壁 >> Web,業務系 だからな。
220 :
仕様書無しさん :2008/01/16(水) 21:25:32
>>214 バイナリ読む気ないなら、組込はムリだな。
ひょっとしたら、コンパイラが賢くて 0-510 を使っていないから、
511 番目をちゃんとアライメント調整してくれてるかもしれねーぜw
>>215 別に逃避はしてねーよ。
メシのネタでJava、JavaScript、SQL、HTML、VB、PHP...なんでも受けて喰ってるわ。
バイナリで思い出したが、JNIのような微妙な領域に詳しいやついるか?
ちょっと思ったんだが、先日から暴れてる彼のプロセッサは、 なぜだかわからないがわれわれのものより数桁速く動いているのかもしれない。 そうだとすると、彼のプロセッサから観測される信号は彼の言うとおりになるんじゃなかろうか。 まさかとは思うんだが、インターバルをおかずに連続で読んでるとかいう落ちじゃないだろうな。
>>207 どーでもいーよーなもんがズラズラ並んでるのを見て感心するようだったら
俺ならそんな会社怖くて辞退するわw
>>224 だからレベル低いんだってw
素人騙して儲けてる連中の巣窟だからな。
>>223 のプロセッサってのは2MHz〜4MHzなんだろ?
227 :
仕様書無しさん :2008/01/16(水) 22:47:35
>>226 2〜4MHzでも立派に仕事はできます。
あんた素人?
つーかさ、 二度読みがどうこう言ってもさ、 二度読みで補正している製品に囲まれている訳よ、事実さ。 否定してもいいよ。何が正しいのか声高に叫んでもいいよ。 でも現実身の回りに溢れまくっている訳よwwwww 俺の書いた単純二度読みファームは世界中で動いているwwwww
229 :
仕様書無しさん :2008/01/16(水) 22:48:56
>>220 了解。
HTML、CSS、JavaScript、CGI、perl、ruby、Java、Servlet、JSP、
あたりはできるので、Webに行くわww
php、ActionScriptはやったことないけど、どうにでもなるだろww
230 :
仕様書無しさん :2008/01/16(水) 22:50:41
>>229 それが正解かもな。
誰にでも向き不向きはあるからな。
バグ、つーか、 富豪的プログラミングが比較的戒められる分野だ、ってのは確かだな。 再帰はループに落とすのがデフォとか、決定的な動作が求められるとか。 ただ、どんな分野でも、資源管理を疎かにしてよい、という分野は ないからなぁ。
>>231 俺16MHz、コード+データ領域が2MB。
隣の席のyつはアセンブラでコード領域4KB。
234 :
仕様書無しさん :2008/01/16(水) 23:04:30
>>207 あのー、アーキテクチャごとのアセンブリ言語をひとつとカウントできるなら、似たような自慢できますけどいいですか?
それなら負けねーよw
やった!
>>207 と
>>229 はstrust以外全部クリアしたぞ!
あとCもC++もVBもVC++もいけるしついでにHSPもおkだ。
bashもperlもphpもawkもsedもノープロブレムだぜ
>>215 固体物理学くらい理解してるだろ普通。
電磁気学とかも必須だな。
>>239 おうサンキュー
じゃあ仕事に戻るわ
あと9時間で納品あるし
こんな時間に働いてるのかよww しかも納品当日に作業とかありえねぇw
職場から2chにしこしこ書き込んでる奴が密度高い仕事をしてるはずがない。 どうせ5分働いたら10分休憩してるから深夜まで働いてるんだろう。
いきあたりばったりをこつこつだと勘違いするからなあ。 さて今日もポーリング談義をヲチできるのか?w 世界中にバグばら撒いてる剛の者もいるんだね。
簡単なノイズ発生器の作り方。 1、材料は 直流コイルのリレーと、それに応じた電源と スイッチング電源用のダイオードを何個か 電源はリレーの12Vコイルなら12Vの電源です。 2、B(ブレーク)接点に電源とダイオード数個を全部直列につなぎます。 +電源 ---|>|--|>|--|>|--◎---コイル----- マイナス電源 といして◎の部分からアンテナを出します なお、実験中はキーボードやパソコンとかをアンテナに近づけないようにね。 私はコレでパソコンのPS2ポートを潰しましたから。
>>244 ダイオードは不要だと思うが・・・
+電源 ---B接点:COM--◎---コイル----- マイナス電源
これでいいんじゃないの?
電源の保護の為? にもなってないように思う。
電圧の調整か何かに入れたんじゃないの?
ボリューム入れようぜ
DC電源よりACの方がいいよ。 パルスがプラスマイナスランダムに出るから。
248 :
仕様書無しさん :2008/01/17(木) 16:59:33
この流れに関係なくてすいません。 組み込み系で パチンコとかの制御系の仕事って少ないですかね? 漠然としたイメージなんですけど なんとなく面白そうかなぁと思いまして.. 詳しい方いたらいろいろ聞かせてもらいたいです
パチンコはゲーム屋が請負で入ってるみたいだ。 だからやりたいならゲーム屋に入るといいんじゃないかな。 バンダイナムコビジネスサービス とかの派遣系とかさ、 まあ使い捨てられるだけどろうけど、ソレでよければ。
パチンコは今まで羽振りが良かったが、グレーゾーン金利問題でサラ金がパチンコ目的の 金貸さなくなったので不況になりつつあるという話だが。 やってることはZ80でパチンコの当たり制御+フロントエンドはSH-4とかで3Dグラフィック らしいっすね(伝聞)。当たり制御プログラムはZ80のソースコードで警察に納入する 義務があるとかなんとか……いまだにZ80かw
252 :
仕様書無しさん :2008/01/17(木) 19:28:25
Z80じゃ アセンブラなのかなぁ やっぱりパチンコの組み込みの仕事はそんなに良くないのかぁ..
パチンコの制御部はガチガチの規制に縛られてて、どんな回路にするか、どんな部品を使うかまで指定されてるらしい。 おかげでうちの会社で作ってるパチンコ向けの部品はいまだに鉛フリーはんだを使えないでいる(はんだを変えるだけで許可を受けなきゃいけないらしい)
へぇ。じゃぁ欧州には輸出できないねえ
255 :
仕様書無しさん :2008/01/17(木) 20:12:12
>>253 いまだに鉛フリーはんだを使えないでいる
なんか問題あんの?
ちょっと考えれば勝てるはずもない ギャンブルが欧米で売れるはず無いもん。
そのためだけに鉛入り半田の半田槽をひとつ常備してるとかじゃないのかな?
258 :
仕様書無しさん :2008/01/17(木) 21:28:12
パチンコの組み込み系は 派遣とかがほとんどなんですかね?
259 :
仕様書無しさん :2008/01/17(木) 21:30:39
パチンコって日本以外で普及してるとこあるの? 韓国とか北朝鮮はそこそこあるのかな?
韓国はパチンコ禁止じゃなかったっけ
>>256 いや、あれは昔は普通に勝てたんだよ
昔は客同士の戦いだったのが今は店対客の戦いになってしまった
これは勝てない
>>258 転職先探してた頃に
アルゼとタイトーからお誘いはあったな。
そのまま流しちまったが、
自前で抱えてるとこもあるんじゃないか?
ここで現役スロット開発社員登場。 メインプログラムはZ80使うのでもちろんアセンブラ。 コード領域は4KBくらいだし、5号機になってモード管理やリール制御も単純になったからそんな高度じゃない。 サブプログラムのCPUはメーカーによって違う。言語はC/C++が多いんじゃないかな? パチンコもパチスロも今じゃCGの力の入れ具合がすごいからそっち方面の方が仕事はあると思う。 危ない業界だから転職とかも考慮すればなおさら。
ソフトウェア業界から足洗ってしばらくたつけど、z80だったんだ。 てっきりSHとかかと思ってた。
Z80じゃないよ6809系のマイナーなやつだよ
LETechはZ80だけど・・・
Z80懐かしいな MSXにはお世話になった
ところで。 <`∀´><無予算で新製品開発してくれ と言われたらおまいらどうする?
条件つけても、売れてませんと言われるだけだろ?
<`∀´><調査費用も一切出せない。機材は目の前のPCだけだ。Webは好きに見て良いからな。 という、クライアント。
タダ働きかよ
いえ、拘束時間分の日当ぐらいは出るようです。 <`∀´><できないなら(・∀・)カエレ! <`∀´><調査と立案の結果はきちんと 俺にわかるように 説明汁 <`∀´><できないなら(・∀・)カエレ! <`∀´><とにかく金は出せない。 <`∀´><できないなら(・∀・)カエレ! こんな感じのお客様です。
>>268 俺なら1台売れたら幾らって交渉をして頑張るよ。
<`∀´><資料など無いが、これまで作ってきたソースコードとメモならあるぞ。ほれ。 と、投げてよこしてくれたのはスパゲティでした。 こんなお客についたとき、皆さんならどうしますか?
資料もみせんで、引き継がせようとするのもいるぞ。
<`∀´><俺は技術屋なんだから、何でもわかるはずだ。俺にわからないのはお前の言ってることが間違ってるからだ。 <`∀´><お前の言ってることは難しくてよくわからない。俺に分かるものを出して来い。 <`∀´><できないなら(・∀・)カエレ! 〜レベルに合わせて差し上げると〜 <`∀´><こんな単純なものでは納得できない。 <`∀´><できないなら(・∀・)カエレ! ・・・・最近、ドラえもん見るとジャイアンが人格者に見えてきました。
根拠のない回路で、それっぽく動いてるように見せかけたソース見たことある。
ぶん殴って帰る。
回路読めない子がはまってるの見たことあるけど、ハードがタコだったなあ。
AAがニダーなのが気になる
>>274 ソースあるならいいじゃないか
俺は動かない環境とEXEだけの場所に行ったことがある
緊急事態なので助けてと言われたので行ってみたら
鯖ダウソ+開発会社逃亡&倒産+ソースも設計書も無し
それからしばらくそこに住んだけど
チップ(どっかの基板)渡されてロジアナで信号見てドライバ作れと言われたことがあるw
>>277 コード量が足りないとかわけのわからないこと言われたので
絶対に通らないルーチンを大量に追加したことあるよ
アセンブリなので誰も解析できないので問題なかった
見積もり工数とコードサイズが合わないとか言われてもな・・・
それが売れそうなものなら アイデアだけ盗んで無給で帰る。 3時間で充分だろ。
>>277 俺の古傷に触れるな
昔、某代替治療関係の仕事やってさ
特定?
狭い業界だこと。
>>283 いや、そういうんじゃなくて、ぼったくってたみたい...素人だまし...
>>290 これで動いてますとか言って、全然別のマイコンで動かしてるって奴?
>>291 何か操作すると、一定時間「処理中」と表示するけど実は何もやってないとか
昔、マイコンの処理スピードもわからんとSEもどきやってた奴がいた。
PGならともかく、SEならありえるんじゃない? 要求定義とか機能仕様までならチップの事情は考慮しない、とか。
お客様は神様ですって感じで、物理的に無理な事も引き受けるみたいでいやな奴だった。 設計センスもよくなかった...
処理スピードなんてほんとにわかるのか? RISCになって、パイプラインが入りキャッシュが入り・・・。 でも滅茶苦茶な客はいるよな。
O(n)とO(n^2)の区別がつかないとか・・・
「O(ほげほげ) って何ですか?」
実装ミスごまかすのに、マイコンの処理能力に頼ってるのがいるみたいだけど... 20MHzとかはやりだした頃が懐かしい...
ショー展示で実はパソコンでやってましたならアル(・∀・)
O記法でぐぐれ
設計したハードが出来上がり、いよいよソフトの人といっしょにテストすることになりましたー。 期限が追い込まれてくるとソフト屋さんに頼りっぱなしで嫌がられるらしく(断られることも・・・)、 先輩方は気を使っておられます。 ソフト屋さんの立場というものを理解しておくために、どういうことに気をつけておくべきかご助言願います!
>>304 ん、、、、あんた以前ム板に組み込み屋志望として居なかったか?
まぁ、それはいいとして。
きつくても金貰ってやってる仕事なんだから、
べつにやらなきゃイカンことはやらねばならんので、
・隠すな(ヤヴァイと思ったらまずそのことを教えれ)
・S/Wならどんな変更でも直ぐ出来ると思うな
基本このくらいでいいよ
理系院生みたいなのが長じると無償でソフト開発しろ ニダ といいだすんだよね。
すげー偏見 まるで豪州人(笑)
>>304 技術的に可能だったとしてもハードのバグをソフトで回避するのは嫌い。
でも結局コストと納期と試作ラインの関係でやらされるのよね・・・
>>304 どんなときにも「図面が正」を忘れない事。
いつも不機嫌なソフト屋なんかに気を使う必要なんか無い。
ゴミ設計しかできないCAD屋はさっさと死ねばいい 図面のお絵かきはできてもはんだ付けはやったことないんだろ?
こういう奴が半田付けしてチョッロと直して、 そのまま量産へで大損害出した例が 設計の現場では後を絶たない。 「図面が正」これを忘れるな。
図面が偽 ここがはじまり...
>>312 大問題になるのは、そうだよな
或いは図面が誤
16bitマイコンが流行りはじめに2回ほどひどいの見たことある。
偽基板を用意してたバカが本当にいた。
人が作った回路にご丁寧に発振器仕込んだバカもいた。動いたから、よっぽど、悔しかったみたい...
たまにメーカーのバカ技術者が動かない回路なのに動くとかいう事があるから注意した方がいいよ。
みなさん、アドバイスありがとうございます!
>>305 >ん、、、、あんた以前ム板に組み込み屋志望として居なかったか?
いえ、ずっとこのスレでお世話になってますよ。
>>306 そんなこと言いません!w
319 :
仕様書無しさん :2008/01/23(水) 06:21:10
昨日、新しく作った基板上でソフトを走らせたら本来パルスを与えないと発振しないはずの発振器を Enableしただけで発振が・・・ 旧版の基板だと正常に動くのでソフトは関係なさそう。 基板は外注に作ってもらったんだけど、パターンが間違ってたのかな どうせネットリストどおりに作られてるだろうと思って時間もなかったし、パターン図見ないでOK出しちゃったんだよな ああ、こんなことだったら時間作ってパターン図ちゃんと見ておくんだったぜorz パターン間違ってたらまた作り直し? ちょーマンドクセ('A`) 値段より書類決済がマンドクセ('A`) 何とか配線ごまかすだけでうまく行かないかな? いかないだろうな。俺はそういう幸運に恵まれたことないからな
当の外注じゃないけど謝ります ごめんなさい
>>319 4bitのバカじじいがやったみたいに空中配線してみたら...
俺、去年買った周辺機器が特定の場合にだけ不具合が出るんで メールでチョットキツメに文句書いたら、上位の新品の商品と交換しますと言って来た。 で、昨日ダンボール3箱も荷物送ってきた。 そのうち2つは空箱で、返送用。 間違いなくソフトの不具合なんで、 これが自分の出した不具合だったらと思うとガクブル。 でもテレビでクレーマーを商売にする奴が増殖中って言ってたが、 これは確かに商売になりえるな。
回路図から行き成り製品用基盤作るってどうなんだろ 試作とか一切なく製品が行き成りテストに回ってきたんだが 案の定ファーム入れたらS/WもH/Wも障害でまくりんぐ 出荷用製品なのにジャンパ飛ばしまくり 出荷用製品でテスト…、障害がS/WかH/Wかの切り分けはS/W側に一任されてる 納期迫ってるからテストでケツ叩かれるし 何か割り切れない理不尽さを感じた去年の年末 100台/年位の出荷台数だと当たり前?
一品モノならともかく量産品なら試作はするだろ普通
試作やらしてもらえる人って幸せだと思う。
物によるかな 枯れててそのHW設計担当が相当信頼されてれば一発もアリかと しかし323の状況は違いそうだな ジャンパ飛ばしたまま製品出すのは最後の手段だろ
327 :
323 :2008/01/23(水) 10:45:20
>>324-326 やっぱ常識的じゃないよな
次回は強く進言しよう、シャレにならん
基板100枚行き成り生産して、ジャンパ飛ばすのにハンダ屋さんにやってもらうんで
一回数十万すっ飛んでる、それが3回くらいあった
これで俺らS/W組はナスなしとか、ふざけんなと
2層以上の多層基板なんじゃないの? 両面とか片面基板なら、付き合いの基板屋ならソコソコ安価に作れると思うけどな。 または1枚だけ基板組めるような熟練さんを社内に育ててないとかさ そうじゃないと、結局試作基板を作っても数10万要る事になるから、試作基板を作る事がコストダウンにならない。 で社内で熟練さんを育てるのは、もっとコスト必要だから、 もう海外に投げて作ってジャンパ飛ばした方が安価なんだろな。
329 :
323 :2008/01/23(水) 13:22:19
>>328 ちなみにモノは4層基板でした
なるほど、そう言われると納得してしまう
でもロクなもんじゃないのは確かだな。 同じコストなら、試作基板作ってユーザには高品質のものを出荷すべきだろうな。 ただ、そのためには100台/年 位のロットなら両面基板で、多少基板サイズを大きくしてもやるべきだろうね。 さらに社内に試作出来る熟練さんが居ないんなら、もう末期症状だ。 モノ作りから ⇒ モノ作れ ⇒ そして不要に
||// ∧_∧|∧_∧ ||/ ( ´・ω・)( ) うんこくさい || ( )|( ● )  ̄ ̄ ̄ ̄ ̄ u―u'
いきなり、ほんちゃんで動かせる奴はいないんかね?
333 :
あ :2008/01/23(水) 21:46:59
1発OK基板はあんまりないな 確率としては30%くらいか 大抵未知の不具合が起こる。
未知の不具合って何?設計ミス?
なんでソフトに試作はないんだろう
馬鹿でもコード置けば動くと思ってるバカ経営者(営業)がいるからとか?
昔、CPUパワーが足りないのに”こいつがやれば出来る”とか言ってた人がいた。 でも、動かせなかったみたい。
少なくともフレデリック・ブルックスが、 「ひとつは捨てるつもりで作れ」と言っていたと思ったが。
ヘタレにいきなり完成品要求する人がいるのはなぜ?
簡単に修正できなくなってるのが現実なのでは?
簡単に修正できるように作ればいい といいたいところだが、以前直すのに何日かかるんだてなソースを渡されたことがあるからな
設計から丸投げしてれば、いい加減なところに頼めば、ぼったくられるのがオチ?
一生懸命働いてくれても結果、他より品質が低くてかつ値段が高くなってしまうってのは 労働でやらせる以上は仕方ない事。
>335 ソフトでも試作はあるよ。 でも、製品開発の中では、製品の試作はあっても ソフトは試作扱いしないのが普通ですね。 ソフトウエアだけの商品の場合は試作とかあります。 例えばアルゴリズムを変えて実装して、性能評価 したりしてトータルで速度があがるかどうか検討 するような場合とかね。
>>345 そうかなぁ
うちは試作品作る時はソフトも試作品だよ
ま、製品版は試作品をブラッシュアップして使うことが多いけどそれはハードも同じだし
ハードをブラッシュアップしたらパターン切れちゃいそう・・・
展示会用の文字通り試作品なら経験あるかな その会社に行ったら 2週間後に展示会、動くの出したい、なんでもいいから動かして そうじゃないとガワだけの見本になっちゃう っていきなり言われて ASM初心者の俺が2週間で作った糞コードを入れた 自分でも糞過ぎたのでソースからフロー起こして 作り直しを提案し本番では完全作り直し 勢いとは言え気合だけで初心者が書くとすごいコードができると実感したww
>346 >ブラッシュアップが多い ってことは、少なからず、製品版で作り直しもあるの? であれば、いい仕事されてると思う。 でなければ、試作という名のベータ版のような。
うちは基本的に作り直すけど、 「もう動いてるのあるんだから、もっと早く出来るでしょ?」 って工数削られることは多いなぁ。 勘弁して欲しい。
動いてるのがあるっていうのが一番怖い?
なんで動いているのかよく分からないのが一番怖い
>>352 昔あった。フローはあったけど、それを移植した人いたみたいだけど...
以下の問題点はなにかなあ? もし、わかんねえ奴が組み込みやってたら手をあげて。 int add_func(char a,char b) { int c; c = ( a + b ) / 2; return c; }
ん? 指摘していいの?
特に組み込みと関係あるか? そもそも、何を期待したコードなのか説明がなければ指摘のしようもないしな。
組み込みでc使ってると思い込んでる時点でゴミ
あ、そうか 今の子達はJRしか知らないから国電パンチが効かないと そういうこと?
関数を学び始めた頃に初心者がよく躓く問題の一つ。まったく組み込み関係ないな。 なんかそれ以外にも問題があるコードに見えて仕方ないがw
関数名が不適切ってことくらいしかわからん。
黙ってキャストしてろよ
昔のコンパイラだとintへの自動型変換がされなかったから問題になったとか? うーむマジでわかんね
シフト演算を使えとか?
正解おせーて。
367 :
仕様書無しさん :2008/01/29(火) 00:22:05
何を言いたいのか分からないが、最大の問題点は関数名が処理内容 と一致してないことだろ。どう考えたって。
1.自動変数のreturn これが一番まずい。 2.演算によるオーバーフロー、型違いの代入 入力の仕様がわからんし、別にどうでもいい。 3.関数名と動作の不一致 関数名がadd_func、和を意味しているのに演算は間を取っている。 実はこういう演算が正しい仕様なのかもしらんからどうでもいい。 4.変数名が意味をなしていない ぶっちゃけこんな短いコードでどうでもいい こんな感じでおk?
>>367 いくらなんでも出題者はそこまで馬鹿じゃない
何かすごいヒミツがあるはずだ
自動変数のreturnてまずいの?
そもそも問題の有無っていうのは定義された仕様との比較において初めていえるのであって・・・ まあどうせchar足すとオバーフローする可能性がるとかそういうショボいこと言うんでしょ。 でもそれならintでも同じことだね。
373 :
368 :2008/01/29(火) 00:31:18
やばい、俺はどうかしてた・・・1は無視して・・・orz・・・死にたい・・・
このままでも加算前にintになるので、オーバーフローしない訳だが
>>374 おいおいw
intにキャストされるのは(加算結果がcharの範囲を超える場合は)オーバーフロー後だろ
intが1バイトの環境なんて聞いたことないが2バイト以上であることなんて保障されてたっけ? 組み込み特有というのなら、古いCPUだったりするとありえるのか?
残念ながら演算はintで行うためchar=1Byte/int=2Byteならオーバーフローは発生しない。 long=int*intならオーバーフローする可能性がある。
>>377 cってそんなルールだっけ?
なんか直感的じゃないな
379 :
仕様書無しさん :2008/01/29(火) 00:41:30
>>377 16ビットマイコン? 8ビットでもそうか?
380 :
仕様書無しさん :2008/01/29(火) 00:50:31
C/C++の型変換規則はもちろん言語としてちゃんと決められてますよ。お兄さん。
381 :
仕様書無しさん :2008/01/29(火) 01:07:14
あれか?intが8ビットの環境への移植も考えて (long)aとかしろと?
intは、-342767〜32767が入ることを要求されている。 JIS X 3010:2003 なら 5.2.4.2.1
s/342767/32767/
結局、 関数名の付け方が処理内容と一致していないこと以外、 問題点はなかったということでおk??
>>378 そういうルールじゃないと、いちいち全部の型の演算を用意しなくちゃいけない。
だからコンパイラの負担を減らす意味もあるんだろ。
8ビットマイコンでも16bit演算をイチイチやられるから
+= -= に全部置き換えて表現してる
だから
>>355 なら
BYTE average(BYTE a,BYTE b)
{
a+=b;
_asm RORC a;
return a;
}
てな感じだな。
処理系定義の挙動がある。 charがunsignedかsignedかで、MSBが1だった時にintへの拡張が 符号付き拡張だったりゼロ拡張だったりする。 あるいは、(実際はintに拡張してから計算されるが)プログラマの 意図としては、charで加算してオーバーフローがクリップされた結果を、 2で割りたかったのかもしれない。 いちいち変数を使わず簡潔に return (a + b) / 2; とすべき? それぐらいかな
ど忘れしたかも、。。。 ファミ割、ひとりでも割、だれでも割 ゼロノス割 この中にあるだろうか?
355です みなさん反応してくれてありがとうございます。 363さんの回答が求めてた答えかな。 組み込みはROMなんで、勝手にキャストなんてありえないからね。 つっこみ所は満載でしたね。関数名とか。 少なくとも、charをintにキャストしてコンパイラに 教えないと加算の合計が255を超えた時点でNGです。 int add_func(char a,char b) { int c; c = ( (int)a + b ) / 2; return c; }
キャストいらね〜 オーバーフローしても使用どおりです
>>389 >組み込みはROMなんで、勝手にキャストなんてありえない
これが意味不明なんですけど、組込み用Cコンパイラは
左辺と右辺の型違い時の自動型変換は行わないのでしょうか。
>教えないと加算の合計が255を超えた時点で
charの最大値は127ですからintにキャストしても127+127で
254までしか取りえないと思います。
> 組み込みはROMなんで、勝手にキャストなんてありえないからね。 いつまでたっても標準にまともに対応しない腐れベンダ製コンパイラに慣れきった、 組み込み業界独特の悪しき慣習のダメダメさがよくわかる例ですね。出題者含めて。 大変興味深い事例をありがとうございました。
RTFCM:コンパイラのマニュアル読めや。
後味悪い。
んとねえ、ROMはともかくRAM1Kとかしかないのもあるわけさ。 そんななかでちまちまちまちま作る苦労も分かってほしいとさ。 面倒くさいからみんなGCCでやろうや?w
>>395 ちまちま作るときはちまちま動くようにちまちま設計しますよ。
妖怪探偵ちまちまって覚えてますか?あれ、16KBで動作するんですよ。
すごいと思いませんか?作ったのは
結局人間に考えられるシステムの自由度って限られてるんだから ふるいもの全部が工夫されてていいものってわけでもなかろ。
>>355 >>389 ROM とか関係ないやん。
お前みたいのも組み込みやってると思うと頭が痛いわ。
JIS X 3010:2003なら6.3.1.1
ISO/IEC 9899:1999でも6.3.1.1
>389 組込み用コンパイラで確かに integral promotion をしないものはある。 ただし、型変換を全くしないわけではなく、usual arithmetic conversion (通常の算術型変換) などは実施するものがほとんじゃないかな。 12 int addsub(char a,char b) 13 { E0138 7CF202 $addsub ENTER #02H E013B 722BFE MOV.B R1L,-2H[FB] 14 int c; 15 c = (a + b)/2; E013E 0AFE MOV.B -2H[FB],R0L E0140 2205 ADD.B 5H[FB],R0L E0142 B3 MOV.B #0,R0H E0143 7CF3 EXTS.W R0 E0145 7DE10200 DIV.W #0002H E0149 730BFE MOV.W R0,-2H[FB] 16 return c; E014C 73B0FE MOV.W -2H[FB],R0 E014F 7DF2 EXITD E0151 04 NOP 17 } M16Cのコードだけど、たしかにchar同士バイトで演算し(汎整数拡張せず)、その後に算術型変換を行い、実際にはlong / shortで割り算しているけどね。 355の言う本当に、型変換しないコンパイラって実在するのだろうか?
オレ本当にわかんねぇや.。 charがsignedかunsignedかってのは実装依存だったよね。 char同士の和が255になったらってことはunsignedを前提にしてるってこと? それはそれでおかしい気がする。 どちらにしてもそこでキャストしようが、符号拡張が実装依存であることの 問題の解決になってないような気がする。 オレ勘違いしてるかな? >組み込みはROMなんで、勝手にキャストなんてありえないからね ちょっと意味がつかめない。
404 :
403 :2008/01/29(火) 23:24:11
>標準のC言語と同様の符号拡張を行います。 すんません。charとunsigned charからintへの 符号拡張は実装依存だと思ってました。勉強しに逝ってきまつ・・・
なんで型変換なのに符号拡張って書いてあるの?
左辺がcharのときだけじゃないの? 左辺がintだったら問答無用で拡張じゃなくて? どうなの教えてエロい人!
うっせえきゃすとしとけ
>>405 知らないけど
signed char ならMSB を unsigned char なら 0を上位ワードに埋めるから
符号拡張って言うんじゃないかな
409 :
仕様書無しさん :2008/01/30(水) 08:28:23
一流の皆さんに質問です
組み込みの分野で仕事が得られたらと思っています
プログラマとして働いたことはありませんがC言語を勉強中です
ttp://www.toppers.jp/osek-os.html のOSEKカーネルというのをダウンロードしてきました
コードを眺めてみましたが、次に何をすればいいのか分かりません
やはりH8とかいう機器を購入しないと何も始まらないのでしょうか?
それと、やっぱり組み込みではマルチスレッドをふんだんに使うんですか?
皆さんの仕事をとるようなことはしません・できませんので教えてください
三流の皆さんが答えてくれます。
>>408 >
>>405 > 知らないけど
> signed char ならMSB を unsigned char なら 0を上位ワードに埋めるから
> 符号拡張って言うんじゃないかな
「signed char ならMSB を上位ワードに埋める」のを符号(付き)拡張
「unsigned char なら 0を上位ワードに埋める」のをゼロ拡張
と言い、それらをひっくるめて整数拡張というので、後者のことを無視してないか、
というのが
>>405 の指摘だと思います。
コンパイラのマニュアルを書く人がそこまで規格フェチじゃなかった、ってこと
じゃないかと。「型変換」と言ってしまうと浮動小数点とかとの変換まで入って
しまいますから...。
今月、設計会社から転職したら小さなメーカーに転職したら 電気担当兼部長がオープン系ソフト屋あがりで設計糞すぎてわろた。 オシロもろくに使えないらしい・・・ 頭が痛い。
1行目文章ひどすぎ御免
割れ鍋に
とじ蓋
○| ̄|_
俺もオシロ使えない 死のう
>>409 ・通信(内容解析含む)タスク
・入出力制御
・EEPROM書き込み等
・比較的重たい計算
・シーケンス的な流れ動作
こんなのを同時にやらなきゃならないとなったらマルチじゃないと大変です。
プログラムカウンタとスタックエリアの退避/切り替えくらいやれば簡単な手作りOSになるよ。
OSのせるほどの処理じゃないでしょ。
>>409 Cは適当な本でそれなりに学んで
そのあとアセンブラやってみるのがいいよ
中身どう動くか理解してると便利
OSのせると楽チン。
カーネルだけでいいじゃん
時間ブレ許容が厳しい周期処理をやるとき、全部タイマ割り込みの中でやる人がいるけど無理がある。 TRAP等してタスク切り替えたほうが可読性も高いしいいと思う。
タスク切り替えできる環境がない・・・
426 :
389 :2008/01/30(水) 21:16:32
427 :
401 :2008/01/30(水) 22:45:23
>426 ご指摘の通りです。正直すまんかったです。 オーバーフローするようです。 簡単なメインプログラムから呼び出して、結果をプリント したものです。マイナス指定時は、マイナスにさえならない のがデフォルトとなっています。(NC30) addsub(a= 127,b=127) c == 127 addsub(a= 129,b=133) c == 3 (a=-127,b=128指定) addsub(a= 80,b=127) c == 103 addsub(a= 130,b=131) c == 2 (a=-126,b=-125指定) ANSIオプション時(汎整数拡張有効時) addsub(a= 127,b=127) c == 127 addsub(a= 129,b=133) c == 131 (同上) addsub(a= 80,b=127) c == 103 addsub(a= 130,b=131) c == 130 (同上) ANSIオプションでも、char宣言がデフォルトでunsigned charとなり、 -127が129になっているようです。 ちなみにNC100(R32C)なら、さらにcharが signed charにするオプション にしてようやく思った動きになるようです。 addsub(a= 127,b=127) c == 127 addsub(a= -127,b=-123) c == -125 addsub(a= 80,b=127) c == 103 addsub(a= -126,b=-125) c == -125
428 :
389 :2008/01/30(水) 22:55:16
429 :
仕様書無しさん :2008/01/31(木) 02:00:27
>>424 DSPと勘違いして作ってるか
制限時間「帯」の開始と終了が分かってないか
そもそもスペックが低すぎて間に合わないのか
どれさ。
431 :
409 :2008/02/01(金) 00:53:39
>>412 ありがとうございます
シミュレータがあるんですね
今ダウンロードしたところです
すみません、今日は時間がないので明日試してみようと思います
>>419 ありがとうございます
組み込みの勉強で何か大切かというのを調べてみても
マルチスレッドのことはあまり強調されてないように見えました
大切なんですね
しっかり勉強しようと思います
>>421 ありがとうございます
ちょうどMS-DOSで覚えるアセンブラ入門を終えたところです
今はLinuxでのアセンブラのページを見ているのですが
こっちはあまり解説がなく長いので少し難しいです
でも、バックスペースのような単純に見える命令も
いくつもの動作から成り立っているんですね
面白いです
あー理系陰性臭いぞここ
433 :
仕様書無しさん :2008/02/01(金) 08:39:38
>>429 >3K、5K、7K、10Kなど私自身は根拠がないと思っていることが、面白おかしく伝わっている
お前は言うばっかで経験してねーだろ
いろんな意味で地獄めぐりだよ。
オシロが使えるって、 パソコンが使えるってのと同じ響きがする。
>>435 それで合ってる
PC使えない奴がシステム管理者やってちゃおかしいだろ
話が噛み合ってないと思うぞw
>>435 が言ってるのはPCが(括弧付で)「使える」ことが、弱者がそう自分を慰めるツールに
なっているのと同じ構造がオシロにもあるんじゃないかって意味だろ。
面接官「えーとなにができますか?」 新卒「オシロが使えます」 面接官「そらすごい。何ができるかおしえてください」 新卒「えーとオシロが使えます」
実は学部のときに少し就職活動したことがあったんですが、 普通に「オシロが使えます」って言っちゃってました・・・(汗) 今思うと恥ずかしくて死にそうです(大汗)
どーでもいいですよ
組み込みは、オシロと半田ごてが使えてプログラム書ければなんとかなる。
まぁ、ハンダ付けのカンを掴むまでの1週間の研修は、ナシでも大丈夫かな とかそのへんの判断程度、かな。
オシロやハンダを使えること自体じゃなくて、 オシロやハンダを使って何かするような経験があることが大事
オシロはスレッドの動作を調べるのに便利。 始まりでポート上げて終わりで下ろす。
445 :
仕様書無しさん :2008/02/03(日) 00:46:37
組み込みってもはや言葉の定義が幅広すぎないか? 携帯の組み込みJavaだって組み込みだぞ。 組み込みJavaアプリなんてPC上のアプリと対して変わらないが、あれも組み込みなのか?
>>446 そうだよ
むしろ最近の組み込みは何かのOSの上で動いてるものを差すものが多い
少し寂しいね
昔 組込み と呼んでいたものは今では単なるファーム扱いだからね
昔から、一部の人はファーム扱いしてたけど
450 :
仕様書無しさん :2008/02/03(日) 05:28:16
?
奴隷になれってこと
時流の流れに取り残されてゴミのようなプログラムの保守をサセラレタ漏れが雪の中うわ言を一くさり書く。 自分で実験して、回路書いて、マイコンプログラム組んでっていう世界があったんだけど それは国際競争と技術革新の中で消えてしまった。 マイコン自体が高機能化したのは複雑なものを作る大手の要求なんだけど、結果として 数十年前の要求なら自在にこなせるものにはなった。面倒だったバスアクセスなんかは隠蔽されて 単純なI/Oつなぐだけなら電子系の工業高校でただけといったような、基礎能力に欠ける 技能者でも繋げるようになったし、サンプルもたくさんあるし、といったところ。昔苦労した、は今苦労なし。 昔と同じ苦労をしている、というのは、ハード屋じゃなくてタイル工みたいなのに引っかかった場合だけに 限られる。要はスキルが足らないの。 翻ってこのスレッドに沸くのは、ガラパゴスのような進歩の止まった世界で仕事をしている 比較的レベルの低い技能者がおおいんじゃないかな。王様のアイディアで売るような商品だから 確かにオリジナリティはあるんだけど、高度な技術というわけでは、ない。 ほかで10年以上前に試されて、確立した挙句捨てられたものを今頃「学んだ、開発した」と 悦に入ってる例も結構あるんじゃないのかな。ほかの情報知らないから。 もう韓国には追い抜かれたし、中国も大手がいい気になって開発拠点移して10年以上経ったから ソフトの技術としては向こうのほうがすでに上回ってるのかもね。
技術の変化スピードが激しかったからね。 スキルが十分に上がった頃に置いてかれるというのを繰り返してきた。 やっと安定化した頃に海外にゴッソリ移動してしまったから 台湾・韓国・中国は 安定してる今の技術で全員のレベルが高い。 日本だけおいてかれる事になってしまったというのはあるだろうな。
そしてそれはソフトだけではなく、ものそのもの、機構自体にも現れてる。 物の外見を形作るに必要な、金型(プレスにしても、射出整形にしても)が、作れて使える海外メーカーと 金型を起こすことなどめったにできない国内メーカーというこれまでのとは異なる格差もでてきているのが 現実。 どこかのプロジェクトで「海外で簡単にまねのできない多層基板でなければ実装できない」というのを 掲げていたのがあったけど、「コストと実装技術がないのは国内の弱小メーカーも同じ」というわけで 普及するには至らなかったようだしね。 石に至っては台湾に製造自体を持っていかれて久しいし・・・。 箱も、板も、石も、ソフトももう「絶対優位性のある」分野って残ってるんですか? 某日経エレの提灯記事には飽きました。だれかモチベーションの上がる話しらないです?w
確かに。 韓国あたりでもFPGAで実験して即座にIC化なんてのが中小企業レベルで出来る。 日本では中小じゃ無理。 もちろん、あっちではFPGA設計ツールだのIP(知的財産の方)だの無視してるから安価に出来る面もあるんだけどね。 日本で同じ事やったらすぐに大企業の法務部が出て来て潰してしまうだろう。 一方、日本じゃ チャタリング取りのように処理の名前が古いままの為に チャタリング時間は10msだから必要無いなんて外してしまう事になったり 継承されるべき技術も、なかなか伝えられていないのが現実。 キビシーな
>>454 日雇い派遣のシステムに関しては日本最強
>>456 おまいさんのとこでは日雇いで組み込みプログラム書かさせるほどシステム進んでるのか。
そらすごいわ。
>>457 そうだよ
日2万ちょい
切らさないように気は使うけど
459 :
た :2008/02/03(日) 12:32:33
>>454 >>455 俺、10年ほど異業種にいて舞い戻ってきたんだけど、10年前と
比べると本当簡単にモノが作れるようになっていて正直かなり驚いた。
まず部品が小さくなってたw ピン間0.4mmとか、BGAなる普通じゃ
取り付けできないようなパッケージがあることも知る。
基板興しもメチャ安、昔GAL並べてABELとかPALASMあたりを使って
組んでたものが今じゃCPLDやFPGAで適当に書いても全然OK、
ISPのお陰でライターも不要になって、開発ツールはフリーで十分。
これはソフトも同様で、メモリも多くてCPUも速い。適当に組んでも大抵OK。
データシートはネットで落とし放題、パーツはDigiKey辺りで小ロットでも
購入できるし、納期も早いし。
結局、今じゃ特殊技術(メカトロとか色々)を持たないところは生き残って
いけない時代になった。 そういうところは全部海外へ出て行ってしまった。
それを嘆いても仕方がない。 世の中の我々への要求が変化してしまった
だけじゃない?
二極化はしてると思うよ。とんでもなく旧式で後ろ向いて仕事してる連中と 能力向上した諸々を受け入れて嬉々として仕事してる連中に。
実はソフトウエアの本当の財産はバグなんだけどね。 このあたりの優位性が理解できなければ消えていくだけ。
>>455 またそれかw
そりゃ逆でしょ。
君のようなアナクロかつ自分の頭で物を考えることをしない人間が、
訓詁学よろしく「チャタリング除去処理を入れるべき」と鸚鵡返ししてるだけ。
少しは自分の頭で物を考える人間ならこんなナンセンスな「迷信」に縛られる愚は冒さないよ。
ちなみに「ナンセンス」というのは、 『チャタリング処理をしなくても大丈夫』 ではない。 『チャタリング処理なんか(例外的な場面を除いては)何の役にも立たない』 と言っているのだから誤解しないでね。
チャタリングってなんですか?
>>461 やったもん勝ち、ってやつか。
見通しが悪く保守性の悪いプログラムをわざと作って製品に仕込み、その後自分しか保守できない
拡張もできないとして、「俺流ソフトウエア道場」を開設してどっかりと腰をすえるという
詐欺行為のことだな。
>>465 これが理解できない奴は消えるだけだよ。
むしろ
>>465 みたいなぬるいこと言ってる連中が消えたんだと俺は思うけどねw
>>465 のモデルは、競争ってファクターを捨象してるんだよねw
天下のMS様ならそういうモデルを前提に思考を薦めても超OKかもしれないけど、
日本にそれで大丈夫なところって果たしてあるのかね?
いや、今はたまたま大丈夫かもしれんが、このメガコンペティション(って古い言葉だけど)
の時代に今後もずっと。
日本は資本主義社会をもう何十年もやってるはずなのに、こういう中国人やロシア人と
変わらないメンタルの人が不思議と多いんだよね日本人って。
まあ言ってる本人は自分のモデルを自覚してないんだろうけどね。
煎じつめればソフトウエアの本質は 開発期間=時間を金で買っているわけで、 バグの経験こそプログラマーの財産という訳だ。 ここまで言えば465にも理解できるかな?
チャタリングってなんですか?
461が言いたいのは、品質管理のノウハウは大事ってことじゃないの?
そんなことよりチャタリングを
チャタリング
チャタの話をぶり返すなw 専門書のひとつでも読めばいい話だろ。 こんな所で自論展開されても誰の特にもならん。 Blogでも書いとけ。
>>469 あのね。
車輪の再発明とかアンチパターンとか知らない奴が多すぎるんだよ。
他じゃすでに解決して久しい「バグの出やすいやり方」をひどいのになると
団塊からそのまま受け継いで、経験則だけでやってるやつらまでいるんだぞ?
視野狭窄の連中が多すぎなんだろうね。
経験則だけってのも仕方ないな 勉強する気無くても仕事はこなせてしまうからw 情報処理試験にそこら辺フォローする分野があるといいね
>>476 その知識が何処から来ているのか考え直したら?
「バグこそ財産」を補強する意見のように思える。
多分、「GOTO禁止」みたいに、形骸化して教条化してるんじゃなかろうか、 と想像してみる。往年、堂々と「ソフトウェア工場」を名乗ったH社さんとか、 きちんと歴史を掘り起こして、現代の視点から体系を再構築すれば...とか 外野的には思うけどね。
>>478 お互いに相手の言ってることを理解しようとしないと不毛な争いになるぞ。
>>476 が言いたいのはたぶん、よく言われる
「愚か物は自分の経験にしか学ばず、賢者は歴史に学ぶ」っていう話と同じことだろう。
最近はそうでもないかも知れないけど、昔は個人的な経験の方を重視する
職人的な発想をする人が多かったような気もするよ確かに。
組み込みの場合はハードウェアと絡んだバグってのも多いからな。
>>476 の言ってるようなことは組み込みに関しては今のところ無意味だ。
車輪の再開発って実際ほとんど無いよね 毎回違うし
>>480 >愚か物は自分の経験にしか学ばず、賢者は歴史に学ぶ
歴史ってのは多数の経験をまとめたものだからな。
多くの経験をまとめて「歴史書」としてる会社が有利なんじゃない?
ソフト屋と違って、組み込みの「歴史書」なんて売ってないからな。
僕の前に道はない
プログラマーが 歴史から学べるものは少ないよ。 むしろ生物学つーか自然モノのTV番組から 全体構造のヒントを得たりするけど。
歴史って文字通りの歴史のことじゃないでしょw 別の人間の言葉で言えば、 思いて学ばざれば即ち殆し
愚か物は自分の経験にしか学ばず、賢者は他人の経験からも学ぶ でいいかな
まあたぶんそういうことが言いたかったんだろうね。 実際構造化プログラミングとか、コメントを書かなくて済むコードを書くとか、 書いた本人ですら三日後にはわからないような妙に短縮した命名をしないとか、 そのレベルの定石すら学ぼうとしない人って身近にいるよねw
490 :
仕様書無しさん :2008/02/04(月) 04:10:49
変数名長すぎると読むのに疲れる
自分の経験から学ぶだけでもそこそこ頭いいじゃん。経験しても学ばない奴の多いこと・・・
492 :
仕様書無しさん :2008/02/04(月) 06:46:17
ゆとり世代
>>490 このセリフをはく人間は経験上例外なく無能だねw
もっと長い通常の文章はどうなるの
>>493 繰り返し何回も使わないから通常の文章と比べられてもな
でもアセンブリには関係無かった・・・
ラベルくらいか、考えるのは
名前なんて、後からいくらでも置換出来るんだからどうでもいい。 少し前は、 HOGE という名前があるのにHOGEhage と名前があると、2ステップひつようになるから面倒。 とか思ってたが、 でも、そういう名前でも置換出来るツールつくればいいだけだった。 名前なんかに気を付けるより同じソースファイル内に必要なハードウエア情報や、実現してる仕様を書いてくれ。 そっちの方がズーっと大事だ。
変数名の置換機能のあるIDEを使っているならともかく、 テキストレベルでの置換が面倒になるような変数名はやめろ、とか たまに自分に怒る。
組み込みに特化したテクニックとか、技術の継承が厳しいのは確かだね。 チャタリング処理(N回一致採用)でさえ、このスレほどきちんとした説明を伝えてない。 名前から現代のスイッチでは不要だから省かれたりする。 ノイズ対策はハード屋が行う分野だからソレでいいのだと。 一昔前は DDA(Digital Differential Analyze)なんてのも流行していたけど、 これも職人技的な扱いで伝えられていない。 今はsin/cos対数なんて関数をリアルタイムに計算して間に合う時代というのもあるけどね。 R-Cだけでソフトでシュミットトリガを実現したり、ADCを実現したりする スイッチング+アナログ技術も、パソコンのジョイステックとかで伝えられてる程度だろうな
498 :
仕様書無しさん :2008/02/04(月) 11:52:31
このスレ懐古厨の年寄りばかり 若者が全くいないじゃん・・・ 組み込み技術者は絶滅してしまうんじゃないかと思
499 :
仕様書無しさん :2008/02/04(月) 11:53:52
>>498 そうだね。 これから若者に給料払って組込屋として育てるよりも
中国の毎日13時間労働で休み無し 月1万5千円から使えるのを探した方が1桁経済効率がいいよね。
人口が1桁上だから、適性のあるやつも10倍日本より多いわけだしさ。
>>497 偉そうに言ってる君はどうなのw
っていうか、だから、
>ノイズ対策はハード屋が行う分野だからソレでいい
などとは誰も言ってないと何度言えば通じるの?
日本語も通じない奴が他人に説教かよ臍が茶を沸かすよ。
もう最後にしてくれよ全く。
ソフト的なチャタリング除去処理は「要らない、なくても大丈夫」などとは言ってないの。
「やっても無意味」と言ってるんだよ頭悪いな。
っていうか、DDAなんて誰でも知ってるし、知らなくても普通の知能があれが 「車輪の再発明」できるでしょ。そんな関心するような技術かあれ? タイマでADを代用するなんてマイコンメーカーのアプリケーションノートで 今でもよく見るぞw っていうか、そんなの学部の実験の授業で経験してるか、 こんな世界にいるなら少なくとも面白話として聞いたことあるだろ誰でも。
503 :
仕様書無しさん :2008/02/04(月) 12:56:00
「やっても無意味」なら「要らない」 なんじゃないの? 頭の悪い俺に説明希望。
>>76 の目標が1年で達成出来るかどうか・・・・とりあえず1ヶ月では無理だったな。
だけど、DDAやCORDICは、情報学部の参考書の片隅に名前ぐらいは載ってても いいだろうとは思うけど載ってない。
スーパマリオ系のゲームのキャラクタの動き(重力なんか)表現とかDDAだよね。 と講師が言うだけで惹ける時代は終わったのさ。
DDAって言葉知らなかったから調べてみたが、こんなことは中学のころからいろいろ試してたな
え? ゲームの動きって、微分関数使うのは常識だけど? だって、1/30秒毎の次の位置を計算する事の繰り返しなんだからさ。
と同じように、制御も微分方程式を解くようにやるというのが昔流行してたんだよ
つか、放物線なら放物線の式を微分して使う。 楕円なら楕円の式を微分して使う。 そういうこと。
速度を入れておく変数を作って、ループ一回あたりの差分を入れておく 変数を作って、それを変化させて制御、 とかそういう工夫はプログラムをかじった気の利いた中学生ぐらいなら やるだろうけど。 きちんと誤差を定量的に評価したりとかそういう部分までちゃんとやるのは 大学の教科書のレベル。
>>498 若者は電電板のマイコンキット系のスレにいる
…といいなあ
チャタリングって何ですか?
でもまあ、こういうスレでDDAって言葉が出るだけで、 「俺だって同じような事やってるけど、これがDDAか」 と、皆が同じ概念を共有出来る。 いい事じゃないか。
キャラの高さが16ドットだから、成人男子の身長と換算して1ドット100cmと仮定。 そうして単位を揃えて行くことを忘れずにな。 リアル系のスポーツゲームだと、今でも有効だ。 2Dゲームでさえ内部では3D計算している可能性がある。
あ、1ドット10センチなw
517 :
仕様書無しさん :2008/02/04(月) 19:30:09
じゃあ流れぶった切ってきくな。 制御でも計測でもいいが、そういったものの「数学モデル」作りってのは プログラマの仕事だと思うか? それとも、機械なり機構なりの設計者の仕事だと思うか? 学者、研究者の仕事だってのはなしでたのむわ。
>>517 仕事は自分で創るもの。
他人の仕事にしたいならそうすればいい。 でも、それは自分の可能性を下げるだけ。
別にはぐらかすつもりは全然ないけど、TPO次第なんじゃないのそりゃ。 職場によっても違うし、同じ職場でも時と場合によるじゃん実際。 愚問だと思うね
>>517 普通は、機構とかの設計者が出したデータを元にして、ソフトの設計者が作るんじゃないかな。
物によるとは思うけど。
521 :
仕様書無しさん :2008/02/04(月) 20:04:05
一方通行はつかれる。
522 :
仕様書無しさん :2008/02/04(月) 20:17:07
>>520 「こういう理屈で、こういうものを作った。
こうなるはずなんだがなってない。一緒に考えてくれ」
ならわかるかも知れないが、単にデータだけ出されて
それ見て考えろ、と言われても困るのが普通じゃないのか?
>>522 困る前にコミュニケーションとれよ。
うまくいかないなら相談したり一緒に考えたりするのも当然。
ソフト設計者の方から「○○のデータをよこせ」とか言うのも有り。
524 :
仕様書無しさん :2008/02/04(月) 20:26:19
>>523 なにも考えていなかったらどうすればいいの?
「俺そういう面倒くさいこと考えてないわ、図面引くの忙しくてw」
俺なら喜んで自分の仕事という事を宣言してしまうけどね。
>>524 そこからは対人スキルの話だな。
組み込みとはあまり関係無い。
若者としてがんばります!
うわ・・・ 寝るわ。めんどくさくなった。
僕がやればすぐできます君と組むと大変だよ。
531 :
仕様書無しさん :2008/02/04(月) 22:15:28
>>464 ボタンのON/OFF読み取り処理やったことないの?
>>355 いや、今日は春香のTrueエンド観なきゃならないのでもう帰ります
昔、だあれも理屈を理解してなくて、俺が現場で四苦八苦していろいろ調べた挙句、 初歩的な理由で必ず壊れる動作だというのが判明した。 何がすでに動作を確認してあるだよ。ぷんすか。
ソフト屋は誤りを直ぐ認めるが、ハード屋は認めたがらない やっぱハードの方が修理大変だもんなぁ、当たり前か でもハードの不具合の可能性が濃厚の場合でも、 検証をソフト屋に投げて自分で調べようとしないのはムカつく
536 :
仕様書無しさん :2008/02/05(火) 10:11:54
コピペ君って馬鹿だな、まで読んだ。
538 :
売国まるはん :2008/02/05(火) 13:09:24
コピペ君って馬鹿だな、まで読んだ。
さてコンパイラの問題です。 コメントの「100で初期化」が別の日本語になるとコンパイルできないんです。 さて、その組み込みコンパイラは? unsigned char a; void test() { a = 100; // 100で初期化 }
542 :
540 :2008/02/05(火) 23:15:18
>>541 いいつっこみだ。
このソースには、このコメントしかないだろ?
ちなみに、今回はunsigned 付き。
2バイトコードをまともに扱えないコンパイラってこと?
このコメントしかないって・・・このコメントなら不要が普通じゃね? あと、コンパイラを提示するのか?文字コードの関係で?そんなコンパイラは窓から投げ捨ててしまえ。
数年前だけどcodewarriorのARMコンパイラがダメだったな。
546 :
仕様書無しさん :2008/02/06(水) 00:50:43
355再来? コメントの最後がだめ文字になると問題が起きる コンパイラは多いんじゃない? /**/でくくればいいみたいだけど。
>>547 後ろにスペースを必ず入れる
なんて消極的な方法もありだな
で、コンパイラと組込みにどういう関係があるのかと・・・ 組込みのコンパイラは、しょぼいのが多いんだという事ですか、そうですかorz
シフトJISの2バイト目のせいで継続行だってんだろ? どれだけ業界のダメさ加減を垂れ流せば気が済むんだ?
>>517 そういう部分の分担が担当者不明なら喜んで取るべきだよ。
そうじゃなければいつまでも単なる作業者だ。
S-JIS未対応のコンパイラって話なら、日本語禁止にするとか日本語削除するフィルタでも作ればいいだけの話だろ。 はるか昔にそんなコンパイラを使ってたときには、俺は自作したぞ。
ショボイ訳じゃ無いよ。 海外から持って来てるから全角使えないだけだよ。
UTF-8にしたら
/
/* */ で囲めばオッケ。
さすが、組み込み屋。 ""の中の文字化けには言及しないぜ。
組み込み屋はフォントから組み込むからねえ。
日本語出力する機会って限られてるよね 下手すると絵だったりするし
使う文字だけ持つんだよ。
562 :
540 :2008/02/07(木) 21:00:57
やはり、一流の人が多いですねえ。 行末の日本語の2バイトコードの2文字目が「\」だとNGってこと。 /**/のコメントなんて使う気になれないし、ローマ字で書くなんてばかばかしい。 kakashiにかけてから使うのも情けない。 海外から持ってきて、そのまま販売してるなんて馬鹿げてる。 しかも、日本語対応とか書いてある。 コンパイラチェッカーとして2バイト文字の後ろが、 「\」になるソースを探すものまで作ろうかと思った。
能 945c 表 955c 行末が↑のコメントで嵌った記憶があるなぁ。 ちなみにARMのADS
一流も何も、俺は // 表 #define KANJI_OK ってテクを、何かのソースで読んで知ったんだっけかな? 長生きしてればどっかで見てるかもしれないし、トリビアと いうかバッドノウハウというかその程度のもんでないかと。
日本語のコメントは付加価値が低い。
c言語なら//なんて使わないのに・・・
普通のCコンパイラなら仕様にないが、//くらい対応している
C99 で // はサポート。
C90ですら新しく感じるのに・・・
でも、前から思ってたんだけど、この仕様っておかしくない? 行末の\よりコメントアウトが優先されるべきだよね。 どうしてもコメント入れたいなら #define Hoge(a,b) a /*コメント*/\ +b とやればいいわけだしさ。
継続行は、ソースコードのどんなところにでも(少なくともCの場合)改行を 入れられるようにするために、それが真っ先に処理されるような感じに なっているのではないかと。 仕様ではトライグラフもそうだったかな。
SJISがタコだった。
>>571 #で始まる行以外に継続する必要を感じた事が無い俺には無意味な仕様だな。
組み込みで使用される言語ってC/C++って言われてるけど大抵Cだよね 今度組み込みの勉強をやることになったんだけど いままで趣味レベルでC++しか扱ったこと無かったから大丈夫かなぁ
>>574 組み込みレベルだと
ポインタ
構造体
配列
こんだけおさえてれば多言語のマでも大丈夫かと
場合によっては//使えないのは注意w
>>575 そんなもの何ですか?
CとC++との境界が曖昧なんでそこら辺が不安なんですよね
クラスを使った設計をするとあっという間に容量が膨れ上がるとか聞いたし
C++で、というわけには行かないですよねorz
>>576 C++のことは忘れたほうがいいよ
クラスなんて使わないw
構造体と関数だけです
基本的なロジックをCで書けるかどうかが必要なんで
あえて初心者本で学びなおすのがいいかも
構造体すら使わないほうがいい場合もある。せいぜいスカラーの配列まで。 構造体を書く場合は、パディングが起きる条件を考慮して、隙間ができないようにPG自身が 責任を持つ。俺は「変数の初期値」すら書かないぐらい気を遣ってる。
パディングズレは知らないとハマるなぁ
(static)変数の初期値、は、スタートアップがROMからRAMに転送してくれる リージョンがあることが前提になるからねぇ
581 :
仕様書無しさん :2008/02/09(土) 10:18:11
RAM2Kシカナイノニ無理矢理EC++でスパゲティ作ってるやつもいるぜ クックックー
組み込みにC++だとコンパイラにバグあると、 コンストラクタとか継承とかが追いきれない。 ARMとかなら大丈夫だろうけど。
組み込みじゃなくてもコンパイラにバグがあったら同じじゃね?
最適化で、はまることはあるな。
585 :
574 :2008/02/09(土) 14:18:55
>>577-568 PC環境より嵌り要素が多いみたいですね
こういうのは経験的なものなんでしょうか?それともある程度予測が付くものなのですか?
組み込みについて勉強できる書籍やサイトでオススメなものありますか?
ターゲットはおそらくH8になると思います
カプセル化と型チェックでC++が便利だから使うことはあるよ。 けどSTLやコンストラクタすら使ったことはないな。小RAMでは。
>>585 cpuとコンパイラの動きは経験でしかわからないと思う
とにかくテクニカルなコードは書かずにC初めて3月くらいの初心者にも読めるように
基本的な書き方をするのがコツ
資産が有る現場ならそれを流用すんのもアリ
H8エミュ導入してる会社なら大分楽だね
そうでないならデバッグ手法が何であるか早めに確認
ログ吐ける環境だと超楽なんだけどな・・・
I/Oに3bit有ればオシロ繋いでデバッグ出来るだろ女子校
そんな女子校あったら是非とも入学したい
オシロデバッグは指導者がいないと厳しいだろ 何か良い参考書あれば教えて欲しい
591 :
仕様書無しさん :2008/02/09(土) 21:17:10
お城デバッグって、ICEじゃ検出不能だったりするタイミングを掴む為の物? ハード屋から路地穴借りてくれば良いだけじゃね
組み込み専業じゃないと担当者すらロジアナの存在すら知らなかったなんてことがざらにある
ロジアナの使い方は一子相伝ぢゃ
今、組込み屋を名乗る人でもFullICE触った事無い人、 安物ICEでさえセットアップできない人はたくさん居るらしいって本当なのかもね。
>>594 そんな軟弱な物使わないから
使えないんじゃないかなね!!
>>595 漢だねぇ。
それでお城と路地穴か。
デバッグ出来なくは無いけど、それが出来るんならICEのセットアップぐらい簡単なはず。
アセンブラがわからねえええ というか解読に疲れる 組み込みってアセンブラの読み書き必須?
main()以前の処理なんかを弄るなら必須
>>597 必須じゃないよ。便利ってだけ。
九九があれば暗算が出来る てのと同じで
電卓持ってるなら別にいらない
>>596 595は普通にネタでしょ。
ちょっと前にはやったツンデレとかいう奴なんじゃねえの?
正直俺は全然笑えないし気色悪いと思うだけだが。
でも俺は正直デバッガ含めデバッグに道具はほとんど使わないなあリアルで。
601 :
仕様書無しさん :2008/02/09(土) 22:31:56
玄人はアナルにアツアツの半田ごてを挿入し、飲み込んでしまうという
ハードの固有不具合の検出用としては お城>>>路地穴>>>ICE ただし、プログラマから見た使い勝手は全く逆。
>>597 OSの上で走る最近の組み込みなら不要
OSの無い昔からの組み込みならほぼ必須
>>597 高いデバッグ精度が必要なら必須。
適当で良いなら要らない。
適当で良いんじゃね?
>>603 でもOS初期化してブートする部分ってアセンブラじゃない?
>>605 その部分は
>OSの無い昔からの組み込みならほぼ必須
この昔からの組み込みじゃない?
OSの上で走るアプリを書く場合でしょ。
607 :
仕様書無しさん :2008/02/09(土) 22:55:55
>>605 スタック使わない様にすればCでも大丈夫じゃね?
アドレスは決め打ち出来るんだし。
ROMに入りきらないってのは今時無いだろうし。
スタックポインタを初期化する必要がある場合は そこまではアセンブラかな?
>>608 あ、そうだよね。
Cコンパイラの方で勝手にやってくれるもんだと思いこんでしまった。
今は良くなったもんだとwww
前にやった時は、レジスタのリセットと値代入、MPUコンフィグレジスタの値代入、
ハードのI/O設定辺りまでASMで作ってあとはCでやった気がする。
その後は初期化タスクが使う範囲のメモリチェック後、初期化タスク起動だったかな。
うちはスタックポインタ通常動作用と初期化処理用の2か所つくって、アセンブラで入れ替えてる。 ・・・だめだ、うまく説明できないw
やばい・・・これから組み込みやらないといけないのに全然わからんorz
ウッーウッーウマウマ(゚∀゚)
みんな、組み込みも昔に比べれば楽じゃない? 石にも都合のいいニモニックが増えてて、Cとか使えるわけだし。 RISCのアセンブラなんて、面倒なもんじゃないんだから (あれはあれで覚えるものが少ないから、いいけど) 8ビットの石なんて、今から考えれば、メモリ狭いわ、デバッグしにくいは、 時間内に出来る仕事が少ないわの三重苦だった。 なんつっても、クロス開発環境が身近になってるのはありがたいよ。 エミュレータもインターネットを探せば山ほどある(昔は作るとか、 雑誌の記事を手打ちだったから雲泥の差だ)からね。 難点は、今からまた、組み込みの仕事に転職したら、寝る時間がますます なくなりそうなことさね。楽しくてはまるっつかー、没頭する性質だから 体にも悪そうだ。
でも、儲かるよ。
便利な道具はね、自分達だけが使ってる分には競争力になるけど みんなが使うと、それは制約になる。 儲かりはしないよ
計測器の校正してる? 勤め先は「うちはソフト屋だから・・」って言って校正の経費けちるんだよね
デジタルオシロなら必要を感じた事はないな 時間軸は水晶使ってるだろうから狂うとは考えられない。 電圧は、必要なら直流見て比較すればいいんだろうし 必要と思った事はない。 ソフト屋に、測定なんぞさせる方が間違ってるしな
619 :
616 :2008/02/10(日) 17:18:37
>>617 >ソフト屋に、測定なんぞさせる方が間違ってるしな
そうだよね〜・・・でも、毎度ASSY受け取った一発目は回路デバッグだから
計らない訳にはいかないorz
>>616 やるじゃない
620 :
616 :2008/02/10(日) 17:19:08
>>611 ベテランが居れば初期起動の部分はその人が作るでしょ。
あるいはハード屋が仮で作ってるはずだからそれを参考に。
>>624 ハード・ソフトの開発部が別れてればベース部分はハードが作ってくれる可能性は高いと思うよ。
多少の修正は必要かも知れんが、0から始めるよるかははるかにやりやすいだろう。
無かったとしてもまわりに経験者や別案件のソースがあれば参考にできる。
CPUメーカに請求すれば、 普通にブートローダのサンプルソースあるはずだけど。 あとはそれのいじり方。 CPUも新規なら知らん。
627 :
仕様書無しさん :2008/02/10(日) 22:52:37
>>626 それにしたって、同じ系統のCPUで
評価ボード用のモニタくらいあるだろ
全くの新規で何の参考資料も無いなんてのは
半導体屋が新しいCPUおこすときに
お抱えに振るときくらいなもんだぞ
大昔の新規CPUのときは、 TTLで組んだ馬鹿でかい試作から ポートでシリアルだしてた。 今ならソフトエミュレータする。
H8のエミュレータってある?
そもそもエミュレータって何のこと言ってんだよw まあ意味も考えずICEの"E"だけとってエミュレータとか言ってるんだろうけどw
あ、ソフトエミュレートするの間違いね。
>>629 普通に売ってる。IOもエミュレートできる。
やろうと思えばコンソールも付けられる。
H8はオンチップのデバッグ機能もってるのにどうしてほかの何らかのデバイスを使って エミュレートする必要があるのかね?w
そりゃ試作ボードが遅れるときとかあるだろ。
>>629 Hewを入れれば、ソフトエミュレータも入ってるよ。 無料の制限版でもあったと思う。
>>632 コストがかかるからだよ。
使うためにはボード上にピンが必要だしね。
アセンブラレベルのステップ実行したいならソフトエミュレータで十分だし
実行中の問題は、自分でモニタ作って動作が見えるようにして行った方が早くて安全だ。
H8レベルだとダイナミックに動いているから、表示や通信の関係で
デバッガで止めて動作を見るなんて出来ない事も多い。
だからあのピン最近は最初から立ててない。
8bit全盛の時代だったけど、当時ICEを開発・製造・販売してた会社に 居た。8086用まで製品化して、その後は撤退。 ICEのセットアップ なんて、スキルの範疇に入らんと思うけどなぁ。 幼稚園の年長組と年少組の違いくらい?(w ICE自体(ハードやソフト)がバグを抱えていたり、電気的特性が実際の チップと異なるので、特にバス経由で外部にメモリやI/Oに繋ぐ汎用 MPUの場合、実際のチップを挿せば動くけど、ICEを繋ぐと動かない ということがよくあった。 タイムアウトが設定された通信や外部との同期動作とかが必要な用途だと、 ソフトウェアICE(JTAG含む)やエミュレータは使い物にならんね。
オンチップデバッグ機能と ICE の使い分けもできない人々がいるのは このスレでよかったでしょうか?
638 :
仕様書無しさん :2008/02/11(月) 12:28:06
大昔は、裸のプロセッサにメモリ繋ぐだけでも苦労したし、 ICEのエミュレーションと実機の挙動の違い(大体、作ったハードに 難点があることが多いんだけど)もあったような。で、 ハード屋楽だって理由だけで遅いEEPROMとSRAMの組み合わせになって それでいろいろ制約付いてひどい目を見たんだっけか。 いま楽でいいよな。ウィザードにしたがって原型吐き出す奴まで 普通に配られてるし、少なくとも内蔵フラッシュとRAM使うまでは あまり苦労しないで済むようになってる。 まあ、必要もないのにフルICE買い込むばかチンが多いから 儲かるんだろうけどね。バス外に出してないんなら、オンチップの デバッグ機能を使ったデバッガソフトとかでもいいような気もするし そういう連中に限って複雑な割り込みなんかまず使ってないし。
割り込み使わないで組み込みやってる人がいるの? 4bitならありそうだけど
640 :
仕様書無しさん :2008/02/11(月) 12:54:04
タイマ割り込み1個だけ、とかな。 見たときはなんというか絶望した。
で、爆速なのに、10msの割り込みだけだったとか?
642 :
仕様書無しさん :2008/02/11(月) 13:12:16
トワイライトゾーンみたいなもんだよ。
別にポーリングで担保できるなら ポーリングでいいじゃん
リアルタイムシステムではステップ実行なんてやってられないよな。 制御対象によっては、止めるとドカンすることもあるし。
645 :
仕様書無しさん :2008/02/11(月) 14:20:35
>>636 今のCPUは昔のCPUように、割り込みアドレス指定、少ないレジスタ初期設定だけじゃなくて
初期設定が必要だったり、JTAG ICEなら、フラッシュRAMの設定、
RAMマップ(仮想アドレスとか)の設定、
あと、ゴチャゴチャしたレジスタの設定が必要になっている。
これはハード屋に聞けば良いだけなんだけど。
つまり、昔みたいに繋いでSW入れればOKという具合には行かない。
それに、各種設定でさえ出来ない(詳しくない&知らない)人も増えている。
昔だって、周辺 LSI の設定はいろいろ大変だったよ。 最近は、それが CPU チップに載ってるから CPU の設定が 大変とか思ってるだけだろ。 まあ、I/O ピンの設定とかの自由度が増してるから、少し 面倒なのは確かだけど、たいして違いはないよ。
統合されてパーツ減っただけだしな そのかわりハードバグ疑うときにトランジスタ睨んだりすることは無くなったから 楽になったとは言える気がする
>>646 なるほど。
周辺LSIなんてハード屋さんがやってくれてたから解らなかったよ。
別の1チップマイコンで全部やってたような気がする。
でもICEのセットアップの話じゃなくて、初期化処理の話だと思う。
昔は初期化処理でやってた事が今ではCPUの設定だけで足りる
ようになってきたと。
>>639 使わないで済むならなるべく使わないようにしてる
タイマもあとで面倒が起きたときにゆとりもって使えるように
なるべく少なくできれば1個で済ませてる
使わないで済むなら使わないのはあたりまえ。 使わないで済む局面なんかほとんどないだろってことだと思うが。
割り込みと聞いて、数年前のことを思い出した。 当時、自称「ソフトも分かる」ハード屋の上司の下についていた。 ある日上司が、ボタンとノンマスカブル割り込み用端子とを直結した (ハード的なノイズ・チャタリング対策は無し)回路図を持ってきて、 「ボタンが一定時間押されたらイベント処理するようにしろ、 もちろんノイズ・チャタリング対策とか全部ソフト側で対策な」 と言い出した。 ノイズがのりやすい環境で運用する製品だったんで、 回路レビューでぼろくそ叩かれて、結局ポーリングに変更になったんだが、 その人は 「ポーリングなんて原始的なもの使うのは馬鹿がやること。 まともなソフトなら割り込みで実装する。」 なんて愚痴り続けてた。
いや、結構減らせるものですよ 2つで十分ですよ。わかってくださいよ。
>>651 俺も昔、NMIにSWつないだ回路やったことある。その後、トラブったみたいだった。
>>653 うちの基盤もつないでるよ。>NMIとSW
完全初期化SWだから別にかまわんが
NMI端子ってポートとしてレベル読めないのが多くないのかな?
NMIって名前のマスク出来る端子か?
>>639 マトモなタイマー無い4bitで命令数全部揃えて4チャンネル独立の調光器作った事あるよ
1週間かかった。
> NMI端子ってポートとしてレベル読めないのが多くないのかな?
大抵読めないと思っていたが...。
読めないと、「ボタンが一定時間押されたら」を検出するのがスゲー大変そうだ。
て言うか、その上司に「まともなソフト」とやらのやり方聞けばいいじゃん、
「ソフトも分かる」んだからさ。
上司云々より、
>>651 のコミュニケーション能力に問題があるんじゃ...。
自分で考えろって言われるんじゃないの?
あなたは自分で考えたのですか って聞き返せば?
答えは知ってるけど、教えない とか言われてたりして?
>>651 NMI止めて、普通の読み出しSWにしちゃったんでしょ?
でも、それでNMIとしての機能が果たせるんだろうか。
ノイズが多い環境なら割り込みでもポーリングでも
大して処理が変わらない気がするんだ。
#NMIのレベル検出が出来る事前提での話し、
ってか、レベル検出出来ないとNMI割込み後のNMI SW監視なんて無理だろ?
そういう言い方する人がいるんですよ。
そこでチャタリング取りの出番だ。
> ノイズが多い環境なら割り込みでもポーリングでも > 大して処理が変わらない気がするんだ。 おいおい、大丈夫か?
>>664 すまん、コミュニケーション能力的に。
ノイズが多い環境なら、SWが押された後の処理そのものは
余り違わないんじゃね?と言いたかった。
ノイズの多い環境での割り込みを使う場合ってこんな感じの処理になるの? 割り込み ↓ フラグ立て&割り込みモードの解除 ↓ フラグをメインループで拾って ノイズかどうか判断するルーチンを実行 ↓ 割り込み再設定
・・・・・
ノイズの多い環境で割り込みを使ったスイッチなんて恐ろしくてやってれん そういうときはポーリング一択だろ
ノイズの多い環境だと NMIが絶え間なく入って 通常の処理がまともに動かなくなったりしない? 他の割り込み端子ならともかく NMIだとちょっと危険な気がするな
漏れはソフト寄りだったから良くわからんけど、 SWにまで頻繁にノイズが載るような環境で他の動作は保障されてるんだろうか?
いやいや、スイッチと言うのはそれ自体が入り切りのときは、ノイズ源だから。 NMI でエッジ割り込みだと、ガンガン割り込みが入って来るので、割込みスタック 使い果たして死亡しそうな気がする。
>>671 あのぅ・・・割り込み処理の間は割り込みは入らないんじゃ・・・
>>672 割り込みクリアするまでは同じ割り込みが再度かかる事はないな
だから最後に割り込みクリアさせれば
>>671 みたいな事にはならないはず
>>671 >いやいや、スイッチと言うのはそれ自体が入り切りのときは、ノイズ源だから。
なるほど、理解しました。
割込み情報をとにかくスタックに溜め込んで後で処理する仕組みだとすれば、
割込みハンドラ内で制限時間内の再NMIは無効にする処理を付け足せば
良い様な気がするお。
でも処理が重いかな。
割り込み終わってまた割り込みというのはあるだろ。
>>672 割り込み処理は後回しにするのが普通じゃね?
とりあえずデータ受け取ったらスタックに積んですぐに割り込みクリアするんじゃね?
は? 煽り抜きで意味わかんない・
割り込み処理は入ったら、自動的にPSRの割り込み禁止フラグが立つ。 割り込み処理からの脱出命令(reti)で、自動的に割り込み禁止フラグをクリアする。 よって、普通は多重割り込みは起こらない。 割り込みの優先度がある場合は、優先度がより高い割り込みは多重で入る。
>>676 ボトムハーフ処理は面倒だからやらないの。あふぅ
マルチCPUシステムの話かもしれないし、 割込みを多重に扱えるそういうCPUがあるのかも マルチコアのCPUはその辺どうなってるんだろ。 割込みコントローラが幾つかの割込みを上げて来て それを解析して1つ終わったらまだ次の処理があるってのなら 知ってるお。
681 :
676 :2008/02/11(月) 23:11:49
>>679 ごめん
俺ってば組み込みの勉強し立てのペーペーなんだわ
組み込み系に就職決まったから今から何かしたいなぁ、と
調子乗って発言しちゃいました
もう少しROMりつつ勉強します、失礼しました
つか、割り込み処理の線引きがどこまでなのかてんでばらばら
マイコンによってはNMI処理中でもNMIは受け付けられる。Z80がいい例だ。
684 :
仕様書無しさん :2008/02/11(月) 23:39:25
三流以下どころか、無知揃いのガキばかりだなぁ。 マスクできない割り込みだから、NMI(Non Maskable Interrupt)なの。 NMIはエッジ割込。NMIは割込マスクできないので、レベル入力では NMI割込処理に飛んだ途端、さらにNMI割込が掛かってスタックオーバー フローする。 リセット解除後、唯一NMIが受け付けられないのは、スタックポインタの 初期化(SPレジスタへの代入)が行われるまでの間のみ。 こんな程度の連中が一流気取りで組み込みに関わってるんだから、バグが 出まくるのは当然か?
68K とかもそう。
て言うか、そもそも Non-Maskable なんだから、マスクできる方がおかしい
と考えられてて、外部回路でそんなことにならないようにするのが普通だっ
たが、最近は NMI は多重割り込みしないプロセサとかもあるみたい。
>>651 みたいな奴が増えてきたからかもしれないな。
もりあがってまいりました。
NMIなんてものは、緊急停止ボタンとか、通常動作を止めてまで割り込ませなきゃならないような処理を行わせる為にあるもの。 通常動作でNMI使うなんて、愚の骨頂。
>>685 割り込まれちゃった...、にちゃんにもマスクが欲しい今日この頃 (w
> リセット解除後、唯一NMIが受け付けられないのは、スタックポインタの
> 初期化(SPレジスタへの代入)が行われるまでの間のみ。
じじいの知識乙。
残念ながらそれは、(6809 とかの) 一部のプロセッサの機能。
もっと古い 6800 とかは、そのまますっ飛ぶし、68K とか今遊んでる dsPIC30F
なんかは、そもそもリセット時にスタックポインタもハード的にセットするか
らそんな機能は必要なかったりする。
>>687 そんなことは、多分大多数の人はわかってて書き込んでいると思うぞ。
689 :
仕様書無しさん :2008/02/11(月) 23:56:03
>>678 一般に、割込応答では、プログラムカウンタ(PC)とフラグレジスタがスタ
ックに自動退避された後、フラグレジスタ内の割込マスクビットがセット
される。
割込終了命令(RETI)では、スタックに退避されたプログラムカウンタと
フラグレジスタを取り出し、割込応答前の処理に戻る。フラグレジスタ
の復元により、割込マスクビットが元の状態(割込許可)になる。
フラグレジスタの割込マスクビットは「元栓」なので、より優先度が高い
割込要因からの割込要求であっても、割込処理ルーチン内で明示的に割込
許可しない限り、処理中の割込を終了するまで割込は受け付けられない。
優先度は複数要因から同時に割込が発生した場合、どちらの割込を処理
するかの決定にのみ影響する。
だからそれは、普通の割り込みの話であって、NMI は別格なんだよ。
Non Maskable Interrupt
> フラグレジスタの割込マスクビットは「元栓」なので、より優先度が高い > 割込要因からの割込要求であっても、割込処理ルーチン内で明示的に割込 > 許可しない限り、処理中の割込を終了するまで割込は受け付けられない。 今時、単一レベルの割り込みしかない CPU を使ってるのか?
まぁ待て、 チャタリングって何ですか?
694 :
636==684==689 :2008/02/12(火) 00:25:19
>>690 それは
>>689 に対するコメントのつもり? 言われるまでもないが?
>>688 6809や68K以降の改良は、それだけスタック初期化やNMIをマスクする外部
回路を忘れる馬鹿が多かったってことだろ?
>692
> 今時、単一レベルの割り込みしかない CPU を使ってるのか?
6809でも、IRQとFIRQのマスクビットは独立していたと思うが?
所詮、多くは8259AをCPUに内蔵したようなもんだろ? > 複数レベル割込
現在でも、割込応答/終了で退避/復旧されるフラグレジスタ内に割込
マスクレベルを含むCPUは特殊だと思う。x86系を含むそれ以外のほと
んどのCPUは、割込応答/終了でセット/クリアされる割込マスクはCPU
(コア)グローバルで1つしかない。
最近マスカブルなNMIがついてるマイコン使ってます
それ意味n
>>694 > 言われるまでもないが?
言われるまでもないことを長々説明してるのはなんで?
> 6809でも、IRQとFIRQのマスクビットは独立していたと思うが?
そう、独立していて IRQ では、FIRQ のマスクビットは立たないから、
IRQ 割り込み処理中でも FIRQ (=より優先度が高い割り込み要求) は
受け付けられる。つまり、君の説明は誤り。
> 現在でも、割込応答/終了で退避/復旧されるフラグレジスタ内に割込
> マスクレベルを含むCPUは特殊だと思う。
単に君が知らんだけでしょ。
で、君の話が全然 NMI に関係ない話になってるのは理解してるのか?
>>696 確か俺も見たような記憶があって、すごい違和感があった。
普通に、NMI じゃなくて複数レベル割り込みと言うことにすればいいと
思うのだが、なんか NMI 特有の機能があるのかな?
700 :
636==684==689 :2008/02/12(火) 01:10:16
>>695 ==
>>685 すべて自分に向けられたレスだと思う自意識過剰を直したら?
> で、君の話が全然 NMI に関係ない話になってるのは理解してるのか?
ここはいつからオマエのNMI専用スレに? 勝手にブログでやれば?
そんなことよりチャタリング除去の話しようぜ もともとNMIでチャタ除去ってどうすりゃいいかって話だろ おっと、NMIでそんなことすんな ってのはこのスレじゃご法度だぜ なにしろプログラマが対象だからな ハード改造やピンの選定は板違いだ
NMIでそんなことするなハード屋に突っ返せ おしまい
そこをソフトでって話だろ
705 :
仕様書無しさん :2008/02/12(火) 01:28:52
おまえらもっとソフトに出来ねーのかよ。
706 :
仕様書無しさん :2008/02/12(火) 01:31:50
>>701 NMIのルーチン
1,スイッチの状態を記録
2.前の状態と一緒ならカウンタ+1
3.違ってたらカウンタクリアしてルーチンから抜ける
4,カウンタがM以下ならルーチンから抜ける
5,スイッチ押下時の処理へ
でいいんじゃね?
DI状態で走らせて定期的に割り込みフラグが立っているか、 チェックして処理すればいいんじゃない?
だからNMIだって
他をケチってもNMI周辺回路だけはケチらない。 ノイズが乗ってもハードで対処する。 これでいいだろ。
>>706 NMI端子はポートとしてアクセスできないのが多いんだ。
だから、基本的にスイッチの状態は判らない。
NMIのエッジで割り込みがかかるだけ。
もちろんチャタリングやノイズなんかでも割り込みはかかる。
という条件で、チャタリング対策が出来るかという課題だから。
>>711 クイズのお題としてもチャレンジングじゃないしくだらない話題だなあ。
まあスイッチのチャタ除去限定ならできないこともなさそう。
ノイズ対策に関しては俺はソフトでやろうなんてそもそもナンセンスって立場だが、
まあ所与の条件では不可能。
入力専用ポートから出力する程度には簡単な話だろ
H8のある品種の場合 ・ NMI端子はポートとしてアクセス出来ない ・ エッジは切り替えられる ・ 割り込みは禁止出来ない。 割り込み処理中にかかれば多重割り込みとなる だからやるとしたら、何かパタパタしてる信号にスイッチつないでおいて ボタン押してる間、定期的にNMIが入るような回路にしてもらわないと駄目だろな
NMIとSWの件は、別にSWを読み込むのが目的じゃなかったんです。 なぜ、NMIとSWを直につなぐことをしたのが不思議だったんです。
意味が判らんけど、NMIと並列にポートも接続されてるわけ? ならNMIがかかった瞬間にポートの方を出力にしてLを出してしまえば とりあえずNMIが連続して入って来るのを防げるよね
妙にせこいところだったから、そんな回路ついてなかったんです。
でも SWを読み込むのが目的じゃないのにSW付けたんだろ? 意味判らんけど、リッチだね
試作ボードとかには、金かけてたみたいだけど、ひどい基盤だった。
ゲームならNMIは垂直同期
チャタリングよけなら積分回路つけて おけばいいだけなんだがね。
だからソフトで何とか解決しようって話云々以下ループ
>>700 > すべて自分に向けられたレスだと思う自意識過剰を直したら?
はぁ? 自分でつけたレス番すら覚えてないのか?
>>688 ,
>>690 ,
>>692 は全て俺だよ。
> ここはいつからオマエのNMI専用スレに? 勝手にブログでやれば?
もともとは、
>>651 から始まった話と言うことは理解できてるか?
まあ、NMI の話から普通の割り込みの話するのは別にいいと思うけど、君の
全然間違ってる普通の割り込みの話をこんなところでしても恥かくだけだよ。
# 間違いを自覚してるかどうかも怪しいけど。
>>716 根本的にチャタリングの問題は解決しないし、そもそもそんな回路つけられ
るぐらいなら、同期化とかもちゃんとやってもらえばいいと思う。
いや、ここはフリップフロップ回路つけてもらわないとソフトでは絶対無理だと言い張れ。
タイマー動かしておいて、NMIでタイマーカウンタをキューへpush。 メインループではキューを見て、チャタリングを除去。 多重割り込みでスタックオーバーフローの問題は、 NMI処理ルーチンの高速化くらいしか思いつかない。
チャタ(・∀・∀・)リング
730 :
仕様書無しさん :2008/02/13(水) 04:26:53
なんでもソフトでやろうなんておかしいですよ、カテジナさん!
NMI使ってない民生品は結構あるはずで、 使うのはデバッグ時だけとか・・・。 製品にした段階でNMIが必要な条件というのは、 もう緊急で余計なこと一切抜きでそれをやらなきゃって場合なんだろ? としたら、ハードで完璧なノイズ対策しておいて、 ソフトは本質的な対応処理を即応ってことじゃなければ タダの高優先度の割り込み使うのとかわらくなるんじゃねえの? と、寝ぼけ眼でレス。
732 :
636==684==689 :2008/02/13(水) 08:36:20
>>725 > はぁ? 自分でつけたレス番すら覚えてないのか?
>
>>688 ,
>>690 ,
>>692 は全て俺だよ。
漏れは
>>689 で、明示的に >> 678 の間違い(RETI命令がDIフラグを
クリアするのではなくフラグレジスタの復旧による)についてコメント
しているんだが?
> 689 :仕様書無しさん:2008/02/11(月) 23:56:03
>
>>678 >>684 でNMIがマスクできない割り込みであることに言及しているし、
>>689 は割込応答の後の挙動なので、NMIがマスクできない割り込みで
あることとはまったく矛盾していない。
重箱の隅をつつくことしかできないオマエに残った次の手は、スタック
領域を持たないPICの下位製品などを引き合いに出してくることか?
まぁ、三流にできるのはその程度だ。
すべて自分に向けられたレスだと思う自意識過剰を直したら?(www
世の中広いから
>>678 のタイプも
>>689 のタイプも両方実在するんだよ。
割込マスクビットが4ビットあって、その4ビットで優先度を表現、
割り込み受付シーケンスでスタックに詰まれた後で、その割り込みの優先値が割り込みマスクビットにセットされる
というようなのがね。
もっとも、フラグレジスタが16bit取れるようなバス幅の広いCPUだったけどね
組込みエンジニアには、自分の使っているプロセッサに思考が組込まれてしまう 傾向がある模様です。
特定のプロセッサ使ってる奴はそれ前提で解説し始めるからな〜。 俺は4bitから32bitまで色々使ってるが・・・。
なんちゃってタイマー仕込み会社出身の人はすごい設計をするらしい。
いろいろここにも落書きしたが、どうでもいい気がしてきた。 別に動いてれば何でもいいだろ。 動かないの動かせといわれたらやってみればいいだろ。 できなくても別に仕方ないし。 善意から始めたことを悉く逆手にとるゴリラにはもうお手上げさ。 どうでもいいじゃんか、どうでも。
>>737 相手も人間。 怖がってばかり居ないで駄目なものは駄目と言ってごらんよ。
確かにNMIでレベルは取れない。
だったらスイッチの片方をGNDじゃなくてダイナミック点灯してるラインと繋いでもらおう。
そしたら、スイッチ押してる間はNMIがスキャン周期でかかるから
それでフラグを立てて、一定時間ごとに見ればいい。
まずは話してみようよ。他の方法があるかもしれない。
とにかくさ。
マスクできるインタラプトをNMIと呼ばない教。
>>732 ねえ。もう見てて痛々しいからやめたら?
ICE の会社にいたらしいので、CPU の動きについて他の人より詳しいとか勘違いしてるの
かもしれないけど、今時 CPU 自分で作る奴もいるぐらいだから、もっと周りを見た方がい
いぞ。(特に、このスレでは)
そもそも、NMI の話してるのにわざわざ知ったかするために、
> リセット解除後、唯一NMIが受け付けられないのは、スタックポインタの
> 初期化(SPレジスタへの代入)が行われるまでの間のみ。
なんていう一部のプロセサ固有の話を偉そうにするから叩かれるんだよ。
> 漏れは
>>689 で、明示的に >> 678 の間違い(RETI命令がDIフラグを
> クリアするのではなくフラグレジスタの復旧による)についてコメント
> しているんだが?
それについて、俺が
>>692 で茶々入れただろ、そしたら何をトチ狂ったのか知らんけど、
>>694 IRQ と FIRQ とか言い出したから、
>>699 で間違を指摘してやったろ?
それで結局
>>700 みたいなわけわからんレスするぐらいならおとなしく引っ込んどけよ。
ちなみに重箱の隅つつくなら、PIC なんてメジャーな CPU なんか引き合いに出さないよ。
HP のミニコンなんかがいいんじゃないかな、マイクロ自分で書けば割込み処理なんてど
うにでもなるし。
NMIをスイッチにするには結局どうすればいいんだよ できない って書く奴は氏ね
NMIをスイッチ押し下げのエッジに設定する。 NMIルーチンでタイマカウンタをリセットして、タイマをスタートする。 タイマ割り込みが発生したら、スイッチが押されたと判断する。 だめかな?
NMIって何ですか?
良いですね。
NMIにスイッチを接続する奴なんか消えてしまえ
だからぁ、フリップフロップ付けて1回めのトリガだけでエッジ割り込み 以降何があろうが1になりっぱなし。 用が済んだらフリップフロップをリセットして0に戻す。 というI/OをNMIの前に付けてもらえ。
スイッチって人間が操作するスイッチのこと?
なぜそんなものを割り込みで処理せにゃならんのだ?
ポーリングで読んでりゃいいじゃん。
それとも何か?10msの超高速でスイッチをon/off出来る超人のスイッチングでも測定するのか?
>>743 タイマーインターバルはどのくらいに設定する?
タイマー割り込みが入る前にまたスイッチをOFF=>ONされたらどうするんだ?
そのときにタイマーがリセットされてしまうがな。
連続して高速にスイッチを押し続けると永久にタイマー割り込みが入らんぞ。
あの双子どうなったんだ?
だってパワーダウン状態からの復帰にNMI使うから。 RESETじゃだめな場合もあるし。
>>748 > 連続して高速にスイッチを押し続けると永久にタイマー割り込みが入らんぞ。
ひとはそれをチャタリング呼ぶ。
>>748 > なぜそんなものを割り込みで処理せにゃならんのだ?
少しは空気読もうよ。
>>747 ハード屋さんとは死ぬほど仲が悪い という設定です
>>753 ハード屋さんとは仲良くしなよ。
奴らはコードレス半田ごてという武器を持ってるから、
背中を見せると尻の穴につっこまれるぞ。
それ・・・きもちいいの・・・?
それってライトセーバー?
>>753 それ、レーシングチームのエンジニアとドライバーの
関係だから。仲悪いとかそんな問題じゃないから。
やっぱり理想は、自分で回路図書いて、アナログ部分は
SPICEで動作確認して部品選定もやって、組んだ上で、
制御プログラムも書く。さすがに基盤設計とかは任せてる
みたいだけど。ハード屋・ソフト屋なんて分業は信頼しないとできね。
・・・・NMIってどーしてもってんで、ROMICE使うときとかぐらいしかつかわなくねえか? それもデバッグ関連の機能が無い、古めの石で。
NMIがチャタったら割り込みまくるん?
デバッグ関連機能の有る石なんて使ったこと無いよ orz
>>746 40〜60ピンくらいのピン数だと、あと1個スイッチ付けたいけどポートが無いって事があるんだよ。
そうすると、使わないつもりのNMIピンが魅力的に見えてしまうんだ。
でエッジでしか取れないから、スイッチの片方をパタパタする信号につないで
ボタンを押してる間はパタパタ割り込みがかかるようにする。
どうせポートにつないでも一定周期でしか見えないのだから
>>748 のような心配は
それをするならポートにつないでも同じだろうよと
>>743 ソレだとノイズでも受信してしまうぞ。
H8のようにエッジレベル(立ち上がり・立下り)が変更出来る場合
NMI--プルアップ---SW---GND
の接続なら
立ち下がり設定NMI--> FLAG1 立上がりエッジ設定 + タイマークリア
立上がり設定NMI--> タイマ20ms経過後ならFLAG2 タイマ記録
メイン処理で
FLAG1オンで100ms経過したら NMIを立ち上がりに戻して FLAG1/FLAG2クリア
その時FLAG2オンならタイマ記録値によってチョん押し 長押しの区別をして処理
これでどうだ?
NMIに速攻で再入してくるんじゃないの?
NMI入り口でスタックポインタを初期化すればオッケ。
なんでNMIにこだわってるのかな? 俺には分からない。 必要な現場は数十nsが許せない場所だけでしょ? そんな組み込み屋って。。。。捨てる NMIを使う必要性(状況)を教えてください。
まあ、NMIなんてハード的にも使い辛い割り込み選択する時点でハード屋として失格だよね。
それが。いっつあ、なんちゃってタイマー、クオリティー
768 :
仕様書無しさん :2008/02/15(金) 13:25:20
NMI端子だけ使い道が無くて開いてるから、 それにスイッチを付けたくなるんだよ。 基板上に付けて、テストモードに入れたりする時に使えるようにとかさ
SW直づけじゃなく、安いマイコンを間にはさめば、いいような気がするんだけど...
スイッチ付けるだけでもコスト問題になるのに、そんなムダな金は出せぬ
チャタ取りマイコンって言うのをたくさん作ればいいんじゃないの?
ノイズで起きちゃうようなやわな回路ならNMIを使うべきでない。 そうでないならNMI割り込みが入った時点でスイッチON確定とみなす。 これでいいんじゃないの?
チャタリングの話だった。すまん。 タイマ併用してNMI割り込みの時間間隔が短かったら無視すればONかと。
チャタの全部にNMIが反応してスタックオーバーフローw
NMIでこんだけ盛り上がるなんて 組込み大好きっこだらけだなwww
NMIって何ですか?
けっこうレスしてみたが実はNMIが何か俺もわかってない
水素とか電磁気とか共鳴とか
核磁気共鳴はNMRだとおもわれ
風俗に置けるひもだなキット
処理の頭でスタックを初期化すれば NMIそのものがチャッタリング対策になるのだよ。
NMIなんか使ってねーでCPLDでも追加してIO増やせや お前らが空っぽの脳みそ使ってなんとかNMI使おうとするより石追加した方が無駄な開発費が減って安くなるぞ
な、なんだってーー
>>783 スタックのないプロセサの場合はどうすればいいんでしょうか?
>>784 そんな金を節約してやって、原価下がった分の一部を開発費UPとして頂くのが俺達の仕事。
汎用機はスタック無かったな
スタックがなければ スタックポインタがオーバーフローすることは なかろう。
スタックオーバーがなくても、戻り番地領域が上書きされるからダメだよ。 そもそも、スタックがなくて NMI が付いてる CPU なんて見た事ないが。
NMIといえども、 最初の1命令は実行されるのだよ。 そこでSPを初期化する。 戻り番地がレジスタというCPUはナンもしなくて良い。
大抵の CPU は、NMI と普通の割り込みでスタックを共有する。 ましてや、サブルーチンコール用のスタックを共有している CPU だと、サブルーチンから戻るすべもなくなる。 スタック溢れだけ気にして、他のことを放棄する奴は単なるバカ と言うことでいいか?
>>794 NMI割り込み中に他のサブルーチンからのコールとか
普通の割り込みって入ることがあるってこと? 怖いなぁ
NMI使ったことが無いなら黙っていたほうが良いよw
だからさ CPU / NMI-----○ sw ○----+ | | ポート---------------+------------ ダイナミック点灯等のスキャンライン こういうふうにして、SWが基板上にあるなら そんな連続して入ってくる筈がないだろうに
そういや、NMIを使ったことはほとんど無いな モーター制御用の割り込みがハードワイヤードされてたのを使ったことがあるくらいだ
>>798 そう言われてみれば最近設計したボードはすべてNMIをHi固定にしているな。
ARMみたいにNMIなんてピンがないCPUが出てきてるってことは
時代の流れとしてNMI不要ってことなんだろうか。
>>793 > NMIといえども、最初の1命令は実行されるのだよ。
どの CPU のことを言ってるのか知らんけど、たまたまデータシートが手
元にある 68040 だと、割込み時にスタックにもろもろをプッシュしてる
間に次の割り込みが入ると、割り込み先なんかに飛ばずに次の割り込み
の処理をはじめるので、CPU によってはそもそも君の方法は根本的に破
綻してるよ。
>>795 何をわけわからんことを言ってるんだ?
他の割込み処理中とか、サブルーチンコール中に NMI が入ることぐらい
考慮しろよ。
>>797 スキャンラインのパルス幅の間にチャタリング入ったら連続するだろ。
>>800 通常割り込み処理中にNMIが一回割り込みむだけだろ?
無限に割り込むCPUなら、そりゃすごいや。
>>799 オイラがNMI使ってた頃より
パワーダウンの要求が2桁ほど少ないから、
その目的には専用IC使うのが普通だし。
CPUも速くなったし、面倒なNMIはいらないね。
803 :
799 :2008/02/16(土) 18:36:52
>>801 > 通常割り込み処理中にNMIが一回割り込みむだけだろ?
違う、NMI はマスクできないし、68K はエッジセンスだから、
割込みの準備を開始してから割込み処理ルーチンに飛ぶまで
の間に割込みラインが一旦レベル7以外になって、レベル7
に戻ると、処理ルーチンへは飛ばずに、次の割込み準備を開
始する。これを繰返すと、無限に割り込む。
ちなみにここで、割り込みの準備と言ってるのは、関連レジ
スタをスタックにプッシュ、ベクタを読み出して Program
Counter にセットするまでの処理のこと。
>>804 そうなの?
オイラがH8のNMIをスリープ解除に使ったときは、
H8だと1命令だけは動作するから
そこでSPを初期化してチャッタを対策した。
その68Kではこのやり方は使えないね。
> H8だと1命令だけは動作するから そんな保証されてる? 型名と、データシートでどういう記述されてるか教えて。 (ちょっと調べただけでは、リセット後に1命令だけ NMI も効かない 期間があることしかわからんかった。) ちなみに、68K でもチャッタぐらいなら割込みの準備中に次の NMI が 来るなんてことはまずないだろうから、実用的には問題ないと思う。 ただ、68K を採用するような機器ならそれなりに周辺回路があるので、 スイッチを NMI に直結 (て言うか、これだけでも外部回路がいるし) なんて構成はまずありえないけどな。
IRQポート使わずにNMIポート使う設計にした根拠をハード屋に問い詰める。 そしてそれがどんなにハード的にも誤った設計だと言う事を小一時間ほど・・・
>>806 もう昔のことだからねえ。
量産したけど問題は出なかった也。
>>807 スリープ復帰でもないのにNMI使う設計は
ありえないよね。
>>808 なんだ、偉そうに「最初の1命令は実行されるのだよ。」と言ってた根拠って、
結局「量産したけど問題は出なかった也。」なのか...。
まあ、スリープ復帰に NMI 使うようなところだとこんなもんかな。(w
データシートくらい見てから煽れよミジンコ
>>810 > 型名と、データシートでどういう記述されてるか教えて。
お前には、無理だと思うけどね。
NMIが無限に入り続けるCPUって見たこと無いや。
H8ならNMIにφ/2 を入れてやれば見えるよ
スイッチに使えるNMIを持ってるCPUもあるんだろうが、普通は致命的エラーの検出を想定してるもんだろ。 そんなものを正常系に使おうという発想そのものが致命的なのではないか。
派遣からメーカーに転職しようと思って応募したら 試験が電気電子、電気回路なんだけど・・・ そんな技術ないってメール送ってもがんばってくださいって返事が帰ってきた 組み込みってそこらへんの技術必須なんかね・・・ いままであれば便利ぐらいにしか見てなかったんだけど
そりゃメーカにしたらプログラマで一生飼うわけにはいかないわけだし その上の外注管理やらさせるとなると総合的な技術を持ってる奴が欲しいだろ?
て言うか、組込なら回路図ぐらいは見れた方がいい。
ちがうちがう。 説明しなくてもいい便利屋が欲しいだけのこと。 ・・・・・あとはわかるよな? つまり、最下級の職種として扱われるということ。 どんな専門知識も「なーんだ、こっちの常識知らないのかぷぷw」 ということで、シカトするための理由付けとなります。 ヤメトケソンな会社。いあまじで。
>>815 できないなら、できるようになればいい。
だけど組み込み屋って電気分かんないと仕事の範疇広がらないじゃん。 そもそも電気屋との戦いで善戦できるようでないと仕事が進まない。
戦って完全勝利してしまって結局追い出された俺が通りますよ
それ、惨敗って言わねぇか
そだね。何事も程々にね。
勝負に勝って試合に負けたって感じですねw
>>821 が単に勝ったと「 思 い 込 ん で る 」だけじゃないのか?
2ちゃん風の畳み込みだな。 技術議論に勝つ=戦術的勝利 次の案件で干される=戦略的敗北 ということだろ。
いやチャタリング処理無用論者のように、一人で頑張って勝ったつもりになってるんじゃないのか?
チャタリング処理が無用だとか言ってるやつは論外だが、 ソフトのほうで何でもどうにかなると思ってる電気屋が多いのも確かだよ。 CPUのポート初期状態だと問題の出る構成で設計してたりとか・・・。 CPUの端子構成だけ見て設計して、後から「あーあ」となる。
チャタ(・∀・∀・)リング
>>828 君本当に馬鹿だなw
「チャタリング処理が無用」なんていってないって何度言わせるの?
無用じゃなく、やっても意味がないといってるんだよいい加減理解しろよ。
こんな人語も満足に扱えない奴がエンジニア気取ってるのかねアホちゃうか。
てな感じでコミュニケーションを一方的に絶っておいて、完全勝利だと思ってるという例でした。 まあ、「やっても意味が無いとはどういう意味だ?」とか 「実際にノイズ与えて試験してるのか?」という問いかけには一切答えないからどうしようもない。
話の持っていきかたが恣意的だな。 コミュニケーションに名を借りた一方的なアイデア引き出しや 上下関係の押し付けというか、威圧ってのはよくある。 で、「こみゅにけーしょんのうりょくw」のある奴が ボロボロのハードソフトを作り込んで大騒ぎする。 大騒ぎの結果、たくさーん残業したwってことで 無能者が過度の発言権を持つ。 よくあることだわ。
>>831 それ自分にそのまま当てはまらないか自省してから書き込んでる?w
ちなみに俺(
>>830 )には当てはまらないよそれ。
前者の質問は何度も繰り返し回答済み。
まあ後者は質問されてないので答えてないが、実証実験は行ってない。
が、こんな小学生でも理解できる(はずなんだけどねw)理屈をあえて実証する意味がどこにあるの?
入力ポートの状態を御認識させるような要因が本当に存在していると仮定すれば
そもそも何をやっても……
もう書き飽きたw
なんでこんな簡単な理屈がわからんかねw
自分の頭で考えることを放棄してどこかの他人に判断を丸投げしているとしか思えん。
最後の一行だけ参考になったよ。 自分が納得できない事ってやっぱりダメだよな。 でも、押し付けられるのにも逆らい切れないでながされると。
これも繰り返しだが、論理的思考のできない人間っていうのは このように「ワーストケースを想定した安全策」を考えるべき場面において なぜか「自分に都合がよい状況・運がよい状況」を想定する。 そして、実に不思議なことにそういう自分の「不思議な」心の傾向に気づきもしない。 俺には理解できないよこういうお馬鹿の発想って。
想定するワーストケースの妄想度がバラバラにならないように気をつけようね。 宇宙からの中性子線がメモリー破壊する危険回避策の検討とかに見合うくらいかな?
繰り返しばかりで進歩が無いのは嫌だな
完全主義者が臆病になりだすとキリが無いわ。
>>835 みたいなのは、典型的な挫折知らないおぼっちゃま思考の
持ち主か、あるいは完全責任転嫁型の奴隷使役現場監督だとおもうよ。
ワーストケースにはまり込むと、抜け出すことも難しいし
抑圧された条件下では選択肢も思考の柔軟さも失われるのが
全く想像できないんだね。
だれだっけ、派遣に落ち込んだのは自己責任!
ってどっかの人材派遣会社の女社長の物言い思い出したよ。
>>830 チャタリング処理が無用でない、ということは、チャタリング処理は有用なんだな?
しかし、有用なのに意味が無いってのはいったいどういうわけだ?
評価されない=金に反映されないってことだろ?
その昔、8ビットコンピュータのメモリーは9ビットだった。 メモリー書き込み時のエラー訂正用に1ビット余分に持っていたらしい。 メモリーへの書き込みエラー発生率は今でもゼロではないけど だからといってそのために1ビット多くのメモリーを積んだりしない。 費用対効果がまったく期待出来ないからだ。
>>833 > 実証実験は行ってない。
机上の空論か
みんな相手にすな。あほらし
ECCって何だっけ。英会話か?
今、仕事いっしょにしてる先輩社員さんは、知識・経験は豊富なんですが、自信がありすぎるせいか、 間違ってることでも「俺が絶対正しい!」という態度をされることがあります。 僕の意見、報告に対して、はぁ?そんなわけないだろ・・・的な小バカにした態度で問い詰められ、 結局僕の方が正しかったことが何度かありました。 議論にならないので、最近は最小限の報告だけして相手の指示に半ば盲目的に従うようにしています(汗) 自信があるのはイイんですけど、ひょっとした自分が間違っている可能性もあるわけですから、 そのときのことを考えた態度を取るべきだと思うんです。 みなさんはどう思われますか?
>>842 物によっては1bitどころか数倍のメモリを積んで冗長化とかやってるよ。
誤動作すると莫大な損失の出るような装置なら費用対効果が期待できるからね。
結局、 用途と求められる信頼性とが価格に見合うかと言う事が最大の分岐点だな。
>>845 自信があるないは関係が無いよ
論理的に矛盾が無いかどうかだけが論点となるべき
>>845 まず、自分が間違っていることに気付きましょう。
「小馬鹿」にされてると感じてるのはあなた自身です。
なぜ、従うのですか?
ただ、あなたの正しさが「何度」だけでは
自分のバカを自覚しましょう。
先輩が自信をもって話すことなんて、
嘘があって当たり前。人間だもの。
カウンセリングをお勧めします。マジで。
>>849 はいはい、学生のタワゴトはうんざりだよ。
853 :
仕様書無しさん :2008/02/21(木) 07:31:57
>>833 やっと、会話の糸口がみつかりました。
ようするに、普段は意味があることは理解出来てる訳ですね?
チャタリング処理によって普段はノイズや接点劣化による短いヒゲを
十分少ない頻度に下げる事が出来る。
これをしなければ、条件が悪ければ頻繁に誤動作する事。
でもゼロには下がらない。 最悪状態ではどっちにしても誤動作する事。
ここまでは、あなたも私たちも理解してるし、同じ意見なわけだ。
そこから普通の人と貴方の意見は違ってくる。
私たちは、頻度が下がる事に十分な価値があるとして採用している。
あなたは、誤動作する時には誤動作するのだからと採用しない。
私たちは、ノイズを仮定し、仮定したノイズでシミュレートし、そのノイズ
の下でも出荷台数*製品寿命内でせいぜい1/100回程度の誤動作に
なるようにコントロールしている。
あなたはその代わりに何をしているのですか?
私たちの提供する品質と、同等のものを貴方は提供出来るのですか?
>>853 >チャタリング処理によって普段はノイズや接点劣化による短いヒゲを
>十分少ない頻度に下げる事が出来る
わからない人だね。
だから俺が言っているのは、それは考え抜かれてない、それこそ机上の空論の「思い込み」に過ぎず、
そんな効果は本来は期待できない、と言ってるんだけど。
あ、「ヒゲ」に対する効果は認めてるけどね。
855 :
843 :2008/02/21(木) 08:47:21
ああ、そこからですか。 また繰り返しになりますね。 では、あなたは外部から操作するようなスイッチ周りから どんなふうにノイズが来ると認識していますか? そのノイズの本来の幅と高さについてどういうふうに考えていますか? またスイッチの接点が酸化等で劣化していった場合、どんなふうな入力になると理解していますか?
>>854 数学的に効果があることは証明されてるよ
>>854 「ヒゲ」以上の期間を持つチャタはすでにチャタとは呼ばない
もしかしてそれを指してチャタ鳥無意味論を展開してるなら
ここに居場所は無いから帰れ
>>857 君本格的に頭悪いでしょw
ここで「チャタ取り有効論」を主張している人たちの主張は、
「チャタ取り」とは名前に「チャタ」は付いているが、少なくとも今日的には
主目的はチャタリング取りではないのだそうだ。
その主目的とは、外来ノイズによるポートの入力の誤認識を除去することなのだと。
で俺の主張は、以上を踏まえて、「彼ら」の主張する「チャタ取り」の手法、
つまりN回一致をもってポートの状態を確定する、という手法は
彼らが思ってるような効果なんて期待できないよ、って話ね。
君らは自分に都合のよい前提条件を暗黙のうちに仮定してるから
効果があるように思い込んでるだけだと。
っていうか、君のように日本語の読解力すら怪しい人間こそここに居ちゃダメでしょw
何回同じこと書かせるの?
過去の文章読むのが面倒だってのなら黙っててくれない?
>つまりN回一致をもってポートの状態を確定する、という手法は >彼らが思ってるような効果なんて期待できないよ、って話ね。 話は判ったが、主張にはなってないぞ。 期待してる効果は、ノイズが頻度pで入って来る時 p^N に減る事で これは数学的に正しいし、実際に効果がある。 これが誤りだと主張するなら、ノイズが「頻度pで入って来る」が正しくない状況と その状況の発生する頻度を示さなければならない。 それを示さないで主張したツモリになってるんじゃ、君、基本的に頭悪いでしょ?
オレ、大学のときロボット屋だった。 一応プログラムも組めて、IT系の会社に就職。 GUI作成したり、電気屋の作った某制御ボックス(linux)上のプログラム 作ったが、デバイスドライバー作るところで挫折。 メモリーマップさえわかってりゃなんでも出来ると思ってたが ハードの詳細な仕様を理解できないと作れないってわかった。 オシロスコープも学生のとき以来使ってないし、電気屋ではなかったから そこで行き詰った。 会社は成長待ってくれないから組込み続けるのはあきらめ アプリ開発にもどった。 組込みってソフトの知識は重要だがそれ以上に電気屋だね。
>過去の文章読むのが面倒だってのなら黙っててくれない? 書き口で大体分かるけどどれが君の書き込みなのか・・・。 39とかもそうなのか?
相手がパーを出す可能性があるから、グーを出しても意味が無い。
チョキかパーしか出さないのが正しい。
と
>>858 が主張しています。
863 :
仕様書無しさん :2008/02/21(木) 15:00:05
組み込み系って CとC++どっちが主流なの?
中学校の算数だと思うんだけどね 消去法とか帰納法とか背理法とかさ。
>>863 もうFAQにしていいくらいの話題だな。
最近の多くの組込用コンパイラはC++になっている。
しかし、C++の機能は殆ど使われず、せいぜいベターCとして使われているのが現状
>>862 「相手がチョキを出す」という自分に都合のよい前提条件を暗黙のうちに仮定してるから
グーに効果があるように思い込んでるだけだと。
>>866 相手がチョキを出すとは限らないからグーに効果がないなんて言ってるのか?
チョキを出された時に勝てなかったら仕事として成り立たないわけだが・・・。
「・・・は起こらないだろうから考えなくていいよ」
のほうが都合のいい解釈だと思わない?
>>867 >「・・・は起こらないだろうから考えなくていいよ」
これを口癖にしてる上司がいるわ・・・。
大体そういう時に限って後から不具合として出てくるんだがな。
状況1. 入力にノイズ無し 状況2. 入力に「n回一致」で回避可能なノイズ有り 状況3. 入力に「n回一致」で回避不可能なノイズ有り n回一致処理無しの場合:状況1.で正常動作、状況2.状況3.で誤動作 n回一致処理有りの場合:状況1.状況2.で正常動作、状況3.で誤動作 どっちがいいかは一目瞭然だな
870 :
869 :2008/02/21(木) 15:39:19
「n回一致に意味が無い」というのは「状況2.が存在しない」場合に限られるわけだが、 それこそ「自分に都合のよい前提条件を暗黙のうちに仮定してる」ことにならないか?
>>865 私の場合はシープラプラでなくシースラスラとしてしか使ってない
しかしいつのまにか//コメントはCでも標準になってしまったような。
C99で標準になってる
>>872 そうだったのか、教えてくれてありがとう。
俺は組み込みでもC++のクラスを活用してるよ。 コードの再利用性が段違いに良いから。
ヒープはどういうふうに管理してるの?
コンストラクタの動作がmain以前で グローバル変数としてインスタンスの大群が見えるんだろ・・・・。
newをオーバーライドとか?
>>859 >期待してる効果は、ノイズが頻度pで入って来る時 p^N に減る事で
だからそれが「自分に都合のいい暗黙的な前提」。
ポートの状態を御認識させるようなノイズが存在することを前提とするなら、
そんな状況下で「頻度p」などという確率モデルを適用するのが適切なわけがないと
既に何度も何度も書いている。
>>875 クラスを使用することとヒープを使用することはそれぞれ別のこと。
組み込みではヒープを使うことは少ないですね。
N回一致はソフトによるローパスフィルタに他ならないよね? 当然ヒゲノイズに効果あるだろ。
>>880 あるよ。
彼もやはり「自分に都合のいい暗黙的な仮定」を前提としている。
彼の議論は
状況2の起こる蓋然性が状況3の起こる蓋然性より十分に大きいという前提に立っているが、
そんな保証は何もない。
というより、何度も言うがポートの入力が誤認識させられる状況下でそれはむしろ
考えにくい。
ところでさ、タイミングチャートって仕様にないのかね。
>>882 >状況2の起こる蓋然性が状況3の起こる蓋然性より十分に大きいという前提に立っているが、
そんな前提には立ってないよ。状況2の起こる蓋然性がゼロではない、という前提に立っている。
ゼロでなければ当然有効だろ?
>>882 こそ、状況2の起こる蓋然性が無視できる、という前提に立っているが、それこそそんな保証は無いだろ。
>>882 パルス性ノイズ_のみ_を心配する理由は前スレで十分に
語られていると思うんだが。。。理解できなかった?
>>884 だから頭大丈夫かよ鳥頭さん。
俺は「〜をやらなくても大丈夫」などとは言ってないの。
「〜をやっても意味がない」と言ってるんだよ。
「喫煙を止める」という選択肢について考えるとき、
喫煙が肺がんになる確率を5倍にするなら確実に、2倍なら微妙にその選択肢に
意味があるといえるだろうが1.1倍ならほとんどの人にとって「意味がない」だろう。
だめだこりゃw
つぎいってみよう
>>886 だから、状況2の起こる蓋然性が状況3の起こる蓋然性より十分に小さいという前提に立っているわけだろ?
そんな保証はどこにも無いのに。
>>878 1、「ノイズが頻度pで入って来る時」
2、N回一致により 「p^N に減る」
このどちらが
>「自分に都合のいい暗黙的な前提」
なの?
1は単なる前提
2を疑ってるの?
まあ、ノイズが来ても「まあ、いっかあ」みたいとりあえずテストなのを作るときには俺もノイズ処理はしないけどさ… 製品でそんなことをする勇気はない
>>874 クラスを活用しようとすればインスタンス生成が必要なので
OSベースの組込でないと使えないような気がするが
ITRONあたりでもその辺はいけるんだろうか?
CPU内蔵RAMで済ますような仕事が主なので
パソコンのような使い方はあきらめているんだが
OSレスでもクラスが使えるようなら使ってみたいと思う。
チャタ(・∀・∀・)リング♪
894 :
843 :2008/02/21(木) 20:18:37
>>878 だから、それについても何度も繰り返し説明したでしょ。
確率過程的に、連続して起き易いというモデルを貴方は考えてるわけ。
ノイズそのものは 1/10万分くらいの頻度で入るけど、
1発ノイズが起きた後、10ms後に再度ノイズが来る確率が、1/100くらいまで小さくなってる
というようなモデルだよね?
でも、このモデルでも4回連続で取ってしまう確率は 1/100^3*1/10万
というように、必要なだけ十分小さく出来る。
>>892 クラスなんて、基本的に言えば、構造体に関数がカプセル化
されたものに過ぎないから、ITRONやOSレスでも問題なく使
えるよ。
クラスも便利だがテンプレートの便利さを知ってしまうと
もう生Cには戻れない・・・
>>894 まだ目が覚めないのかな。
>1/100
こういうのを「根拠のない都合のいい仮定」という。
897 :
843 :2008/02/21(木) 21:31:03
>>896 確率過程でもないと言いたいの?
そちらの根拠のある理屈とやらを出してみたらどう?
なお、こちらは仮定はしていない。
ノイズ入力について、時間を指定しないときの確率をP0
1回のノイズ入力のあとdT後にノイズ入力がある確率を Q(dT)
と規定してるだけだ。 仮定ではなく規定だ。
この規定の下に、まずP0やQ(dT) を特定の値だと仮定する事になる。
現実のノイズ測定結果からP0やQ(dT)を検定する事になる。
もっと単純な話のはずなんだがな・・・。 賛成できる意見と反対する意見を選んでくれ。言いたいことがよく分からん。 1.スイッチを押したときにパタパタとON/OFFしてしまうことがあるから 2.ポートが1回Lo電圧(プルアップだとして)だからといってスイッチON確定としてしまうのは不安 3.何回かとってずっとLoだったらONだということにしよう 4.10ms周期x5回連続Lo(or Hi)とかなんかで判定するなんて馬鹿だよ 5.だったら200ms周期でポートを見ればチャタなんか気にならないぜ
>>892 > クラスを活用しようとすればインスタンス生成が必要なので
フルに活用しようとするとインスタンスの生成が必要だよね。
でも、
>>895 も言ってるように、変数と関数をカプセル化するだけでも、
プログラムの見通しは良くなるし、関数の多重定義も状況によるけど、
便利なことも多い。
あと、スタック上でインスタンスを生成するだけでもコンストラクタや
デストラクタの処理が走るので、うっかり屋の俺としては C++ を便利に
使ってる。
5だけはやめてくれ
n回一致否定の人が言ってることを要約すると、 「どんなノイズがどんな風に入ってくるか分からないからノイズ対策なんかしませんよ」ってこと?
902 :
843 :2008/02/21(木) 22:04:25
>>881 ソフトウエアでローパスフィルタを実現するなら
たとえば直前のN回加算(移動平均)によるFIRフィルタ方式で求め
シュミットトリガ特性を使う事になる
このシュミットトリガ特性を最大であるNにしたのと N回一致方式の結果は一致する
だからローパスフィルタの特殊な場合と考えるかもしれない。
でもハードウエアのローパスフィルタをCPUの入力の前に入れると、
時定数の2乗に比例する程度でしか、ノイズに強くならない。
時定数を大きくすれば、ノイズの入る頻度は減るけど、入って来た場合にはCPU側から
ノイズなのかデータなのかもはや区別が付かなくなる。
それはノイズには頻度と強度の2つのパラメータを持っている事による。
頻度が小さくても強度の大きいノイズにハードウエア・ローパスフィルタは弱い。
N回一致でノイズを取ると、ローパスフィルタの理論以上に強力だ。
それは、強度の大きいノイズも入ってしまえば1は1という事になるからだ。
では、ハードでもクリッピングすればいいと思うでしょ?
でもクリッピングの為にダイオードを入れると、そのダイオードが検波回路として働いてしまい
わざわざ無線なんかのノイズをレベルで受信してしまう事になるので薮蛇になる。
903 :
843 :2008/02/21(木) 22:13:35
>>898 チャタリング取りという名前が付いてたようにチャタリング取りはチャタリングを取る為のものだったけど
今はスイッチの性能が上がってチャタリング時間は10ms以下になってるから
20ms程度でサンプリングすればチャタリングが問題になる事は今は無い。
昔のメカニカルにパチンと音が出るようなスイッチは、音が出てる間
接点も振動してるので、100msもしてからヒゲが出てくる事があった。
これじゃ、サンプリングを100ms以上遅くしないといけないけど、それじゃ応答が悪すぎる。
で、短いヒゲを取れば安定してる前半だけで応答出来ると考えたわけだ。
そんなわけでチャタリング処理は、今ではチャタリングは取ってないけど、
短いヒゲ状に来るノイズを取る処理に付ける名前になってるわけ。
ちょっと待て チャタリングって何ですか?
>>843 は俺の発言になってるんだが…
レス番がずれてるのかな
>>897 だから自分で「1/100」という値を仮定してるじゃん。
それから「現実のノイズ測定結果から……」なんて簡単に言うが、
そんなことできるの?
現実ってどの現実?
無限の可能性が考えられるよ。
もう本当何度も繰り返してるけど、「ポートの入力が誤認識されるようなハードウェア」
を仮定してるんだよ?
>>906 誤認識っていう表現がそもそもおかしい。
ノイズは現実に発生するし、スイッチ押したときもバタバタするのも普通に起こる。
そんな信号の中から欲しい状態だけを取り出す手法をどうするかって事。
正しいとか正しくないとか言う問題じゃないよ。
無限の可能性があったとしてそこで君は何ができるの?
908 :
843 :2008/02/21(木) 22:43:45
>>905 ゴメン。
>>906 1/100 なんて数字は、単にQ(dT) の代用だって判って言ってるんでしょ?
>「現実のノイズ測定結果から……」は
測定は単純にチャタリング取りが取った頻度を記録しておけばOK
その時に何回連続で入ったかも記録しておけば Q(dT)の検定も出来る。
>「ポートの入力が誤認識されるようなハードウェア」
それは違う。
昔の100msチャタリングスイッチからの入力や
ヒゲで入って来る電磁ノイズを取るのがチャタリング処理の目的で
ポートが壊れているようなハードは、それは壊れているんだからどうしようもない。
それでソフト屋が責められる事はない。
>>907-908 そういう揚げ足取りみたいなことしても仕方がなくないか?
もちろんポートが壊れているなんて意味で「ポートの入力が誤認識されるようなハードウェア」
なんて言ってない。
要はノイズを拾っちゃうハードだってことだよ。
>>907 だから無限の可能性に対してここで有効論を主張している連中の手法など無力だ、
と言ってるんだけど。。
何ができるのってこっちが聞いてるんだよw
何もできやしないっての。
スイッチ類など基板外にハーネス経由で筐体に接続されるような ものは電磁ノイズを拾いやすいのは紛れもない事実なんだが。 それなりの機器ならノイズ耐性試験とかやるだろ。
912 :
843 :2008/02/21(木) 23:16:05
>>909 無限の可能性はあるよ。
そりゃ、近くで原子力発電所が放射能漏れを起こしてP0やQ(dT)が極端に大きくなるかもしれない。
でもそういう極端に確率が変わるような場合は誤動作した事に対して説明がつく。
俺達の責任にはならないのさ。
普通に設置して冬場の静電気バチバチや
工場の火花バリバリ飛んでくる環境で誤動作が滅多になければ十分だ。
他の装置が誤動作しないのに貴方の作ったソフトの入った装置だけ誤動作
するというのじゃ格好悪いだろ?
913 :
843=76 :2008/02/21(木) 23:18:10
まあ、俺の今年の目標だからゆっくり考えてくれ。 お休み。
静電気試験機はあれは怖い。
電圧高い時は、火花が飛ぶし音もするからなぁ。 でも、本当に怖いのは絶縁耐圧測定器だよ。
>>913 n回一致でのサンプリング時間と不定時間の比較して
どうこう議論してたようだが、
そういう議論するなら、「サンプリング周期でしか
入力が変化しないようにする同期回路である」という、
前提がいらんか?
非同期で動作する(SWなんて大抵そうだよな?)物で即値を採用するなら、
サンプリング間隔と不定区間の時間を比較しても、
それこそ無意味じゃないのか?
サンプリングのタイミングより不定区間の時間内で入力があったらアウトだろ
>>917 我ながら、確かに意味不明(w
「サンプリングの直前で」 だな
入力にこれだけの期間が必要なスイッチの場合
____| ̄ ̄ ̄ ̄ ̄ ̄|______
このくらいの間隔でサンプリングするとするまら
4点以上連続でHのときONとするわけですよ。
. . . . . . . . . . . .
____| ̄ ̄ ̄ ̄ ̄ ̄|______
これなら多少でかいノイズが来てもなかったことに
するので問題ないと。
. . . . . . . . . . . .
____| ̄|___________
で、チャタったときはというと・・・
ここから先は、
>>916 におまかせします。
[゚д゚] /[_]ヽ | | . . . . . . . . . . . . ____| ̄|_| ̄|__| ̄ ̄|___
で、実際にシンクロスコープとデジタルアナライザと噛ませて実験してどんな性質のノイズならどんなアルゴリズムが有効か、証明したヒトいるの? 科学技術はいつでも仮説と実証の2本柱で成り立っているんだよ。 ここのヒトたちは妄想家ではあるけど、技術者じゃないよね。
>>878 もしかして、確率pを一定値としていることを、「自分に都合のいい」と言ってるのか?
だとしたら、pを時間の関数p(t)とすればいいだけだ。
p(t)が1未満なら、2回以上の一致を取ることで誤認識は減る。
2サンプリングでの一致だと、思った以上に鈍い物になるよ。 案外100msくらいのポーリングで一発!の方がキーセンスには向いてる。 もちろん、最低限のCR回路は付けてもらっている事前提。
>>922 証明っつーか普通に実装してチャタが激減してメデタシメデタシ
っていうのを一通り実体験として持ってる人がほとんどじゃねーの?
チャタとりなし「やべっ。たまに誤動作しやがる。ノイズ拾ってやがんなーくそー」 チャタとりあり「ぜんぜん誤動作しねー。スイッチ操作も快適ー」
連続でn回以上0が続かない最初の1から最後の1までを測定して、人間が押す最短期間より十分長ければONとしちゃえばいいんだよ。 n回とかはサンプリング周期によって可変、 十分長い期間とかはまあ、0.1秒くらいでいいか?
下手なチャタ取りが入ってると、キーを押しても無反応♪
いやそれ普通にバグだから
>>927 「1が来て一定期間内に再び1が来なければそのあいだ出力は0のままとする。
一定期間内に1が来ているあいだ、出力は1のままとする。」
だいぶヘタレたスイッチでも大丈夫だよ。
そのかわり、長い周期でノイズが入るような劣悪な環境じゃ無理だけどね。
まあ、劣悪な環境向けに、さっきとは逆に
「1が来て一定期間連続で1でなければそのあいだ出力は0のままとする。
一定期間連続で1が来ているあいだ、出力は1のままとする。」
とかするのはどう?
スイッチのONか、強烈なノイズかwwww 結局、劣悪な環境では、何をやっても無駄なんだけどねw
チャタ取り無意味派の人はもう寝ちゃったのかねぇ・・・ 絵で説明してほしかったんだが
多分、前提となる回路とサンプリング方法の想定が別なんだと思う。 チャタ取り肯定派と、チャタ取り無意味派では。
ああああああ思い出した!!!!! 昔やったアーケードゲームのコインのセンスがNMIだったwwwwww
>>934 コインが落ちる時間がほぼ一定だから、一定時間内のチャタは全部キャンセルしたなぁ。
スイッチのON/OFFが早すぎても遅すぎても動作させないようにとか・・・
50円玉にヒモをつけないように
いいかおまえら。 ここでチャタリング論をぶってるやつらは全員アル中なんだよ。 じゃなければ、団塊以上で・・・・ ぷるぷる手が震えるんだ、普通ありえない速度でな。 そういうユニバーサルデザイン状況に対処しろってことだ。
939 :
76 :2008/02/22(金) 07:11:27
>>916 >「サンプリング周期でしか 入力が変化しないようにする同期回路である」
サンプリング定理からは、サンプリング周期より高い成分は折り返し雑音となるって事を心配してるんでしょ?
頻度が非常に小さい事が前提だから、それは不要。
チャタリング時間より長い時間でサンプリングすればチャタリングに関係ないというのは、
そもそもサンプリング周期より高い成分が見えない事を逆に利用してるわけ。
サンプリングが1秒に100回で、ノイズも1秒に100回平均(確率1/100)で来るとしても、
ノイズが1μ秒幅しかないなら
p=1μ*100*100=1/100 の確率でしかノイズを見なくてすむ。
といっても1秒に1回のレベルだ。
一方、スイッチ入力は人間が押すのだからチョン押しでも20ms程度の時間幅はある。
区別するには 10ms毎に2回一致を入れれば、ノイズはp^2 = 1/1万 100秒に1回のレベルに減る
5msに見て4回一致を入れれば、上の条件ならノイズを見てしまう確率は1/50になるが
8時間に1回にまで減らせる。
人としてフィードバック制御系にバグ抱えたプルプル系のひとの キー入力の波形ってだれかとったひといるのかねえ。
高橋名人もで1秒に16連射。 これを超えるのは無理でしょ
>>922 放電バチバチの試験してる所にオシロ持ってくような怖い事はやらないよ。
でも、仮説と実証の話はいつもやってるよ。
チャタリング取りを入れて、取ってしまった頻度を数えている。
次のN回一致が前回の一致時と反転しなかった場合にINC
結果からこちらの想定値に比べて小さいかどうか検定してる。
>>924 CRは一昔前は
CPU----+--R--○---ハーネス----○SW
|
=C CR時定数が1ms〜10ms
|
///
こう入れていたけど、今は
CPU--R-+----○---ハーネス----○SW
|
=C
|
///
こう入れる事が多い。 Rは10KΩ程度、 Cは非常に小さい値。 省略さえする。
昔の構成だと、静電気火花が飛び込むとCに充電されてソフト側の
チャタリング取りが無意味になっていた。
最近のCPUのポートは双方向だから普段は出力にしておけばオン抵抗は数Ωなんで
数千Vがスイッチに飛び込んで来ても大丈夫。
チャタ取りスレでやってくれ
944 :
仕様書無しさん :2008/02/22(金) 21:29:58
>>942 プルアップが何kΩか知らんけど、直列に10kΩは大きすぎるな。
スイッチのON抵抗が0でも、スイッチ押下時に10kΩ経由でGND(Vcc)に
接続されるので、もし受け側のポートがTTL(VinL=0.7V以下)レベル入力
(HCT14等のシュミット入力を含む)なら、75kΩ以上でプルアップしない
と、ON時に'L'レベルが確保できんぞ。
ポート内蔵のプルアップは抵抗のばらつきが大きいので要注意。
> 昔の構成だと、静電気火花が飛び込むとCに充電されてソフト側の
> チャタリング取りが無意味になっていた。
その回路だと、スイッチ非押下状態で、プルアップ抵抗(ポート内蔵
を含む)経由でCは充電された状態のはずだが?
めんどくせぇな 俺がスイッチ押しっぱなしにしておくよ
>>942 の常識ではポートはCMOSレベルなんじゃね?
そのくらい意を汲めないような奴と仕事をする奴も大変だよな
947 :
仕様書無しさん :2008/02/22(金) 22:20:15
NTTデータ、2010人を子会社に転籍・300人早期退職
NTTデータは22日、4月1日付けで本社社員2010人を子会社に転籍、300人が3月末で早期退職すると発表した。転職と早期退職に伴い、一時金などの費用約370億円を2008年3月期連結決算に特別損失として計上する予定。
同社の今期の業績は増収増益見通しだが、国内企業向けの情報システム受注に先行き不透明感が増している。転籍などによる人件費圧縮で財務体質を強化する。
子会社転籍や早期退職に伴い、人件費を09年3月期に90億円、10年3月期に80億円圧縮できるとみている。 (19:02)
http://www.nikkei.co.jp/news/main/20080222AT1D2207P22022008.html
コピペ君って馬鹿だな、まで読んだ。
>>944 スイッチに繋がってるポートに対して「普段は出力にしておけば」
なんて言う奴は普通にスルーしてくれ。
ポートの先に繋がっている基板から伸びる配線を含めて数マイクロ秒はコンデンサと同じで電圧確保するのにディレイが発生するから、普段出力にしておくと入力に転じた時点ですぐに使えないしな。
いつ入力があるか分からないポートを、どうやって・・・ あっスルーできなかった!
ポーリングすればいいんだよ
>>860 大卒は即戦力(らしいお)。
学生時代なら出来たのか?
いや、大学でやってきたのは所詮実験で売り物レベルの物は作れなかったんだろ?
理解出来ない? やる気無いだけだろ? 電気屋に子一時間教えてもらった?
じゃあ、ロボット屋ってソフト屋だったのか?
学生時代のお遊び(失礼)が通用しないから諦める?
行き詰ったのではなくて、ハード側の資料、仕様が出てこなかっただけなんじゃね?
あるいは、元から理解できないと諦めていた。
大学で凄かったんだよ漏れ、って事は伝わったお。
でも実社会やその会社では凄くなかったって事なのかねぇ
大学出たら人生上がりだから、あとは遊んでていいんだお。
>>944 プルアップまで描くと
|5V
R2 1KΩ以下
|
CPU----+--R--○---ハーネス----○SW
|
=C CR時定数が1ms〜10ms
|
///
CPUのポート内蔵のプルアップは弱すぎて、ハーネスがアンテナになる。
インピータンスを下げる為に、ハーネスでつなぐような場合は1kΩ以下
出来ればハーネスの向こう側でもプルアップ。
後半の話は、誤動作させるパルスはマイナスで来るので
>>950 CPU--R-+----○入力
|
=C
|
///
CPUは出力でもRは10KΩのように高い値なので
この配線でCに対して入力値が充電されている=一種のラッチ状態
だから、CPUのポートを入力に変更した途端に読む事が出来るわけ
957 :
仕様書無しさん :2008/02/23(土) 08:26:08
>>955-956 結局、ポートに繋がる抵抗は、コンデンサの手前に入れてる(
>>955 )
のか、コンデンサの後に入れてる(
>>966 )のか?
それと、「CR時定数が1ms〜10ms」って、Rが10kΩだと、Cの値は0.1uF〜
1uFで、決して「ごく小さい容量」じゃないんですが?
>>956 にはプルアップ位置が書いてないが、
>>955 のようにハーネス直後
に1kΩでプルアップだと、10kΩ経由のポート出力よりも、抵抗値が低い
プルアップ経由で充電されている。
それと
>>942 には『Rは10KΩ程度、 Cは非常に小さい値。 省略さえする。』
とあるけど、
>>956 の接続だと、マイナスパルスに対して、Cの放電電流を
制限する抵抗が入っていないので、ローパスフィルタとして有効に機能
しない。(チャタリング対策としての効果はあまりない)
958 :
仕様書無しさん :2008/02/23(土) 08:30:40
きいていいか? 一定の鈍さに波形を鈍らせるための工夫と 静電気やら電源まわりの様々なノイズに対する対策と 放射対策と 一緒に考えるのか別途にやるのかどうなんよ。
別個に考えるけど、できれば対策自体は一つにしたい。
弱小零細の回路も一部上場グローバル展開企業の回路も ここで議論されてるレベルでは大差ないものもあるような気がするんだが。 決定的な差ってのはなんなんだろね。
・いいタイミングにいい商品を投入できるか ・経営者が無能でないか ・経営者にツキがあるか
なるほどねえ。
>>957 だから
>>942 に書いたように、
一昔前は CPU--C--R--←IN で CPUは入力のまま
C/R時定数で調整してたから時定数は1mS〜10mS程度
これは強力に見えるけど、数千Vの静電気がかかると
Cに充電されてしまい、入力されてしまう。さらに強いとCPUのポートを壊してしまう。
今の流行は CPU--R--C--←IN でCPUは普段は出力
Cがスイッチに直結してるので、Cは101(100ピコ)とか102(1000ピコ)
これはローパスフィルタとして使っているんじゃない。
CはCPUがポートを入力に変更した瞬間のラッチとして働くだけ。
だから、省略してもいい。
チャタリング対策はソフトで行う。
CRで鈍ってない方がN回一致チャタリング処理の効果が大きい
CPUのポートを普段は出力にする事で、インピータンスを下げ、強力な静電火花などからポートを守れる。
CMOSポートのオン抵抗は数10Ωだから、 数千Vがかかっても大丈夫。
マイコンポートの入出力見る度ごとに切り替える????? 零細弱小でも大企業でやらせてるやつでも そんなソフト見たことないけど?
そうだろうね。 最近の話だから。
最近のハードだとして、RISC系のマイコンなのか。 IO切り替えは必ず順序を守らなければいけないから、最適化してはいけないし キャッシュすると問題になるよね。 ということは、一定周期でソフトでポーリングするとすると、 パイプラインが破綻する可能性のある、非常に実効速度効率の落ちるコードが 一定周期で頻繁に実行されるということになるんだね。 いや勉強になる。
加えて言えば、I/Oエリアもメモリマップされていて、ソフトから見れば 何らメモリアクセスするのと変わらない、んだよね。
? 普通内蔵ペリフェラル空間はオペランドキャッシュの対象外だよ? そして内蔵空間は、外部メモリと違ってレイテンシが大きくない。 キャッシュの必要もない。 だいたいRISC系といってもPICでさえRISCと名乗っているんだが?
でも、切り替え操作に伴う「待ち=多分ビジーウェイティング」は存在するよね。 最近はクロック増倍の方向じゃなくて、命令実行のパイプライン構成を変化させることで スループット上げていく方向だっけ? 折角の高速マイコンも、部品削りたいタイル屋さんに簡単に殺されてしまうんだなあと ちょっと感心しただけなんだけどね。
うーん。 さすがにオペランドキャッシュ持ってるような規模で CPUに直接 外部に晒される信号をつなぐ設計はしないと思うけど まあ携帯のゲーム機とかならやるかもしれないね。 で、あなたのおっしゃってる事は 入力ポートにする⇒delay⇒入力する⇒出力ラッチに書く⇒出力ポートにする という手順が必要になるから重いってわけ? 何かアンバランスな考えをするのね。
I/OとはCPUの都合ではなく、周辺回路の都合に合わせて動かさなければ動かないものさ。 昔だって今だって、ハードが準備出来るまでNOPを何十個も挿入してるコードを書いてる。
そうだね。 それが当たり前なんで、それが重いとか負荷だって言われたら違和感を感じる。
「入力(モード)にする」だの「出力(モード)にする」だのって 具体的にはどういう意味なんだ?w しょうじきロクに理解してない奴が背伸びしてるようにしか見えんけど
974 :
仕様書無しさん :2008/02/23(土) 13:09:35
>>964 C級の雑誌コラムか何かでチラ読みしたような。
>>963 > CPUのポートを普段は出力にする事で、インピータンスを下げ、
> 強力な静電火花などからポートを守れる。
> CMOSポートのオン抵抗は数10Ωだから、 数千Vがかかっても大丈夫。
On抵抗が低いから、数千Vのほとんどが(On抵抗より十分に抵抗値が高い)
シリーズに入れた外部抵抗に掛かるといいたいのだろうか?
I/Oトレラントでない一般のCMOSの場合、I/OピンとVcc間/I/OピンとGND
間に寄生ダイオードが形成されているはずだが?
上記により、通常は、Vcc(+保護ダイオードのVf)を超える過電圧は、
保護ダイオード経由でVccへ、逆にGND(+保護ダイオードのVf)より低い
逆電圧は、保護ダイオード経由でGNDへ流れる。
入力ピンに直列に外付け抵抗を入れることで、保護ダイオードに流れ
る電流を制限はできるが、昔と違って最近のデバイスはラッチアップ
対策等で、簡単にデバイス破壊に至るほど、無制限に電流が流れる
ような構造にはなっていない。
それと、外部機器とのI/Fが前提の232Cドライバ等、最近のESD対策された
ICは、内部保護回路でそれ自体で2kV程度の静電気には耐性がある。
とはいえ、電荷量の小さな静電気じゃなく、数mA〜50mA程度の負荷電流
を出せる耐電圧試験機で、I/O端子とVccまたはGND間に、直接2500Vとか
掛ければ、「自慢の保護ロジック(?)」は役に立たず、壊れると思うよ。
>>973 入出力のモード設定が可能な(所謂普通の)PIO前提で
入力に設定するか、出力に設定するかって話を
そういってるんだろ
正直、レジスタ単位での信号線振り分けとアクセストリガが、
余程キッチリ分かれてるか、ワンチップで全部見渡せるような
小さいプログラムじゃなきゃ、入力/出力をダイナミックに
変更ってのはやりたくないな
変に信号が混在してると、先々とんでもないタイミングで
誰かが何かやらかしそうな・・・・
>>975 だから、74245みたいな石のことを言ってるのならわかりもするが、
普通MPUの入力ポートに「入力モード」だの「出力モード」だのはないでしょ。
>>976 世の中にはPIO内臓のCPUなんぞ腐るほどある
だから普通MPUのPIOに「入力モード」だの「出力モード」だのなんて設定はないっての。
俺が使ってるMCUだと、たまに出力専用や入力専用があるくらいで、ほとんどは入出力可能だよ
>>978 お前、本当に組み込み屋か?
ホスト用のCPUじゃあるまいし、PIO内臓をうたっておきながら、
PIO入出力が固定されたピンしか無い組み込み用の石なんぞ、
お目にかかったことが無いぞ。
それ、単純にアドレス割り当ててバスに繋いでるだけなのか、
FPGAなんかにCPUコア組み込んだ専用品じゃないのか?
だったら無駄な回路は入れないだろうから設定なんぞ
出来なくて当たり前。
でも、汎用の石でそんなピンポイントな設計したらピンが幾らあっても足らんだろ
だから「入力モード」「出力モード」なんて設定がある石があるのかよって言ってるんだよ。 あるわけないだろ。 一口に入力出力っていったって複数の方法があるのに。
誰が「PIO入出力が固定されたピンしか無い」なんて話をしてるんだろうねえ。 読解力がどうかしてるんじゃないの?
>>974 1、保護ダイオードに頼る設計は危険。
2、どちらが壊れるかという問題。
試しに電圧上げていってどっちが壊れるか見てみればいい
>>975 当然ワンチップマイコンでの話しさ。
I2Cとかインターフェース持ってなければ入出力を切り替えて実現してるわけで
これくらいなんでもない。
>>981 PICからルネサス系のH8/M16からフリースケール68系
8051系の変なのから色々やったけど、最近の8bitマイコンは全て 方向レジスタというのを持っていて
入力/出力をダイナミックに切り替えられる。
4ビットマイコンくらいだな。オープンコレクタだけで切り替えられないのは。
また例の奴が意味不明のことを言い始めたな。
で、チャタリングって何なんだ?
>>981 >だから「入力モード」「出力モード」なんて設定がある石があるのかよって言ってるんだよ。
>あるわけないだろ。
あるよ。たくさん。
>>983 > 1、保護ダイオードに頼る設計は危険。
理由は?
>>988 あくまで保険ってことにしようぜ ってことじゃねーの?
最強ロボの方なら問題ない
保護ダイオージャ?
数レスごとにサンプルし、N回一致で良スレか駄スレかを決定する
次スレのテーマはこれか? 「チャタリング防止はソフトでI/Oダイナミックに切り替えて行うってのはどうよ? プロセッサが遅いI/O時間に引きずられて待たされるのはあたりまえ! 接点スイッチ類はPIO直結で軽く抵抗コンデンサシリーズに挟んでおけば問題ないYo! プロセッサはチャタリング取りのために存在してるんだYo!」 適当に頭使わないで要約してみた。
その前にCEとかの上で動いてるのは組み込みかどうかで議論しようぜ
業界によるから入れといていいだろ。 ・・・・ほっとくと単品シングルチップマイコンしか知らない連中だけが毒気吐くから。 業界によっては単機能低レベルなサブマイコン扱いで 両者がバトル開始 するほどひといないかw
2chはどこもそうだけど、自分のところが世界標準だと信じて疑わないのが山ほどいるからな CPUのI/Oの入出力モードが切り替えられないのが標準といってる奴は具体的に何という石で開発したことがあるのか 逆に切り替えられるのが標準っていってる奴の具体例は何なのか 明らかにしてみたらそれぞれが同じシリーズの数種類の石でそうだったから 全部そうなんだろうと思い込んでるだけだったりしてな
997 :
仕様書無しさん :2008/02/23(土) 17:38:40
ねー、もっと楽しい話しようよ。
そうだな。もっと楽しい話しよう。 まずはお前からだ。 ↓
広い意味ではファミコンも組込みだと思うんだ
結論:組み込みに標準など無い。
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。