1 :
デフォルトの名無しさん :
04/11/04 22:27:12
2 :
デフォルトの名無しさん :04/11/05 00:10:32
3 :
デフォルトの名無しさん :04/11/05 00:49:37
VBしかやったことないけど制御系に移れますか?
5 :
デフォルトの名無しさん :04/11/05 01:37:34
フラッシュメモリの操作でちょっと質問。 フラッシュメモリはバッドブロックがあってやっかいだけど、 このバッドブロックがどこにあるのかという情報は、どうやって記憶したらいいの? バッドブロックの場所を記憶するブロックもまたバッドブロックで・・・ 考え出すと夜も眠れない・・・
一瞬バックドロップ・・・ってプロレス板かよ(^o^) 起動時総ざらいして動作中はRAMでしょ、やっぱり。 ブロックをbitに割り当てればたいした分量じゃないし。 地下鉄は「入口になる下り坂の線路」から入れます。
7 :
デフォルトの名無しさん :04/11/05 06:56:58
ファイル構造を参考にして複数箇所に保存したらどう? 2箇所が同時に壊れる確率は1個の確率の2乗だから無視出来る確率になるよ。
8 :
デフォルトの名無しさん :04/11/05 08:04:54
ブロック0は不良でないことが保証されてるぞ
H8に乗ってる中途半端な奴じゃなくて、 全部ブロック保証・書き換え可能回数100万回・データ保持期間100年 みたいなちゃんとしたもの使うべきでは? どうしてもソフトでやるなら、ブロックごとに「目印」つければ いいんじゃない?4バイトの目印ならバッドを良と誤認する確率は 1/2^32になる。 それでも心配ならチェックサムも入れとくとか。
パリティのないメモリー使ってるの?
あー
>>5 考えたことなかった。
CPU内のもあるってこと?プログラムが乗っていたらアウトだね。
13 :
コピペ推奨 :04/11/05 10:13:55
14 :
コピペ推奨 :04/11/05 10:23:52
15 :
デフォルトの名無しさん :04/11/05 13:04:43
そう言えばマイコン内蔵のフラッシュなんかはバッドブロック対策はどうしているんだろう? フラッシュ書き込みツールに何か仕掛けでもあるのか?
2つ同じチップを載せて、必ず同じ内容を書き込む。
17 :
デフォルトの名無しさん :04/11/05 15:42:34
WindowsでCのアプリしかやったことない40歳すぎぐらいの人を制御系の人にするには どうすればいいでしょうか。 アプリ時代(20年ぐらい?)の評判はそれほど悪くなかった筈なんですが、「何でこんなこと知らない?」 って言うことが何度かあり、理解に苦しんでいます。 (例えばC言語のポインタにはsignedとunsignedがあり、signedの場合はアドレス空間も+2000番地 とか-6000番地など、±のアドレス値で表現される、とかマジで言う) 本人にやる気も感じられませんが、それでもやらなければならないんです。 (;´д⊂ 神のみなさん、よろしくお願いします。
>>17 >本人にやる気も感じられませんが、
この時点で、やめたほうがいいですよ。いや、マジで。
どうしてもプロジェクトにいれるなら
とりあえず仕様書やソースのコメントや関数ヘッダでも書かせておいたほうがよいと思う。
>>17 窓際でマインスイーパかソリティアでもやらせとけ
いやね、その人、きっと面白くないんだと思うんですよ。 アプリやってりゃベテランだったのに、分野が違うし電気の知識ないしで。 専門用語(って言っても「ラッチ」とか「ポーリング」とか「位相」っていったレベル)も 理解できてないし・・・・・・・本人も「今更 そこまで違う勉強なんか出来ないよお」って感じ。 しかし、タイマ割り込み1本制御するプログラムが自作出来ないのが不思議。 これで工数は新人の倍 (゚听)
21 :
デフォルトの名無しさん :04/11/05 17:36:23
クロス環境も初めてなんだね ちょっと辛そう
22 :
デフォルトの名無しさん :04/11/05 17:39:40
そりゃ面白くないだろうな。 その人に同情するよ。
まあ、そういう人を使いこなすのも技術のうちさ。 SE系の仕事に就いてる以上、明日は我が身・・・
>>17 ネタでしょ?
まず今どき生CでWinアプリってそんな奴はいねえよ。
俺はWinアプリも制御系(?)のコードも両方書いてるけど、
制御工学の難しい理論実装するような高度な奴ならともかく、
たいていの制御系のコードなんてWinのアプリ作るより全然簡単じゃん。
Winのアプリがある程度のレベル以上にかける奴に制御系のコードが書けないとは思えない。
逆はありうるが。
いや、多分本人がやる気になれば、かなり使える人になると思う。
26 :
デフォルトの名無しさん :04/11/05 20:04:01
俺は関わり合いになりたくないな。そういえば、昔、printfで何も表示されないんです、とか言ってきた外注いたな。 そのターゲット、表示機能ないんですけど・・・・w。どこに表示されると思ったのか小一時間(ry
低予算でリアルタイム処理させるなら今だと何がベターかな?
>>27 低予算で旅行するなら何がベターか答えてくれたら考えてやる
>>26 さきにprintfを書いてくださいと返事してあげようよ
>>30 自転車とカラオケボックスで、どんなリアルタイム処理作るの?
32 :
デフォルトの名無しさん :04/11/05 23:01:47
PICとアセンブラ
>>5 初期不良ブロックでないことしか保証されないから、そのうち死ぬ可能性はあり得る。
だから、ブロック0に論理物理変換テーブルを固定で置くのは、デバイス的に御法度。
趣味でやるならいいけどね。
取りあえず、スマートメディアの物理フォーマットをみてみ。参考にはなるよ。
RAMに割り当てるのはワークとしてはいいけど、後天的に発生した不良管理もしなきゃなら
んから、結局は変化した不良情報を保存することを考えなきゃならんよ。
○芝の最近のだと、ブロックの先頭セクタの517byte目がFF以外ならbadblockだから、
その情報を生かした形の物理フォーマットにするのが一番簡単。
LargeBlockタイプは、また違う位置にあるから注意ね。
つか、いま丁度その手の部分設計しとるわ(w
34 :
デフォルトの名無しさん :04/11/06 15:11:46
不良ブロックは滅多に出ないからと、ノーガードで使っている。 あとでどうなっても知らないよ。
36 :
デフォルトの名無しさん :04/11/11 11:36:55
あのですね、テキサスインスツルメンツルメンツラのMSP430とですね、 マイコロチップのPIC18系、制御系で使うならドッチ?
正気ならPIC18系、マゾで苦しみたいならMSP430
38 :
デフォルトの名無しさん :04/11/11 19:18:34
狂おしいのでMSP430開発評価ツールキット なるものを手配しようかと(15kほど)。 やはりマイコンはPIC,H8あたりが無難ディスか? PICとAVRはそろそろ卒業したくなってきますた。 H8はなんとなくスルー。
H8は「いざとなったら○○」の○○に相当する部分の選択肢が多いので 楽だ
40 :
デフォルトの名無しさん :04/11/11 21:17:16
はじめてH8/300を見たときは幕の内弁当みたいなMCUだと思った。
41 :
デフォルトの名無しさん :04/11/11 21:33:11
質問です!! 学校などにあるPCをまとめて制御しているセキュリティシステム (Bessなど)を解除させる方法ってありますか? ただし制御している本体のPCは使わないで 端末のPCでやる方法を教えてくださいm(_ _)m もし話題とズレていたら無視してください! 制御だったのでいいかなと思ってみただけなんで(汗)
板違い
44 :
デフォルトの名無しさん :04/11/12 00:22:52
言葉が悪いな ヒソヒソ( ゚o゚)ヤダァ(゚o゚ )ネェ、キイタ?( ゚o゚)オクサン(゚o゚ )アラヤダワァ
Win系、MFC、32API、DirectX、アセンブラ(x68000とx86)、 C++とCとJava(Servlet、JSP、EJB)と、PHPが出来るのですが 制御系はやったことないのですが、大丈夫でしょうか? ちょっと難しそうなんだけど(バッドブロックの処理とか)、 出来れば、そちらの方もやってみたいのですが・・・ よろしくお願いします。
>>45 俺はオセロがそこそこできる
お前は俺が将棋が上手くなるかわかるか?
ニートなんですが制御系プログラマとして就職するには あらかじめその分野の技術をもっていないと駄目ですか?
>>46 オセロと将棋を知ってる人に将棋ができるのならオセロはどうかなと
思ったんですが・・・?
オセロを覚えられても将棋が覚えられない場合もあると思いますが・・
>47 駄 目 で す
>>49 そうですか…。状況が好転するまでじっとまってみます。
>50 一生ニート決定かよ 他の職種か技術つけろよ
>>45 回路設計出来るようになってからまた来てね
>>51 他の仕事についたり勉強したりすることは現状の負けをみとめるということですよね。
僕はこのまま社会と戦い続けるつもりです。
>53 ワロタ
>>55 御社にはネコミミ、もしくは、セーラー服(へそチラ)の女子社員はいますか?
ネタもあまりダラダラやると面白く無い
申し訳ありません。あきらめます。
>>56 惜しい、ネズミミミ(TDLのあれ)の女子社員やピタTへそちらの女子社員ならいるんだが。
冗談さておき、うちは制御系と言ってもGUI周りを作ることが多い。
デバッグなどの都合で電気/電子系の知識はあるに越したことはないが
そんなもんはその場で身に付ければいいレベル。
むしろ必要なのは「他人の話を聞いて理解する」能力と「自分のやるべきことを見つける」能力だ。
探すのは大変かもしれないが、就職フェアで待っているからよろしく。
60 :
デフォルトの名無しさん :04/11/12 09:22:42
制御系の仕事にしてもなんにしても、プログラムってーのは 言語の知識と若干の電気的知識あれば結構渡り歩くことが できるものなのかなーと思うこのごろ。 じゃ、どこで同業との差をつければいいのかなと。 やはり、扱える言語の豊富さだろうか。
いや、コミュニケーション能力。
すまぬ。VxWorks の焦げついた仕事の尻ふきをやらされている。漏れは VxWorks 知識が 無い。基板制御用のライブラリ作成らしいけど、できあがった libHoge.a はどうやって 使えばいいの?単体でダウンロードしておけばいいだけ? 今は評価用プログラムとライブラリ関連もひっくるめて dounloadable appli にして 動かしているらしいんだけど、評価の意味がないと思うんだが、、、しかも月曜納期で この状態って、なんて素晴らしい。
>>60 >じゃ、どこで同業との差をつければいいのかなと。
ソースのコメントの質と量
もうこうなったら、女子社員を造るしかないんじゃないか?
>>62 事故解決しますた。
Tornado Version 2.2.1 (Wind River Systems, Inc.) の downloadable だと、
Workspace -> Builds タブ -> build Properties -> Macros -> LIBS に
フルパスで指定。
でつか。IDE は難しいのね。
66 :
デフォルトの名無しさん :04/11/12 20:22:31
VxWorksってまだ使ってる所あるんだ・・・・
>>67 オレは14年くらいでいいよ。
新品未使用の美品限定だけどな。
69 :
デフォルトの名無しさん :04/11/14 11:08:31
お父さんは30年ぐらい発酵させた、腐る少し前のがいいなあ。美品限定だけど。
30じゃあ2度目の食べごろです。
71 :
デフォルトの名無しさん :04/11/14 18:00:54
すいません。質問です。 例えば、プログラミングが出来て会社に入社したけど、回路図書いてる。とかだったら職業はなんて言うのかな? 制御系エンジニアでいいの?SEとは違うの??
74 :
デフォルトの名無しさん :04/11/15 01:04:18
ソフトウェアでハードウェアのような並行動作を実装するにはどうしたらよいのでしょうか? 言語はCです。 擬似的にしかできないと思うのですが、実装例はないでしょうか? よくC++などで、オブジェクト間でメッセージを出し合って、 協調動作させると言う話を聞きますが、OSの支援なしで、そのようなことは出来るのでしょうか?
>>74 何度もすみません。書き込みがうまくいかなかったです
もちろん、完全な平行動作はできないけど
OSがなくても、いろいろな方法があると思う
割り込みを使ったり、プログラム内で状態を遷移させたり
詳しくは、別スレの方がいいかもしれないけど
私的にはきらいじゃない話題
>>74 マルチタスクのこと?
だったら、
プログラミング言語SCHEME エンジンによるマルチタスキングの項でも読んでみては?
Schemeでの解説だけど、言語は関係ない。
もともとハードウェアの設計をやっていたので、 疑似ハードウェアというイメージがプログラムにもほしくなったのが、 この質問のきっかけです。 ハードだと、放っておいても、入力や内部状態に応じて、ステートマシンが回り出してくれるけど、 ソフトだと放っておくと、何も起こりませんよね? この辺をどう記述したらよいのかと思って質問しました。
割り込みテーブルレジスタに関数のポインタ入れてあげたら飛ぶかな
ふたつのプロセスが排他的なメモリ領域をつかって 割り込みでレジスタの値などをぜんぶ入れ換えて、 べつのルーチンにうつる レジスタの値などは、共通の領域に保存する... とか言ってみたかっただけてすと。
>>74 C++やオブジェクト指向のメッセージングについての誤解がある模様
ITRONを使ってみてはどうですか?
85 :
デフォルトの名無しさん :04/11/15 17:17:26
ここは定番の関数ポインタを使った状態遷移では?
fork();
>>80 void main()
{
while(1){
for(int state=0; state<3; state++){
switch(state){
case 0:
//ステート0の処理
:
brake;
case 1:
//ステート1の処理
:
brake;
case 2:
//ステート2の処理
:
brake;
}
}
}
}
×brake ○break
90 :
デフォルトの名無しさん :04/11/18 20:48:12
ET2004も明日で終わりか・・・ここの住人は展示会とか興味ないんですか?
君にとっての展示会の意味とは?
出展企業なんで、仕事なんです。
出展中にコード等に足引っ掛けて転ばないようにな しゅってんころりん とか言ったりしてな
95 :
デフォルトの名無しさん :04/11/18 23:03:34
>>93 おもしれ〜ぞ ゴルゥァ
明日、トッパーズの出し物にいきまつ
96 :
デフォルトの名無しさん :04/11/19 01:17:31
>>5 ついでに亀レスだが、不良ブロックの対策案。
ブロック使用状況と不良ブロックの状況などのブロック情報をまとめたブロックを用意しておく。
ブロック情報ブロックには、通常のファイルブロックとは区別できるフラグを埋め込んでおく。
ブロック0をデフォルトとする。
消去、書込を行ったら、必ずベリファイする。
ベリファイに問題があったら、ブロック情報ブロックを参照して、
空いているブロックにファイルを書き出す。
そして、ブロック情報ブロックに、そのブロックがエラーだったというフラグを書き込む。
ブロック情報ブロックに不良が出たら、空いている正常なブロックに、ブロック情報ブロックを移動する。
ブロック情報ブロックは、それ自体が不良ブロックになっている恐れがあるので、
ブロック0からスキャンしていき、正常かつブロック情報ブロックのフラグの立っているブロックの情報を信用することとする。
と言ったところでいいのでは?
ブロック情報ブロックへのアクセスが一番頻度が高いので ブロック情報ブロックが最も壊れやすい ブロック情報ブロックが読み出せなくなるとその他が生きていてもパー
98 :
デフォルトの名無しさん :04/11/19 01:44:34
>>96 物理ブロック番号と論理ブロック番号の変換テーブルは必要だけど、
ブロック情報ブロックには不良ブロックのフラグはいらないでしょ?
要するにオリジナルのファイルシステムを作ることになるんだね
>>97 アクセスのたびに不良ブロックが発生するわけじゃないから、
それほど心配しなくてもいいのでは?
不良ブロックが発生することがあるのは、消去と書込オペレーションのときだけだよ
読み出しのときは発生しない
どうせ消耗品だ。 フロッピーより長持ちする程度の。
100 :
デフォルトの名無しさん :04/11/19 07:35:24
どうでもいいが、CPU内蔵のフラッシュはNOR型 バッドブロックはない
102 :
90 :04/11/19 20:50:11
ET2004 終了。 主催者発表で本日の来場者数、7768人。 ・・・・・・・ぐやじい。あと9人くれば、スゴイ事になってたのに・・・・・。
うちの1歳半になる娘がどうにも最近制御できなくなってきたんですが どうすればいいのでしょうか・・・
リセットボタン最凶
>>103 ウォッチドッグタイマ最強
それでも、だめなら監視サブマイコン最強
もう一匹増殖しる
106 :
デフォルトの名無しさん :04/11/19 23:16:34
大容量が欲しいなら、DRAMやNAND型フラッシュ、 扱いやすさなら、SRAMやNOR型フラッシュ と言うことでOK?
107 :
デフォルトの名無しさん :04/11/20 01:13:55
DRAMがめんどくさいのはハード屋だけ
ソフトでDRAMリフレッシュする場合もあるけど
109 :
デフォルトの名無しさん :04/11/21 17:59:30
ソフトでDRAMのリフレッシュ??? どうやるの? なんてCPU?
>>100 バックドロップかと思った ...orz
>>109 一定間隔毎にハード屋さんに言われたアドレスを読まなくてはならないんだよ
cpuにdramインターフェース機能なんて付いてなかった頃のお話
112 :
デフォルトの名無しさん :04/11/21 18:25:24
昔はリフレッシュコントローラをプログラムして、リフレッシュサイクルの挿入選択、 ウエイト数、挿入周期とかを決めるMCUがあったな。HD64180とか。 最近はチップセレクトコントローラがかねてるんじゃない?リフレッシュコントローラ とは呼んでないけど・・・SHなんかでもCSnに何を接続するか選択するでしょ。 DRAMを選択し、データーシートにしたがってパラメータ設定したらリフレッシュ サイクルも挿入されるんじゃなかったっけ?
リフレッシュレジスタ
114 :
デフォルトの名無しさん :04/11/21 20:28:46
パチスロで使われてる奴な・・・・・
カルマンフィルターってどう?
117 :
デフォルトの名無しさん :04/11/21 23:39:25
>>111 タイマーインターラプトでリフレッシュ?
リフレッシュしないと、メモリーがあぼーんですか?
コンデンサをほったらかしにしたようなもの
119 :
デフォルトの名無しさん :04/11/22 09:14:30
121 :
デフォルトの名無しさん :04/11/22 13:13:18
今時のマイコンでDRAMコントローラー積んでないのなんかあるのか?
PICってDRAMどうなの?
リフレッシュ書き込み
126 :
デフォルトの名無しさん :04/11/22 17:32:20
そもそもPICに外付けメモリが必要になるほど プログラム書いたり、データ扱ったりと言う用途があるのかと
リフレッシュ書き込み
PICで外付けメモリからデータを読んで、バイナリインタプリタを動かす
>>123 >>127 リフレッシュするのに書き込みは不要
読むだけでリフレッシュされることを覚えとけ
>>111 懐かしいな。DRAMが放電し切っちゃう前にアドレス読んで必要なら
書き直せばいいだけだしな。ソフトでリフレッシュなんて久々に聞いたよ。
つか、最近じゃDRAMがシリコン上に実装したコンデンサで記憶保持
してるって事を知らない奴がいるんだな。せめて制御系やるなら知っ
てなきゃ不勉強だと言われても反論出来ないと思うけど(´・ω・`)
132 :
デフォルトの名無しさん :04/11/22 22:30:41
最近はソフトしか知らないソフト屋が増えてるよな
>>132 ハードもやりたいんだけど、どう勉強したらいいかわからないんだ。
ソフトよりもお金かかったりしない?
>>133 ソフトよりも金はかかると思う
で、どーゆーのがいいんだ?縛り?スカトロ?
>>132 禿堂。
>>134 秋月キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
子供の頃トラ技やCQ誌の広告見て通販で部品買ってたよ。
就職してからは会社の金でハード組むので欲求が満たされ
てるから疎遠になってるけどなぁ。
千石電商やカホ無線も使ってたなぁ。
>>135 言葉攻めにスパンキングと蝋燭を絡めて欲しいです・・・
行為をビデオカメラやデジカメで撮られると更に感じます・・・
きも
139 :
デフォルトの名無しさん :04/11/22 23:13:44
わけわかんないエロ話すな
140 :
デフォルトの名無しさん :04/11/22 23:16:16
制御系ソフト屋はMと言う事でFAですか?
141 :
デフォルトの名無しさん :04/11/22 23:51:01
FAってなんだよ? 俺は制御系ソフト屋だけど、Mじゃないぞ。 縛られて、ムチでばちーんってたたかれたり、裸にされてハイヒールで 背中をぐりぐり踏まれた事はあるけど、Mじゃないぞ。
FAはファクトリーオートメーションと言う事でFA?
143 :
デフォルトの名無しさん :04/11/23 00:05:30
144 :
デフォルトの名無しさん :04/11/23 00:06:53
あなるというかえいのーですな。
かいーの
フラッシュの件ですが、フラッシュコントローラというデバイスを使うのがいいみたいですね。 ソフトでファイル処理などをやろうとしていたのですが、難しいです・・・
149 :
デフォルトの名無しさん :04/11/24 10:23:16
>>146 ハードウェアの設計変更ができるなんて羨ましい
150 :
デフォルトの名無しさん :04/11/25 11:17:02
初歩的な質問ですがお願いします。 HEW使ってますが、ある構造体のstatic変数をグローバルにしたところスタック領域が足りなくなったのか実行時に飛んでしまいます。 externしたいためstaticが外されたみたいです。 この場合、構造体のstructをclassにしたらスタックじゃなくてヒープが使われるようになるんでしょうか? それともスタック領域増やすべきなんでしょうか。 実はHEW環境でヒープ/スタックが分かれてるのかも知らない...
>>150 グローバルはほっといてもstatic
スタックじゃなくヒープ増やせ
152 :
デフォルトの名無しさん :04/11/25 11:40:15
サンクスでつ
>>151 ちょっと質問し難いですが、
ヒープの増やし方キボンニュ
153 :
152 :04/11/25 11:44:46
>sbrk.h : #define HEAPSIZE 0x2000 ↑ これでつか?
154 :
デフォルトの名無しさん :04/11/25 20:50:31
ヒープは動的配列領域じゃなかったっけ? DATAセグメントやBSSセグメントもヒープにとられるんだっけ?
なんか勘違いしてんのかな?↑
>>153 それでOK。ただし余り大きくしすぎるとシミュレータ実行前の初期化に時間がかかるので
ほどほどに。
158 :
デフォルトの名無しさん :04/11/26 10:32:45
今更で申し訳ないのですが・・・
>>66 >VxWorksってまだ使ってる所あるんだ・・・・
うち,まさに今使ってます。
それにしても,今は何が標準的なんですかねぇ
159 :
デフォルトの名無しさん :04/11/26 18:51:39
航空機やスペースシャトルなんかの 高い信頼性が必要な用途にはVxWorks以外ありえないわけだが。
自分の作ったバグが原因で航空機やスペースシャトルが墜落したら どんな気分なんだろう?
163 :
デフォルトの名無しさん :04/11/26 20:58:18
だれか、4ビットマイコンで 有名なもの、実績のあるものを教えもらえませんか? パッと思いつく範囲で羅列してもらえると助かります。 あと新発売のものや、世に広く出回ってないものは不要です。
164 :
デフォルトの名無しさん :04/11/26 21:01:07
六本木ヒルズの回転式自動ドアの奴は嫌だったろうな 最高にハイとか言ってられん。辞めるんじゃないか?
4004
>>164 いま六本木ヒルズ界隈はドアの取り外し工事がそこら中で行われています。
167 :
デフォルトの名無しさん :04/11/26 23:25:51
>>163 まだ出てるけど、業界標準みたいのはないと思う
開発ツールは当然アセンブラだし、かと言って標準はないからデバイス変えるごとに覚えなおさないとならない
その割にできることは少ない
だからデバイスメーカーにソフトごと丸投げしてたりする
腕時計とかはまだまだ4bit
>>163 78k0
つーか、そのクラスは殆ど用途別の専用品だろ
世の中に広く出回ってるって時点でoutじゃないか?
>>168 ちょっと話逸れるんですが、腕時計でLEDの2進表示みたいなのありますよね?
たとえば 2004/11/26 23:40:15 とかだったら
●●●●●○●○●○○
●○●●
●●○●○
●○●●●
●○●○○○
○○●●●●
みたいに表示されるやつありませんか?
卓上タイプのだと見たことあるんですけど・・・
>>170 知らないな…
でも実世界では10進数の方が都合がよさそうだね^^;
時刻表も10進数で書かれているし、クリスマスはあいかわらず12月25日だし。
>>170 知らない
つーか明らかに不便そうなんだが?
****** 重要 ****** クリスマス中止のお知らせ 2004年12月25日に開催予定のクリスマスは諸事情により中止になりました。 この決定により、クリスマスイブも中止ということになります。 中止、ならびにこの告知が遅れたことにつきまして、 楽しみにしておられた方々・関係者各位には謹んでお詫び申し上げます。
>>174 うわ、やられた。
小泉政権もおしまいやな。
176 :
デフォルトの名無しさん :04/11/27 12:32:42
質問。 ROMにあるプログラムをそのまま実行しないで、 RAMに転送してから実行した方がよいのはなぜでしょうか?
>>176 誰が言ったの?それ。
フラッシュROMの時は読み取りスピードの関係でRAMに映してやったりはしたが。
>>176 構成による
RAMのほうが高速に動くシステムとして組まれてるならRAMに移したほうがいいけど
別に高速性を要求されないのならどうでもいい
>>176 プログラム中に変数領域を設けるために、RAMに移すと言う手は使った。
>>176 内部RAMだとアクセスウェイトが短かったりするから。
181 :
デフォルトの名無しさん :04/11/27 17:20:24
>>163 4ビットは各社それぞれヘンテコなアーキテクチャで出してるよ。
松下のサイクルスチールで2つCPUがあるかのように動く奴は面白かったな。
日本で比較的買い易く、小ロットでも使えるOTPものは
東芝TMP47シリーズだったけど・・・・なんか最近様子がおかしいからお勧めは出来ん。
0番地から実行されるCPUは0番地にROMがあることが期待されるが、 そんなCPUの上で動くとあるメジャーなOSは0番地から始まるアドレスを ジャンプテーブルとか割り込みベクタとかに(ry
183 :
デフォルトの名無しさん :04/11/27 19:26:28
それをRAMにリマップするのも制御屋の仕事
184 :
デフォルトの名無しさん :04/11/27 19:53:57
たぶん一番大きな理由はROMだと実行速度が得られないと言うことだろ 高速ランダムアクセス可能なFLASHでも出来れば一々転送などしなくて済む
お前らどんだけでかいFLASHやら どんだけ早いRAM使ってんだ? キャッシュが貧弱なCPUでSDRAM 使うならNOR型のFLASHでも大して 変わらなくないか?
大して変わらないと思うのならRAMに転送しなくてOK
>>185 >大して変わらなくないか?
この「大して」がとても大した事の時もある。
ホントにクロック単位で削らなきゃならないこともある
まったく
>>186 の言うとおり、そういう環境ならそれでいい
188 :
デフォルトの名無しさん :04/11/27 23:15:57
デバッグの時毎回フラッシュ書き換えるの?
ICEで単体〜組み合わせ試験 FLASHで組み合わせ〜システム試験 納品先でワンタイムに焼いて検査される が多いかと思われ
ICE使えるなんてうらやますぃ
191 :
デフォルトの名無しさん :04/11/28 01:53:20
あっという間に寿命来るよ
193 :
デフォルトの名無しさん :04/11/28 02:56:59
フラッシュって 10万回くらい書き換えられるんじゃなかった?
194 :
デフォルトの名無しさん :04/11/28 10:12:43
MCU内蔵のヤツはメーカのデータシート上 100回とかのもある。 ってか、消去→書き換えって遅くね?ICEで設定するブレークポイント数に 制限あるし、ウザイ。試作機はフラッシュとRAMをスイッチで切り替えられる ボードでデバッグしてる
195 :
デフォルトの名無しさん :04/11/28 19:58:35
>>194 普通、そういうデバッグ方法でしょう。
最初から内臓フラッシュを当てにしない人はROMとRAMの差し替えでもいいけど。
197 :
デフォルトの名無しさん :04/11/28 21:15:08
最近のCPUはフラッシュ内蔵してるのが多いのか?
内臓とかグロとかいうから、 その手のグロ画像でも貼ってあるのかと思った
199 :
デフォルトの名無しさん :04/11/29 00:01:42
>>197 H8しか知らないけど、H8はそれが売りでした。
200 :
デフォルトの名無しさん :04/11/29 03:57:08
>>199 V850もな
つーか、このクラスのワンチップマイコンなら、フラッシュとRAM内蔵は常識じゃないのか?
>>188 使うサブルーチンへのジャンプテーブルをRAM上に確保
あちこちでRAM上でパッチできるようにして、モジュールが安定させていってる。
202 :
デフォルトの名無しさん :04/11/29 20:38:46
今、車載用16/32ビットのプロセッサで、 人気のあるのはどれでしょうか?
203 :
デフォルトの名無しさん :04/11/29 20:42:40
athlon
>>202 車載と言っても、エンジン制御、ボディ制御、オーディオ・ナビ系では
まったくスペックが異なります
オーディオ・ナビ系では32ビットがデフォになりつつあります。
V850、M32R、SH3/4などが多いです。(私の知る限り)
ボディ制御なら16ビットで、
>>204 氏のH8やM16Cやモトローラなんかも
多いです。
車載用は各社CAN内蔵マイコンを採用することが増えてきています
(海外向けは特に)
206 :
デフォルトの名無しさん :04/11/30 00:11:44
>>205 国産のCPUがほとんどだけど、海外でも日本のCPUが主流なのかな?
もっとも、海外のCPUだとARMかPower PCくらいしか思いつかないけど
207 :
デフォルトの名無しさん :04/11/30 12:55:29
この辺の話はインターフェイスの最新号に載っているね ROMモニターの話ばかりだけど たまには各社最新ICEの徹底比較とかやればいいのに
208 :
デフォルトの名無しさん :04/12/02 08:39:06
シリアルポートについて伺いたいのですが。 C++相談窓口でスレチガイとの指摘でこちらのほうが適切かと。 VC++6.0でCreateFileでCOMポート開いて、通信速度を 1bpsに設定して、オシロスコープで波形観測してみますた。 本当は、通常のCOMポートって、デバイスマネージャ等で設定 できる値以外にどんな値がセットできるかを確認するうえで プログラムをしたのですが、幸い1bpsに関してもポート設定 ができましたもので、ならばこの糞遅いボーレートの観測を してやろうと思いまして。 しかし、です。どうみても1秒間隔でビットが送られているように みえません。送ったデータは&hAAで、ビット的に10101010となる ものです。つまり、ハイ・ローの間隔が1秒毎にしたわけです。 擬似的に1bpsが実現していて、ハードウェア的に1bpsは実現して なかったということでしょうか? しかも、RS232の最大速度はGetCommStateでかえる値は256Mbps?
209 :
デフォルトの名無しさん :04/12/02 09:00:41
そこまで測定できる環境があるなら自分でアレコレやってそこから理屈を予測し予測を裏づける実験をする。 それが制御系流。
>>208 300bps辺りから1/2ずつ下げて実験してみな。シンクロスコープあるなら充分見えるだろ。
>>208 C++っつーか、windowsというOSのAPIがどうかということですよね
ハード的に、1bpsの設定ができず、APIが1bpsに対応していないものと思うけど
ボーレートというものがどういう仕組みで決まるか、
H8かなにかのCPUのマニュアルを見てみることをお勧めする。
>>209 その前に、きちんと設計をしておこう
>>209 は設計をきちんとした上で、それでもなお問題が出たときの話だよな?
>208 16550のボージェネって115200の整数分の1でデバイダレジスタも16bitだったと思うので 1bpsはできないんじゃないの?
つーかAA送っても周期的な波形は得られんだろ。
215 :
209 :04/12/02 21:42:55
っか、1bpsて何かの実験だろ? まさか通信するわけあるまい。 実用な用途なら、今の季節、TxDにLEDつけてイルミにするか?ドライブできるか知らんけど。 ところで皆の衆、 Windriverのカンファレンス逝きましたか?
1bpsを目で見たいって気持ちはよくわかる
217 :
デフォルトの名無しさん :04/12/02 22:17:47
またまたフラッシュ絡みの質問ですが、CFIと言うのは、 nor型にもnand型にも適用される規格なのでしょうか?
>>208 windowsのAPIでしょうか?
どうやって 1 bpsの設定をするんでしょうか?
不勉強ですみません、SetCommState()では出来ないように思いますけど
ドライバを書いている?だとしたらコントローラチップ(16550?)を見ての通りだと思うけど。
219 :
デフォルトの名無しさん :04/12/02 23:19:32
>>217 規格なら、その規格出している所へ訊くのが筋たろ。
規格なんだから。
その前に、その規格を読んだのか?
読んで、書いてなかったら
それについての規定はしていない。ってこと
220 :
デフォルトの名無しさん :04/12/02 23:52:56
>>219 インテルのを読みました
書いてなかったです
>>215 APIが糞で範囲チェックがいい加減に1票
ちなみにUARTでAA送ってもStartBit/StopBit/Parityが
絡むし出っ放しになるわけではないので、
昔ながらの同期とってリアルタイムに波形観測するような
アナログオシロで観測は無理
223 :
デフォルトの名無しさん :04/12/03 00:58:51
>>222 まさにそれを読んでたところで、これってAMDの255とか書くやつと同じ?どう見てもnorだよな
と思っていたんだけど、
リムーバブルメディアを想定したようなことも書いてあるから、
納戸でも間に何かインターフェイスのハードを挟んで、
ソフトから見ると、フラッシュのタイプの違いを意識しなくて済むような仕掛けでもあるのかと思いました
224 :
デフォルトの名無しさん :04/12/03 21:48:36
周期的な波形は得られんが、パリティとストップビット込みで10ビット。 転送に10秒かかるから、目視でパタパタやってるのは見えそうな希ガス・・・・ 奇数パリティならパリティビットは1。転送はLSBからなので、 0101010111 となる
226 :
デフォルトの名無しさん :04/12/03 22:48:58
010101010111
FFHを送り出したほうがかんそくしやすいずら
229 :
デフォルトの名無しさん :04/12/04 09:16:23
PLCとかの話しても良いの?
良いとも
>>229 に便乗して。
三菱のMELSECでシリアルでデータ交換する時、
一括読み出しなどで連続で長いデータを要求すると、途中で切れていたりしません?
たとえば、400ワード要求してるのに200ワードしか返さないとか
もちろん、伝文は正しく200ワード分の伝文を返してくる。
OMRONやHITACHIではありえなかったのだけど。
232 :
デフォルトの名無しさん :04/12/04 11:47:50
Aシリーズの計算機リンクなら仕様だったような? 前にSCADA作ってる人が、一気に全部とれないから分割して取ってるよ。と 言ってた気がします。 Qシリーズのユニットはどうか知らないです。
>>231 Qシリーズなんですけどね。
仕様で取れる範囲でも返すときと返さない時があります。
PLCの勝手な都合の長さを正しい伝文形式、手順で返してきます。
結局、受け取ってから要求した分だけあるかどうかチェックが必要です。
>>233 今度、シリアル通信やるらしいんだけど
その辺気をつけないといけないですね。
相手がPCだとまだいいけど、空調のコントローラーだし。
235 :
デフォルトの名無しさん :04/12/06 12:55:03
PLCは楽そうなんだけど、組込には高いし、向かなそう ソースとかだけ組込用にないかね
236 :
デフォルトの名無しさん :04/12/06 13:00:10
制御ってcontrol systemの事ですか?
238 :
デフォルトの名無しさん :04/12/06 18:38:21
>>235 PIC用ならある
が、あれが使いやすいかと言うと・・・
240 :
239 :04/12/08 00:01:31
すみません最初はageでしたね。
241 :
デフォルトの名無しさん :04/12/08 00:04:13
フーリエ級数
>>241 すみませんこの分野全然得意じゃない学生なので…
教えて頂けますか
>>239 両方NotFoundなのはイヤガラセか。
タイマでやるか、適当でいいならforループで時間取って出力を変えていくか。
>>239 絶句。。。電気工学実験って、工業高校?まさか大学じゃないよね。
宿題回答スレじゃないし、どこから説明していいかわからん。
まず第一に、グラフの見方はわかるのだろうか?
main() { int output; MSTPCRH&=0x3b; DACR=0xc0; while(1){ for(output=0; output<0x100; output++){ DADR0=output; } } }
>>245 学部の選択を間違えたスーパーDQN大学生です_| ̄|○
>>246 ありがとうございます。感謝します。
入力値の変化が速過ぎてD/A変換機の処理が追いつかないから ダミーループでも入れて適当にウェイトさせるがいい
>>246 for文の条件が微妙に違ってないか?
それだと0〜Vcc/4[V]で繰り返しそうな悪寒
>>249 そのくらいは自分で直す。
ヒント程度ということで。
よく分かりませんが100をFDぐらいにしたらいいんですか?
252 :
デフォルトの名無しさん :04/12/08 07:28:39
いや、ここはタイマー割込かタイマーをポーリングして、 出力周期を整えてやるのが模範解答だな
この課題の波形の、横軸の単位がわからないし、時間の精度もわからない
そもそも
>>239 は、
>>246 を見て 「なるほど」と思ったのか?
全く訳わからずにコピペして提出するつもりなのか。
254 :
デフォルトの名無しさん :04/12/08 11:20:37
>>239 学部の選択を間違えた事に気付いたんなら大学やめて受け直すか転部しろよ。
ここのみんなにも学校にも迷惑かかるだろ。
そもそも学校のお友達に聞けよ
当然オシロで波形を確認するよね
テスターで測定らしい
258 :
デフォルトの名無しさん :04/12/08 22:12:09
てすたでも測れそうな希ガス
サーキットテスターで希ガス類は検出できないと思うが。
>>253 後者にI
>>251 0で0V
0x3FFでVcc
あとは自分で考えろ、つーかマニュアルぐらい読め
264 :
デフォルトの名無しさん :04/12/09 02:09:15
H8のDACってそんなに簡単に使えるのねw 知らなかった
265 :
デフォルトの名無しさん :04/12/10 00:11:20
なぜ8ビットのレジスタに0x3FF?
266 :
デフォルトの名無しさん :04/12/10 00:48:31
>>261 大学の教材で日立のあのマニュアルなんか置いてあるのか?
まあ、教授にマニュアルを見せてくださいとでも言えば、ポイントアップかな?
ネットとPDF見られる環境であればマニュアルダウンロードできるだろ
日立って何だよ
269 :
デフォルトの名無しさん :04/12/10 00:51:22
おいおい、データシートはウェブからダウンロードして見るって時代になって ずいぶん久しいと思うんだけど。。
>>265 さっとしか眺めてないが、
A/Dは10Bitと書いてあったようだが見間違いか?
271 :
266 :04/12/10 01:44:39
>>267-269 スマソ
H8は「日立」時代に使っていただけなのだ
あの頃は、日立に電話すれば、無料でその日のうちにマニュアルを送ってもらえたものでした・・・
272 :
デフォルトの名無しさん :04/12/10 13:46:01
いかん、なんでA/Dとかいたんだろ? 酔っ払ってたせいだと思いたい。。。。orz
274 :
デフォルトの名無しさん :04/12/10 23:47:44
A/D 10bit D/A 8bit だな
1qubitで十分
10bitって意外と分解能足りないのね。ボリュームつまみぐらいには使えるけど ロータリーエンコーダの替わりにまではならない。 この頃は8bitチップでも12bit 8CH くらい内蔵してるのに。
オープンドレインってどういうこと?8051系のポートは←これで、H8みたいに書いた所を読むと 違うことがあるそうなんだけど。オームの法則しか知らない俺に誰か教えてください。
みんなもずいぶん早起きですね。それ見てもやっぱりわからない(^o^) 1を書いたらLが出て0を書いたらHi-Zが出るポートということらしいですね。 でも自分でH書いてLが読めることもあるってところがなんで?
>>280 オープンドレイン+プルアップ抵抗のポートは
Hレベルのポートの電圧を、外からLレベルにすることは出来る
Lレベルのポートの電圧を、外からHレベルにすることは出来ない
あ、そういうことか。だから自分でHを書いても読むとLが読める場合もあるわけね。 そういうポートを扱うときは何を書いたかメモリに覚えておかないといけないですね。
277がWired ORに行き着くのはいつだろう
>>281 そういうレベルじゃなくて
NOTゲートを知らないようにみえるが?
ゲートの意味は知ってますが、たくさん並んでると見間違えます。縁が曲がってるのがORで まっすぐがANDでしたっけ?あれ?そうするとXORは?とかなっちゃいます。三角がNOTですよね
>>286 >三角がNOTですよね
↑このへん勘違いしている
288 :
デフォルトの名無しさん :04/12/12 19:18:28
三角はバッハでしょ
>>277 あんまりソフト屋さんでは意識する場面は無いネタかも試練。
オープンでないゲートの出力って、HでVccにつながって、LでGNDにつながるの。
だから出力同士をつなげることはできない。
ゲート1とゲート2の出力をつなげた場合どうなるかっていうと。
ゲート1の出力:H(Vcc) でゲート2の出力:L(GND) →VccとGNDがショート 危険!
ゲート1の出力:L(GND) でゲート2の出力:H(Vcc) →VccとGNDがショート 危険!
ゲート1の出力:H(Vcc) でゲート2の出力:H(Vcc) →Vccどうしで電位が同じなのでセーフ
ゲート1の出力:L(GND) でゲート2の出力:L(GND) →GNDどうしで電位が同じなのでセーフ
オープンドレインの出力はHの場合はオープン。Lの場合はGND ■用途1 Wired OR --・-- Vcc | R | OUT1--・------|> | OUT2--・ 出力同士をつなげても ゲート1の出力:H(オープン) でゲート2の出力:L(GND) →GND ゲート1の出力:L(GND) でゲート2の出力:H(オープン) →GND ゲート1の出力:H(オープン) でゲート2の出力:H(オープン) →オープン ※ ゲート1の出力:L(GND) でゲート2の出力:L(GND) →GNDどうしで電位が同じなのでセーフ で、※の場合、そのまま入力につなげちゃうのは違反。 電位をGNDかVccにしなくちゃいけない。 ので抵抗はさんでプルアップしておけば、オープンでVcc。GNDでGNDになる。
■用途2 I/OのOUTPUT --・-- Vcc | R | OUT--・------|> 出力で電流たくさんとりたいとか。。。説明が面倒になった。だれか頼む。 (ってか、CMOS全盛の今。出力インピーダンス気にする必要ってあるの? その辺があいまいなので止めておく)
>>291 ゲートの電源よりも高い電圧のスイッチングに使ったりするね。
TTL全盛の時代に育ったから CMOSになっても「オープンコレクタ」 って言ってしまうな
7438 だろ > OC の定番
74S05最強伝説
74HC05
*
回路図読めとは言いません お願いですから論理演算ぐらい 分かる人間を付けてください
電子工学科卒なら大抵大丈夫なんじゃないの?良く知らないけど。
全然w
皆さんいろいろ教えてくれてありがとうございます。今回の出力端子は送信機やアンプの
オンオフをするらしいので、
>>292 さんのような使い方にあたるのでしょうね。
高卒文系なのに1985年頃8085の仕事やらされてからなぜかマイコンの仕事ばかり。
高校生に集合とBOOL代数を教える最初の試験授業をされました。今じゃ小学生でも知ってますね。
回路図読めないので、ハード屋さんには信号の性質について(自然言語で)聞きまくります
うるさがられるけど、いいかげんな仕事されるよりはましだと思って相手してくれてるみたい。
藻いらもオープンコレクタって言ったほうがしっくり来る。 ソフト屋なんでこの言葉を使う機会はほとんど無いけど。 ところでオープンコレクタに対してTTLレベルって言ってたけど 最近はなんて言うのがオサレなの?
いまはBOOL代数は教えてないらしいよ
0と1だけじゃないZがあるから。
え?
トライステート出力ね。Zっていうか、Hi-Z(つまりオープン)ね。
また一人来たよ
>>303 TTLレベルはC−MOSレベルに対して使ってたんじゃない?
今はおしゃれとか言う問題ではなく、ちゃんと規格の名前で言わないと
動かないものができてしまう
311 :
デフォルトの名無しさん :04/12/13 21:19:24
ハード寄りの話になったね。そこまで知らなくても出来るが、全然知らないのも困る。 そのギリギリのバランスで成り立ってるのがファーム屋の面白く、難しいところですねw
>>309 オープンコレクタに対してはトーテムポールか?
>>310 つーか、ファーム屋だとそこそこ回路図も読めねぇと話になんねぇからな〜
ある程度経験を積めばハード屋のスキルも逆に評価できるってもんよ
314 :
デフォルトの名無しさん :04/12/13 23:13:00
HEWを使用していますが、バックトレースの方法がよくわかりません。 で、KPIT-gccを使って__builtin_return_address()を使おうと思ってます。 ところで、gccで生成したオブジェクトとHEWのそれとは、 うまくリンクできるのでしょうか? 簡単なCのプログラムではうまくできたのですが、 複雑なC++ではリンクできませんでした。 この場合、Cのインターフェースを用意してやればうまくいきそうなんですが、 C++のままだとうまくいかないのでしょうか?
>>314 バックトレースを取りたいのか?
それとも、gccの__builtin_return_address( )の問題を言っているのか?
リンクできませんって、できないでどうなったんだ?
>>314 ふと思ったが、extern "C" すれば解決しない?
#オープンドレインの話からいきなりC++って、
#制御系って範囲が広いな〜とつくづく思った。
あ?
318 :
デフォルトの名無しさん :04/12/14 14:13:35
TRUEとFALSEの他にNULLがある。 次世代ブール値?が必要な夢を見た。 何故か涙が止まらなかった。 もう俺はダメだと思う。
そんなことで。 俺はおまけにUNDEFINEDもあるのを考案してた。
KPITの__builtin_return_addressは引数が0しかとれないようで、 バックトレースには役立ちそうにありませんでした。 異なるコンパイラのオブジェクトはなんとかリンクを通す事はできたけど、 動かしてみるとダメだったり。関数の呼び出し規則が違ったのかもしれないけど。 リンカが何やってるかあんまり知らないので無駄に困っただけで終了でした。 HEWがまともなら妙な事も考えないのになぁ・・・。
323 :
デフォルトの名無しさん :04/12/17 12:24:38
gccのオブジェクトがHEWでも使えるって知らなかったな
324 :
デフォルトの名無しさん :04/12/17 16:35:14
>>323 コンパイラが違っても、ターゲットとオブジェクトフォーマットが同じならば、
リンクはできる。
325 :
いなむらきよし :04/12/17 20:48:03
レベルの低い奴らばかりだキケー!
326 :
デフォルトの名無しさん :04/12/19 12:43:21
GP−IBのことについてお聞きしてもよろしいでしょうか?
>>326 まずは質問を書け。スレ違いなら無視か誘導されるだろ。
329 :
フナ太郎 :04/12/19 20:55:00
>>328 別にVBプログラマだからってなにも気後れすることはない。
堂々と胸をはっていきなさい。バカにされてもくじけちゃダメだよ!
べつに VB でプログラムぐらい組めるけど、VB プログラマって...。 なんか、コンプレックスでもあるんですかぁ ?
nullはブール「値」じゃないだろ
printfの%fは 四捨五入ありですか? 切り捨てがデフォですか? 符号つき小数部8bitのintを sprintf(wk,"%4.2f",int/256.0)で小数部2桁に編集しますが 少数3桁目が切り捨てられるなら、負の場合-0.005、正の場合0.005を足さないといけませんね?
>>332 The proof of the pudding is in the eating
すいません、整数の計算でなんとかなりました。
335 :
デフォルトの名無しさん :04/12/23 00:11:22
>>323 gccのオブジェクトフオーマットにHEWが対応してるわけです。
Linux関連ソフトを捨てられないからね。
336 :
デフォルトの名無しさん :04/12/23 00:20:02
Linux関連のソフトって、SHやH8で使うことある?
337 :
デフォルトの名無しさん :04/12/23 00:20:46
ある
338 :
デフォルトの名無しさん :04/12/23 12:05:04
PCと組み込み機器の垣根があいまいになりつつあるからな。 PC上のMP3コーデックとかの音声、画像処理ソフトは大きな魅力。 ケータイなんか特にそうじゃね?
339 :
デフォルトの名無しさん :04/12/23 13:46:23
USBキーボード(HID)の仕様では、 CAPS LOCK,NUM LOCK,SCROLL LOCK,COMPOSE の情報(状態)の維持は ホストで行われるようですが、キーボード側がその情報を得る具体的な方法を教えてくれませんか?
340 :
デフォルトの名無しさん :04/12/23 23:34:32
PC上のソフトなら、ソースレベルでの互換性があれば充分じゃない? つーかオブジェクトは互換性ないだろ? CPUが違うんだから
>>340 gccで作ったH8のオブジェクトの話だろ
頭使え
HEW用に提供されたソース無しのライブラリを、 GCCオブジェクトとbinutil-ldでリンクできたら嬉しいな。
343 :
デフォルトの名無しさん :04/12/24 00:41:23
HEWを買えない貧乏人がgccで間に合わすと言う使い方もあるわけだ
>>343 HEWよりライブラリの方が高くて買えない罠。
345 :
デフォルトの名無しさん :04/12/24 08:50:50
gccのライブラリは有料なんですか?
347 :
デフォルトの名無しさん :04/12/24 22:12:30
高いのもある だけどただのもある
newlibってそんなに高いの? おれ、いままでただでつかってたよ。
silosどこで落とせばいいですか?demo版でいいんで
350 :
デフォルトの名無しさん :04/12/25 23:10:10
義理の兄貴が早期退職するんだって。51歳。 大手メーカーで人工知能の研究やってた。 優秀だったのに・・・・京大院だったのに・・・・・・
アフォか 京大院卒なんて毎年5千人規模で生産されているんだ。 51歳ならライバルは15万人くらいはいると思え。
>>339 CAPS/NumLock/ScrollLockはキーボード自身でLED設定状態みればいいだろ。
ホストに要求して取ろうというのであれば、そもそもUSBという規格をわかっていない。
355 :
デフォルトの名無しさん :04/12/27 09:09:59
356 :
339 :04/12/27 09:34:29
>>353 USBキーボードとPS2キーボードを繋げ、
PS2キーボードでCAPS/NumLock/ScrollLockを操作すると
USBキーボードのLEDも切り替わりますがなぜですか?
ホストで維持される状態を同期を取りたいのです。
>>356 LEDの点灯/消灯コマンドがホスト側から来るんだよ。
ホスト側が維持するってそういうことだよ。
コマンドを取りこぼさなければ同期は外れない。
取りこぼすようなデバイスは故障している。
358 :
339 :04/12/27 15:16:25
>>356 ありがとうございました。もう少し勉強ます。
ご存知であれば、usbキーボード開発に参考になるサイト・資料を教えていただけませんか?
www.usb.org
>>358 福祉関係でUSB接続の入力装置を作っている個人がWebSiteを持ってたと思った。
そのサイトでそれなりの情報が得られたような記憶があるので探してみたら?
361 :
デフォルトの名無しさん :04/12/27 21:18:29
つーか今月のトラ技はどうよ?
>>361 USBスピーカの製作のところで、デバドラも書くのかな?と思っていたらそうじゃ
ないんだね。
364 :
339 :04/12/28 10:51:37
>>358 情報ありがとうございました。
検索試みましたがヒットしませんでした。
非常に興味深いのでとても気になります。
覚えていましたら、具体的なキーワードを教えていただけませんか?
www.usb.orgにあるHid1_11.pdfを読みました。
discriptorの設定や通信説明は書いてありましたが、
その先の説明は書いてありませんでした。(私の理解不足かもしれませんが)
>>361 ありがとうございました。
本屋よって見てみます。
おおぅ何か香ばしいぜぇぇえええ
さっさとうせろ ベイビー
369 :
アルゴリズム :05/01/03 11:38:35
制御系=マイコンではないな。PCを使ってもできる。 要は何台作るかだ。一台しか作らないのにマイコンで やることはない。あとFPGAを使うてもある。 ソフトでできる処理はせいぜい10マイクロSEC。 FPGAはその100倍は可能だから勝負にならない。 値段はたかくなるけど。
370 :
アルゴリズム :05/01/03 11:44:09
事務系から制御系に移れるかという質問があった。 それは不可能。日本語を話せる大工さんが、すぐに旋盤工に なれないようなもの。この場合ソフトは日本語にしか相当 しない。それに制御系を選んだ人はだいたいプラモデルとか 作るのが好きな人。 このような要素は勉強してどうなるものではない。
>>370 私は論理学を専門にやってた院卒ですがちゃんとやれてます。
372 :
アルゴリズム :05/01/03 11:52:23
うちの制御系はWIN−XPとLABVIEWとFPGAで 作っている。H8に比較し数十倍のパフォーマンスが可能。 用途は計測、制御、画像処理、モーション、 ICテスターなどだ。台数としては1台か2台かだ。 この特長はエクセルやイーサネットが使えることだ。 制御でE−MAILで携帯に警報をだすなんてしゃれたこともできる。
>>372 > この特長はエクセルやイーサネットが使えることだ。
> 制御でE−MAILで携帯に警報をだすなんてしゃれたこともできる。
>
今時マイコンでも普通にできてる(Excelを除く)
374 :
アルゴリズム :05/01/03 12:02:50
マイコンでも製品開発をすることがある。 この場合パソコン上でLABVIEWで雛形を開発する。 それで仕様を決定しマイコンに移すのだ。 製品開発はソフトのスキルより重要なことがある。 それは仕様をきめるということ。 マイコンをやった人なら分かると思うけど、 仕様変更がなんどもくるよね。それは仕様が決まって いないからだ。あげくはこのチップではできなから 違うチップに変えたなんてこともある。 つまり制御系も仕様が一番大事だ。 だからパソコン上で雛形を作る。それを お客(自社の幹部)に検討してもらう。 このようにすれば結果的は速く、安く 仕上がる。
375 :
アルゴリズム :05/01/03 12:09:05
マイコンをやっている人は会社の利益とかは あまり興味がない。自分のスキルを評価して くれるかどうかだ。会議などでも「その技術は面白い」 とか「そのチップは性能が良い」の類の発言をする。 でも会社は利益が大事だ。 だから会議などで「その方法は利益面でマイナスだ」 なんて発言したら注目をあびることは間違いない。
376 :
アルゴリズム :05/01/03 12:16:54
>373 >この特長はエクセルやイーサネットが使えることだ。 >制御でE−MAILで携帯に警報をだすなんてしゃれた >こともできる。 普通っていうけど、あなたならPICでアナログ信号を読み取り その値を1時間ごとにE−MAILで携帯に送るソフトを 何時間で作れますか?
>>376 373じゃないけど、PIC16F873クラスを使って良ければ
A/Dとシリアルは実装済みなんで、回路基盤を起こす時間を無視すると
そんなに時間はかからんでしょう。
Linux Boxに繋げてcronでメールまでスクリプトでできると思うし。
そういう俺もLabVIEWで組んで仕様書作って
外注している立場だけどね。
# LabVIEWは俺を堕落させた。
普通のマイコン=PIC と認定されました
>>369 >一台しか作らないのにマイコンでやることはない。
そんなことはない。
パソコンで低消費電力、リアルタイム、無停止のシステムが組めるのか?
380 :
デフォルトの名無しさん :05/01/03 13:52:17
>だから会議などで「その方法は利益面でマイナスだ」 >なんて発言したら注目をあびることは間違いない。 どんな会社だ・・・
まちがいない!
382 :
アルゴリズム :05/01/03 14:14:09
>379 >パソコンで低消費電力、リアルタイム、 >無停止のシステムが組めるのか? 組めるよ、PDAもあるし。 反対にの1台しか必要なのに、マイコンで作るのか。 趣味ならそれでいいかもしれないけど。私が担当者なら シーケンサとかパソコンで作るね。 最初から制御=マイコンと考えるのは 頭が硬直している。
383 :
アルゴリズム :05/01/03 14:15:43
>377 >そういう俺もLabVIEWで組んで仕様書作って >外注している立場だけどね。 それが正しい。 あなたは出世するタイプだ。すでにしていると思うけど。
384 :
アルゴリズム :05/01/03 14:17:54
>379 さんに聞きたい。 リアルタイムとはどのようなものと考えいてる。
>>383 出世しないよ。それだけなら代わりはいくらでもいるからね。
# つーか仕様書を書かされている段階で下っ端だよ。
386 :
アルゴリズム :05/01/03 16:24:53
>385 自分を卑下してはいかん。
まぁあれだ、業務系と制御系を両方経験した私が語ろう。 職業の喩えを出していた人がいたが、その例に倣うと 業務系プログラマ(会計士)に制御系プログラマ(職人)の真似はできませんよ、と。 #勿論逆も難しいわけだが。 業務系は画面の枚数で仕事量を量ることがあるということで判るとおり敢えて言えば広さの仕事。 制御系はその逆で、テストしながら仕様を確定したりI/Fを伴わない改変があったりと、深さの仕事だと思う。 学業が理数系と文型と言う風に単純に分けられないのと同様、単純には分けられないけどね。 どちらにしても、社内顧客なんて相手にしていても仕様を詰める楽しみはないんじゃないかな。 尤も、エンドユーザと仕様を詰めるような立場になると、コーディングなんてしてられなくなるけど。
388 :
デフォルトの名無しさん :05/01/03 18:50:31
組み込み以外から組み込みの分野に来て、うまくいった例を見たことが殆どない。 皆さんの周りで成功した事例ってあります?
>>388 もろハードオンリーから組込みに来てる人は
普通に成功してる ような気がする
業務系、制御系、組み込みの違いが分かってない香具師が 結構いるよね。 変なコテは分かってるけどあえてごちゃ混ぜにしてる釣り師。
391 :
388 :05/01/03 19:42:35
ハードからは、ね・・・・・・・・・ 仕事でマジ困ってます。「純ソフト屋」っての?あいつら猿? 仕事で(゚Д゚)ハァ?の連続です。明後日からチンカスの相手だ(涙
適応領域の知識が足りないので、ソフト屋うんぬんは関係ない。 (= ソフトができても物を知らんと使えない) 逆の立場にならないことを祈ろう。
>391 まったくの素人と思えば良い メモリアクセスを隠蔽した言語しかできないのな
ハードなんて言葉使ってる所がか・な・り芋っぽいです
器用貧乏の称号を授かり、なんでもかんでもやらされるのも考えものだ
>>382 ほんじゃ、人工衛星にのっけるものもPDAでやりますか?
>>382 485でデータを受けて、パトライトを6点表示。
自動車組み立て工場で使用。使用期間半年。
PDAでやりますか?シーケンサでやりますか?
私なら PICマイコンで十分と思うけど。
>>382 これはマジですが。
トリガ信号で、
A/D 12bit精度で9ch を 70μsec以内にサンプリング
100μsec間隔 で 3000サンプリング
3バンクを用意して連続3回のトリガに対応
シリアルでホストに転送。
無停止、電源の投入遮断は、手順なしで電源線で行う。
こういうデータロガを1台のみ。シーケンサやPDAでできますか?
399 :
ライブラリアン :05/01/04 10:45:41
>398 マジで回答いたします。 その仕様どおりならシーケンサーでは無理だと思います。 普通、目的を達成すればいいのだから仕様を決める時点 では柔軟性があるはずです。 マイコンを前提にした仕様をシーケンサーに移るかどうかの 議論は意味がない。 パソコンならできますね。今はパソコンとPCIのボード のほうがマイコンよりはるかに性能がいいのはご存知ですよね。 さらに1台しか作らない場合はパソコンの方が安い。 PICが安い言う人、PICが得意なので自慢したいだけ。 ビジネスとは違う次元の話である。 ドキュメント、メンテナンスを総合 で考えるとパソコンの方が全て場合安くなるのが普通。
>>399 1台だけ作るなら、職人さんに発注すると基板作ってパソコン一式と同じ程度で作ってくれますよ。
確かにドキュメントまで期待したら倍以上取られますが
それはパソコンでやっても同じでしょ?
それに、パソコンでやると振動、電源、寿命と、色んな意味で難しいでしょ?
現実1台こっきりでも納品して3年ちゃんと動かないと、マズイくないような場合ってそんな多いですか?
401 :
ライブラリアン :05/01/04 12:01:56
>400 >ドキュメントまで期待したら倍以上取られますが >それはパソコンでやっても同じでしょ? あなたの言うとおり、パソコンでやるとドキュメントが無いことにはならない。 だから基板を作るか買うかの問題です。パソコンで作ることは すなわち、市販のボードを買うことになる。 それにはドキュメントが当然ついているので、その費用はないということです。 >現実1台こっきりでも納品して3年ちゃんと動かないと、 >マズイくないような場合ってそんな多いですか? 的を射た指摘だ。まず品質は多く作られたものが良い。 大量生産のDELLのパソコンの方が1毎だけ作った基盤より 品質が良い。基板も後々、バグもでてくる。 作った製品をお客のところで信頼性試験をしてもらっているようなものである。 それから故障用として予備のものを用意しなければならない場合もあり、 さらに価格が高くなるということになる。 故障したときには絶対呼ばれる。パソコンならお客がメンテナンス してくれる。 唯一電源を落ものはUPSを途中に入れなければ ならないけど。
>>401 大量生産のDELLのボードが3年持つというのは・・・・制御用専用に作られたのならともかく
残念だけどパソコン品質じゃ 手組みで1枚だけ作ったボードに明らかに劣るよ。
ホントに使った事あるのかな?
毎日電源入れたり切ったりしたら3年で半数近くが故障しないかい?
特に振動やホコリの多い現場で使った経験ある?
それなりに対策はするけど、その対策費用はけっこう高くついてるよ。
パソコンならお客がの話も無理っぽいんだが?
そもそも、パソコンでも制御用だとどうしてもキーとなる部品が必要だろ?
I/OとかADC用ボードとかさ、そのあたりのボードメーカって栄枯盛衰。
安価なの出してる所は3年もしたらどうなるやら判らんし
高価な有名所はボード1枚がマザーより高いじゃかないか
結局職人さんが生きてる限りはメインテナンス出来る方が 実は安心だったりするよ。
といってもそれは客先にはいえないんだけどね
>>399 >>A/D 12bit精度で9ch を 70μsec以内にサンプリング
>>100 μsec間隔 で 3000サンプリング
>PICが安い言う人、PICが得意なので自慢したいだけ。
>ビジネスとは違う次元の話である。
元来PICじゃ無理でしょ。
パソコンで100μsec間隔のサンプリング?
QNIXならわかるけど、windowsでやりたくないな。
>>無停止、電源の投入遮断は、手順なしで電源線で行う。
>パソコンならできますね
できますか?
>>403 PICで難しいのは最後の 3千サンプルの部分だね。
EEROMだと 100マイクロ間隔で書き込む事が出来ない。
ささっとすましたいなら M16の出来合いのボードにADC接続だけど
1品料理に汎用ADC在庫するのもなんだから、自分ならPICを9個汎用ADC代わりに使うかな
という事で M16の汎用ボード+9個PICでチャチャとやっつけるな
パソコンでこの条件で作る事は、その性能のADCボードが入手出来るならという条件が満たせるなら UPSを入れて、停電検出してHDDに保存後電源断という事になるだろうね。 ただ、9CHを70マイクロ以内で同期というのは結構厳しいかもな。 9CH分のサンプルホールドを持ってて、ADC中安定してホールド出来なければいけない。 変換速度と、12ビット精度の両立は自分の知ってる範囲じゃ難しそうだ。 M16+PICでやる場合も、電源断を検出してM16の内蔵フラッシュにサンプリング中データを 書き込まなければいけないけど M16のフラッシュ書き込みはバンク単位なのでPICの256倍高速なんで 電源断を検出して数10ミリ秒バックアップすればいいから、電解コンデンサでバックアップは十分。
まてよ。 10ビットADCのPICで12ビット精度出そうとすると 差動入力にして1ビット稼いで、さらにノイズ混ぜての3回平均で 最小6サンプルしなくちゃいけないけど、 PICのADCは20マイクロ必要だから 70マイクロってのは厳しいな。 素直にADC外付けが無難か
パソコンのマザーボードは ・部品点数の多さと全体の配線の複雑さ ・部品信頼性の低さ (ほんとによく壊れる) ・接触部品が結構多い (ROM、CPUソケット、DRAMソケット、ISAやPCIボード) ファンの存在がなによりも故障率を上げてると思える。 まずホコリが入るし、ホコリが入る事で放熱性が悪化するだけじゃなく結露時のショートを起こす。 次に自ら起こす振動。 ただでさえ多い接点を自ら振動させるんだから動作中の不良が起きて当然だ。 そして、パソコンのマザーは高温に弱いだけじゃなく、低温にも弱い。 もちろん、それでも利用出来るところはあるんだけどね。
408 :
デフォルトの名無しさん :05/01/04 16:16:06
>404 >M16の汎用ボード+9個PICでチャチャとやっつけるな それは何時間?
409 :
ライブラリアン :05/01/04 16:27:53
>402 >ホントに使った事あるのかな? 年間100件くらいかな。 >残念だけどパソコン品質じゃ >手組みで1枚だけ作ったボードに明らかに劣るよ 高級車のポルシェと大衆車のビッツはどちらが故障が多いと思う。 品質というのは数を作らないとでないんだよ。 それに2ギガのA/Dボードは手組みではつくれないだろう。 >結局職人さんが生きてる限りはメインテナンス出来る方が >実は安心だったりするよ。 心情的には賛成だけど、ビジネスとしては広がりがない。
>>408 PICはこの場合適当でないと後で訂正してるけど、
うちの職人さんに頼めば、たぶん感光基板で半日もかからず作ってくるだろう。
M16は自分がCで書くからこれも30分もかからない。
というかコード使いまわして、クロック出してデータ貰う部分を9台分同時に変更すりゃいいだけ。
PICをADCに替えても、殆どコードも同じ。
なんなら今注文貰ったら明日午後には納品しまっせ。
たぶん、パソコン使ったって、ADC+UPSじゃ部品代に20万以上かかるでしょ?
そしてADCボードの入手に時間かかるでしょ?
で、プログラムはそのボード入手してからボードの使い方調べてになるでしょ?
トータル、うちと同じ値段じゃ出来ないと思うよ。
411 :
ライブラリアン :05/01/04 16:43:47
>410 凄い、注文します。注文書の送付先の連絡頂戴。 その製品は使わなくても、その技術が欲しい。(笑 器用貧乏にならないように私がマーケテイングしてあげるよ。
>>411 はは、書けたらいいんだけどね。
凄いというけど、なんか自分の周りはそんな奴が多いんだが・・・・まあスキルミスマッチが起きてるのかもな。
器用貧乏はおっしゃる通り、職人さんも自分のとこも、なんだか忙しいばかりだ。
よくは知らんが、ラックマウントのPCは100万も出せば手に入る。 逆に言えば、10万のPCと同じ程度の性能なのにその金額になるのは保証と信頼故じゃないの?
市販されてるUPSの寿命は電池が2年、本体5年だよ。 もちろんそれ以上の期間動作させられるけど メーカー的には上記の時間が経過したら 新品への交換を勧めている。 そういう機材だってことわかって言ってるのかな。
なんで PC = Windows みたいな話になってるの ? 別に Compact Flash かなんかに Linux でも入れて、メモリー上にファイルシステム作って、てきとーなデバイスにデータ書けばいいと思うんだが。 途中で電源切れたって、データ書くところさえちゃんとしてれば問題ないから、UPS なんか不要だよ。
知らないならハッキリ知らないと言いなさい、むしろ黙ってなさい 余計な事を言って手間増やされちゃたまらんよ
スキルに裏打ちされた議論で勉強になります。ののしりあいにならないのも珍しい 俺はハード屋さんが決めた仕様に従ってソフト書くだけだからなあ。
>>415 そのシステムで書き込み途中に電源落とされたらどうなるわけ?
419 :
ライブラリアン :05/01/05 09:39:03
>413 >ラックマウントのPCは100万も出せば手に入る。 >逆に言えば、10万のPCと同じ程度の性能なのにその金額になるのは保証と信頼故じゃないの? いわゆるFA用のパソコンだよね。でもソフトを含めると信頼性は それほど高くない。昔DELLのパソコンでラインのシステムを 作った。故障が無くて好評だった。リピートの時、調子に乗って信頼性をあげる目的 でFA用のパソコン(金額で4倍くらい高い)に変えたら、まともに 動かなかった。メーカーのサポートは良かったけれども、顧客の信頼は 著しく低下した。そのような経験は何度もある。 やはり数が売れている方が信頼性が高い。
420 :
ライブラリアン :05/01/05 09:52:19
私も昔はマイコンでやっていた。 みなさんと同じことを言っていた。 しかしあることに気がついた。 それはハードが安ければソフトも安くなってしまうことだ。 「1000円のPICに300万円のソフトを入れました」 と言っても顧客は納得しない。 「150万のハードに150万のソフトを入れました」 と言えば納得してくれる。 つまりそういう心理的なことも性能とは関係のないところで あるのです。
421 :
デフォルトの名無しさん :05/01/05 09:58:27
>417 同意。大人の議論だ。
>>420 昔の話してどうするの。
いまではソフトが高いのは納得済み。
423 :
ライブラリアン :05/01/05 10:13:13
私はプログラマはあまり得意ではない。 離れて時間が経っているからね。 いまはSEという立場で顧客と話すことが多い。 よく次のようなことを自慢げに言う担当者がいる。 1 うちの会社は特殊なことをやっている 2 うちの会社はスペックが特別厳しい 3 うちの会社は予算がない でもそれは違う。こちらの本音は 1 あなたの会社は特殊ではない。あんたが特殊なのだ。 2 それはあんたの好みの問題だ。 3 それはあんたが会社から信用されていなからだ。
…等と考えてるSEとは一緒に仕事したくないと言う本音も聞こえてきそうですね。
はい、したくないですー にゃんにゃん
426 :
ライブラリアン :05/01/05 10:34:33
>424 そうじゃないんだな。ここからスタート するということ。説明して、そのことに気がついてもらうんだ。 好きとか嫌いとか言うレベルではない。最終的に満足してもらう ことが大事。
でもね。 パソコンで一丁上がりってやってると 数が出るリピートする商品が来ないんだよ
428 :
デフォルトの名無しさん :05/01/05 12:49:46
>427 >数が出るリピートする商品が来ないんだよ そうなんだ。リピートはハードをお客が購入してソフトをコピーすれば 頼まなくてもいいからね。 だけど自分がお客でソフトのコピーを許している契約で あればそうするよね。だからメンテナンス契約をするとかして 、少しはつながっているようにしないといけない。
>>420 >「1000円のPICに300万円のソフトを入れました」
>と言っても顧客は納得しない。
納得しますよ。
言いたいことはわかるそう考えたこともあるし、同じことをやった。
でも、頭をひねってむりやりパソコンで実現するより、素直に考えたほうがお客は納得する。
そして、パソコンベースで怖いのは、部品の故障
修理はメーカ送りだし、生産中止したらアウトで代替手段がマシン交換。
自社ハードだと、その心配がすくなくないか?
そして、パソコン系の開発環境はOSに依存するので
組み込みの開発環境の方が寿命がながくないかな?
QNIXやLINUXでコマンドラインの環境ならいいけど
>>382 >反対にの1台しか必要なのに、マイコンで作るのか。
一品料理であっても、人工衛星に載せるのにパソコンは使わないでしょ
いいたいことはわかるけど、適材適所、臨機応変だと思う。
斬ったつもりだろうが、住んでる世界が狭すぎるよ。
「1台しか必要ないなら、マイコンでやらずにパソコンでできるケースは多々ある」 と言うなら、禿同だ。 なんでもかんでもマイコン、とか、1台ならなんでもかんでもパソコン というのには賛同できない。
PCでやるのは実験機だけ。 一台しか必要ない場合というのを、実験機と混同しているのではないの?
連ですまないが パソコンベースのデータ収録機を作ったとき IOボードの絶縁の問題で散々苦労したことがある。 こういうことがあると、自社ハードなら作り直しは簡単だが、 PCI/ISAバスのI/Oボードとなると、それだけで1作番になってしまう。 出来合いのものでつくると、出来合いの範囲でしか対応できなくなる。 こういうとき、お客に対して、どう説明する?
一台しか必要ないシステムなんていくらでもあるよ。 #つーか、2台目は仕様変更入るから同じにならないだけだけど。 私のところでは昔はメモリとOSの安定性からEWSを使っていた制御系の応用でも、 同じ金額で受注するならソフトに多く金額を割けるPCを使うことが増えた。 それにしても、制御系とは斯くも個々の事情が違うものなのだなぁと実感。
434 :
アルゴリズム :05/01/05 14:31:13
>自社ハードだと、その心配がすくなくないか? 顧客の立場にたてばどうかな。よく制御系の会社は倒産する。 倒産した会社のマイコンシステムが壊れた、なんとかしてくれ とお客から持ち込まれることがあるよ。「一品料理の 手作り製品はもうこりごり。だれもわからない。 スタンダードな規格で作ってもらいたかった」とこぼされる。 倒産だけではなく担当者もよく辞める。 担当者が辞めたら後は知らないではすませられないだろう。 そんな考えでは顧客の信頼を得られない。 自分だけの立場でものを考えてはだめだ。 要するに、顧客の立場でも考えるべきだ。 人工衛星に載せるシステムの案件はやったことがないけど、 それは別格で、そのときはマイコンとかパソコンにこだわる ことはないだろう。そんな実績があるなら脱帽する。
435 :
アルゴリズム :05/01/05 14:36:32
>430 先生それはそうですよ。円は楕円の特別の場合だから、 円も楕円と呼ぶべきだ。当然そうですよ。でもそう書けば話が 面白くないでしょう。
436 :
アルゴリズム :05/01/05 14:45:56
>431 >PCでやるのは実験機だけ それが事実だ。実験機で用が済めばそれでいいだろう。 目的が達成できれば、それが実験機に分類されようと、どうでも いいではないか。それはお客が決めること。 お客が満足すればOK。 今まで議論を聞いていて、一番感じるのは自分の都合ばっかりで お客がどっかに飛んでしまっていることだ。
>>434 >自分だけの立場でものを考えてはだめだ。
>要するに、顧客の立場でも考えるべきだ。
そんなのは当たり前の話だけどな、別に学校の講義を受けるつもりはないので(ry
逆に「スタンダードな規格」での不都合な点もいうべきではないかな
>>432 の場合なんか、どうする?
「スタンダードな規格」で納めたが、絶縁などの問題などが発生。
スタンダードだからあきらめろというのか?
>>430 で言ったように、どれにもこだわってはいけないと思うが。
>>432 医療機器なんかの場合、高周波系と混在すると絶縁対策が原因で
暴走の危険性があるが、パソコンベースのシステムで対応できると思えない。
また、
>>398 のケースで、
強電界下での使用ということに対する暴走対策、
電源の断接でリセットスタートさせるがその応答を2秒以内
こういうことにパソコンベースのシステムで対応できるのか?
実験機がなぜダメなのかというと、実験のために関係ない部分まであちこちいじり 倒しているうえに、なんだか変なジャンプ配線ばかりだったり、場合によっては ユニバーサル基板で作ってあったりして、とにかく信頼性が低い。 関係ある部分だけ抽出して試作品を作り、うまくいったらちゃんとした物をつくる、 ってしないと。
すくなくとも、 マイコンしかやったことがないからマイコンでとか パソコンしかやったことがないからパソコンで PLCしか(ry という技術者にはなりたくない。
441 :
ライブラリアン :05/01/05 17:04:39
>473 >そんなのは当たり前の話だけどな、 >別に学校の講義を受けるつもりはないので(ry 申し訳ない、偉そうに書いて。(笑
442 :
ライブラリアン :05/01/05 17:10:01
この話題をこれくらいにしてもっと面白い テーマはないかな。
>>434 パソコンだけじゃ制御の役に立たないでしょ?
何か入出力ポートが必要でしょ?
で、結局はその入出力ポートの実現の部分で スタンダードな規格 が無いんだよね。
だから、パソコンは標準であっても、納品したものは標準じゃないわけだ。
ラックマウント → FA というロジックは面白いと思いました。
俺が仕切ってやるぜ
アルゴリズムとライブラリアンは同一人物?
PC使う方に一票 なんかPCのボードが生産中止になったら・・・みたいな話が出てるけど そういう心配はむしろ自社ハードにこそいえるのでは? マイコンも周辺チップもどんどん新旧交代して修理しようにも互換品がない、 なんてこと結構ありがちだと思うんだけど。 あとソフトの価値が認められるようになってきているって意見があったが これはむしろ時代に逆行した意見だろう。 ソフトの貨幣的な価値なんてむしろどんどん下がってきてるでしょ。
449 :
デフォルトの名無しさん :05/01/05 22:51:57
>>418 >
>>415 > そのシステムで書き込み途中に電源落とされたらどうなるわけ?
FAだとそこまで対策してるのは見たことないよ
取説に「書込中は電源を切らないでください」でおしまい
もしそこまで気にするならバックアップメモリやHDDも二重にするしかないんじゃないの?
>>448 >マイコンも周辺チップもどんどん新旧交代して修理しようにも互換品がない、
>なんてこと結構ありがちだと思うんだけど。
自社物だと、DISCON品がどこかにあってなんとか対応できるが
メーカ物は、電源ユニットひとつでも終わったらホントにおしまい。
>>448 PCのボードってI/OとかADC/DACの事だよね?
リスクとしてはこっちの部品がが無くなる事と等価だよ。
それ以上に、他社である分それが起きた時の問題は厄介だ。
ようは対応出来ない。(対応出来ない事を利用に新規にしちゃうワザもあるだろうけどね)
たぶん、PCのボードを勧める人は 今1チップマイコンの内蔵RAM・フラッシュがどれだけ
あるか、そして、どれだけ簡単か知らないんだろうと思う。
http://akizukidenshi.com/ http://www.oaks-ele.com/ みたいな所からボード買って勉強してみればいい。
外付けにフォトカプラなり、オペアンプなりをつなぐだけで大抵のシステムは完成だ。
パソコンを使うなら、これをRS232CやLANで接続すればいい
まあFAで使うような場合は、そんなボード使わなくてもシーケンサ+パソコンで間に合うのも事実だけどね。
453 :
ライブラリアン :05/01/06 12:41:20
>451 OAKSは思い出した。ありがとう。 自分もアマチュア精神が旺盛なので、こんなのをみると 結構ワクワクする。ただビジネスで考えると また違う考えだけどね。 ワンボードマイコンを使う機会は無いことはない。 お客がどうしてもと言えばそうする。 ただCPUの種類が多すぎるので勉強して使う のにリスクが多い。 >FAで使うような場合は、そんなボード使わなくても >シーケンサ+パソコンで間に合うのも事実だけどね。 そうなんだ。実はこれは優れたソリュウションなんだ。 シーケンサはイーサネットでパソコンのI/Oボードの代用だ。 プログラミングはしない。シーケンサーは ノイズに強いし売れているメーカを使えば、安心。 原子力関係では制限があるようだけど。 さらに仕事の終盤になると安全性の対応でプロテクトをかけたり、 非常停止の問題がでてくる。 それはシーケンサのプログラムだけで簡単に 対応できる。
>>453 >ただCPUの種類が多すぎるので勉強して使う
>のにリスクが多い。
それほど大変じゃない。
H8で作ったシリアルやタイマーなどのルーチンは
そのままSH1やSH3で使えるほどファミリーは同じようなアーキテクチャーになっている。
PLC(シーケンサはミツビシの商標ね)の場合
モデムで発呼とか端末側起動のシリアル通信が面倒じゃないだろうか?
っていうかできるのか?
引用ばかりですまんが
>>451 >それ以上に、他社である分それが起きた時の問題は厄介だ。
>ようは対応出来ない。(対応出来ない事を利用に新規にしちゃうワザもあるだろうけどね)
実際、そういうことが多い。
むりやり、パソコンでやろうとする姿勢はどうも賛同できない。
部品点数が多いだけでも信頼性に問題があるとおもうし
振動試験や絶縁試験にも合格すると思えない。
それだけ適応が狭くなる。
というか、そもそも ライブラリアン氏は、そういうケースの仕事はあまり多くない?
どうも、私の世界と違うように感じる。
まあ、用途によるってこった
>>454 そういうのは一度作っちゃえばパソコン側はそれでOK
自分はパソコン関係はDelphiで作ってるから、通信部分をコンポーネントにしてて
再利用はポトペタ一発だ。
>>457 いや、端末側起動といったのは、
PLCからモデムをコントロールしたりということ
459 :
デフォルトの名無しさん :05/01/06 19:27:05
どこで質問すればよいのか分からなかったのでここで教えてください。 論理回路のことなんですが・・・ 2進数どおしの加算は半加算回路・全加算回路で出来ます。 積算はどうやってするのですか? HELP ME〜
>>459 積算という事は、
加算した結果を覚えておく手段(FFとか)と加算器で出来るでしょ
boothでググれ。
>>458 そういう時はBASIC Unit(オムロンでいうASC Unit)なんかを使うんじゃないですかね。
464 :
デフォルトの名無しさん :05/01/07 05:49:52
誰か知っていたら教えてください。 PC系のボードを使って、PCIバスに制御用のカードをさしています。 カードに載っているデバイスへのアクセスは32bit幅限定。 ByteEnableの信号が無いらしく、byteやwordで書き込みすると、 他のビットが化けてしまいます。 このデバイスのレジスタマップは、 現在、ビットフィールドの構造体で定義されていて、これを流用したのですが、 コンパイラ(GCC)がビット操作をbyte単位で行うように コンパイルしてくれて、困っています。(アセンブラ展開見て確認) ビットフィールドってANSIではintでしか使えないはずだから、 当然32bit幅でアクセスするようにコンパイルされると思っていたのですが…。 コードの記述やコンパイルオプションの設定とかで、 何とか32bitでリード/ビット変更/ライトするようにコンパイルできないんでしょうか? あ、もちろんレジスタのアドレスは4バイト境界になっています。 マクロ使ってビットアクセスを定義しなおすのは かなりの量のレジスタがあり、コードもかなり変更しなければならなくなるので、 なるべく避けたいです。 同じような経験された方いますか?
ダミーのビットフィールドを入れて無理やり32bitにするのは駄目なの?
>>464 普通はそういう経験はしない。
理由はメモリマップ式のI./Oはめずらしいし
メモリマップ式でも、PCIバスだと普通のメモリに比べて遅いから普通のI/Oと同じように
読んで書く方式にするから
>>464 具体的な情報がないのでなんともいえんが、
bitfieldが本当に32bitサイズの型で宣言されていて、かつvolatile修飾されているのであれば
gccのバグだろう。そうでなければそれは仕様。
>>465 もちろん、ビットフィールドはダミーも入れて
きっちり32bit単位で全部埋まってます。
int(32bit)変数とのunionにしてあります。
で、たとえば、アドレス0の32bitレジスタのbit8に1をセットするような場合、
コンパイル結果を見ると、
アドレス1をバイトでリード/bit0を変更/ライトするコードが吐き出されているわけです。
アドレス0を32bitでリード/変更/ライトしてほしいのに。
>>464 やっぱりそうですよね。
RAM領域も持っているデバイスなのでメモリにマップされています。
マクロで定義しなおすしかないか・・・
gccの仕様として有名な話ではないの? 「gcc使う場合、日立SHのサンプルソースはそのまま使えない。 理由は日立のサンプルがビットフィールド使ってるから」 みたいなのをインターフェースか何かで読んだことあるぞ
gccでビット操作するとき、鬱陶しくなるようなマクロをよく使うよね。 移植性を高めた結果、問題の起こりやすいビットフィールドなんか 使ってられるか、ってことなんだろうね。
>469 gcc3以降だと大丈夫じゃないか?
そういうのはasmを使えば簡単で確実。 GCCのasmはCとのインターフェースも簡単なんだからさ。 (C++ならうまくクラスを作れば、ソースを変えなくてもできるかもしれない。 まったくお薦めしないが) Cのレベルではアクセス幅なんて決まってないんだから、ビットフィールドの幅を どうしようとアーキにあわせた最適な幅でやっちゃうんじゃない? それもI/Oなんかつながって無いつもりで。 で、GCCのその辺の設定は、mdファイルに書いてあるはず。
476 :
デフォルトの名無しさん :05/01/07 22:08:32
処理系の影響を受けない様にビットフィールドではなく 論理演算を使ったり、展開を読むことも考慮して可読性を高める様 に書く様にしている俺はチキンでしょうか? 極端な話、 a++; ではなく a=a+1; と書きます。これならコボラーが入ってきても対応できる可能性があるからね。 展開効率を上げるのはコンパイラの仕事だしい・・・・・・
>>476 a++も理解できないコボラーに対応させることの方が怖い。
そのレベルだと、strcmp()使わずにポインタ同士を比較しかねないぞ。
展開を読むってなに? ビットフィールドはコンパイラと心中するつもりでないと使わないよな。
479 :
デフォルトの名無しさん :05/01/07 23:39:08
>>469 > 「gcc使う場合、日立SHのサンプルソースはそのまま使えない。
> 理由は日立のサンプルがビットフィールド使ってるから」
?
日立のHPからダウンロードできるヘッダファイルのこと?
たしかにビットフィールドばんばん使っている。
でも、これがHEW以外で困るのは、
ビットフィールドの並びが普通と逆だからじゃなかったっけ?
>>479 ビットフィールドをバイトアクセスに展開してしまうgccの処理を問題にしていたと記憶してます。
本で読んだだけで、自分で試したわけじゃないです。
>>464 1999年8月1発行、Interface増刊TECHI
「SuperHプロセッサ(SH-1/SH-2/SH-3/SH-4のハード&ソフト完璧マスタ)」
P169:コラム1「日立純正Cコンパイラとgcc」より引用
gccは非常によくできたコンパイラです(一時は、日立純正Cコンパイラより断然性能がよいと言われた頃もあった)。
しかし、gccをSHシリーズで使用する場合には注意する点があります。それは周辺機能レジスタに対してビット名を使用したアクセスを行わないようにすることです。8ビット以外のレジスタ内容の参照や変更が出来ません。
(以下略)
レス、サンクス。 結局マクロで組みなおすことになりました。
しかしそんな有名なバグがなんで直ってないんだろう。
>>486 この場合、バグは、I/Oなのにメモリマップにして、しかもバイトアクセスに対応しない自分勝手なボードの方だろう
さらに言うと、ビットフィールドをI/Oアクセスで利用しようという設計で コンパイラを変更しようとしている甘えにも問題がある。 ワンチップマイコンでは強力なビット操作命令(I/Oにおいて特に有効な)をCから手軽に 利用出来るようにと、ビットフィールド関係を最適化して使いやすくした 専用Cコンパイラを 提供してくれている場合がある。 その場合、1ビット単位のI/O操作は当然ビットフィールドを使うのだけど、 それの方式が一般だと思ったり、移植可能と思っちゃいけない。 汎用性を考えるなら、ビットフィールドをそこで直接書かずに、マクロで抽象化してしまう事だ
>>487 この例は
デバイスがバイトアクセスに対応してないし、
そもそもメモリマップI/Oしか選択肢のないプロセッサの場合の話だと思うが
gccのバグではない 純正コンパイラが機能拡張させてるだけ
>>489 > デバイスがバイトアクセスに対応してないし、
だから、“PCIバスに接続された制御用カード”のバグじゃん
>>487 >I/Oなのにメモリマップにして
って、モトローラ系はもともとそうだとおもうけど
32bitでアクセスできないわけじゃなくビットフィールドが対応していないだけでしょ?
じゃI/O空間が無いCPUは絶対にI/O空間を使うPCIカードが使えないのか? というとそんな事はないわけで、それぞれ使えるように工夫するものだし、そうじゃなければ逆に困るだろう。 I/OはやはりPCIバスのI/O空間に割り当てるのが正しい作法だろうと思うよ。 わざわざPCIのメモリ空間に割り当てたなら、バイトでアクセスしようが対応しなくちゃダメだろ。 という話。 VRAMがRGBにわけてバイトでアクセスさせたらダメなんて事になってたら、ムカつかないか?
494 :
デフォルトの名無しさん :05/01/08 19:11:54
コンパイラは純正使ってれば間違いありませんし、高機能なものは無料 では手に入りません。あなた方の商売道具なのですよ? _, ,_ ∩ ( ゚∀゚)彡☆ ソレミタコトカー ⊂彡
なんか、いろんな論議に発展してるな。 特殊用途の通信チップなのです。 アドレスの前半がレジスタエリアで、 後半数kバイトがバッファRAMエリア。 通常は32bit単位でしか使わないような仕様です。 もともと組み込み用途なので、 SHとかに接続するように設計されているチップみたいでした。
SHCなら、volatile修飾すればビットフィールドは宣言型サイズ(int b0 : 1;なら4バイト)で参照されるな。 H8Cなら、evenaccess。 gccも何かないの? 最適化をoffにするとか。
すまん HEWも癖があるけど、 これ、やっぱり結局gccのバグなんだよな?
>>493 SHは、メモリマップドI/Oなんだけどな。
そういうことを話してるのとは違うのか?
PCIカードだろうがなんだろうが、メモリ空間にマッピングされるのが気に入らないのか?
ビッグエンディアンも気に入らない?
>>497 > これ、やっぱり結局gccのバグなんだよな?
バグ、バグ、って正直ウザイよ,オマエ。
所詮Cじゃバスアクセスの幅は規定されないから、
処理系依存は当然だ。それを使いこなせないなら
その人間がアホなだけ。
>>498 それはCPU側から見た話で、PCIカードのI/O空間をCPUのI/O空間にどう割り振るかとは別の問題だろう。
・CPUにI/O空間が無い⇒だったらPCIカード側もI/O空間を使わない方が楽だろ?
みたいな考えじゃないの?
だったら既存のPCIカードでI/O空間を使ってるものを全て使わないつもり?
そういや、少し前のC++Builderで バイト(char)でビットフィールド定義してたら なんか1ビット不連続になってた事があったな。 確かにバイトでビットフィールド使うのはCの規格の範囲じゃないけど あるコンパイラでバイトで定義するとそこを最適化してくれるものだから、使ってて、 それをC++Builderでデバッグしようとして、どつぼに嵌っちゃった まあ、ビットフィールドには気をつけろってこった。
>>501 問題はビットフィールドでアクセスすると
「バイトアクセス命令に落ちる」ってことなんじゃないのか?
gccのバグというより処理系依存で作りこまれたバグとしか思えん
I/Oにビットフィールドきっても、実際にI/Oに設定に行くときはunion
使うなりなんなりしてレジスタサイズ丸々writeするけど。
MemoryMappedI/Oで利きもしないBit操作命令になんかに
落とされちゃたまらん。
503 :
デフォルトの名無しさん :05/01/09 15:57:55
ビットフィールドってAND ORもわからんアプリ屋が使うものだとばかり思ってた ・・・・・メリット、デメリットを計りにかけて設計・実装してますか?
>>503 出来上がるコードの違いわかってますか?
>>500 >だったら既存のPCIカードでI/O空間を使ってるものを全て使わないつもり?
PCIカードはいままでどおり勝手にすればいいのと違うか?CPUは、メモリマップするだけのこと。
すまないが、それが、ビットフィールドの不具合とどう関係するのか
漏れの不勉強な部分もあって、わからん。
もともと、ビットフィールドは使わないし。
どうせ、何ビットでアクセスしなきゃいかんのか意識しなきゃならないし
後で見て、どう定義されているか確認するのは避けられないから
直接、AND ORして、わかるようにコメント書いておしまいにしてる。
すべては仕様ですから〜残念!
507 :
503 :05/01/09 16:21:47
>>出来上がるコードの違いわかってますか?
全部、とは言いませんが、初めて使うコンパイラなんかだと、色々試して
アセンブラの展開を読んでからコーディング規約を作ってるけどね。
int , unsigned intの差とか、charの扱いとか、引数の渡され方とか、auto変数の
レジスタアロケートルールとか。etc etc
俺は
>>476 でもあるが、a++;とa=a+1;では、多くのRISCチップ様コンパイラでは同じ
展開になりますよ。
あーやっぱり>476は判ってない困ったチャンだったのか。
long *a = (long*)0; long *b = a; a++; b=b+1; if(a != b){ printf("残念!"); }
>>502 バグはおまえの頭。
>>507 a++とa=a+1が同じだったら、a++の方が分かりやすいだろう。
あと、生成コードの癖はちょっと見ただけであたりを付けるとはまるよ。
コンパイラが保証していないことを独自に保証するには、相当の覚悟がいる。
511 :
476 :05/01/09 20:51:31
>>508 御心配頂かなくても、弊社はコンパイラメーカでもあるから勘所はわかりますよ
>>511 でもあんたはコンパイラの開発にかかわってないだろ?
513 :
ライブラリアン :05/01/09 21:11:42
Cも大変ですね。その調子ではシステムの開発が 完了するか予測ができませんね。 やはりLABVIEWがいいな。
ビットフィールドだと、 数ビットあるエリアに値を書く必要がある場合は便利なんだがな…
>>511 大丈夫、あんたの事なんか心配してない。
都合のいいことだけレスしてそうでないことはスルーしているのが気に入らないだけ。
あー、もし私の仕事と関わりが出てくるようなら話は別だが。
>>513 中途半端な顧客だとLabViewだと納得してくれなくてね。
#判ってない客は動けばいいと言う。よく判ってる客はLabViewをきちんと評価できる。
>>505 だからさ、
ビットフィールドの内部操作をバイトで処理する実装をバグだというから、
それよりも、PCIバスボードのくせに、I/Oをメモリマップにして、しかもバイトイネーブルに対応していない
ボードの設計の方がバグだろうと 言ってるだけさ。
ビットフィールドの内部操作をバイトで処理する実装は、メモリが相手である限りはバグではない
正しい実装だろう。
>>513 パソコンならDelphiでやっつけた方が余程簡単で、しかもやっつけられる範囲が広い上
再利用性が高いよ。
今では
メータ類もポトペタしてプロパティ設定するだけ。
シーケンサとの通信もポトペタしてイベントにコード書くだけだし
目の前でコード作れますよ
>>416 はぁ ? 何が言いたいんだ ?
それこそ、ハッキリ書けよ。
> 余計な事を言って手間増やされちゃたまらんよ
君のことか ? (藁
>>418 OS としては全然大丈夫 Compact Flush はリードしかしないし、ファイルシステムは使い捨てだから。
(そのために、メモリー上にファイルシステムを作る。)
もちろん、データを書き込むデバイスは途中で書き込みが中断されることがあるけど、そこはソフトで何とかする。
例えば、ブロック単位で書き込みを行い最後にブロック毎のチェックサムを書き込む。
次回の起動時や別の機器でそのデバイスを読み出す時は、先頭からブロック毎にチェックしていってチェックサムが異常だったらその前までのデータを有効とするとか等。
>>449 > FAだとそこまで対策してるのは見たことないよ
まあ、FA と言っても色々だろうけど、君が見たことないからと言って世間にないわけじゃない。
あと、仮に対策していても取り説には「書込中は電源を切らないでください」とは普通書いておく。
なんかトラぶったときの保険としてね。
>>416 はぁ ? 何が言いたいんだ ?
それこそ、ハッキリ書けよ。
> 余計な事を言って手間増やされちゃたまらんよ
君のことか ? (藁
>>418 OS としては全然大丈夫 Compact Flush はリードしかしないし、ファイルシステムは使い捨てだから。
(そのために、メモリー上にファイルシステムを作る。)
もちろん、データを書き込むデバイスは途中で書き込みが中断されることがあるけど、そこはソフトで何とかする。
例えば、ブロック単位で書き込みを行い最後にブロック毎のチェックサムを書き込む。
次回の起動時や別の機器でそのデバイスを読み出す時は、先頭からブロック毎にチェックしていってチェックサムが異常だったらその前までのデータを有効とするとか等。
>>449 > FAだとそこまで対策してるのは見たことないよ
まあ、FA と言っても色々だろうけど、君が見たことないからと言って世間にないわけじゃない。
あと、仮に対策していても取り説には「書込中は電源を切らないでください」とは普通書いておく。
なんかトラぶったときの保険としてね。
Flushなんて書いているあふぉはほっとこ。
521 :
デフォルトの名無しさん :05/01/10 02:59:44
>>516 > ビットフィールドの内部操作をバイトで処理する実装は、メモリが相手である限りはバグではない
> 正しい実装だろう。
だからさ、
メモリを相手にするばかりじゃないわけだからさ、
実際SHなんかだと、そういうケースが多いし、
ビットフィールドで書けたら、そっちの方が便利なわけで
いくら「正しい実装」だろうと、不便だとみんな言ってるんでないのか???
>>521 メーカーのコンパイラ使えばいいだけだろ?
いつまでも何を言ってんだ。
>>516 >PCIバスボードのくせに、I/Oをメモリマップにして
H8/SHで、I/Oをメモリマップ以外にできるのかな?
>バイトイネーブルに対応していないボードの設計の方がバグだろうと 言ってるだけさ。
バイトアクセスを保障しない仕様はよくあるけどな、内部レジスタでもなかったかな。
PCIのボードだけは保障するべきだということかな?
そもそも、ビットフィールドはANSIの仕様で、
定義したビット数でアクセスすることを保障しているのだろうか?
>>521 誰も保障しろとまで書いてないだろ?
ビットフィールドの内部実装でバイト単位にアクセスするコンパイラと
どっちがお馬鹿な実装かって話しをしてるだけさ。
PCIボードの実装で、メモリー空間に割り付けてバイトイネーブルに対応しない事と
メモリ空間しかないCPUで バイトでアクセス出来ないI/Oとを一緒にしてくれるなよ。
16ビットのカウンターを8ビット単位に書き出すのは、それは馬鹿だろ?
だから、ビットフィールドの定義なんて読んだって、そんな細かな事は書いてないだろ。
どっちから確保されるかさえ書いてないんだからさ
面白いので調べてみた
http://www.asahi-net.or.jp/~wg5k-ickw/html/online/gcc-2.95.2/gcc_7.html >失望と誤解
>以下の問題が存在することは残念ではありますが、実際にこれを回避するための方法を私たちは1つも知りません。
ビットフィールドへのアクセスは、たとえアクセスされるビットフィールドがvolatile指定されたオブジェクトの一部であっても、
1バイトや1ワードなど、よりサイズの大きいオブジェクトにアクセスすることによって動作します。
ビットフィールドの読み込みや書き込みを行うために、ある決まったサイズのオブジェクトが
アクセスされるということをあてにすることはできません。同一のビットフィールドであっても、
その用途に依存してアクセスされるサイズが変わってくることもありえます。
アクセスされるメモリのサイズを制御することに関心があるのであれば、
volatileを使い、ビットフィールドは使わないでください。
>>521 だったら、自分がそういう実装のコンパイラを作れよ。
GCCを改造すりゃいいだろ?
たぶん、それを要望してもそういう実装をしようという奴は少ないと思うよ。
ビットフィールドそのものが実装は厄介な上、実装時も実行時も非効率。
かつ実際に、めったに使われない機能。
喜んで使うのは小規模組込屋くらいだろ。
実際、他の言語でビットフィールドもどきをサポートしてるのは殆どない。
似た機能としてはpascalの集合型くらいだろうけど、
これは1ビット単位だから、複数ビットのフィールドを定義出来るCのビットフィールド
に比べると簡単だしな
527 :
ライブラリアン :05/01/10 09:27:49
>515 >#判ってない客は動けばいいと言う。 >よく判ってる客はLabViewをきちんと評価できる。 これはいい指摘だ。お客のことが言いたかった。 皆さんのマニアックなレスを読んで何の為に仕事を しているかの一端が分かった。それはお客に評価されるためだ。 私の喜びはお客に評価して貰うことだ。 「あなたの作ったシステムはとても役に たつよ」、「上司からいい評価をもらったよ」 「リピートを出すよ」「新しい案件があるので、是非あなたに やってもらいたい」と言われることだ。
>>527 いや、だからあなたが優秀な営業マンである事は判ったけどさ、
しまいにはPCを車載でも平気で採用しそうな勢いだな。
・・まあ、超小ロットの特殊仕様車じゃそういうのもアリかもしれんけど・・・
>>520 Typo しか指摘できないということで FA ?
530 :
デフォルトの名無しさん :05/01/10 10:38:10
わたしゃ519じゃないが、フラッシュメモリの英語表記(?)は Flushでも間違ってないよ。Flashの方が圧倒的にメジャーではあるが。 むしろこんなことも知らない奴は普段ちゃんと石のデータシート読んでるのかと 問い詰めたくなる。
SHでビットフィールド実装するとして 値1を書き込む場合、 バイトreadして 即値or して、バイトwrite って事になるのが普通じゃない? だって8ビット以上の測値はpc相対オフセットで読む事になるから 命令も長くなるしさ。 int幅だから32bitでアクセスしろって事? で、charで指定した場合だけ8ビットでアクセスしろって贅沢言うわけね? しかしさ、int以外のビットフィールドはANSIじゃないでしょ? というかさ、ビットフィールドの型は、本来、そのビットを どう型変換するかって意味じゃないの? だから signed かどうかで 1ビットが1になったり-1になったりするだろ?
話は少しそれるが、ISO/ANSIの言語仕様で、 objectの型がvolatileの場合はメモリ参照サイズ = 型のサイズになる (たとえば struct S { volatile int bit1 : 1; } b; ならb.bit1の参照時には常に4バイトアクセスコードがでる) という保証はないの? いままでそういうつもりで使ってたんだけど…
>>532 無いでしょ。
それは構造体 S で 1bit の領域を定義して、そのbit1を int で参照しますという意味じゃないの?
普通はintは符号付だから 結果は 0か-1になる筈だけど
ANSIでは、どっちでもいいとしてるもんだから混乱の元
(コンパイルオプションで変更出来るものも多いようだけど)
>>532 ANSIの仕様は忘れたが、うちのコンパイラでは保証してる。
以前、そういう例に対して、最適化して1バイトアクセスコードを出すようにしたら、
顧客からがんがん苦情がきたよ…。
>>534 532はISOで保証される(処理系依存ではない)か
聞いているのに、オマエ馬鹿だろ。
コンパイラで保証されるものがあっても当たり前すぎる。
バイトアクセスに最適化してくれた方が性能出る場合に、 どっかのバカを救うためにいつもワードアクセスされた方が困るがな。 Cは生成コードが想像つきやすいこともあって、「想像」=「事実」と 勘違いしてしまう人も多いのかな。
>>534 >ANSIの仕様は忘れたが、うちのコンパイラでは保証してる。
つまり、ANSI準拠というわけではないということですか?
別にそうでも構わないし、ヴァカとは思いませんが。
68020なんかのCPUでは、ビットフィールド命令を使用するか否かの コンパイルオプションがあったので、 アクセス幅設定のオプションもあるかなと思ったわけですが、 無いんですね。
該当するbitに対してのみvolatileが保障される
>>533 今ANSIの仕様書をみてるんだが、その辺の事情はどの辺を読めばわかる?
volatileの項とかみたけどよくわからん。
541 :
デフォルトの名無しさん :05/01/10 18:37:40
このスレ、ツール屋も結構混じってるな・・・・・・ CM コンパイラ、ICE、評価ボードはお金を払って買いましょう。 いや、買ってください。m(。。;)m
>>540 ビットフィールドとvolatileは無関係。
ビットフィールドの値の符号有無しは規格では決まってない。処理系で規定する
ことが求められているのは、領域の埋めかただけだな。
volatileオブジェクトは処理系の外で変化するかもしれないから毎回アクセスする。
書いてないことは保証されていない。
>>542 ありがとう。
volatileがある時にメモリアクセスサイズが保証されるかを調べたかった。
> 書いてないことは保証されていない。
そうだね。
しかし、どこにも書いてないことを確認するのが大変だ…。
直接書いてなくても、あちこちの記述をつなぎあわせると
規定されていることがわかったりするし。
以前、識別子のスコープルール(block scopeの生成条件)を調べるのに一日かかったよ。
>>537 ,379
処理系依存だったら処理系が保証して当然。
保証しなくていいのは不定な動作だけ。
まぁ、馬鹿には分からんかもしれん。
釣られて言えば、 処理系依存なら処理系の勝手
処理系定義(implementation defined) 未規定(unspecified) 未定義(undefined) を区別しよう。
547 :
デフォルトの名無しさん :05/01/11 21:09:28
>>464 すごい燃料だな・・・・・まだ燃えてるよ・・・・
ビットフィールドは便利なようだが処理系依存なので使わないのが吉。 ビットフィールドは使わずにビット操作。 なおかつアセンブリで8bit/16bit/32bitでread/writeする関数を作成して使っている。 さらにコンパイラ/ターゲット依存を覚悟で、 inlineかつインラインアセンブリな関数にしている。 コンパイラ変更あるいはターゲット変更でも、 read/write関数を直すだけですむので無問題。 ビットフィールドは、あっちこっち直す羽目になるので問題大。
途中からコンパイラを変更するなんてあるの?ちょっと信じがたい。 まあソースの再利用はあるかもしれないけど。
つか、組み込み屋がIOアクセスするのにビットフィールドを平気で使うこと
自体が折れには到底信じられないんだが・・・・。使わないことが常識だと思ってたよ。
>>519 書き込み可能なデバイスで、書き込み中に電源断しても、デバイスのその後の動作に問題が
発生しないことを保証するものはあまりない。SDカードやCFなんてのも普通は全くの保証外。
壊れても文句言えない。少なくとも、ちゃんとデバイスメーカーに確認してから使えよな。
ま、保証してくれるかはわからないが(w
>>550 > つか、組み込み屋がIOアクセスするのにビットフィールドを平気で使うこと
> 自体が折れには到底信じられないんだが・・・・。使わないことが常識だと思ってたよ。
しかし、組込屋が使わないとなると誰が使うんだ?
おう、組み込み屋じゃない漏れはよく使うぜ。
>>551 むしろ組み込み屋じゃないほうが良く使うと思う。
俺もビットフィールドは嫌いだが、メーカーの提供しているヘッダファイルの IO定義がビットフィールドを使ってるしなあ( SH/H8)。
まあ、取り込み作戦なんだろうけど、それを使ってもさらに抽象化しとくべきだろうな
>>553 ドライバ屋さんはI/Fは用意してくれるがビットに詰めるのこっち任せだったりするからね。
質問です。 デバイスドライバを書くときに、デバイスのどういうことを調べていくのが一般的ですか?
デバイスドライバを書くときは、デバイスがどういうものかを調べていくのが一般的です
>>558 参考になりました!ありがとうございます!!!
なったのかよ!
むしろ果肉
>>557 マニュアルはたいがい「このレジスタにこれを書くとこう動く」式で書かれてるね。
その中から、「アプリからこう使えれば便利だな」を抽出するように読もうとしてるよ。
機能レベルでそれを把握してから、時間的な条件(割り込み発生のタイミングとか、
許されるディレイ)、制約条件(この使い方のときはこっちがダメとか、書き込みと
割り込みが同時に起きたときどっちが優先、とか)の所と照合すると、間違った使い方
しようとしてないかの検証になる。
>>557 どう動かすかということはもちろんだけれども、
どう抽象化するかが上手い下手になると思う。
そのために操作の単位がどうなるのかを調べる。
そんな風に、設計してます。
はじめまして、一つ伺いたいのですがよろしいでしょうか? あるRAMエリアに対して0でクリアしたあと本当に0になってるか チェックする処理を作りたいのですが、とにかく処理時間重視と言われました。 処理能力を気にしないので良いなら悩まなくても良いんですが、 どういうロジックを組めば最も高速にクリア&チェックできるか私の頭ではわかりませんでした。 言語はCですが、処理能力考えるとアセンブラで組んだほうがいいような気もします。 何かよい知恵がありましたら教えてください。
あと、使ってるのはSH-2です。
>>565 どうやったらいいのか
どこで差がつくのかわからん
クリアした後 本当に0になってるかチェックした後 本当に0になってるかチェックした後 本当に0になってるかチェックした後 本当に0になってるかチェックした後 本当に0になってるかチェックした後 ……
569 :
デフォルトの名無しさん :05/01/14 22:45:21
・・・・・よし、明日の朝はトーストとハムエッグにしよっと。
埋める方をDMAのバースト転送を使ってやる。 ただし、転送元は内部レジスタで0になってるとこ。 チェックはソフトで地道に。 これで、全体的には速くなる(w
>>570 CPUからメモリへの書き込みパスがチェックできてない。
…ということを考える必要があるかな?
私は普通にmemsetで0にクリアして、その後そのRAMエリアを読み込んで 0と比較すれば良いと思ったんだけど、処理能力、処理能力いうんですが やっぱり大きく変わるんですかね〜? 一番大きいバッファでもクリア&チェックする領域は64KBぐらいです。
どれくらいの速さが要求されているのかにもよるな
>>565 >>572 memsetでいいよ。それの中はASMで作られているから。ただしその後の
memcmpで64KBのゼロと比較するとしたら、あまりにもサイズのムダなので許せない。
#define CLRTOP 0x100000
#define CLRLEN 65536 /* 100000h番地から64Kクリヤするとして */
memset((char*)CLRTOP,0,CLRLEN);
if( 0==memcmp((char*)CLRTOP,(char*)CLRTOP+1,CLRLEN-1) ) で、クリヤされたと判定
指示出した奴が評価できるとは思えんので、なにやってもヨシ
バッファの先頭・終端addressが共に4 byte alignされてるとして、 int is_zeromemory(char *start_address, char *end_address) { int result = 0, *p; for(p = (int *)start_address; p < (int *)end_address; p++) { result |= *p; } return result == 0; } あたりが定番か(4 byte alignされてない時は前後に補償コードを追加)。
ゼロになってるか判定するコードだね。確かにバイトでやるより速い。 どうせならforの中で、resultが0でなければreturn 0、forが終わったらreturn 1に してほしかった。 もっと速さを要求されるなら、書き込んで読みそれがゼロか見るループを 書けばいいが、そのとき最適化によって書いたメモリを読まずに書き込んだレジスタのほうを 判定するコードが出されることがよくあるので注意が必要。
579 :
デフォルトの名無しさん :05/01/15 11:02:18
その程度の処理ならタコな書き方しなければ大差ないだろ。 それより0書いて0読んでテストできた気になってる方が問題 ヽ(´ー`)ノ
>>578 > どうせならforの中で、resultが0でなければreturn 0、forが終わったらreturn 1に
> してほしかった。
せっかくビットORを使ってループ中の分岐を減らしてるのに、それじゃ意味がないと思う。
値が0でないメモリが見つかる(= 書き込みが失敗していた)ケースは
滅多にないはずだし。
みなさんありがとうございます。 ・・・というとCでもアセンブラでも大差はないということでしょうか? 0でクリアした後0でチェックするのは、ちょっと他の所で問題があったらしいのです。 なので私は最初あるバッファに対し0xB6を書いて読んでチェック、0x49を書いて読んでチェック その後0でクリアして0でチェックという関数を作った矢先、処理能力云々言われ 今に至っているんです。 消すバッファが最初は2つぐらいで良いといってたのに、 最終的には処理の中間に生成するバッファも含めてやばそうなバッファ全部消せ ということで処理速度をさらに重視した次第・・・らしいです。
素朴な疑問。 書き込みに失敗してたらどうするんだろ。
マーチングテスト最強
582>キャッシュのことは考慮済み?
SH2はキャッシュがあったかどうかしらんが キャッシュがあるCPUだとキャッシュに書き込んでいるだけになることもあるよな
そこでランダムリプレースアルゴリズムのキャッシュですよ。
で、どうして、書いたものが保証されないという事態がおきる? RAMに書いたものが保証されたないって、スタックも保証されない?
>>582 584の言ってるのは55,AA,FFを書いた後00にする検査のことね。585,586,587はそこまで
問題にならないとおもう。583のギモンに対して特に対処策がないなら、単にmemsetでゼロを
書くだけでいいと思う。B6/49という値に何か意味はあるの?
たしかに、書いた物が保証されないって、RAMが別チップでチップセレクトがちゃんと出てないとか、 そんな事態ぐらいしか想像できないね。そんなのハードのアドレスデコード部分のバグだから よっぽどのことがないとお目にかかれないぞ。
PCのBIOSがメモリチェックやるのはあれは何のため?
あれは「仕事してま〜〜す」というデモンストレーション」なだけ
>>591 PCのメモリは、
ソケット着脱式だから、
メモリをユーザが取り替えているかもしれないから、少なくとも容量はチェックしないといけない
もしかして接触不良があるかもしれない
594 :
デフォルトの名無しさん :05/01/15 18:23:24
>>590 バグと言うか、製造後の不良品のチェック用に商品に検査モードを搭載してるけどな。
RAMのアドレスバスのショートのテスト、データバスのショートの検査とかも入ってるよ。
55,AA,FF、00もそうだし、0x01,0x02,0x04,0x08,0x10・・・・・の様にデータバスのビット
立てたり、書いた後でアドレスバスがショートしてた場合の該当アドレス参照したり。
大きなことではいえませんが 昔はそのバッファは消していませんでした。 次の取引で「上書きされるだろう」とのことで・・・(処理時間を気にした結果、消さなかった) しかし、前回のバッファが上書きされること無く悪さしたため大変なことになりました。 よって今回、いちいちそのバッファに情報を書き込む前に前回情報を消して、 本当に消えてるかチェックするという事態になりました。
ありがちな話だ…
要はバグを修正せずに小手先で逃げているわけか。 桑原桑原。
>>588 RAMは良く壊れます。ハードエラー(故障)だけでなくソフトエラー
(α線などによる)もあります。
RAMだけECCやパリティチェックを入れたりしているハードウェアもありますよね。
>>595 を見るとそういう話でないようだけど。チェックの意味ないじゃん。
599 :
デフォルトの名無しさん :05/01/15 21:24:10
>>582 気が弱そうだな。そんなんで やっていけるのか?心配だな。
・・・・・・・・・・・・・・なんか小腹がすいたな。
>>582 よ。メロンパン買って来い (・∀・)ノシ
オレ午後ティー
>599 いえ・・・まだ新人なのもで社会人として一年も経験してませんし。 組み込み系に流れ着いたのも何かの縁、がんばります。 ところで制御系といっても同期はなにやら違うことをやってます。 なんていうかGUIでなにやら作っている感じです。(詳しくはわかりませんが) なのでアドレスのことやI/Oのことなど特に意識してないようです。 私はSH-2でモータとか回してます。制御系といっても色々あるんですね。
いろいろあるよ。俺はリレーの開閉とか無線の周波数作るシンセの制御が多い。 どの分野でもシリアル通信のプロトコルは勉強しとくといいよ。割り込み、リングバッファ、 ACK/NAK、チェックバイト、再送云々・・・殆どの機器で付いて回るから。
>>602 >無線の周波数作るシンセの制御
これってDDS?
DDSにしても直接プログラムで作り出すのは無理っぽいね
DDSコントローラーのレジスタに書き込んで あとはおまかせポン ソフトだけじゃ周波数合成に専念させても数十kHzが限度
>>601 >なんていうかGUIでなにやら作っている感じです。(詳しくはわかりませんが)
多分、操作画面を作ってるんじゃないの?
タッチパネルとか、PCからコントロールするためとか。
607 :
デフォルトの名無しさん :05/01/16 19:46:19
「画面屋」にされると悲惨。なにもわかってないアホの出来上がり
608 :
デフォルトの名無しさん :05/01/16 21:48:18
>>607 ユーザーインターフェイスの部分は割りとスキルの面ではコアな部分じゃないからな
>>608 あら、ヒューマンインターフェースはそれだけで研究価値があるものだよ。
>>609 研究するならいいんだけど
ただ仕様に沿って実装するだけってなると
得るモノが少ない鴨。
>>609-610 どっちも言えてる
ヒューマンインターフェイスと言っても、自動車の制御などのように
人間の感性に関わるようなところは一つの研究テーマになる
しかし、普通の仕事をしていると、お客様苦情受け付け窓口になるw
>>597 バグと言うよりも最初の設計が間違ってたんだな。
>>595 >次の取引で「上書きされるだろう」とのことで・・・(処理時間を気にした結果、消さなかった)
「〜だろう」ってのが技術屋として失格。ハードだろうがソフトだろうが
検証してない事を仕様にしちゃあかんよ。だから今回のような問題が
起きちゃう訳で。
みなさんご意見ありがとうございます。 明日、工場へ行ってレビューらしいので先輩についてレビューに参加します。 あと・・・やっぱり、アセンブラの知識は持っていたほうが良いのでしょうか? 一応ICE上でデバッグするとき、たまに見たりはします。SHのマニュアル見ながら。 あと春に無謀ですがエンベを受けようと思っています。 もし、新人(理系以外の人)に対して、これは知っておけ!!みたいなものがありましたらご教授お願いします。
>>614 ・アセンブラがわかる ..... 言わずもがな
・データシートが読める ... 必須
・回路図が読める ......... 当然
なんてのは普通でしょ?
と言い放つもラダーチャート組めとか云われた日にゃ四苦八苦
まぁあれだ、制御系にも色々あるってこった
>>613 アセンブラは、できればこしたことはないが必須ではないと思う
ICEでデバッグするときにマニュアルをみながらわかるなら十分じゃないだろうか?
機械語によって動くという仕組みだけは理解しいればいいと思う
つねに他の方法でできないだろうかと考えることが大事
上の方でパソコンでという話もあったが、なにかにとらわれずに
SHでやるか、PICでやるか、パソコンでやるか、PLCでやるか。。。
頭の体操にもなるし、たくさんの札があったほうがいい
618 :
デフォルトの名無しさん :05/01/18 13:39:05
ハードをソフトで置き換えてうまくいった例を教えてくれ。
シュミットトリガーが付いてたのを、代わりにCRにしてもらってソフトで実現するとか?
620 :
339 :05/01/18 19:13:56
以前USBの通信について質問したものです。(キーボード) LED状態は、Set_Report(Output)Request経由でセットされるそうですが、 エンドポイントに意図するデータがセットされません。 Set_Report(Output)Requestは来るので、 ディスクリプタの設定は問題無いと思うのですがなぜでしょう。 よろしくお願いします。 www.usb.org
>>619 んだなぁ。うちもチャタリング除去はソフトでやる事が多いわ。
シュミットでチャタリングが除去できるわけではないが
LPFだろ。 アナログフィルタからディジタルフィルタに変えたわけだ。
フォトカプラのような実際はアナログな信号の場合、デジタルポートで受けるけど 途中にR−C−Rと入れておいて、読む直前まで出力ポートにして、 実際のスレッショルドを変化させるというテクニックは使うね。 出力ポートを入力ポートに変更してから実際に読むまでの時間で調整出来る
625 :
デフォルトの名無しさん :05/01/19 12:58:05
チャタリング除去するとき、 サンプリング2回一致したら、2回目を取り込む? それとも1回目を取り込んで、2回目はキャンセル?
627 :
デフォルトの名無しさん :05/01/19 13:27:56
>>626 「サンプリング2回一致したら」って前提なんだから
どっちでも同じじゃないの?
それとも入力された時間情報も取り込むのかな?
628 :
デフォルトの名無しさん :05/01/19 14:04:09
>>626 スペックは
(1)30ms以上同じ正常なキーデータが継続したら有効キーと認める
(2)15ms以上(1)と異なるキーデータが継続したら無効キーとみなす。
合ってますか?
>>628 以上となっていますが、何msごとに取り込む?
15msごとでしたら、以上ではないのでは
>>625 計算中にキー入力の反応が悪くなる原因の全てが
チャタリング除去にあるとは限らないけどな。
オブジェクト指向は制御系の仕事に役に立ちますか?
>>631 オブジェクト指向的考え方はそれなりに役に立つことも多いが、オブジェクト指向しか知らない奴は役に立たない
オブジェクト指向的考え方で作るとデカくなるので、メモリに制約がある場合は 知っていても使えない場合がある。未だにROM2K,RAM256バイトとか平気であるからね
RAM256Kじゃないよ。RAM 2 5 6 バ イ ト スタックも通信バッファも制御用変数も全部この中
>>637 あ、思いっきりその勘違い(^^;)
スマソ
>オブジェクト指向的考え方で作るとデカくなるので オイオイ
>>633 そこまで小さいとCで組むのも大変だと思うが
>>640 Cの方が楽だよ。
それにどういう風にコンパイルされるか想像できる人なら極力高級言語で書くべきだと思う。
想像だけで確認しないような奴は困る。
まぁ、コンパイルっていうのは演繹的に考えられるので想像だけで良いと言えば良いの かもしれないが、人間、間違えることもあるもので、確認するのは当然だろうね。
644 :
デフォルトの名無しさん :05/01/21 17:53:04
アセンブラソースをC言語を使って書いたらC言語で書いたことになるんでは ないか?
ラダーはのんびり描くに限るよ ラダーラダーダラダラ
シャキーンと来たよ(`・ω・´)
分割によるオーバーヘッドと関数入口出口のオーバーヘッドぐらいなら許容できてcで書く。 資源を抱え込んでそれにアクセスする手続きだけを公開する手法を持ち込むとさすがにきつい。 そこで妥協してRAMを外部参照して変更したりする。
もうROMのサイズとかRAMのサイズとか気にしてプログラム組むの嫌だ〜
それより内蔵Flashの書き込み回数気にしながら デバッグする方が嫌だ〜
>>652 チップ面積どんどん小さくなってるんだから、RAM 16kくらい標準にして欲しいよね
これくらいあれば使う関数のエントリーをRAMにおいてそっから分岐させれれば
RAMデバッグ出来る
>>652 Flashに直接書き込んでいたら100回くらいであぼ〜んじゃない?
逝ってしまったら基板ごと廃棄してるの?
655 :
デフォルトの名無しさん :05/01/22 21:24:54
>>652 内臓RAMのマイコンがあるからそれを使え。
>>550 > 書き込み可能なデバイスで、書き込み中に電源断しても、デバイスのその後の動作に問題が
> 発生しないことを保証するものはあまりない。
そのレベルはハードで書込み禁止すればいいだけだろ。
まさかそんなことは考えてないのか ?
657 :
デフォルトの名無しさん :05/01/22 22:49:54
デバッグ方法考えて設計してないの?じゃ、ICE買え。
659 :
デフォルトの名無しさん :05/01/22 23:23:28
ICEがあればデバッグも楽々〜 ハーゲンダッツじゃないぞ
みなさんはICEに何を使っていらっしゃいますか? 私たち(といっても、所有者は工場でうちらでない)はソフィアを使ってます。
開発するターゲットによるだろ。
662 :
デフォルトの名無しさん :05/01/23 03:57:54
マ板とマルチになっちゃってすいません 就活中の理系院学生なんだけど 組み込み系ソフト作っている大手会社でいいところってどこ? 部品メーカー?大手電機メーカー?精密機器メーカー?他ある? やはりハードに立脚しているところがいいですよね? とするとメーカーですかね? 成長性あるものがいいです あとなるべく高度(数理、物理的)な仕事ができるところ あと、なにか参考になる いい本ないですか? あまり知らないもので・・・
664 :
662 :05/01/23 05:09:55
665 :
662 :05/01/23 05:11:08
一応組み込み・制御ということで (2つの違いはあまりよくわかりません)
>>662 作るのはみんな「下請け」だよ。作る上でのハウツー的なごたごたが好きならいいけど、
メーカーに入ったら、「何を」作れば売れる/儲かるを企画しては下請けに出すのが仕事になる。
数理・物理的な仕事がしたかったら研究所みたいなとこ行かなきゃね。
ソフトで重要なのは数理・物理よりコミュニケ−ション能力だよ。木村泉の翻訳書でゴースとか
ワインバーグの本でも読んでみれ。面白いよ。
667 :
デフォルトの名無しさん :05/01/23 07:49:11
>>628 付近
スイッチのチャタリングキャンセルするのに2回読んでAND取る、
なんて操作は全然必要ないよ。
チャタの最大継続時間より長い周期でサンプリングすればいいだけの話。
ちょっと前に電気電子板でも話題になってたし、コレ実際勘違いしてる人が多くて
苦笑させられることが多いんだけど。
こんなの理解するのに別に難しい数学モデルなんて必要ない、というか
よく考えれば小学生でもわかるはずだと思うんだけどねえ。
チャタが長い短いで語れるならいいけど たまにそれじゃ語れないときもある 最大継続時間が1秒とか。その間微妙にON/OFFの繰り返しが
>>669 意味わかりません。
それすでにチャタリングと違うと思うんだが。。
671 :
デフォルトの名無しさん :05/01/23 19:11:48
インターロックをはずしたパイプラインプロッセサ を使う気力はありますか?
チャタリングスペシャル
673 :
デフォルトの名無しさん :05/01/23 19:43:52
>>668 > チャタの最大継続時間より長い周期でサンプリングすればいいだけの話。
そうすると、最大継続時間×2 (+マージン) の遅れが生ずる場合がある。
これが許容されない場合もある。
そもそも、使ってるリレーが衰退部品になったので交換したらチャタの最大継続時間が変わっててソフトも見直しが必要と言うのはあまり賢いやり方とはいえない。
(複数読みなら反応が遅れるだけだけど、
>>668 の方法だと御検出につながるからな。)
> よく考えれば小学生でもわかるはずだと思うんだけどねえ。
確かに
>>668 が小学生並みによく考えないと言うことがわかったよ。(藁
チャタリングの持続時間より長い周期でサンプルするのは当然だけど 「すればいいだけ」 って部分にひっかかるね。 いわゆるチャタリング取りの処理は、単にチャタリングだけを取ってるわけじゃなく サージとか、瞬間入ってくる短いパルスノイズも取っているんだよ。 例えばリレー接点から少し長い配線なら、隣のリレーが動く事で電磁誘導されて短いパルスが入ってくる。 操作スイッチにも、冬場は操作する人から静電気火花が飛んで短いパルスが入ってくる。 こういうノイズも取る処理を総称してチャタ取りと称してるんだと思うのだが?
676 :
デフォルトの名無しさん :05/01/23 21:51:47
ノイズについては確率的に誤検知を減らせる効果はあるけど、誤検知を0にはできない サンプリングしたときにたまたまノイズが乗れば、誤検知になるから
>>676 もうっ!だから複数回サンプリングするんでしょ!
サンプリングはパルス幅の半分の周期でやるって
高校で教わったでしょ! 授業で何聞いてたのよ!
>>675 > チャタリングの持続時間より長い周期でサンプルするのは当然だけど
はぁ ?
>>668 の仲間なの ?
電気電子板では私の言ってることが理解できない人が「高卒」扱いされてたけど
ここだと正しいこと言ってる私のほうが小学生扱いか(w
なんてこったい。(笑)
まあ、小学生でいいけど物事論理的・定量的に考えたほうがいいよ。
論理的・定量的に、っていっても小学校の算数レベルの話だし。
しかし、チャタリングキャンセルを複数回AND取って行うってヨタ話を
最初に考え出したのは一体誰なんだろうか?
>>674 >使ってるリレーが衰退部品になったので交換したらチャタの最大継続時間が変わってて
そういう場合問題が発生するのは複数回スキャンしてAND取る場合だって同じこと。
複数回スキャン方式(?)とスキャン周期を十分長くとる方式の違いは、
ただ複数回スキャン方式の方が立ち下がりエッジ(?)が検出されるまでの平均時間を
短く出来るって点だけ。
>>675 普通そういうのはチャタリングキャンセルとは言わない気がする。
>>677 アホだな
複数回やっても何回やっても同じだろ
確率的にしか減らせないんだよ
チャタリングはスイッチングのときにしか発生しない
発生しても一定時間で落ち着く
それがわかっているから、一定時間以上でサンプリングすれば、
ソフトでも除去できる
ノイズはランダムに発生するだろ
ランダムに発生するものをどうやって一定周期のサンプリングで完全に除去するんだ?
681 :
デフォルトの名無しさん :05/01/24 00:01:06
そもそもスパイク状のノイズをソフトで取り除けると思う方がおかしい usecオーダーのノイズをソフトで除去しようとしたら、 それだけで処理時間が終わるだろ
>>679 > そういう場合問題が発生するのは複数回スキャンしてAND取る場合だって同じこと。
はぁ ?
わざわざ「(複数読みなら反応が遅れるだけだけど、
>>668 の方法だと(御→誤)検出につながるからな。) 」ト書いてやってるのに理解できてないのか ?
さすが小学生レベルだな。
>>680 > 確率的にしか減らせないんだよ
確率的でいいんだよ。
俺たちは算数やってるんじゃなくて物作ってるんだからな。
>>668 制御系は、人によって状況が様々だからね。
RTOSとか、入力スキャン専用にタイマ割り込みが使えて、
スキャンタスクが他の処理と独立したサンプリング周期で
実行できるってな環境ばかりではないとおもわれ。
非リアルタイム系で、ハードのリソースが乏しい場合、
(たとえば、2行LCD程度の情報表示とスイッチ数個のインターフェースとか)
処理によって周期不定なループ内で
キーの状態も読み込むってなこともあると思う。
少なくとも、昔は多かった。
こういう場合に複数回読み込みって処理は
普通に使われるのでは?
>>677 サンプリングした時点にたまたまスパイクが連続ヒットするんだなこれが
わざとやれることは必ず起こるこれ現場の常識
686 :
デフォルトの名無しさん :05/01/24 07:53:30
ANDよりEXNORが良いよ。
>>682 しょうがないですな。
実際現場でもこういう馬鹿なクセに頑固で、
物事を数学的に考えずに昔々聞いた話を訓詁学よろしく「馬鹿の一つ覚え」
している人が多くて困ったりあきれたり。。。
>複数読みなら反応が遅れるだけだけど、
>>668 の方法だと(御→誤)検出につながるからな。)
SVOが不明確ななんだか酷い文章だけど、まあそれはいい。
これ、間違ってますよ。
チャタを確実にキャンセルできるかどうかはチャタが持続する時間より
サンプリングの周期が長いかどうか、それだけで決まる。
10回スキャンしようが100回スキャンしようがN回スキャンしようが、
N*T(Tは一回のスキャンの間隔)がチャタの最大の持続時間より短ければ
やはりチャタを拾ってしまうの。
と、まあ一応反論したけど、君はきっと理解しようともしないでしょうな。
そうでなければ既に自分の愚かさを悟っているはず。
688 :
デフォルトの名無しさん :05/01/24 08:32:37
>>683 いったい何を保証したことになると思ってるんだ?
確率的に誤動作することを保証したソフト
そんなもの誰が受け取るんだ?
>>687 >チャタを確実にキャンセルできるかどうかはチャタが持続する時間より
>サンプリングの周期が長いかどうか、それだけで決まる。
正解
安物のプッシュボタンを押し続けた状態で
指をグリグリ動かしたらどうなるかとか考えたらいいんじゃない?
>>675 の書いてることを踏まえた上で
少し引き伸ばした信号線に、ノイズが入ってくるのは避けられない。
当然、それを回避するCR+シュミットのような処理は必要だが、それで完全というわけにはゆかない。
隣のモータが配線の切れかけて連続して物凄いノイズを発生してくる可能性だってある。
そういう突発的な状況の悪化で100サンプルに1回ノイズが入るような状況でも
2度サンプルし、比較すれば1万回に1回に誤判断を減らせる。
ソフトで、何の対策もしない隣の装置が1分に1回誤動作しまくりの中、片方はチャント動くわけだ。
また、テンキーのようなダイナミックスキャンされる信号線では、ハードでCR+シュミットを入れられない。
ノイズによる誤動作を軽減するには、必ずソフトで2度比較する処理が必要だ。
もちろんこれはノイズ取りであり、チャタリング取りではない。
チャタリング取りは、
>>687 が書いた通り、チャタリング周期よりも長くサンプルする必要がある。
ただ、チャタリング現象は確率的現象だから、では絶対これ以上の長さでは起きないという長さというのは存在しない。
しかし、確率的に接点寿命回数で1回しか起きない長さは規定出来る。
しかし、その長さでも、確率的には、2台に1度は平均的に寿命内で起きるわけだ。
その長さを2倍にしても、せいぜい1/10、1/100に改善されるだけだろう。
しかし、その長さでサンプリングしてなお、2度サンプルして比較する手法で、その確率がありえない程小さいと、保証出来る。
つまり
>>668 の言うことは理論的には正しい。
しかし実用的ではない。
チャタの最大継続時間を規定できないならだ。
どの程度の頻度で発生するかは規定出来るが、絶対に発生しない時間を規定するのは現実的には不可能だ。
例えばリレーなら、数万台並べて寿命回数まで動かして最大値を求める事は出来るが、それは最大継続時間ではない。
そして、その最大値は、異常に長い時間になる可能性がある。
であれば、発生頻度をコントロール出来る時間でサンプリングして、2度採用することで確率を2乗分の1に下げる方が余程実用的で
なおかつ実際に問題が発生しない実装になるわけだ
あっと、 ×2度採用することで確率を2乗分の1に下げる方が余程実用的で この部分は、もっと考察が必要だな。 2乗分の1になるかどうかは実験してみないと判らない。
Highが5回続いたらONにする
Lowが5回続いたらOFFにする
バタついてる間はON/OFFは変化させない。
ようは簡易LPFを作りたいんだよ。
複数回サンプリングってのはそういう事でしょ。
>>668 みたいな単純な処理で済んじゃうことがほとんどだし
俺自身もそうしてる事が多いけど。
電気・電子版のスレは見てないけどヨタ話扱いになっちまってんの?
>>685 サンプリングの1/2以上の周期の成分はLPFで取っておかないといけない。
サンプリングってのはそういう物だ。(分かって言っていると思うけど)
とはいうもの、色の付いたノイズでないとそういうことにはなりそうもないな。
白色ノイズなら平均化で確率的に消せる???
まあ、ノイズとチャタリングの話は分けて考えよう。
>>695 サンプリングも無限小周期でやれば、どんなノイズが来ても取り除ける
それかノイズが純白超真っ白けならサンプリングでも可
>>692 >チャタの最大継続時間を規定できないならだ。
スイッチメーカが出してるチャタ収束最大時間を
目安にするってのじゃだめなのか?
チャタ取りはチャタ収束最大時間以上でサンプリング,
ノイズ取りは2回同データだったら確定ってやってるんだが.
>>697 リレー回路で、たとえば2段にリレーが入ってたりすると、色々考えないといけないね
現在はチャタリング除去をソフトで行っている事例が大半だと言うことが分かった。
ーR−C−R−を入れて、ソフトでシュミットを実現するのも含めてね
ECCがあるさ
703 :
デフォルトの名無しさん :05/01/24 23:16:42
>>701 おつ!
一生懸命確率的に誤動作するものを探してきたんだね
で、ソフトでノイズ取りすると、1 in 10E14までノイズが取れるのかい?
それと、これこそハード的な破壊で、ソフトで手の打ちようがない好例じゃないのか?
数学的・論理的に物事考えられない奴がエンジニアやって 給料もらうのは泥棒に近いな。 大槻教授だったらここで「そんなこといったらあーたトンネル効果で……」 と始まるところだ。
>>703 > 一生懸命確率的に誤動作するものを探してきたんだね
あのね、通信回線とかストレージデバイスなんかだと常識なの。
君が知らないだけの話。
(と言っても、俺もスペックとしてすぐに出せるのはこの二種類ぐらいしか知らんけどな。)
> で、ソフトでノイズ取りすると、1 in 10E14までノイズが取れるのかい?
用途によって、10E-14 が必要なものもあるし、10E-3 ぐらいでいい奴もあるだろ。
リモコンのキーが千回に一回入力ミスしても問題ないだろ。
> それと、これこそハード的な破壊で、ソフトで手の打ちようがない好例じゃないのか?
はぁ ? ECC かけまくってこの値にしてるんだぞ。
生のディスクのエラーレートはもっと高いよ。
で、君が得意げに書いてた
>>688 > 確率的に誤動作することを保証したソフト
> そんなもの誰が受け取るんだ?
はどうなったんだ ? (藁
707 :
デフォルトの名無しさん :05/01/25 00:35:06
>>706 あのね、それ知ってて言ってるの
悪いけど
根本的にノイズの話と合わないんだけど
これ、定量的に確率が出せてるじゃない?
なぜか?
ハードで誤りの確率が決まっていて、それをソフトで除去できる確率もわかっているからだろ?
それをやらなければ、ソフト屋の怠慢だよ
で、ノイズはどうなんだよ?
ノイズ除去は、ハード屋の仕事だろ
ハード屋の仕事までソフト屋が無理にやろうとするのがおかしいんだよ
>>707 は定量的な確率が明らかじゃなければソフトは書けないと言う事が
明らかになってしまいましたね。
訳の分からない事象は全てハード屋任せですか。楽でいいですね。
>>708 何を寝ぼけたこと言ってるんだ?
ノイズの問題はハード屋に任せるしかないだろ?
入力ポートに入ってきたものはチャタリングを除けば「信号」として扱うしかないんだよ
ハードかソフトかは、どちらが安く上がるか等で考えるなあ
>>708 君の負けだと思うよ。
文脈を忘れて、そもそもの議論の前提をすりかえようとしてないか?
再送とかエラー訂正スキームの話なんてしてなかったでしょ?
そういう「仕組み」がない前提で、純粋に数値的な処理で
ノイズを完全に除去できるかどうかって話だったはず。
数学的にはそれはありえないのは君にも分るでしょ?
ていうか何ボルトのシステムを前提としているにしろ、
ゲートが誤動作するような外来ノイズ拾っちゃうハードって問題あるだろ(笑)
>>711 基板上のパターン配線でさえ、ノイズをゼロには出来ないし、
ましてや配線として外部から引き込んだらノイズは必ず入るものと考えないと。
静電気や電磁誘導、切れかけた配線から連続して出てくるノイズ・・・
完全に除去は理論的に出来ないけどさ、ようは、キミが作ったソフトの入った装置が
1分に1回誤動作するのに、同じハードでソフトの違う片方が平気で動いてる状態だと
どうなるかって事さ。
>ノイズ除去は、ハード屋の仕事だろ 最近は、ハードは in--R-C-R----CPU | /// だけつけて、後はソフトでコントロールしてねって場合も多いよ。
話についていけない・・・勉強することが多すぎる。_| ̄|○ やはり理系大学出てないとこの仕事はつらいのかな?
>>716 別にいいんじゃない?プログラムするダケならさ。
近くに詳しい人間がいないのならダメだろうけど。
>>716 大丈夫、理系出てもついていけない香具師はごろごろしている。
ノイズと一口に言っても実際はいろんな要因があるわけで。 それに対してハード/ソフトどちらで対処するかなんてケースバイケースだと思うんだけど。 処理する必要のない場合もあるだろし。 大体チャタリングだってノイズの一種なんだから、それがソフトで対処できてるのに 他のノイズはソフトじゃ無理だっていうのはおかしいよ。
720 :
デフォルトの名無しさん :05/01/25 10:43:35
CPUの気持になって考えろ!
CPUの立場としてはヒステリシス特性持ったバッファ通して欲しいな。
>>715 の方法は、まさにソレをソフトでやる方法
CPUが出力ポートでH/Lを出力した後で入力ポートにして暫くしてから読み出す。
すると、時定数で決まる値だけスレッショルドをコントロール出来る。
つまり、
CPUが現在Lと認識してるなら、出力時にHを出して スレッショルドを持ち上げ
CPUが現在Hと認識してるなら、出力時にLを出して スレッショルドを下げて ヒステリシスを実現出来るわけだ。
ゴメン 逆書いた
>>719 たしかにチャタリングもノイズの一種だけど、
チャタリングはいつ発生していつ収束するか読めるから、
ソフトだけでも対処できる。
でも、いわゆるノイズはいつ発生するかは読めないところが違うよ。
>>715 >最近は、ハードは
>in--R-C-R----CPU
> |
> ///
>だけつけて、後はソフトでコントロールしてねって場合も多いよ。
これでノイズ除去が出来て、さらに
チャタリングはソフトで除去出来るってこと?
>>725 出来る環境にあるなら出来る
出来ない環境なら出来ない
でしょ
話の腰を折ってしまいそうなんだが、 そういうCやRの大きさってどうやってきめてるんだろう ハードは門外漢なのでいつも不思議に思ってるよ
(√CR)とCPUの特性から流したい電流で鸚鵡の法則
>>728 嗚呼、なんとなーくイメージできました。サンクス
>>724 違うから対処できないという結論は導かれないよね(論理学)
チャタリングがいつ発生するか読めるってのもツッコミたいけど・・・
とにかくノイズでも対処できる物があることを分かって欲しいです。
理由もなく「出来ないんだ」の一点張りではソフト屋のプライドが。。。
インパルスノイズみたいな高周波ノイズだと単純にローパスフィルタを通してやるだけで
除去できる事もあるけど、その場合それがハードである必要は別にない。
ソフトでもフィルタとか書けますからね。簡単な例は既に示したし。
#とりあえず
>>668 さんが理解してくれたらそれでいいや^^;これで終わりにしよう
>>729 おお、こりゃおもしろい。これまたサンクス
>>725 CRの値を最適にすれば、ノイズと同時にチャタリングも取ってしまう事も出来るよ。
これは一見タダのCRフィルタのようだけど、実はスレッショルド可変ポートや簡易ADC
入出力切り替え可能なポートの特性を使って、時間軸で制御するわけ
ハードって面白そう
735 :
デフォルトの名無しさん :05/01/25 16:20:40
>>729 シンク電流、ソース電流はPICマイコンの消費電流になりますか?
736 :
デフォルトの名無しさん :05/01/25 17:14:04
>735 なりません。
737 :
デフォルトの名無しさん :05/01/25 17:36:28
>>735 電流計をPICの電源ピンに直列に入れたら、片方は針はふれないけど、片方はふれる。
GND側で計るかどうかで反転するけどね
>>731 ……なんか釣りっぽくない気がするんだけどひょっとしてマジで書いてる?
論理学ってどこの星の論理学だよ。
前提が違えば結論は違いうる、これが論理だよ。
ていうかこれまでの議論は何(以下略
>>739 >ていうかこれまでの議論は何
=chatteringむだ話
>>739 ていうかこれまでの議論は何
=noise雑音
>>739 はい大マジですけどね・・・
仮に「いつ発生していつ収束するか読める場合はソフトで対処できる」という
条件が与えられた場合、「いつ発生するか分からない」物に対しては
「ソフトで対処できるか出来ないかは分からない」であって「ソフトでは対処できない」では
ありません。。。という意味のことを書いたのです。
もっとも「いつ発生していつ収束するか読める場合はソフトで対処できる」の条件は
>>724 さんが勝手に持ち出しただけでそれが正しいという保証もありませんが。
まぁ横道にそれた感があるし、ノイズの議論を続けてくださいな。
>>715 の回路はノイズ取りだけじゃなく、他にも面白い事が色々出来るよ
例:一つのポートにスイッチを2個つないでしまう。
+-s2---R2-+
+-s1---R1-C-R3----CPU
| |
/// ///
R1!=R2
R3<R1+R3にして、 CPUからHを出しておいて 入力ポートに変更してGNDに落ちるまでの時間で
どっちがONなのか、2個共オンなのか判る。
「動作するかしないか分からない」ものは「動作しない」ものではありません だから出荷してもいいんです
いままでのまとめ ・チャタリングを取るにはその最大持続時間より長いサンプル周期でサンプルするのが必要十分条件である └ただし、真の最大持続時間は規定しえない └よって管理された頻度のサンプリング間隔で2度採取し比較する方法は実用的には優れた手法である ・滅多に入って来ないノイズを取るのにも2度採取し比較する方法は優れた方法である └理論的には確率に頼った方法であり、確実でないのではないか? └正しく考察すれば2度採取する事で実用的に問題無いレベルに抑える事は可能
もう一個あるんじゃない ・ノイズ処理はハードでしか出来ない └ソフトで出来るものもある └どっちでやった方がいいかはケースバイケース
>正しく考察すれば2度採取する事で実用的に問題無いレベルに抑える事は可能 すでに書いたけどこれに関してはそもそも議論の前提がおかしい。 ゲートの論理ひっくり返すような外来ノイズが乗るハードなんて腐ってるでしょ。 なんか学校の実習かなんかのでやったADC使ったLPFの実験かなんかの話と 混同してる学生さんがいるとしか思えない。
>・ノイズ処理はハードでしか出来ない これはそもそも正しくないでしょ。 ハードでしか出来ないのは、サージ等からCPUを保護する事。 実際に処理したい信号の周期よりも早いサンプリング=オーバサンプリングさえすれば幾らでもノイズは減らせられる。
>ゲートの論理ひっくり返すような外来ノイズが乗るハードなんて腐ってるでしょ。 ゲートの論理ひっくり返すようなのをノイズと呼んでは可哀想だよ。 現実はそういうのを理論的に防ぐ事は出来ない。 可能なのは「このノイズ試験をして大丈夫」 というレベルのみ。 では、それで大丈夫だからOKなのか? まあ、基板のレイアウトで、CPUのすぐ横にリレーおいて、リレーが動く都度CPUが暴走するなんてのは 良くある話だけど、それはソレ。 一緒くたに考えるのはどうかと思うよ
>>749 だから「議論の前提がおかしい」といっているんですが。。
CR組んである入力にノイズ対策のために何回もサンプリングかける意味がわからない。 CRで取り切れてなければ時定数が間違えているか、信号の周波数領域までノイズが侵入しているかだと思うが。 いずれにせよハードに問題ありと言うことになる。
>>751 CR+シュミットトリガならその通りだけど
CRが入ってるだけだと、それは意味がないよ
もうやめようかとも思ったけど、 >実際に処理したい信号の周期よりも早いサンプリング=オーバサンプリングさえすれば幾らでもノイズは減らせられる。 だからこれデジタル信号に関しては間違ってますよ。
CR+シュミット というのが理想的なのは間違いないけど、やっぱり実用的じゃない。
装置が完成してから、細かな仕様が決まったり、
そもそも相手の仕様が設計時には判らない事も多いからだ。
実際につないでみてから、C/Rを調整なんて現場でやるわけにはゆかないだろう。
そういう時にCR+シュミットをやる手法として
>>715 の方法がある。
CPU側から時間をコントロールすれば好きな特性が作れる
といっても、これをヤレといわれてすぐにやれる奴は少ないのが問題。
だから、バカチョン式に、CR+シュミットをある程度甘く設計しておいて
それ以上のノイズはソフトで取るという方式には十分実用的なメリットがある
>>753 どうして間違ってるの?
信号が0,1だろうがアナログだろうが、デジタルフィルタを設計すれば
ソフトで処理しようがアナログで処理しようが同じですよ。
実際は、ノイズ取りにIIRフィルタやFIRフィルタをわざわざ使うメリットはないでしょうけど
考え方も、理論面も同じですよ
>>753 だからオーバーサンプリングを無限にかければノイズは取れるだろ?
デジタル信号をCR+シュミットで処理してるなら オーバサンプリングすれば、等価な処理が理論的にも可能だし、 CRよりもっと急峻で特性が良いフィルタを作る事も可能だ。
ああ、無限に早くする必要はないという意味ね
>>756 無限にオーバーサンプリングしたのをアナログと言う
たぶん・・・
>>759 有限でもいいでしょ?
無限に近くオーバーサンプリングすれば
それはデジタルですよ。
>>755 なんか昨日のハードディスク廚と同じ臭いがするな
なんでチャタリング取りとノイズ取りは同じか?という話をしているところに
そんな自分でわざわざ使うメリットもないと書いてある理屈を持ち出してくるんだか・・・
msecオーダーの話じゃなかったのか?
763 :
デフォルトの名無しさん :05/01/25 22:47:25
>>743 限られたポートで多くの接点を認識したい場合に使うよね。
>>762 書いた意味は、
わざわざ FIRフィルタやIIRフィルタを使わなくても、
単純に2度比較やANDを(1/z + 1) と考えて使えばいいじゃない 程度の意味ですよ
外部のCRを近似したいなら b/(1/z+a) のデジタルフィルタで十分良い近似が得られますよ。
766 :
デフォルトの名無しさん :05/01/26 14:17:15
>754 >そもそも相手の仕様が設計時には判らない事も多いからだ。 おいおい、堂々とそんなことを書くなよ。 その方がはるかに大きな問題だろう。
>>766 ユニバーサルなインターフェースだとそういうことはよくある
>>766 あんまり現場(設置場所)へは行かないの?
または恵まれた環境なのかな。
うらやましー。
チャタリングとノイズの除去かー。 SWのチャタリングは 15ms × 2回 (おいらは 3回) が一般的じゃねーの? Digital In(TTLレベルでの外からの入力) のノイズ除去はしてないね。 実際できないのが多い。 ある条件後、数ms〜数十ms以内に Hi/Lo を検出して即座に Out ってのがほとんどだからか。 汎用のソフト作るならまだしも、特定の機器に接続ってのが ほとんどだからあんまし気にしてないし、上の方法で実際問題ないね。 ほとんどが検査装置+ロガーだから特殊かな?
数マイクロ要求されたら無理だけど、数ミリなら レベルで動作して、問題ない信号なら無理にノイズ取りはしないけど エッジ処理(カウンタとか)をする場合は、最低2回は取る処理を入れてる。
>>745 必要十分でなくて十分だろ。
>>747 あるスレでは、リセットラインのノイズ対処でLSI/FPGA設計者が盛り上がってました。
あなたは非同期リセット派ですね。
>>753 信号帯域のノイズは消せない。
>>769 だからチャタは2度読み必要無いって。
このスレ読んで、理論と実践の両面で高レベルな人間は貴重だなと思った。
センサ→R→C→ CPU とやるのは これはサージからCPUを保護するのが主な目的で CPUの入力ポートがシュミット特性を持っていなければ ノイズ取りは結局はCPUがやらなければいけない。 Cが大きいと逆にCPUにとってはノイズ取りが難しくなる場合もある。 よく勘違いがあるので注意。 =>『CRが入ってるからノイズ取りはしていません』 ノイズ取りはCR+シュミットが必要なのよ。 似ているが、 センサ→R1→C--R2⇔CPU とやるのは シュミット特性までソフトで実現しようというもの 当然サージ保護の機能も兼用されている。 R1<<R2にしてADC代わりに使う事さえ出来る リレー接点やスイッチの場合はR1を小さいか無くして、Cから接点クリーニング電流を流す 事まで兼用してしまう。
うーん、数レスROMってたけど、 2度読み必要ないってのは、誤認識(スイッチ押されたのに押されたと覆わない)しても 次のサンプルタイミングでは必ずチャタが落ち着いて正常認識できるはずだから 必要ないって認識でよい?
775 :
デフォルトの名無しさん :05/01/27 00:56:00
電気の基礎が分かっていないな。
>>776 一定周波数以上のパルスは打ち切りってことでしょ。
ハードウェアなんかだと、シフトレジスタ組んで、XORやANDをとったりってのは
ノイズ除去のためによくやる方法。
入力が断線したりした場合に不正なパルスを拾っちゃったりするので、
そういうのも考慮すると必要だと思う。
ノイズでゲートの論理が反転してしまうのは、ハードの問題ってレスがあったけど、
ケーブルへの輻射ノイズならよくある話で、
ハードだけでの対策はなかなか大変。
大抵は上で書いたようなのを、PLDなんかで組んじゃうんだけど、
(もちろんCRフィルタも入れて)
直接CPUのI/Oポートに入力だと、ソフトでやるんだろうね。
分解能は何で定義されますか?
>>774 HとLが変わるときに、1回だけHかLどちらかの値が読めてしまう可能性がある。
なんか問題あるか?
>>707 > ハードで誤りの確率が決まっていて、
はぁ ?
メディアの種類によって誤りの確率なんか全然違うぞ。
そんなあほなこと書いてて
> あのね、それ知ってて言ってるの
なんて、言ってるのはちと恥ずかしいね。(藁
>>780 メディアによる違いを含めて一定以下ということじゃないの?
782 :
よねちん。 :05/01/28 09:24:29
OSitron、言語C++ Aタスクでthrow()を抄出した直後に、 割り込みが発生し割り込みでset_flgをおこなったあと、 ディスパッチが起こり、Aタスクに戻ってきたときに、 terminateしてクラッシュしてしまい、catch(...)に捕捉されません。 なんか制約があるのでしょうか・・・?
マイコン組み込み系、主に8bit経験者です。(20年) シーケンサは見たこともないのですが、キーエンスのPLCをプログラムしてみないか と打診が来ました。経験が生かせるでしょうか?
>>783 Let's try.
とは言ったものの、年齢相応に頭が固くなっているならお勧めしない。
私のように二度目の成人式でも常に新しいものについていける自信があればお勧め。
即レスthksです。とりあえずユーザマニュアルをひとつダウロして読んでみて、 適応できそうか考えてみようとおもいます。
すいません。お聞きしたいのですが、OPから制御系の技術者にシフトチェンジすることは、可能でしょうか? 将来は、SEやPMの仕事がしたいです。
>>782 OS:itron
って言っても、itronは一般的な動作とAPIの仕様が決められてるだけで、
実装は環境やメーカーによって違うから…
もちろんC++コンパイラもね。
使ってるitronやコンパイラの
メーカーやディストリビューターに聞いてみたら?
仕事でVBAを使っています
>>786 年齢と環境とやる気次第。
就職フェアで待ってますw
>>789 レスありがとうございます。w
いつの日か、御縁がありましたら、どうぞよろしくお願いします。w
>>786 OPってのはOperational Amplifierのこと?
PMはPulse Modulationだよな。PWM(Pulse Width Modulation)ともいう。
大ジョブじゃねぇの。やる気さえあれば。
792 :
デフォルトの名無しさん :05/01/28 22:21:01
じゃぁ、SEは?
793 :
デフォルトの名無しさん :05/01/28 22:28:41
794 :
デフォルトの名無しさん :05/01/28 22:32:24
OP=オペレーター Sヨ=システムエンジニア PM=プロジェクトマネージャ
795 :
デフォルトの名無しさん :05/01/28 23:59:54
今は役割分担をぐだぐだ言う奴はつかえねえ。
>>795 役割分担すらしてない会社なんて、たかが知れている。
>>795 大局を見ることができない下っ端は文句を言わず手を動かせ。
名刺に訳分からないカタカナ肩書きが付いてる
詐欺くせぇただの能書き垂れになりませんように
>>789
私の肩書きは主事補だ。それがどうした。
なんだ、決裁権もないただの屑か。
スレッショルドとかいうのを実装すればいいんじゃないの? もちろん大声で叫びながら。 全裸で。
802 :
デフォルトの名無しさん :05/01/29 08:26:07
私の名刺の表は代表取締役、裏は英語でCEOとなっている。 外国のお客と名刺交換するとすぐ分かってくれていいよ。
代表取締役は President じゃないっけ? はやりで最近は CEO っていうんかい?
805 :
デフォルトの名無しさん :05/01/29 18:39:36
806 :
デフォルトの名無しさん :05/01/30 13:50:28
チャタリングの話しようぜ
UFOでも呼ぶのか?
>>806 はチャタリングだけに、ってオヤジギャグを。。
チャタリング夫人の恋人
ベントラベントラスペースピープル
○ , ○> / ̄'☆ ) / > / ☆をダブルクリックするとかめはめ波が出るぞ だまされたと思ってやってごらん。感動するよ。
頭の○の右の,とか足の>とかクリックしてもなるなw
816 :
デフォルトの名無しさん :05/01/30 17:55:44
818 :
デフォルトの名無しさん :05/01/30 21:29:28
コピペしてきます (・`ω´・)ノ
819 :
デフォルトの名無しさん :05/01/30 22:27:13
>812 しかも、背中をクリックすると亀ハメ波リバースwww アタマが・・・wwwww
何年前のネタで盛り上がってんだよ。。
10年前のネタで盛り上げちゃってどうもすんません
ドラゴンボールは今が旬を迎えております
ドラゴンボールうんぬんよりもコピペに対してかとおもた
マ板の連中が大挙して嵐に来てるのか
お〜〜い、ちょっと前の議論活発状態フカーツしてくれ〜〜
ネタがないと議論にはならず…
情報処理技術者試験や電気工事士試験受けてる人いますか?
>>827 このスレ的にはエンベデッドシステムとかかな?
830 :
デフォルトの名無しさん :05/02/03 20:56:41
なんでチャタリングなんだ?何か深刻な問題でもあるのか??
ジャグリングのほうが難しいだろ。
833 :
デフォルトの名無しさん :05/02/03 21:09:16
なぜソフトでハードの置替えができないか?についてまじめに議論して欲しい。
ちょうどこれからスイッチの状態取得のコードを書くんだが もう議論はいいや
ここに書いて
採点してやろう。
838 :
デフォルトの名無しさん :05/02/03 22:11:47
FPGAなんかいじってると ハードでやればいいのにと思うことがしばしば
>>838 ディスクリートIC組み合わせてハード組むより、FPGAに書いた方が
シンプルだし小型化出来て(・∀・)イイと思うけどなぁ。
つかFPGA自体ハードじゃないかと(ry
>>839 > つかFPGA自体ハードじゃないかと(ry
FPGAの設計はプログラムだから…ソフトだと思う。
焼いた後は第三者から見たらハードだよな
842 :
デフォルトの名無しさん :05/02/03 23:20:53
チャタリング除去には情報を使わずに物質を使えという事か
よし、敵は電子だ!!!
>>840 じゃあCADで設計したメカや回路はソフトなのかと
847 :
デフォルトの名無しさん :05/02/04 00:10:13
ソフトウェア(ROMに書かれてるプログラム)をハードウェアにすることは可能?
ハードウェアをネットワークで転送する事は可能?
凄いな、同時に1と0の入力が・・・ 「作り方」をネットで転送して向こうで組み立てるのはできるね でも850が言いたいのは違うかな。現金書留と振り込みの違いみたいなもんかな
>>853 > 凄いな、同時に1と0の入力が・・・
複数回サンプリングしてノイズを除去。
>ハードウェアをネットワークで転送する事は可能? ⇒ CPUから内容を更新出来るプログラマブルなハードウエアに限定すれば可能 そのような例としては PLD/FPGA ispPAC FPAA
誰か並列処理と逐次処理くらい言わないのか?
お、スレが伸びてる… と思って覗いてみたら、ネタ合戦かよ
865 :
デフォルトの名無しさん :05/02/04 21:18:33
FPGAってソフトか?
FPGA自体はハード FPGAに目的の動作をさせるにはソフトが必要になる ∴FPGA≒CPU
PC自体はハード PCに目的の動作をさせるにはソフトが必要になる ∴PC≒CPU
ファミコン自体はハード ファミコンに目的の動作をさせるにはソフトが必要になる ∴ファミコン≒CPU
転職面接で 「マイコンのプログラムとFPGAのデジタル回路設計の経験があります」と言ったら 「ああ、どっちもソフトみたいなもんですね」 と言われて落とされた_| ̄|○
その節は色々と質問に答えてくださりありがとうございました。 とりあえず、現在プログラムを作って処理時間を計っています。 DMAをバースト転送でメモリに0を書き込んでその後リードするやり方と for文を使って、書き込み&チェックをするやり方の2種類を作りましたが 処理時間はあまり違いはありませんでした。 ある処理に利用するバッファを0クリアしてチェックした結果620msほどかかりました。 ・・・ということでさらに早くするためアセンブラにしたほうがいいのか検討中です。 ちなみに一番大きいバッファは・・・ unsigned short AAA[33000]; こんな感じなものです。 もしアセンブラで組むならアドバイスはありますでしょうか? ならべく、今後も使えるような形にしたいと考えております。
無い
>>871 そんなの上で出尽くしてるよ。
コンパイラが吐いたコードがどんなのか見た?
そんな程度の処理に、多分手で書いても殆ど同じになるよ。
大体、シテムの性能的に620msは高速化の余地があると評価出来てるの?
論理限界は何ms?
シテオク
>>869 ハードが出来るマイコン技術者募集という求人だと
だいたいマイコン周辺のハード=アナログなので
デジタル回路ができてもアピールポイントにはならない
これ常識
876 :
デフォルトの名無しさん :05/02/05 02:30:00
やっぱこれから注目される言語は制御系なのかな? 制御系覚えたら職人になれる?
>>875 でもその辺って中途半端なんだよな…
大した電子工学の知識も要らないけれど、大したプログラミングの知識も要らない。
>>876 海外へ丸投げが多いから仕事は無いぞ
俺は辞めてしばらくたつから、今はどうかわからんが。
今はさらに悪化している
え〜、そうなの? フリー化して6年ほぼ途切れなく仕事貰えてる俺はよっぽどお客さんに 恵まれてるんだな。
>>880 制御系PGだけで食ってるですか?
どれくらい稼げるの?
需要だけはあるだろうから地方なら喰えるだろうけどねぇ…
意外と九州に多く分布していまつ
工業地帯だからね
熊本なんですけど
俺は首都圏、某・上場企業より。子育て終了、家・教育・車の3大ローン無しなので、 4〜6h/日ぐらい働いて\600〜900/年。 あとはスポーツしたりお気楽してます。
>>886 \600/年はM\6/年の間違いかな? いいなぁ、ローンがない分私より余裕があるわけだ。
うん、メガ円のことね。そのつもりで書いてます。いくら何でも\600yen/年 じゃ 新宿西口のあの辺でも生きて行けませんがな(^o^) 車は二輪しか乗れないし、家は妻の父上から貰ったし、子供はパープリンで大学なんて 行けなかったし・・・で、へたれのオヤジでもなんとかなってます。 趣味に合う仕事ばかり来るのも嬉しいことです。
889 :
デフォルトの名無しさん :05/02/07 19:14:08
偶然のこのスレを見つけた通りすがりのものですが、君らの書いた 難しい文章を読んできたら脳みそがわけわからない事になって気持ちE〜♪
891 :
デフォルトの名無しさん :05/02/08 05:08:36
で、結局職人に成れるんですか? Cとかjavaとかだと普通だから将来不安な気がしてる。
普通のことを普通にするのが職人
そのジャンルにおいておよそ全ての「普通」を 「熟知」していることが最低条件だよな
894 :
デフォルトの名無しさん :05/02/08 13:35:41
職人と呼ばれたら終わったと思ったほうが良い。
>>891 てか,「言語」なんて部分にこだわってるようじゃ無理.
お前みたいのはこっちに来るな.
言語より下のレベルでやりくりする業界だし。 口よりは手を動かす業種だからな。
シーケンサのプログラムの仕事に応募して断られてきました。 マイコンの基板も作るからそのときは来てね、とリップサービスはありました。
898 :
デフォルトの名無しさん :05/02/09 09:57:20
>>897 マイコン制御の経験があれば、ソフトのセンスと簡単な電気回路は理解できると見なせる。
シーケンスはそれほど難しくないから、電装設計込みでも、1、2年やれば身につくと思う。
よほど異業種とか年齢行ってるか、超即戦力が必要だったかだな
899 :
デフォルトの名無しさん :05/02/09 10:13:53
騒音110dBの中で耳栓無しでデバッグした人居ますか?
900 :
デフォルトの名無しさん :05/02/09 10:44:42
5m先で小爆発があったときは110dB超えたと思う。
901 :
デフォルトの名無しさん :05/02/09 18:12:48
Finding a transfer function... -------------------------------------------------------------------------------- The frequency response of a linear time invariant system has been measured and can be seen in the attachment file below. A feedback element with a transfer function, H(s), is to be chosen so that the sysytem steady-state error to a unit step input is equal to 0.07. What is a suitable transfer function to achieve this??? これで、frequencyとmagnitudeとphase angleの数値をざっと各30個ずつ ぐらいもらってるんだけど、まったく分かりません。どういう過程で transfer functionを求めていけばいいのでしょうか? matlabを使ってtransfer functionを求められると聞いたんですけど、どういう風に数字を入れていけば いいのでしょうか?
これ以降に書き込みするときは、名前欄に数字の901を入れるといいらしい
>>899 110dbどのくらいだっけ?
耳元で怒鳴りまくってやっと会話が成立する環境でならやったことあるぞ
もうへろへろ
>>898 高級言語プログラマーにラダーシーケンスやらせたら制約の多さにぶちきれることうけあい(w
905 :
デフォルトの名無しさん :05/02/09 23:41:46
>>904 それを言ったらアセンブラをやらせても似たりよったりかと
>>905 アセンブラは、ライブラリやマクロが使えるし全然違う。ラダーは、基本的には自己拡張できない。
ラダーって元々はリレーによるシーケンスの 回路図 だからね。 最近はいろんな関数が使えたり、階層化したりもできるけど、 プログラム言語としてみると、たしかにアセンブラ以下だよね。 自分のいる環境では、 メカ屋が機械を動かす際に、プログラム言語を知らなくてもイイってことで、 だいぶ重宝されているみたいだが・・・・。 あと、動作中にリアルタイムでどこがONしているか見られるってのがイイのかな。 やってることは、基本的に、ココとココがONしたらここをON てな感じだから、HDLとかで書いて、変換できないものだろうか? FPGAだって最近はC言語でプログラムできるんだから・・・ と思う今日この頃。 でも、プログラマブルな制御装置を提供する側からしたら、 C言語をサポートするより、ラダーツールの方が都合いいんだろうな。
908 :
デフォルトの名無しさん :05/02/10 07:30:21
ロボットメカをTVで見てブルブル震えて 病気みたいだけどなぜ?
モータの力が強くて、軽くて、でも何かに触ると突然重くなるという条件なんで 静止はそもそも難しい。
>>899 画面が歪むほどの強磁界の中でデバッグしたことはある。
ガキができなくなるかと思ったよ。
原子炉の冷却水配管の直近でデバッグじゃないけど動作試験したことはあるなぁ。 日が当たるところに居るよりも放射線量少ないのさ。
913 :
デフォルトの名無しさん :05/02/10 15:25:10
ものすごく口が臭い客の前でデバッグしたときは苦痛だった。
デバッグ中に火を出したことならある。 「119へ電話だ!」と一瞬頭をよぎったが、程無く自力で消火できた (^_^;
916 :
デフォルトの名無しさん :05/02/10 21:03:20
ロボットを暴走させたことならある クビになるかと思った
ロボットを暴走させたことならある クビがちぎれるかと思った
>>918 暴走してないけど殴られたり刺されたり挟まれたりしたよ
いて〜よ
ケコーンするまえは、三原則を守っていた妻が最近暴走します。
持たず 作らず 持ち込ませず
ケコーンできない俺の暴走ぶりに勝る者などいない。 なんぴとたりともー。
三原則:1.ロボットは人間に危害を加えてはならない。また人間に降りかかる危害を看過しては ならない。 2.ロボットは第1条に反しないかぎり人間の命令に従わなければならない。 3.ロボットは第1条、第2条に反しないかぎり、自分を守らなければならない。 920の家庭で、ロボット=妻、920=人間に置き換えて理解すれば相当意味が通じるでしょ。 でも、妻はその逆に理解していると思われ。
下のそれぞれの場合、妻はどういう挙動を示しますか? 2.「俺を殺してくれ」って命令した場合 3.「おまえ氏ね」って命令した場合
>>927 夫を人間と見ているかどうかで決定されると思われ
夫は人間です
実は妻が人間ですた
>>527 2.その命令には従えません
3.私が死ぬことはあなたの損害に繋がりますのでやはり従えません
2でも3でも俺が殺されるな
・・・・・・で、妻はどの様に暴走している?ん?詳しく話を聞こうじゃないか。 |・∀・)ニヤニヤ
ロボット作って見たいんですけど..。
アンドロイドがコンビニで買える日はいつですか?
ロボットを作って、何を見たいのですか?
CPUが8085、3MHz、8251を4CH、8259,8253, RAM,ROMは、まあそこそこ必要なだけ、っていう システムで、シリアル4CHの入出力を加工するシステムを何個も作ってます。 現代のチップで似たようなもの作るとしたらH8/8bit系の10〜19MHzぐらいが適当だと思いますが uartを4CH載せてる機種はありませんね。どんな構成がお奨めでしょうか?
ボーレートは幾らくらい? 3CHのUSARTを持ってる機種を選んで、 1CHだけなら割り込み端子使ってソフトで受信する方法も使えるよ。
使ったこと無いし、よく調べてないから分からんけど、
PSOCって使えないの?高い?入手性悪い?
(個人的にちょっと興味あり)
外部バスになにやらつなげてOKなら、
安価なPLDやPICで送/受信してみるとか。
通信バッファも持てそうだし。
>>939 38.4k以上とかで、連続でデータ(連続0x55とか)が来たら
かなり重くなりそうだね。
「入出力を加工」ってのがどの程度の処理なのかによるな。
あと、送信もするんだったら、
タイマ割込みとかでI/Oポートを定期的にスキャン&出力
って方法になるとおもう。
すんません、ボーレートは元は4.8K、上げても9.6K程度。私も
>>939 案がよさそうに思えます。
加工は行単位で、sscanf,sprintfの整数型変換機能だけ使ってました。3Mの8085だと、
実数型変換を使うと重くて変換が間に合わなくなりました。19.688MのH8なら実数変換も
使えると思います。
>>940 送信も割り込み+ringバッファでやります。
内蔵RAMが8Kあるとイイけど、4Kでもなんとかできそう。ただし輻輳に弱くなりそうです。
このクラスのH8だと内蔵は4Kどまりだと思いましたけど、もうちょい載ってるのはありますか?
M16のシリーズならメモリ豊富だったと思うよ
割り込んでスイマセン。 教えて欲しいんですが、VC++でI2Cの制御ソフトをプリンタポートのデータビットの いずれか2pin使って作ろうとしているんですが、パルスの出力方法がわかりません。 _outp()を使ってやる方法以外に何か良い方法はありますでしょうか?
>>943 自分もプリンタポートでIICやってる(Delphiだけど)
結局は出力命令を使うしかないから outpでいいんじゃない?
時間待ちはoutpが遅い事を利用してプリンタポートへのoutpで時間待ちしてるよ。
あと、
双方向にする為に in2 out2の4ピン使う必要があると思うよ。
それからオープンコレクタにする為にバッファが必要だと思うよ。
>>944 やはり_outp()使うのですか。
この場合に、clockはどのように生成すればいいんでしょうか?
どうするって・・・・outpを並べるしかないじゃん。
PICって8251みたいな奴のことを言うの?それだと内蔵uartを使うより実装スペースも割込線も ムダに使うと思う。内蔵が3CHあったら、同時に7CHも使うアプリもあまりなさそうだし。
PICは1チップマイコンだよ。 8ピンのパッケージもあるから 割り込みでシリアル通信実現してPIC同士で通信して処理させようって事でしょ
PIC = Programmable Interrupt Controller
の方だと思ってたわけね。
>>940 で言っている PIC はワンチップマイコンの方。
16F84とかがポピュラーかな。18pinで小売300〜400円程度。
PLD,FPGAも、最近は値段が安く、容量大きくてパッケージは小さいってのが
結構あるから、単純なシリアル送受信2〜3CH入り程度なら、
数百円くらいで、それほど難しくも無く作れそう。
まぁ、ワンチップで全部済ませられるなら、それに越したことはないと思うけど。
なるほど。PIC=周辺ICって思ってました。でも、1CHto1CHで内容を変換するだけならいいけど、 4CHから1Chへの合流とか、1chから4CHへ行ごとに分けるとかの操作があるので、 1チップにしたいです。H8で3CH+RAM4K積んでる奴は、\700ぐらいでありますよね。 3MHzの8085+8251,8253,8259+ROM+RAMという構成があまりにもアレなので、 作り直せば?ってけしかけてるのですが、ハード屋さんがめんどうくさがってるのですよ。
コストダウンとして上司に提案できれば、ハード屋の意見など聞かずに済む。 怨まれてもしらんが。
>>952 ROM,RAM外だししていいなら
FreescaleのQUICCなんてどう?
少なくとも↓の構成よりは安くなるだろうし、
処理性能差は天と地
3MHzの8085+8251,8253,8259+ROM+RAM
まあ、この件は、H8かM16のフラッシュマイコンで決まりでしょ。 足りない1CHはタイマー割り込みで十分実現出来る。
>足りない1CHはタイマー割り込みで十分実現出来る。 これはAduCで書いたことあります。ボーレートに合わせたタイマ割り込みで、startbit〜8bit,parity,stop を取り込むんですよね。インターバルタイマなら1mS以下はあまり使いませんが、9600BPSでも100μ ぐらいの割込になるので、けっこう重たくなります。それよりは1CHだけ外付けのほうが融通が 効くと・・・あ、ソフトでカバーできればハードは少ないほうがいいってことですね。なるほど。 こんど、「外付けの石無しでできるよ♪」って提案してみます。ありがとうございます。
957 :
デフォルトの名無しさん :05/02/21 10:54:29
4ch同時通信って有り得るの?
>>956 色んな方法があるけど
たとえば、割り込み端子に割り当てておいて
タイマーは割り込みはTの間隔に設定しておく
割り込み許可状態で立下りエッジで割り込みをかけ、割り込みを禁止
エッジから 0.5T になるように タイマー割込用のカウンターをリセット。
後はタイマ割り込みが 0.5T後から1T毎にかかるから1回目はLを確認
8ビット読んで、パリティ・ストップ確認。
タイマー割り込みの負荷はそれほどじゃないよ。
>>958 送信も考えたらタイマ2CH必要になるな。
多重割込みや割込み禁止区間が発生した場合の
(他の3CHのシリアルからの割込みも含めて)
タイミングのズレは、心配ない程度なのかな?
>>958 たとえば10MHzのクロックで動くCPUならば、9600bpsのとき、
タイマー割込だけだと50usecに一回=500クロックに一回のタイマー割込になるのが、
割込端子を使うと、100usecに一回=1000クロックに一回の割込で済むということかな
PICなんかで、それしかやらせないんならいいけど、
ソフトでシリアルを扱うのって、ちょっとおっかない
とりこぼすよ
SIO使うべきだな
競合するいろんな割込があるとタイマ割り込みで1bitずつ取る/送るのは苦しくなります。 uart回路がレベルの真ん中でサンプリングしてくれるのに、ソフトだとどうしてもふらつくし、 取りこぼしも出るし。その辺は外付けか¥との相談ですね。
>>959 うん。この方法で送信もやるなら2CH必要だね。でもタイマー沢山あるから大丈夫でしょ。
ボーレート9600で他の処理しないんならSIO送受信はメインで処理しても十分間に合うと思うよ。
割り込み使う場合でもFIFO処理だけなら問題にならないでしょう。
>>960 そうなんだけど、
あと、受信を一定時間のタイマー割り込みで処理するとなると、2倍は厳しい。
最低3〜4倍じゃないと難しいですね。
>>963 >>958 の方法は
>>960 さんが解説してる通り、だいたい真中でサンプリングする方法ですよ。
涙ぐましい努力だな。大手客ならメーカーに 「4.CHのをカスタムで作ってくれば採用するけど、どーする?( ´ー`)y-~~」 って言えば終わりなのに。
小ロットだと、標準品で市場でいつでも手に入るというのが一番大事な要素になるからね。 今は外付けのUSART使うくらいなら 外付けにPICマイコン使った方が安全だったりするからなあ
>>965 4倍サンプリングとなると、やはり他の処理はやらせられないな
シリアル送受信に専念させるなら、PICかH8の一番安いクラスが妥当か?
26マイクロ周期だから、無理という程じゃない。 割り込みベクタを毎回書き換える方法でやれば・・・
>>970 単純に状態遷移式にベクターを書換えながら遷移するだけだよ
4倍なら(自分なら5倍にして中の3状態で多数決取るけど)
4*(S+8+P+1)=44状態のコードを作って、割り込みベクターを書換えながらシーケンスを実現するわけ
後でそのコード見たくねえ。趣味ならいいけど保守性悪いよ、それ。UART追加しろ。 無理なら2MCUだな。外部メモリ使わないモードで使えばICだ、
こういう業界って歴史どころか自分の経験からすら学ばないアナクロな人が多いよな。 アクロバチックは結局高くつく。 いい加減このぐらい学習しろと言いたいよ。 万単位で作る大企業ならともかく、今時ちょっとばっかり部品ケチったって そんなもんアンタが数日余分に動くことになればすぐに吹っ飛んじゃうよ。 俺なら性能的な余裕、部品のコスト、ソフトの工数(設計の容易さ)を総合して UARTを2chもつ8051コアのチップあたりを使うね。
まあ普通はアクロバチックな技は ハードが出来上がっちまって にっちもさっちもいかなくなったとき 初めて発動するものだがな
>>973 石は安い方がいい
アクロバチックでも工数=ソフト開発費はただ
売り切りの商品だとこんなもんでしょ
それは馬鹿上司の思想の事?あなたの考え?
977 :
デフォルトの名無しさん :05/02/22 23:39:52
>>976 客先の考えだけど何か?
インテリジェントスイッチみたいな8bit以下のマイクロコントローラだと
まだまだアクロバチックな技が幅を利かせてるね
客にアドバイスしてやれよ・・・ 馬鹿には無理か。
独断と偏見で開発しております
980 :
デフォルトの名無しさん :05/02/23 00:10:04
>>978 たかだか数十円ですむようなものをわざわざ値上がりするような
親切な忠告をしてくる馬鹿な客はいないと思うが
馬鹿にはわからないか
アクロバチックってお前らおっさんか。 ちゃんとアクロバテックと言え。
>>981 アクロバティック?
前の会社で「プラスティック」を「プラッチック」って言っている人がいて、
それが、みんなに伝染してた。
こういうのって、深夜残業になると感染率が高くなるんだよね・・・。
プラトニックを燃やしてはいけません ぷらとにっくはぷらとにっくのままにしといてください ん?
俺はアクロバチックなバグを作れるよ
プラスチックな絞殺死体
量産だったらソフト代は限りなくタダになるからやるんだろうな
おまいら 次スレを忘れてないか? 頼む
>>972 それは工夫次第さ。
同じようなコードが並ぶだけだからマクロで書けばいい
>>973 アクロバットって・・・9600BPSの調歩同期の実装くらいで曲芸呼ばわりされるとは思わなかったよ。
4メガのZ80の時代じゃないんだからさ、
今時のCPUなら、その倍でも問題ない。
ソフトの作成の容易さなんて言うけどさ、
新しいチップでUSARTのマニュアルを読む間にこれくらいのコード書けちゃうよ。
俺はソフトで実現した方が楽だね。
>>990 割り込みベクター書き換えながらってのが、
アクロバティックだと言ったんだとおもうけど。
完全にCPUの割り込み処理系依存になるし、
RTOSなんか使ってたら、
割り込みはまずOSのハンドラを通す場合も多い。
保守性は悪いと思うのだが・・・。
そもそも、CPUが今時(高速)なら、
わざわざ、割り込みベクタ書き換えで状態遷移しなくても、
割り込み処理内で分岐していいんでないの?
>>991 話の流れからして、RTOSを使う32ビット規模の話ではないと思うよ。
割り込みベクタを変更するのも、関数ポインタを書き換えるのも、同じ事だし、
CPUが高速でも、分岐命令は案外クロックを消費するもの。
加減算が2サイクルで出来ても、分岐は7とか10以上とかかかるのが普通じゃない?
>>971 その製品の保守、後の製品への改造時に外注や未熟な担当者が担当した
場合のフォローまで考えて、といってます。
うちにも、反対を押し切ってトリッキーな設計した事例が3件ほどあったけど
んー、ちょっとやりすぎたかな。えへへ。後はよろしく (・∀・)ノシ
とか言って全部押し付けて逃げてったのが2名。
別製品への展開という名の仕様変更に耐え切れず、
「ごめんなさい、もう私の技術力では無理です (;´д⊂ 」
と抜かしたチンカス外注が1名いたな。
8bit系は割込ベクタがROMのことが多いです。
1000なら32KバイトのROMに全部押し込む
>>993 保守か・・・・ だいたい1チップマイコン使うような場合は保守は、
そのマイコンの入手が出来なくなる時の事が多いからなあ・・・
小ロット物は保守を考えると近所のパーツ屋でもで手に入るような部品じゃないと・・・・
>>994 ああ、PICなんかは割り込みベクター書換えなんて言われても困るわな。
トリッキーな設計と思うか普通と思うかは物の見方の問題だと思うけど
998
1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。