制御系なら俺に聞いてもいいぜ(6)at TECH
制御系なら俺に聞いてもいいぜ(6) - 暇つぶし2ch262:デフォルトの名無しさん
04/12/09 01:20:30
>>255
友達いないんだよ

263:デフォルトの名無しさん
04/12/09 01:26:10
>>262
僕もいないよ

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
大学の教材で日立のあのマニュアルなんか置いてあるのか?
まあ、教授にマニュアルを見せてくださいとでも言えば、ポイントアップかな?

267:デフォルトの名無しさん
04/12/10 00:49:58
ネットとPDF見られる環境であればマニュアルダウンロードできるだろ

268:デフォルトの名無しさん
04/12/10 00:51:06
日立って何だよ

269:デフォルトの名無しさん
04/12/10 00:51:22
おいおい、データシートはウェブからダウンロードして見るって時代になって
ずいぶん久しいと思うんだけど。。

270:デフォルトの名無しさん
04/12/10 01:41:42
>>265
さっとしか眺めてないが、
A/Dは10Bitと書いてあったようだが見間違いか?

271:266
04/12/10 01:44:39
>>267-269
スマソ
H8は「日立」時代に使っていただけなのだ
あの頃は、日立に電話すれば、無料でその日のうちにマニュアルを送ってもらえたものでした・・・

272:デフォルトの名無しさん
04/12/10 13:46:01
>>270
A/DとD/Aの違いが分からん奴発見

273:DACだろ
04/12/10 23:06:49
いかん、なんでA/Dとかいたんだろ?
酔っ払ってたせいだと思いたい。。。。orz

274:デフォルトの名無しさん
04/12/10 23:47:44
A/D 10bit
D/A 8bit だな

275:デフォルトの名無しさん
04/12/10 23:52:42
1qubitで十分

276:デフォルトの名無しさん
04/12/11 04:00:57
10bitって意外と分解能足りないのね。ボリュームつまみぐらいには使えるけど
ロータリーエンコーダの替わりにまではならない。
この頃は8bitチップでも12bit 8CH くらい内蔵してるのに。

277:デフォルトの名無しさん
04/12/11 04:29:37
オープンドレインってどういうこと?8051系のポートは←これで、H8みたいに書いた所を読むと
違うことがあるそうなんだけど。オームの法則しか知らない俺に誰か教えてください。

278:デフォルトの名無しさん
04/12/11 04:39:48
>>277
URLリンク(www3.kcn.ne.jp)

279:デフォルトの名無しさん
04/12/11 04:41:26
>>277
疑問があるなら、まずは検索しろ。

280:277
04/12/11 05:45:42
みんなもずいぶん早起きですね。それ見てもやっぱりわからない(^o^)
1を書いたらLが出て0を書いたらHi-Zが出るポートということらしいですね。
でも自分でH書いてLが読めることもあるってところがなんで?

281:デフォルトの名無しさん
04/12/11 06:08:46
>>280
オープンドレイン+プルアップ抵抗のポートは
 Hレベルのポートの電圧を、外からLレベルにすることは出来る
 Lレベルのポートの電圧を、外からHレベルにすることは出来ない

282:277
04/12/11 07:53:10
あ、そういうことか。だから自分でHを書いても読むとLが読める場合もあるわけね。
そういうポートを扱うときは何を書いたかメモリに覚えておかないといけないですね。

283:デフォルトの名無しさん
04/12/11 12:54:15
277がWired ORに行き着くのはいつだろう

284:デフォルトの名無しさん
04/12/11 13:24:25
>>283
ワロタ

285:デフォルトの名無しさん
04/12/12 00:22:38
>>281
そういうレベルじゃなくて
NOTゲートを知らないようにみえるが?

286:277
04/12/12 18:33:07
ゲートの意味は知ってますが、たくさん並んでると見間違えます。縁が曲がってるのがORで
まっすぐがANDでしたっけ?あれ?そうするとXORは?とかなっちゃいます。三角がNOTですよね

287:デフォルトの名無しさん
04/12/12 19:05:50
>>286
>三角がNOTですよね
 ↑このへん勘違いしている

288:デフォルトの名無しさん
04/12/12 19:18:28
三角はバッハでしょ

289:デフォルトの名無しさん
04/12/12 19:32:06
>>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どうしで電位が同じなのでセーフ


290:デフォルトの名無しさん
04/12/12 19:32:38
オープンドレインの出力は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になる。


291:デフォルトの名無しさん
04/12/12 19:33:19
■用途2 I/OのOUTPUT
    --・-- Vcc
      |
     R
      |
OUT--・------|>

出力で電流たくさんとりたいとか。。。説明が面倒になった。だれか頼む。
(ってか、CMOS全盛の今。出力インピーダンス気にする必要ってあるの?
その辺があいまいなので止めておく)

292:デフォルトの名無しさん
04/12/12 21:45:18
>>291
ゲートの電源よりも高い電圧のスイッチングに使ったりするね。

293:デフォルトの名無しさん
04/12/12 22:42:39
TTL全盛の時代に育ったから
CMOSになっても「オープンコレクタ」
って言ってしまうな

294:デフォルトの名無しさん
04/12/12 23:02:47
>>293
7401とか?w


295:デフォルトの名無しさん
04/12/12 23:36:57
7438 だろ > OC の定番

296:デフォルトの名無しさん
04/12/12 23:51:12
74S05最強伝説

297:デフォルトの名無しさん
04/12/12 23:57:07
74HC05

298:デフォルトの名無しさん
04/12/13 00:15:57
*


299:H/W屋
04/12/13 04:40:28
回路図読めとは言いません
お願いですから論理演算ぐらい
分かる人間を付けてください

300:デフォルトの名無しさん
04/12/13 04:49:39
電子工学科卒なら大抵大丈夫なんじゃないの?良く知らないけど。

301:デフォルトの名無しさん
04/12/13 04:57:09
全然w

302:277
04/12/13 05:39:04
皆さんいろいろ教えてくれてありがとうございます。今回の出力端子は送信機やアンプの
オンオフをするらしいので、>>292さんのような使い方にあたるのでしょうね。

高卒文系なのに1985年頃8085の仕事やらされてからなぜかマイコンの仕事ばかり。
高校生に集合とBOOL代数を教える最初の試験授業をされました。今じゃ小学生でも知ってますね。
回路図読めないので、ハード屋さんには信号の性質について(自然言語で)聞きまくります
うるさがられるけど、いいかげんな仕事されるよりはましだと思って相手してくれてるみたい。

303:デフォルトの名無しさん
04/12/13 05:55:05
藻いらもオープンコレクタって言ったほうがしっくり来る。
ソフト屋なんでこの言葉を使う機会はほとんど無いけど。

ところでオープンコレクタに対してTTLレベルって言ってたけど
最近はなんて言うのがオサレなの?

304:デフォルトの名無しさん
04/12/13 09:03:30
いまはBOOL代数は教えてないらしいよ


305:デフォルトの名無しさん
04/12/13 10:24:55
0と1だけじゃないZがあるから。

306:デフォルトの名無しさん
04/12/13 10:29:16
え?

307:デフォルトの名無しさん
04/12/13 11:36:28
トライステート出力ね。Zっていうか、Hi-Z(つまりオープン)ね。

308:デフォルトの名無しさん
04/12/13 18:52:26
また一人来たよ

309:デフォルトの名無しさん
04/12/13 19:21:54
>>303
TTLレベルはC-MOSレベルに対して使ってたんじゃない?
今はおしゃれとか言う問題ではなく、ちゃんと規格の名前で言わないと
動かないものができてしまう

310:デフォルトの名無しさん
04/12/13 21:04:52
つうか、ハードオンリーの問題なら
URLリンク(science3.2ch.net)
へ行ったほうが良くねぇ?

311:デフォルトの名無しさん
04/12/13 21:19:24
ハード寄りの話になったね。そこまで知らなくても出来るが、全然知らないのも困る。
そのギリギリのバランスで成り立ってるのがファーム屋の面白く、難しいところですねw

312:デフォルトの名無しさん
04/12/13 22:09:10
>>309
オープンコレクタに対してはトーテムポールか?
>>310
つーか、ファーム屋だとそこそこ回路図も読めねぇと話になんねぇからな~
ある程度経験を積めばハード屋のスキルも逆に評価できるってもんよ

313:デフォルトの名無しさん
04/12/13 22:09:58
>>312
違う、ポニーテールだ。

314:デフォルトの名無しさん
04/12/13 23:13:00
HEWを使用していますが、バックトレースの方法がよくわかりません。
で、KPIT-gccを使って__builtin_return_address()を使おうと思ってます。

ところで、gccで生成したオブジェクトとHEWのそれとは、
うまくリンクできるのでしょうか?

簡単なCのプログラムではうまくできたのですが、
複雑なC++ではリンクできませんでした。
この場合、Cのインターフェースを用意してやればうまくいきそうなんですが、
C++のままだとうまくいかないのでしょうか?


315:デフォルトの名無しさん
04/12/13 23:23:40
>>314
バックトレースを取りたいのか?
それとも、gccの__builtin_return_address( )の問題を言っているのか?

リンクできませんって、できないでどうなったんだ?

316:315
04/12/13 23:49:00
>>314
ふと思ったが、extern "C" すれば解決しない?


#オープンドレインの話からいきなりC++って、
#制御系って範囲が広いな~とつくづく思った。

317:デフォルトの名無しさん
04/12/14 00:05:29
あ?

318:デフォルトの名無しさん
04/12/14 14:13:35



319:デフォルトの名無しさん
04/12/14 15:14:56
TRUEとFALSEの他にNULLがある。
次世代ブール値?が必要な夢を見た。
何故か涙が止まらなかった。
もう俺はダメだと思う。

320:デフォルトの名無しさん
04/12/14 21:06:37
そんなことで。
俺はおまけにUNDEFINEDもあるのを考案してた。

321:デフォルトの名無しさん
04/12/14 22:13:46
>>319
Ruby がそうだよ。

322:314
04/12/17 01:11:30
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のことについてお聞きしてもよろしいでしょうか?

327:デフォルトの名無しさん
04/12/19 12:46:47
>>326
まずは質問を書け。スレ違いなら無視か誘導されるだろ。

328:デフォルトの名無しさん
04/12/19 18:02:00
>>319, >>321
DB とかやってると当たり前だったりするし。

>>320
VB の Variant でも使ってろ。

329:フナ太郎
04/12/19 20:55:00
>>328
別にVBプログラマだからってなにも気後れすることはない。
堂々と胸をはっていきなさい。バカにされてもくじけちゃダメだよ!

330:ちょっと遊んでみるかな。(藁
04/12/19 21:00:44
べつに VB でプログラムぐらい組めるけど、VB プログラマって...。

なんか、コンプレックスでもあるんですかぁ ?

331:デフォルトの名無しさん
04/12/20 02:00:34
nullはブール「値」じゃないだろ

332:デフォルトの名無しさん
04/12/20 08:21:12
printfの%fは 四捨五入ありですか? 切り捨てがデフォですか?
符号つき小数部8bitのintを sprintf(wk,"%4.2f",int/256.0)で小数部2桁に編集しますが
少数3桁目が切り捨てられるなら、負の場合-0.005、正の場合0.005を足さないといけませんね?

333:デフォルトの名無しさん
04/12/20 09:11:20
>>332
The proof of the pudding is in the eating

334:332
04/12/20 14:49:19
すいません、整数の計算でなんとかなりました。

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が違うんだから

341:デフォルトの名無しさん
04/12/23 23:54:18
>>340
gccで作ったH8のオブジェクトの話だろ
頭使え

342:デフォルトの名無しさん
04/12/24 00:22:33
HEW用に提供されたソース無しのライブラリを、
GCCオブジェクトとbinutil-ldでリンクできたら嬉しいな。


343:デフォルトの名無しさん
04/12/24 00:41:23
HEWを買えない貧乏人がgccで間に合わすと言う使い方もあるわけだ

344:デフォルトの名無しさん
04/12/24 02:20:50
>>343
HEWよりライブラリの方が高くて買えない罠。

345:デフォルトの名無しさん
04/12/24 08:50:50
gccのライブラリは有料なんですか?

346:デフォルトの名無しさん
04/12/24 09:19:05
>>345
340と同じ人? 少しは頭使えよ。

347:デフォルトの名無しさん
04/12/24 22:12:30
高いのもある
だけどただのもある

348:デフォルトの名無しさん
04/12/25 22:24:10
newlibってそんなに高いの?
おれ、いままでただでつかってたよ。

349:デフォルトの名無しさん
04/12/25 22:25:36
silosどこで落とせばいいですか?demo版でいいんで

350:デフォルトの名無しさん
04/12/25 23:10:10
義理の兄貴が早期退職するんだって。51歳。
大手メーカーで人工知能の研究やってた。
優秀だったのに・・・・京大院だったのに・・・・・・

351:デフォルトの名無しさん
04/12/25 23:30:54
アフォか
京大院卒なんて毎年5千人規模で生産されているんだ。
51歳ならライバルは15万人くらいはいると思え。


352:デフォルトの名無しさん
04/12/26 11:12:59
>>349
Silosってスピナカーから代理店が変わって、どこ行ったかわからなくなった。
俺は評価版嫌いな人間なのでこれ使ってます。
URLリンク(www.sugawara-systems.com)
あとはicarusverilogとか


353:デフォルトの名無しさん
04/12/26 15:13:46
>>339
CAPS/NumLock/ScrollLockはキーボード自身でLED設定状態みればいいだろ。
ホストに要求して取ろうというのであれば、そもそもUSBという規格をわかっていない。

354:デフォルトの名無しさん
04/12/26 23:30:17
>>348
早く金払わないとタイーホ

355:デフォルトの名無しさん
04/12/27 09:09:59
>>354

356:339
04/12/27 09:34:29
>>353
USBキーボードとPS2キーボードを繋げ、
PS2キーボードでCAPS/NumLock/ScrollLockを操作すると
USBキーボードのLEDも切り替わりますがなぜですか?
ホストで維持される状態を同期を取りたいのです。



357:デフォルトの名無しさん
04/12/27 12:33:08
>>356
LEDの点灯/消灯コマンドがホスト側から来るんだよ。
ホスト側が維持するってそういうことだよ。
コマンドを取りこぼさなければ同期は外れない。
取りこぼすようなデバイスは故障している。


358:339
04/12/27 15:16:25
>>356
ありがとうございました。もう少し勉強ます。
ご存知であれば、usbキーボード開発に参考になるサイト・資料を教えていただけませんか?



359:デフォルトの名無しさん
04/12/27 15:24:55
www.usb.org

360:デフォルトの名無しさん
04/12/27 15:30:11
>>358
福祉関係でUSB接続の入力装置を作っている個人がWebSiteを持ってたと思った。
そのサイトでそれなりの情報が得られたような記憶があるので探してみたら?

361:デフォルトの名無しさん
04/12/27 21:18:29
つーか今月のトラ技はどうよ?

362:デフォルトの名無しさん
04/12/27 21:49:51
>>361
年々レベルダウン。

363:デフォルトの名無しさん
04/12/27 21:51:03
>>361
USBスピーカの製作のところで、デバドラも書くのかな?と思っていたらそうじゃ
ないんだね。

364:339
04/12/28 10:51:37
>>358
情報ありがとうございました。
検索試みましたがヒットしませんでした。
非常に興味深いのでとても気になります。
覚えていましたら、具体的なキーワードを教えていただけませんか?

www.usb.orgにあるHid1_11.pdfを読みました。
discriptorの設定や通信説明は書いてありましたが、
その先の説明は書いてありませんでした。(私の理解不足かもしれませんが)

>>361
ありがとうございました。
本屋よって見てみます。


365:360
04/12/28 13:06:19
>>364
漏れかな?
物はこれだけど、詳細情報があるかどうかは見てない。
URLリンク(deki.psv.org)

366: 【豚】 【24円】
05/01/01 12:40:25
おおぅ何か香ばしいぜぇぇえええ

367:デフォルトの名無しさん
05/01/01 21:28:36
>>366
豚野郎。お前がコゲてる臭いだ。

368: 【だん吉】 【416円】
05/01/01 23:54:35
さっさとうせろ ベイビー

369:アルゴリズム
05/01/03 11:38:35
制御系=マイコンではないな。PCを使ってもできる。
要は何台作るかだ。一台しか作らないのにマイコンで
やることはない。あとFPGAを使うてもある。
ソフトでできる処理はせいぜい10マイクロSEC。
FPGAはその100倍は可能だから勝負にならない。
値段はたかくなるけど。


370:アルゴリズム
05/01/03 11:44:09
事務系から制御系に移れるかという質問があった。
それは不可能。日本語を話せる大工さんが、すぐに旋盤工に
なれないようなもの。この場合ソフトは日本語にしか相当
しない。それに制御系を選んだ人はだいたいプラモデルとか
作るのが好きな人。
このような要素は勉強してどうなるものではない。

371:デフォルトの名無しさん
05/01/03 11:48:18
>>370
私は論理学を専門にやってた院卒ですがちゃんとやれてます。

372:アルゴリズム
05/01/03 11:52:23
うちの制御系はWIN-XPとLABVIEWとFPGAで
作っている。H8に比較し数十倍のパフォーマンスが可能。
用途は計測、制御、画像処理、モーション、
ICテスターなどだ。台数としては1台か2台かだ。
この特長はエクセルやイーサネットが使えることだ。
制御でE-MAILで携帯に警報をだすなんてしゃれたこともできる。


373:デフォルトの名無しさん
05/01/03 12:01:08
>>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で携帯に送るソフトを
何時間で作れますか?



377:デフォルトの名無しさん
05/01/03 12:55:30
>>376
373じゃないけど、PIC16F873クラスを使って良ければ
A/Dとシリアルは実装済みなんで、回路基盤を起こす時間を無視すると
そんなに時間はかからんでしょう。
Linux Boxに繋げてcronでメールまでスクリプトでできると思うし。

そういう俺もLabVIEWで組んで仕様書作って
外注している立場だけどね。
# LabVIEWは俺を堕落させた。

378:デフォルトの名無しさん
05/01/03 13:24:29
普通のマイコン=PIC
と認定されました


379:デフォルトの名無しさん
05/01/03 13:26:32
>>369
>一台しか作らないのにマイコンでやることはない。
そんなことはない。
パソコンで低消費電力、リアルタイム、無停止のシステムが組めるのか?

380:デフォルトの名無しさん
05/01/03 13:52:17
>だから会議などで「その方法は利益面でマイナスだ」
>なんて発言したら注目をあびることは間違いない。

どんな会社だ・・・


381:デフォルトの名無しさん
05/01/03 13:56:42
まちがいない!

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
さんに聞きたい。
リアルタイムとはどのようなものと考えいてる。

385:377
05/01/03 16:11:48
>>383
出世しないよ。それだけなら代わりはいくらでもいるからね。
# つーか仕様書を書かされている段階で下っ端だよ。

386:アルゴリズム
05/01/03 16:24:53
>385

自分を卑下してはいかん。

387:デフォルトの名無しさん
05/01/03 17:52:40
まぁあれだ、業務系と制御系を両方経験した私が語ろう。

職業の喩えを出していた人がいたが、その例に倣うと
業務系プログラマ(会計士)に制御系プログラマ(職人)の真似はできませんよ、と。
#勿論逆も難しいわけだが。

業務系は画面の枚数で仕事量を量ることがあるということで判るとおり敢えて言えば広さの仕事。
制御系はその逆で、テストしながら仕様を確定したりI/Fを伴わない改変があったりと、深さの仕事だと思う。
学業が理数系と文型と言う風に単純に分けられないのと同様、単純には分けられないけどね。

どちらにしても、社内顧客なんて相手にしていても仕様を詰める楽しみはないんじゃないかな。
尤も、エンドユーザと仕様を詰めるような立場になると、コーディングなんてしてられなくなるけど。

388:デフォルトの名無しさん
05/01/03 18:50:31
組み込み以外から組み込みの分野に来て、うまくいった例を見たことが殆どない。
皆さんの周りで成功した事例ってあります?

389:デフォルトの名無しさん
05/01/03 19:16:48
>>388
もろハードオンリーから組込みに来てる人は
普通に成功してる ような気がする

390:デフォルトの名無しさん
05/01/03 19:29:11
業務系、制御系、組み込みの違いが分かってない香具師が
結構いるよね。
変なコテは分かってるけどあえてごちゃ混ぜにしてる釣り師。

391:388
05/01/03 19:42:35
ハードからは、ね・・・・・・・・・
仕事でマジ困ってます。「純ソフト屋」っての?あいつら猿?
仕事で(゚Д゚)ハァ?の連続です。明後日からチンカスの相手だ(涙


392:デフォルトの名無しさん
05/01/03 19:48:42
適応領域の知識が足りないので、ソフト屋うんぬんは関係ない。
(= ソフトができても物を知らんと使えない)

逆の立場にならないことを祈ろう。

393:デフォルトの名無しさん
05/01/03 20:17:51
>391
まったくの素人と思えば良い
メモリアクセスを隠蔽した言語しかできないのな

394:デフォルトの名無しさん
05/01/03 21:33:31
ハードなんて言葉使ってる所がか・な・り芋っぽいです

395:デフォルトの名無しさん
05/01/04 00:59:07
器用貧乏の称号を授かり、なんでもかんでもやらされるのも考えものだ


396:379
05/01/04 02:08:26
>>382
ほんじゃ、人工衛星にのっけるものもPDAでやりますか?

397:379
05/01/04 02:21:35
>>382
485でデータを受けて、パトライトを6点表示。
自動車組み立て工場で使用。使用期間半年。
PDAでやりますか?シーケンサでやりますか?
私なら PICマイコンで十分と思うけど。


398:379
05/01/04 02:35:18
>>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が得意なので自慢したいだけ。
ビジネスとは違う次元の話である。
ドキュメント、メンテナンスを総合
で考えるとパソコンの方が全て場合安くなるのが普通。

400:デフォルトの名無しさん
05/01/04 11:32:02
>>399
1台だけ作るなら、職人さんに発注すると基板作ってパソコン一式と同じ程度で作ってくれますよ。
確かにドキュメントまで期待したら倍以上取られますが
それはパソコンでやっても同じでしょ?

それに、パソコンでやると振動、電源、寿命と、色んな意味で難しいでしょ?
現実1台こっきりでも納品して3年ちゃんと動かないと、マズイくないような場合ってそんな多いですか?

401:ライブラリアン
05/01/04 12:01:56
>400

>ドキュメントまで期待したら倍以上取られますが
>それはパソコンでやっても同じでしょ?

あなたの言うとおり、パソコンでやるとドキュメントが無いことにはならない。
だから基板を作るか買うかの問題です。パソコンで作ることは
すなわち、市販のボードを買うことになる。
それにはドキュメントが当然ついているので、その費用はないということです。


>現実1台こっきりでも納品して3年ちゃんと動かないと、
>マズイくないような場合ってそんな多いですか?

的を射た指摘だ。まず品質は多く作られたものが良い。
大量生産のDELLのパソコンの方が1毎だけ作った基盤より
品質が良い。基板も後々、バグもでてくる。
作った製品をお客のところで信頼性試験をしてもらっているようなものである。
それから故障用として予備のものを用意しなければならない場合もあり、
さらに価格が高くなるということになる。
故障したときには絶対呼ばれる。パソコンならお客がメンテナンス
してくれる。


唯一電源を落ものはUPSを途中に入れなければ
ならないけど。




402:デフォルトの名無しさん
05/01/04 13:43:41
>>401
大量生産のDELLのボードが3年持つというのは・・・・制御用専用に作られたのならともかく

残念だけどパソコン品質じゃ 手組みで1枚だけ作ったボードに明らかに劣るよ。
ホントに使った事あるのかな?

毎日電源入れたり切ったりしたら3年で半数近くが故障しないかい?
特に振動やホコリの多い現場で使った経験ある?
それなりに対策はするけど、その対策費用はけっこう高くついてるよ。

パソコンならお客がの話も無理っぽいんだが?
そもそも、パソコンでも制御用だとどうしてもキーとなる部品が必要だろ?
I/OとかADC用ボードとかさ、そのあたりのボードメーカって栄枯盛衰。
安価なの出してる所は3年もしたらどうなるやら判らんし
高価な有名所はボード1枚がマザーより高いじゃかないか

結局職人さんが生きてる限りはメインテナンス出来る方が 実は安心だったりするよ。
といってもそれは客先にはいえないんだけどね

403:379
05/01/04 13:46:36
>>399
>>A/D 12bit精度で9ch を 70μsec以内にサンプリング
>>100μsec間隔 で 3000サンプリング
>PICが安い言う人、PICが得意なので自慢したいだけ。
>ビジネスとは違う次元の話である。
元来PICじゃ無理でしょ。
パソコンで100μsec間隔のサンプリング?
QNIXならわかるけど、windowsでやりたくないな。

>>無停止、電源の投入遮断は、手順なしで電源線で行う。
>パソコンならできますね
できますか?

404:デフォルトの名無しさん
05/01/04 13:54:31
>>403
PICで難しいのは最後の 3千サンプルの部分だね。
EEROMだと 100マイクロ間隔で書き込む事が出来ない。

ささっとすましたいなら M16の出来合いのボードにADC接続だけど
1品料理に汎用ADC在庫するのもなんだから、自分ならPICを9個汎用ADC代わりに使うかな

という事で M16の汎用ボード+9個PICでチャチャとやっつけるな 

405:デフォルトの名無しさん
05/01/04 14:11:35
パソコンでこの条件で作る事は、その性能のADCボードが入手出来るならという条件が満たせるなら
UPSを入れて、停電検出してHDDに保存後電源断という事になるだろうね。
ただ、9CHを70マイクロ以内で同期というのは結構厳しいかもな。
9CH分のサンプルホールドを持ってて、ADC中安定してホールド出来なければいけない。
変換速度と、12ビット精度の両立は自分の知ってる範囲じゃ難しそうだ。

M16+PICでやる場合も、電源断を検出してM16の内蔵フラッシュにサンプリング中データを
書き込まなければいけないけど
M16のフラッシュ書き込みはバンク単位なのでPICの256倍高速なんで
電源断を検出して数10ミリ秒バックアップすればいいから、電解コンデンサでバックアップは十分。


406:デフォルトの名無しさん
05/01/04 14:38:06
まてよ。 10ビットADCのPICで12ビット精度出そうとすると
差動入力にして1ビット稼いで、さらにノイズ混ぜての3回平均で
最小6サンプルしなくちゃいけないけど、 PICのADCは20マイクロ必要だから
70マイクロってのは厳しいな。

素直にADC外付けが無難か

407:デフォルトの名無しさん
05/01/04 15:30:49
パソコンのマザーボードは
・部品点数の多さと全体の配線の複雑さ
・部品信頼性の低さ (ほんとによく壊れる)
・接触部品が結構多い (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ボードは手組みではつくれないだろう。


>結局職人さんが生きてる限りはメインテナンス出来る方が
>実は安心だったりするよ。

心情的には賛成だけど、ビジネスとしては広がりがない。






410:デフォルトの名無しさん
05/01/04 16:36:10
>>408
PICはこの場合適当でないと後で訂正してるけど、
うちの職人さんに頼めば、たぶん感光基板で半日もかからず作ってくるだろう。

M16は自分がCで書くからこれも30分もかからない。
というかコード使いまわして、クロック出してデータ貰う部分を9台分同時に変更すりゃいいだけ。
PICをADCに替えても、殆どコードも同じ。

なんなら今注文貰ったら明日午後には納品しまっせ。

たぶん、パソコン使ったって、ADC+UPSじゃ部品代に20万以上かかるでしょ?
そしてADCボードの入手に時間かかるでしょ?
で、プログラムはそのボード入手してからボードの使い方調べてになるでしょ?
トータル、うちと同じ値段じゃ出来ないと思うよ。

411:ライブラリアン
05/01/04 16:43:47
>410

凄い、注文します。注文書の送付先の連絡頂戴。
その製品は使わなくても、その技術が欲しい。(笑

器用貧乏にならないように私がマーケテイングしてあげるよ。

412:デフォルトの名無しさん
05/01/04 16:58:05
>>411
はは、書けたらいいんだけどね。

凄いというけど、なんか自分の周りはそんな奴が多いんだが・・・・まあスキルミスマッチが起きてるのかもな。
器用貧乏はおっしゃる通り、職人さんも自分のとこも、なんだか忙しいばかりだ。

413:デフォルトの名無しさん
05/01/04 17:58:37
よくは知らんが、ラックマウントのPCは100万も出せば手に入る。
逆に言えば、10万のPCと同じ程度の性能なのにその金額になるのは保証と信頼故じゃないの?

414:デフォルトの名無しさん
05/01/04 18:17:40
市販されてるUPSの寿命は電池が2年、本体5年だよ。
もちろんそれ以上の期間動作させられるけど
メーカー的には上記の時間が経過したら
新品への交換を勧めている。
そういう機材だってことわかって言ってるのかな。


415:デフォルトの名無しさん
05/01/05 00:44:21
なんで PC = Windows みたいな話になってるの ?
別に Compact Flash かなんかに Linux でも入れて、メモリー上にファイルシステム作って、てきとーなデバイスにデータ書けばいいと思うんだが。
途中で電源切れたって、データ書くところさえちゃんとしてれば問題ないから、UPS なんか不要だよ。

416:デフォルトの名無しさん
05/01/05 03:48:44
知らないならハッキリ知らないと言いなさい、むしろ黙ってなさい
余計な事を言って手間増やされちゃたまらんよ

417:デフォルトの名無しさん
05/01/05 05:21:48
スキルに裏打ちされた議論で勉強になります。ののしりあいにならないのも珍しい
俺はハード屋さんが決めた仕様に従ってソフト書くだけだからなあ。

418:デフォルトの名無しさん
05/01/05 07:53:37
>>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

同意。大人の議論だ。

422:デフォルトの名無しさん
05/01/05 10:09:55
>>420
昔の話してどうするの。
いまではソフトが高いのは納得済み。

423:ライブラリアン
05/01/05 10:13:13
私はプログラマはあまり得意ではない。
離れて時間が経っているからね。
いまはSEという立場で顧客と話すことが多い。
よく次のようなことを自慢げに言う担当者がいる。

1 うちの会社は特殊なことをやっている
2 うちの会社はスペックが特別厳しい
3 うちの会社は予算がない

でもそれは違う。こちらの本音は

1 あなたの会社は特殊ではない。あんたが特殊なのだ。
2 それはあんたの好みの問題だ。
3 それはあんたが会社から信用されていなからだ。


424:デフォルトの名無しさん
05/01/05 10:19:25
…等と考えてるSEとは一緒に仕事したくないと言う本音も聞こえてきそうですね。


425:デフォルトの名無しさん
05/01/05 10:31:15
はい、したくないですー にゃんにゃん

426:ライブラリアン
05/01/05 10:34:33
>424

そうじゃないんだな。ここからスタート
するということ。説明して、そのことに気がついてもらうんだ。
好きとか嫌いとか言うレベルではない。最終的に満足してもらう
ことが大事。

427:デフォルトの名無しさん
05/01/05 11:36:37
でもね。 パソコンで一丁上がりってやってると 数が出るリピートする商品が来ないんだよ

428:デフォルトの名無しさん
05/01/05 12:49:46
>427

>数が出るリピートする商品が来ないんだよ

そうなんだ。リピートはハードをお客が購入してソフトをコピーすれば
頼まなくてもいいからね。
だけど自分がお客でソフトのコピーを許している契約で
あればそうするよね。だからメンテナンス契約をするとかして
、少しはつながっているようにしないといけない。

429:379
05/01/05 14:07:43
>>420
>「1000円のPICに300万円のソフトを入れました」
>と言っても顧客は納得しない。
納得しますよ。

言いたいことはわかるそう考えたこともあるし、同じことをやった。
でも、頭をひねってむりやりパソコンで実現するより、素直に考えたほうがお客は納得する。

そして、パソコンベースで怖いのは、部品の故障
修理はメーカ送りだし、生産中止したらアウトで代替手段がマシン交換。
自社ハードだと、その心配がすくなくないか?
そして、パソコン系の開発環境はOSに依存するので
組み込みの開発環境の方が寿命がながくないかな?
QNIXやLINUXでコマンドラインの環境ならいいけど

>>382
>反対にの1台しか必要なのに、マイコンで作るのか。
一品料理であっても、人工衛星に載せるのにパソコンは使わないでしょ
いいたいことはわかるけど、適材適所、臨機応変だと思う。
斬ったつもりだろうが、住んでる世界が狭すぎるよ。

430:379
05/01/05 14:10:02
「1台しか必要ないなら、マイコンでやらずにパソコンでできるケースは多々ある」
と言うなら、禿同だ。

なんでもかんでもマイコン、とか、1台ならなんでもかんでもパソコン
というのには賛同できない。


431:デフォルトの名無しさん
05/01/05 14:12:00
PCでやるのは実験機だけ。
一台しか必要ない場合というのを、実験機と混同しているのではないの?

432:379
05/01/05 14:17:14
連ですまないが
パソコンベースのデータ収録機を作ったとき
IOボードの絶縁の問題で散々苦労したことがある。
こういうことがあると、自社ハードなら作り直しは簡単だが、
PCI/ISAバスのI/Oボードとなると、それだけで1作番になってしまう。

出来合いのものでつくると、出来合いの範囲でしか対応できなくなる。
こういうとき、お客に対して、どう説明する?

433:デフォルトの名無しさん
05/01/05 14:20:54
一台しか必要ないシステムなんていくらでもあるよ。
#つーか、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。
今まで議論を聞いていて、一番感じるのは自分の都合ばっかりで
お客がどっかに飛んでしまっていることだ。





437:379
05/01/05 14:57:24
>>434
>自分だけの立場でものを考えてはだめだ。
>要するに、顧客の立場でも考えるべきだ。
そんなのは当たり前の話だけどな、別に学校の講義を受けるつもりはないので(ry
逆に「スタンダードな規格」での不都合な点もいうべきではないかな

>>432 の場合なんか、どうする?
「スタンダードな規格」で納めたが、絶縁などの問題などが発生。
スタンダードだからあきらめろというのか?

>>430で言ったように、どれにもこだわってはいけないと思うが。

438:379
05/01/05 15:11:46
>>432
医療機器なんかの場合、高周波系と混在すると絶縁対策が原因で
暴走の危険性があるが、パソコンベースのシステムで対応できると思えない。

また、>>398のケースで、
強電界下での使用ということに対する暴走対策、
電源の断接でリセットスタートさせるがその応答を2秒以内
こういうことにパソコンベースのシステムで対応できるのか?

439:デフォルトの名無しさん
05/01/05 15:57:35
実験機がなぜダメなのかというと、実験のために関係ない部分まであちこちいじり
倒しているうえに、なんだか変なジャンプ配線ばかりだったり、場合によっては
ユニバーサル基板で作ってあったりして、とにかく信頼性が低い。
関係ある部分だけ抽出して試作品を作り、うまくいったらちゃんとした物をつくる、
ってしないと。

440:379
05/01/05 16:39:05
すくなくとも、
マイコンしかやったことがないからマイコンでとか
パソコンしかやったことがないからパソコンで
PLCしか(ry
という技術者にはなりたくない。

441:ライブラリアン
05/01/05 17:04:39
>473

>そんなのは当たり前の話だけどな、
>別に学校の講義を受けるつもりはないので(ry

申し訳ない、偉そうに書いて。(笑

442:ライブラリアン
05/01/05 17:10:01
この話題をこれくらいにしてもっと面白い
テーマはないかな。

443:デフォルトの名無しさん
05/01/05 17:22:12
>>442
なんでお前が仕切ってるんだよ

444:デフォルトの名無しさん
05/01/05 20:14:25
>>434
パソコンだけじゃ制御の役に立たないでしょ?
何か入出力ポートが必要でしょ?
で、結局はその入出力ポートの実現の部分で スタンダードな規格 が無いんだよね。

だから、パソコンは標準であっても、納品したものは標準じゃないわけだ。

445:デフォルトの名無しさん
05/01/05 20:19:14
ラックマウント → FA というロジックは面白いと思いました。


446:デフォルトの名無しさん
05/01/05 20:48:57
俺が仕切ってやるぜ

447:デフォルトの名無しさん
05/01/05 22:29:51
アルゴリズムとライブラリアンは同一人物?

448:デフォルトの名無しさん
05/01/05 22:37:16
PC使う方に一票
なんかPCのボードが生産中止になったら・・・みたいな話が出てるけど
そういう心配はむしろ自社ハードにこそいえるのでは?

マイコンも周辺チップもどんどん新旧交代して修理しようにも互換品がない、
なんてこと結構ありがちだと思うんだけど。

あとソフトの価値が認められるようになってきているって意見があったが
これはむしろ時代に逆行した意見だろう。
ソフトの貨幣的な価値なんてむしろどんどん下がってきてるでしょ。

449:デフォルトの名無しさん
05/01/05 22:51:57
>>418
> >>415
> そのシステムで書き込み途中に電源落とされたらどうなるわけ?

FAだとそこまで対策してるのは見たことないよ
取説に「書込中は電源を切らないでください」でおしまい
もしそこまで気にするならバックアップメモリやHDDも二重にするしかないんじゃないの?

450:379
05/01/05 23:59:08
>>448
>マイコンも周辺チップもどんどん新旧交代して修理しようにも互換品がない、
>なんてこと結構ありがちだと思うんだけど。
自社物だと、DISCON品がどこかにあってなんとか対応できるが
メーカ物は、電源ユニットひとつでも終わったらホントにおしまい。

451:デフォルトの名無しさん
05/01/06 07:51:16
>>448
PCのボードってI/OとかADC/DACの事だよね?
リスクとしてはこっちの部品がが無くなる事と等価だよ。
それ以上に、他社である分それが起きた時の問題は厄介だ。
ようは対応出来ない。(対応出来ない事を利用に新規にしちゃうワザもあるだろうけどね)

たぶん、PCのボードを勧める人は 今1チップマイコンの内蔵RAM・フラッシュがどれだけ
あるか、そして、どれだけ簡単か知らないんだろうと思う。
URLリンク(akizukidenshi.com)
URLリンク(www.oaks-ele.com)
みたいな所からボード買って勉強してみればいい。

外付けにフォトカプラなり、オペアンプなりをつなぐだけで大抵のシステムは完成だ。
パソコンを使うなら、これをRS232CやLANで接続すればいい

まあFAで使うような場合は、そんなボード使わなくてもシーケンサ+パソコンで間に合うのも事実だけどね。

452:デフォルトの名無しさん
05/01/06 12:40:32
>>451
あははー ゆかいゆかい

453:ライブラリアン
05/01/06 12:41:20
>451

OAKSは思い出した。ありがとう。
自分もアマチュア精神が旺盛なので、こんなのをみると
結構ワクワクする。ただビジネスで考えると
また違う考えだけどね。
ワンボードマイコンを使う機会は無いことはない。
お客がどうしてもと言えばそうする。
ただCPUの種類が多すぎるので勉強して使う
のにリスクが多い。

>FAで使うような場合は、そんなボード使わなくても
>シーケンサ+パソコンで間に合うのも事実だけどね。

そうなんだ。実はこれは優れたソリュウションなんだ。
シーケンサはイーサネットでパソコンのI/Oボードの代用だ。
プログラミングはしない。シーケンサーは
ノイズに強いし売れているメーカを使えば、安心。
原子力関係では制限があるようだけど。
さらに仕事の終盤になると安全性の対応でプロテクトをかけたり、
非常停止の問題がでてくる。
それはシーケンサのプログラムだけで簡単に
対応できる。


454:379
05/01/06 14:15:57
>>453
>ただCPUの種類が多すぎるので勉強して使う
>のにリスクが多い。
それほど大変じゃない。
H8で作ったシリアルやタイマーなどのルーチンは
そのままSH1やSH3で使えるほどファミリーは同じようなアーキテクチャーになっている。

PLC(シーケンサはミツビシの商標ね)の場合
モデムで発呼とか端末側起動のシリアル通信が面倒じゃないだろうか?
っていうかできるのか?


455:379
05/01/06 14:32:05
引用ばかりですまんが
>>451
>それ以上に、他社である分それが起きた時の問題は厄介だ。
>ようは対応出来ない。(対応出来ない事を利用に新規にしちゃうワザもあるだろうけどね)
実際、そういうことが多い。

むりやり、パソコンでやろうとする姿勢はどうも賛同できない。
部品点数が多いだけでも信頼性に問題があるとおもうし
振動試験や絶縁試験にも合格すると思えない。
それだけ適応が狭くなる。
というか、そもそも ライブラリアン氏は、そういうケースの仕事はあまり多くない?
どうも、私の世界と違うように感じる。

456:デフォルトの名無しさん
05/01/06 14:49:39
まあ、用途によるってこった

457:デフォルトの名無しさん
05/01/06 15:29:30
>>454
そういうのは一度作っちゃえばパソコン側はそれでOK
自分はパソコン関係はDelphiで作ってるから、通信部分をコンポーネントにしてて
再利用はポトペタ一発だ。

458:379
05/01/06 18:21:38
>>457
いや、端末側起動といったのは、
PLCからモデムをコントロールしたりということ

459:デフォルトの名無しさん
05/01/06 19:27:05
どこで質問すればよいのか分からなかったのでここで教えてください。

論理回路のことなんですが・・・
2進数どおしの加算は半加算回路・全加算回路で出来ます。
積算はどうやってするのですか?

HELP ME~

460:デフォルトの名無しさん
05/01/06 19:47:41
もっとも簡単な10進カウンタを作る
URLリンク(tamuro.gooside.com)
URLリンク(tamuro.gooside.com)

461:デフォルトの名無しさん
05/01/06 20:01:41
>>459
積算という事は、
 加算した結果を覚えておく手段(FFとか)と加算器で出来るでしょ

462:デフォルトの名無しさん
05/01/06 20:26:21
boothでググれ。

463:デフォルトの名無しさん
05/01/06 21:20:32
>>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バイト境界になっています。

マクロ使ってビットアクセスを定義しなおすのは
かなりの量のレジスタがあり、コードもかなり変更しなければならなくなるので、
なるべく避けたいです。

同じような経験された方いますか?

465:デフォルトの名無しさん
05/01/07 11:00:51
ダミーのビットフィールドを入れて無理やり32bitにするのは駄目なの?

466:デフォルトの名無しさん
05/01/07 12:11:15
>>464
普通はそういう経験はしない。
理由はメモリマップ式のI./Oはめずらしいし
メモリマップ式でも、PCIバスだと普通のメモリに比べて遅いから普通のI/Oと同じように
読んで書く方式にするから

467:デフォルトの名無しさん
05/01/07 18:53:20
>>464
具体的な情報がないのでなんともいえんが、
bitfieldが本当に32bitサイズの型で宣言されていて、かつvolatile修飾されているのであれば
gccのバグだろう。そうでなければそれは仕様。


468:464
05/01/07 19:33:36
>>465
もちろん、ビットフィールドはダミーも入れて
きっちり32bit単位で全部埋まってます。
int(32bit)変数とのunionにしてあります。

で、たとえば、アドレス0の32bitレジスタのbit8に1をセットするような場合、
コンパイル結果を見ると、
アドレス1をバイトでリード/bit0を変更/ライトするコードが吐き出されているわけです。
アドレス0を32bitでリード/変更/ライトしてほしいのに。

>>464
やっぱりそうですよね。
RAM領域も持っているデバイスなのでメモリにマップされています。
マクロで定義しなおすしかないか・・・

469:デフォルトの名無しさん
05/01/07 20:36:06
gccの仕様として有名な話ではないの?
「gcc使う場合、日立SHのサンプルソースはそのまま使えない。
理由は日立のサンプルがビットフィールド使ってるから」
みたいなのをインターフェースか何かで読んだことあるぞ

470:464
05/01/07 20:43:16
>>469
そうだったのか。
サンクス。

471:デフォルトの名無しさん
05/01/07 20:48:06
>>470
確か↓の本に書いてあったと思う。今手元に無いんで未確認だが
URLリンク(www.cqpub.co.jp)

472:デフォルトの名無しさん
05/01/07 20:50:51
gccでビット操作するとき、鬱陶しくなるようなマクロをよく使うよね。
移植性を高めた結果、問題の起こりやすいビットフィールドなんか
使ってられるか、ってことなんだろうね。

473:デフォルトの名無しさん
05/01/07 21:31:07
>469
gcc3以降だと大丈夫じゃないか?

474:デフォルトの名無しさん
05/01/07 21:33:56
>>473
ごめん、そこまで詳しくは知らない

475:デフォルトの名無しさん
05/01/07 22:02:31
そういうのはasmを使えば簡単で確実。
GCCのasmはCとのインターフェースも簡単なんだからさ。
(C++ならうまくクラスを作れば、ソースを変えなくてもできるかもしれない。
まったくお薦めしないが)

Cのレベルではアクセス幅なんて決まってないんだから、ビットフィールドの幅を
どうしようとアーキにあわせた最適な幅でやっちゃうんじゃない?
それもI/Oなんかつながって無いつもりで。

で、GCCのその辺の設定は、mdファイルに書いてあるはず。


476:デフォルトの名無しさん
05/01/07 22:08:32
処理系の影響を受けない様にビットフィールドではなく
論理演算を使ったり、展開を読むことも考慮して可読性を高める様
に書く様にしている俺はチキンでしょうか?

極端な話、
  a++;
ではなく
  a=a+1;
と書きます。これならコボラーが入ってきても対応できる可能性があるからね。
展開効率を上げるのはコンパイラの仕事だしい・・・・・・

477:デフォルトの名無しさん
05/01/07 22:14:38
>>476
a++も理解できないコボラーに対応させることの方が怖い。
そのレベルだと、strcmp()使わずにポインタ同士を比較しかねないぞ。

478:デフォルトの名無しさん
05/01/07 22:20:45
展開を読むってなに?

ビットフィールドはコンパイラと心中するつもりでないと使わないよな。

479:デフォルトの名無しさん
05/01/07 23:39:08
>>469
> 「gcc使う場合、日立SHのサンプルソースはそのまま使えない。
> 理由は日立のサンプルがビットフィールド使ってるから」


日立のHPからダウンロードできるヘッダファイルのこと?
たしかにビットフィールドばんばん使っている。
でも、これがHEW以外で困るのは、
ビットフィールドの並びが普通と逆だからじゃなかったっけ?

480:デフォルトの名無しさん
05/01/07 23:45:35
>>479
逆だとしても、468の問題とは別だろ

481:デフォルトの名無しさん
05/01/08 00:40:39
>>479
ビットフィールドをバイトアクセスに展開してしまうgccの処理を問題にしていたと記憶してます。
本で読んだだけで、自分で試したわけじゃないです。


482:デフォルトの名無しさん
05/01/08 01:05:37
●5月7日
 ん? この割り込みプログラム、これでほんとに動くか?? と、うちのRISCキットを使ってテスト…
なんてしてるから、単行本の編集作業が終わらんのだよ(^^;) 
ん~そうか、日立純正Cコンパイラはビットフィールド演算してももとのレジスタサイズでアクセスされるのか…
それでこのソースうちのぢゃ通らないんだなぁ~などと納得。
URLリンク(www.cqpub.co.jp)

483:379
05/01/08 01:29:43
>>464
1999年8月1発行、Interface増刊TECHI
「SuperHプロセッサ(SH-1/SH-2/SH-3/SH-4のハード&ソフト完璧マスタ)」
P169:コラム1「日立純正Cコンパイラとgcc」より引用

gccは非常によくできたコンパイラです(一時は、日立純正Cコンパイラより断然性能がよいと言われた頃もあった)。
しかし、gccをSHシリーズで使用する場合には注意する点があります。それは周辺機能レジスタに対してビット名を使用したアクセスを行わないようにすることです。8ビット以外のレジスタ内容の参照や変更が出来ません。
(以下略)


484:デフォルトの名無しさん
05/01/08 01:53:44
>>483
乙彼
まさにその記事のことですわ

485:464
05/01/08 05:40:40
レス、サンクス。
結局マクロで組みなおすことになりました。

486:デフォルトの名無しさん
05/01/08 07:43:58
しかしそんな有名なバグがなんで直ってないんだろう。

487:デフォルトの名無しさん
05/01/08 07:52:46
>>486
この場合、バグは、I/Oなのにメモリマップにして、しかもバイトアクセスに対応しない自分勝手なボードの方だろう

488:487
05/01/08 07:59:07
さらに言うと、ビットフィールドをI/Oアクセスで利用しようという設計で
コンパイラを変更しようとしている甘えにも問題がある。

ワンチップマイコンでは強力なビット操作命令(I/Oにおいて特に有効な)をCから手軽に
利用出来るようにと、ビットフィールド関係を最適化して使いやすくした 専用Cコンパイラを
提供してくれている場合がある。

その場合、1ビット単位のI/O操作は当然ビットフィールドを使うのだけど、
それの方式が一般だと思ったり、移植可能と思っちゃいけない。

汎用性を考えるなら、ビットフィールドをそこで直接書かずに、マクロで抽象化してしまう事だ



489:デフォルトの名無しさん
05/01/08 08:21:31
>>487
この例は
デバイスがバイトアクセスに対応してないし、
そもそもメモリマップI/Oしか選択肢のないプロセッサの場合の話だと思うが

490:デフォルトの名無しさん
05/01/08 11:05:10
gccのバグではない
純正コンパイラが機能拡張させてるだけ

491:デフォルトの名無しさん
05/01/08 11:32:09
>>489
> デバイスがバイトアクセスに対応してないし、

だから、“PCIバスに接続された制御用カード”のバグじゃん

492:379
05/01/08 16:30:19
>>487
>I/Oなのにメモリマップにして
って、モトローラ系はもともとそうだとおもうけど
32bitでアクセスできないわけじゃなくビットフィールドが対応していないだけでしょ?

493:487
05/01/08 18:24:19
じゃI/O空間が無いCPUは絶対にI/O空間を使うPCIカードが使えないのか?
というとそんな事はないわけで、それぞれ使えるように工夫するものだし、そうじゃなければ逆に困るだろう。

I/OはやはりPCIバスのI/O空間に割り当てるのが正しい作法だろうと思うよ。

わざわざPCIのメモリ空間に割り当てたなら、バイトでアクセスしようが対応しなくちゃダメだろ。
 という話。
VRAMがRGBにわけてバイトでアクセスさせたらダメなんて事になってたら、ムカつかないか?

494:デフォルトの名無しさん
05/01/08 19:11:54
コンパイラは純正使ってれば間違いありませんし、高機能なものは無料
では手に入りません。あなた方の商売道具なのですよ?
         _, ,_ ∩
       ( ゚∀゚)彡☆ ソレミタコトカー
         ⊂彡

495:464
05/01/08 19:12:13
なんか、いろんな論議に発展してるな。

特殊用途の通信チップなのです。
アドレスの前半がレジスタエリアで、
後半数kバイトがバッファRAMエリア。
通常は32bit単位でしか使わないような仕様です。
もともと組み込み用途なので、
SHとかに接続するように設計されているチップみたいでした。

496:デフォルトの名無しさん
05/01/08 23:13:31
SHCなら、volatile修飾すればビットフィールドは宣言型サイズ(int b0 : 1;なら4バイト)で参照されるな。
H8Cなら、evenaccess。
gccも何かないの? 最適化をoffにするとか。

497:デフォルトの名無しさん
05/01/09 04:21:19
すまん
HEWも癖があるけど、
これ、やっぱり結局gccのバグなんだよな?


498:379
05/01/09 04:53:50
>>493
SHは、メモリマップドI/Oなんだけどな。
そういうことを話してるのとは違うのか?
PCIカードだろうがなんだろうが、メモリ空間にマッピングされるのが気に入らないのか?
ビッグエンディアンも気に入らない?

499:デフォルトの名無しさん
05/01/09 06:50:22
>>497
> これ、やっぱり結局gccのバグなんだよな?

バグ、バグ、って正直ウザイよ,オマエ。

所詮Cじゃバスアクセスの幅は規定されないから、
処理系依存は当然だ。それを使いこなせないなら
その人間がアホなだけ。

500:487
05/01/09 07:40:38
>>498
それはCPU側から見た話で、PCIカードのI/O空間をCPUのI/O空間にどう割り振るかとは別の問題だろう。

・CPUにI/O空間が無い⇒だったらPCIカード側もI/O空間を使わない方が楽だろ?

みたいな考えじゃないの?
だったら既存のPCIカードでI/O空間を使ってるものを全て使わないつもり?

501:487
05/01/09 07:55:30
そういや、少し前のC++Builderで バイト(char)でビットフィールド定義してたら
なんか1ビット不連続になってた事があったな。

確かにバイトでビットフィールド使うのはCの規格の範囲じゃないけど
あるコンパイラでバイトで定義するとそこを最適化してくれるものだから、使ってて、
それをC++Builderでデバッグしようとして、どつぼに嵌っちゃった

まあ、ビットフィールドには気をつけろってこった。

502:デフォルトの名無しさん
05/01/09 15:11:02
>>501
問題はビットフィールドでアクセスすると
「バイトアクセス命令に落ちる」ってことなんじゃないのか?

gccのバグというより処理系依存で作りこまれたバグとしか思えん
I/Oにビットフィールドきっても、実際にI/Oに設定に行くときはunion
使うなりなんなりしてレジスタサイズ丸々writeするけど。
MemoryMappedI/Oで利きもしないBit操作命令になんかに
落とされちゃたまらん。

503:デフォルトの名無しさん
05/01/09 15:57:55
ビットフィールドってAND ORもわからんアプリ屋が使うものだとばかり思ってた
・・・・・メリット、デメリットを計りにかけて設計・実装してますか?

504:デフォルトの名無しさん
05/01/09 16:07:02
>>503
出来上がるコードの違いわかってますか?

505:379
05/01/09 16:18:29
>>500
>だったら既存のPCIカードでI/O空間を使ってるものを全て使わないつもり?
PCIカードはいままでどおり勝手にすればいいのと違うか?CPUは、メモリマップするだけのこと。
すまないが、それが、ビットフィールドの不具合とどう関係するのか
漏れの不勉強な部分もあって、わからん。

もともと、ビットフィールドは使わないし。
どうせ、何ビットでアクセスしなきゃいかんのか意識しなきゃならないし
後で見て、どう定義されているか確認するのは避けられないから
直接、AND ORして、わかるようにコメント書いておしまいにしてる。

506:デフォルトの名無しさん
05/01/09 16:19:53
すべては仕様ですから~残念!

507:503
05/01/09 16:21:47
>>出来上がるコードの違いわかってますか?

全部、とは言いませんが、初めて使うコンパイラなんかだと、色々試して
アセンブラの展開を読んでからコーディング規約を作ってるけどね。
int , unsigned intの差とか、charの扱いとか、引数の渡され方とか、auto変数の
レジスタアロケートルールとか。etc etc

俺は>>476でもあるが、a++;とa=a+1;では、多くのRISCチップ様コンパイラでは同じ
展開になりますよ。

508:デフォルトの名無しさん
05/01/09 20:11:34
あーやっぱり>476は判ってない困ったチャンだったのか。

509:デフォルトの名無しさん
05/01/09 20:21:16
long *a = (long*)0;
long *b = a;
a++;
b=b+1;
if(a != b){
 printf("残念!");
}

510:デフォルトの名無しさん
05/01/09 20:31:12
>>502
バグはおまえの頭。

>>507
a++とa=a+1が同じだったら、a++の方が分かりやすいだろう。

あと、生成コードの癖はちょっと見ただけであたりを付けるとはまるよ。
コンパイラが保証していないことを独自に保証するには、相当の覚悟がいる。

511:476
05/01/09 20:51:31
>>508
御心配頂かなくても、弊社はコンパイラメーカでもあるから勘所はわかりますよ



512:デフォルトの名無しさん
05/01/09 20:58:12
>>511
でもあんたはコンパイラの開発にかかわってないだろ?

513:ライブラリアン
05/01/09 21:11:42
Cも大変ですね。その調子ではシステムの開発が
完了するか予測ができませんね。
やはりLABVIEWがいいな。

514:デフォルトの名無しさん
05/01/09 21:25:17
ビットフィールドだと、
数ビットあるエリアに値を書く必要がある場合は便利なんだがな…

515:デフォルトの名無しさん
05/01/09 21:27:25
>>511
大丈夫、あんたの事なんか心配してない。
都合のいいことだけレスしてそうでないことはスルーしているのが気に入らないだけ。
あー、もし私の仕事と関わりが出てくるようなら話は別だが。

>>513
中途半端な顧客だとLabViewだと納得してくれなくてね。
#判ってない客は動けばいいと言う。よく判ってる客はLabViewをきちんと評価できる。

516:487
05/01/09 21:35:06
>>505
だからさ、
ビットフィールドの内部操作をバイトで処理する実装をバグだというから、
それよりも、PCIバスボードのくせに、I/Oをメモリマップにして、しかもバイトイネーブルに対応していない
ボードの設計の方がバグだろうと 言ってるだけさ。

ビットフィールドの内部操作をバイトで処理する実装は、メモリが相手である限りはバグではない
正しい実装だろう。

517:487
05/01/09 21:40:00
>>513
パソコンならDelphiでやっつけた方が余程簡単で、しかもやっつけられる範囲が広い上
再利用性が高いよ。

今では
メータ類もポトペタしてプロパティ設定するだけ。
シーケンサとの通信もポトペタしてイベントにコード書くだけだし

目の前でコード作れますよ

518:デフォルトの名無しさん
05/01/10 00:24:47
>>416
はぁ ? 何が言いたいんだ ?
それこそ、ハッキリ書けよ。

> 余計な事を言って手間増やされちゃたまらんよ

君のことか ? (藁

>>418
OS としては全然大丈夫 Compact Flush はリードしかしないし、ファイルシステムは使い捨てだから。
(そのために、メモリー上にファイルシステムを作る。)

もちろん、データを書き込むデバイスは途中で書き込みが中断されることがあるけど、そこはソフトで何とかする。
例えば、ブロック単位で書き込みを行い最後にブロック毎のチェックサムを書き込む。
次回の起動時や別の機器でそのデバイスを読み出す時は、先頭からブロック毎にチェックしていってチェックサムが異常だったらその前までのデータを有効とするとか等。

>>449
> FAだとそこまで対策してるのは見たことないよ

まあ、FA と言っても色々だろうけど、君が見たことないからと言って世間にないわけじゃない。
あと、仮に対策していても取り説には「書込中は電源を切らないでください」とは普通書いておく。
なんかトラぶったときの保険としてね。

519:デフォルトの名無しさん
05/01/10 00:29:19
>>416
はぁ ? 何が言いたいんだ ?
それこそ、ハッキリ書けよ。

> 余計な事を言って手間増やされちゃたまらんよ

君のことか ? (藁

>>418
OS としては全然大丈夫 Compact Flush はリードしかしないし、ファイルシステムは使い捨てだから。
(そのために、メモリー上にファイルシステムを作る。)

もちろん、データを書き込むデバイスは途中で書き込みが中断されることがあるけど、そこはソフトで何とかする。
例えば、ブロック単位で書き込みを行い最後にブロック毎のチェックサムを書き込む。
次回の起動時や別の機器でそのデバイスを読み出す時は、先頭からブロック毎にチェックしていってチェックサムが異常だったらその前までのデータを有効とするとか等。

>>449
> FAだとそこまで対策してるのは見たことないよ

まあ、FA と言っても色々だろうけど、君が見たことないからと言って世間にないわけじゃない。
あと、仮に対策していても取り説には「書込中は電源を切らないでください」とは普通書いておく。
なんかトラぶったときの保険としてね。

520:デフォルトの名無しさん
05/01/10 02:43:48
Flushなんて書いているあふぉはほっとこ。

521:デフォルトの名無しさん
05/01/10 02:59:44
>>516

> ビットフィールドの内部操作をバイトで処理する実装は、メモリが相手である限りはバグではない
> 正しい実装だろう。

だからさ、
メモリを相手にするばかりじゃないわけだからさ、
実際SHなんかだと、そういうケースが多いし、
ビットフィールドで書けたら、そっちの方が便利なわけで
いくら「正しい実装」だろうと、不便だとみんな言ってるんでないのか???

522:デフォルトの名無しさん
05/01/10 03:06:04
>>521
メーカーのコンパイラ使えばいいだけだろ?
いつまでも何を言ってんだ。

523:379
05/01/10 05:00:02
>>516
>PCIバスボードのくせに、I/Oをメモリマップにして
H8/SHで、I/Oをメモリマップ以外にできるのかな?

>バイトイネーブルに対応していないボードの設計の方がバグだろうと 言ってるだけさ。
バイトアクセスを保障しない仕様はよくあるけどな、内部レジスタでもなかったかな。
PCIのボードだけは保障するべきだということかな?

そもそも、ビットフィールドはANSIの仕様で、
定義したビット数でアクセスすることを保障しているのだろうか?


524:487
05/01/10 07:46:05
>>521
誰も保障しろとまで書いてないだろ?

ビットフィールドの内部実装でバイト単位にアクセスするコンパイラと
どっちがお馬鹿な実装かって話しをしてるだけさ。

PCIボードの実装で、メモリー空間に割り付けてバイトイネーブルに対応しない事と
メモリ空間しかないCPUで バイトでアクセス出来ないI/Oとを一緒にしてくれるなよ。
 16ビットのカウンターを8ビット単位に書き出すのは、それは馬鹿だろ?

だから、ビットフィールドの定義なんて読んだって、そんな細かな事は書いてないだろ。
どっちから確保されるかさえ書いてないんだからさ

525:487
05/01/10 08:05:52
面白いので調べてみた
URLリンク(www.asahi-net.or.jp)

>失望と誤解
>以下の問題が存在することは残念ではありますが、実際にこれを回避するための方法を私たちは1つも知りません。


ビットフィールドへのアクセスは、たとえアクセスされるビットフィールドがvolatile指定されたオブジェクトの一部であっても、
1バイトや1ワードなど、よりサイズの大きいオブジェクトにアクセスすることによって動作します。
ビットフィールドの読み込みや書き込みを行うために、ある決まったサイズのオブジェクトが
アクセスされるということをあてにすることはできません。同一のビットフィールドであっても、
その用途に依存してアクセスされるサイズが変わってくることもありえます。
アクセスされるメモリのサイズを制御することに関心があるのであれば、
volatileを使い、ビットフィールドは使わないでください。


526:デフォルトの名無しさん
05/01/10 09:13:32
>>521
だったら、自分がそういう実装のコンパイラを作れよ。
GCCを改造すりゃいいだろ?

たぶん、それを要望してもそういう実装をしようという奴は少ないと思うよ。
ビットフィールドそのものが実装は厄介な上、実装時も実行時も非効率。
かつ実際に、めったに使われない機能。
喜んで使うのは小規模組込屋くらいだろ。

実際、他の言語でビットフィールドもどきをサポートしてるのは殆どない。
似た機能としてはpascalの集合型くらいだろうけど、
これは1ビット単位だから、複数ビットのフィールドを定義出来るCのビットフィールド
に比べると簡単だしな

527:ライブラリアン
05/01/10 09:27:49
>515

>#判ってない客は動けばいいと言う。
>よく判ってる客はLabViewをきちんと評価できる。

これはいい指摘だ。お客のことが言いたかった。
皆さんのマニアックなレスを読んで何の為に仕事を
しているかの一端が分かった。それはお客に評価されるためだ。
私の喜びはお客に評価して貰うことだ。
「あなたの作ったシステムはとても役に
たつよ」、「上司からいい評価をもらったよ」
「リピートを出すよ」「新しい案件があるので、是非あなたに
やってもらいたい」と言われることだ。


528:デフォルトの名無しさん
05/01/10 09:39:30
>>527
いや、だからあなたが優秀な営業マンである事は判ったけどさ、
しまいにはPCを車載でも平気で採用しそうな勢いだな。
・・まあ、超小ロットの特殊仕様車じゃそういうのもアリかもしれんけど・・・

529:デフォルトの名無しさん
05/01/10 10:14:24
>>520
Typo しか指摘できないということで FA ?

530:デフォルトの名無しさん
05/01/10 10:38:10
わたしゃ519じゃないが、フラッシュメモリの英語表記(?)は
Flushでも間違ってないよ。Flashの方が圧倒的にメジャーではあるが。

むしろこんなことも知らない奴は普段ちゃんと石のデータシート読んでるのかと
問い詰めたくなる。

531:デフォルトの名無しさん
05/01/10 10:39:57
SHでビットフィールド実装するとして 値1を書き込む場合、

バイトreadして 即値or して、バイトwrite って事になるのが普通じゃない?
だって8ビット以上の測値はpc相対オフセットで読む事になるから
命令も長くなるしさ。

int幅だから32bitでアクセスしろって事?
で、charで指定した場合だけ8ビットでアクセスしろって贅沢言うわけね?
しかしさ、int以外のビットフィールドはANSIじゃないでしょ?

というかさ、ビットフィールドの型は、本来、そのビットを どう型変換するかって意味じゃないの?
だから  signed かどうかで 1ビットが1になったり-1になったりするだろ?

532:デフォルトの名無しさん
05/01/10 10:55:15
話は少しそれるが、ISO/ANSIの言語仕様で、

objectの型がvolatileの場合はメモリ参照サイズ = 型のサイズになる
(たとえば struct S { volatile int bit1 : 1; } b; ならb.bit1の参照時には常に4バイトアクセスコードがでる)

という保証はないの? いままでそういうつもりで使ってたんだけど…

533:デフォルトの名無しさん
05/01/10 11:24:12
>>532
無いでしょ。
それは構造体 S で 1bit の領域を定義して、そのbit1を int で参照しますという意味じゃないの?
普通はintは符号付だから 結果は 0か-1になる筈だけど
ANSIでは、どっちでもいいとしてるもんだから混乱の元
(コンパイルオプションで変更出来るものも多いようだけど)



534:デフォルトの名無しさん
05/01/10 13:13:02
>>532
ANSIの仕様は忘れたが、うちのコンパイラでは保証してる。
以前、そういう例に対して、最適化して1バイトアクセスコードを出すようにしたら、
顧客からがんがん苦情がきたよ…。


535:デフォルトの名無しさん
05/01/10 14:15:03
>>534
532はISOで保証される(処理系依存ではない)か
聞いているのに、オマエ馬鹿だろ。

コンパイラで保証されるものがあっても当たり前すぎる。

536:デフォルトの名無しさん
05/01/10 15:25:34
バイトアクセスに最適化してくれた方が性能出る場合に、
どっかのバカを救うためにいつもワードアクセスされた方が困るがな。

Cは生成コードが想像つきやすいこともあって、「想像」=「事実」と
勘違いしてしまう人も多いのかな。

537:379
05/01/10 16:31:54
>>534
>ANSIの仕様は忘れたが、うちのコンパイラでは保証してる。
つまり、ANSI準拠というわけではないということですか?
別にそうでも構わないし、ヴァカとは思いませんが。


538:デフォルトの名無しさん
05/01/10 17:06:07
68020なんかのCPUでは、ビットフィールド命令を使用するか否かの
コンパイルオプションがあったので、
アクセス幅設定のオプションもあるかなと思ったわけですが、
無いんですね。

539:デフォルトの名無しさん
05/01/10 17:07:26
該当するbitに対してのみvolatileが保障される

540:デフォルトの名無しさん
05/01/10 17:29:33
>>533
今ANSIの仕様書をみてるんだが、その辺の事情はどの辺を読めばわかる?
volatileの項とかみたけどよくわからん。

541:デフォルトの名無しさん
05/01/10 18:37:40
このスレ、ツール屋も結構混じってるな・・・・・・
CM
 コンパイラ、ICE、評価ボードはお金を払って買いましょう。
 いや、買ってください。m(。。;)m

542:デフォルトの名無しさん
05/01/10 19:11:04
>>540
ビットフィールドとvolatileは無関係。

ビットフィールドの値の符号有無しは規格では決まってない。処理系で規定する
ことが求められているのは、領域の埋めかただけだな。
volatileオブジェクトは処理系の外で変化するかもしれないから毎回アクセスする。

書いてないことは保証されていない。


543:デフォルトの名無しさん
05/01/10 19:39:35
>>542
ありがとう。
volatileがある時にメモリアクセスサイズが保証されるかを調べたかった。

> 書いてないことは保証されていない。
そうだね。
しかし、どこにも書いてないことを確認するのが大変だ…。
直接書いてなくても、あちこちの記述をつなぎあわせると
規定されていることがわかったりするし。
以前、識別子のスコープルール(block scopeの生成条件)を調べるのに一日かかったよ。

544:デフォルトの名無しさん
05/01/11 01:24:34
>>537,379
処理系依存だったら処理系が保証して当然。
保証しなくていいのは不定な動作だけ。
まぁ、馬鹿には分からんかもしれん。

545:379
05/01/11 01:36:12
釣られて言えば、
処理系依存なら処理系の勝手

546:デフォルトの名無しさん
05/01/11 07:19:09
処理系定義(implementation defined)
未規定(unspecified)
未定義(undefined)

を区別しよう。

547:デフォルトの名無しさん
05/01/11 21:09:28
>>464
すごい燃料だな・・・・・まだ燃えてるよ・・・・

548:デフォルトの名無しさん
05/01/11 22:29:57
ビットフィールドは便利なようだが処理系依存なので使わないのが吉。

ビットフィールドは使わずにビット操作。
なおかつアセンブリで8bit/16bit/32bitでread/writeする関数を作成して使っている。
さらにコンパイラ/ターゲット依存を覚悟で、
inlineかつインラインアセンブリな関数にしている。

コンパイラ変更あるいはターゲット変更でも、
read/write関数を直すだけですむので無問題。
ビットフィールドは、あっちこっち直す羽目になるので問題大。


549:デフォルトの名無しさん
05/01/11 23:01:08
途中からコンパイラを変更するなんてあるの?ちょっと信じがたい。
まあソースの再利用はあるかもしれないけど。

550:デフォルトの名無しさん
05/01/12 01:22:07
つか、組み込み屋がIOアクセスするのにビットフィールドを平気で使うこと
自体が折れには到底信じられないんだが・・・・。使わないことが常識だと思ってたよ。

>>519
書き込み可能なデバイスで、書き込み中に電源断しても、デバイスのその後の動作に問題が
発生しないことを保証するものはあまりない。SDカードやCFなんてのも普通は全くの保証外。
壊れても文句言えない。少なくとも、ちゃんとデバイスメーカーに確認してから使えよな。
ま、保証してくれるかはわからないが(w

551:デフォルトの名無しさん
05/01/12 03:20:02
>>550
> つか、組み込み屋がIOアクセスするのにビットフィールドを平気で使うこと
> 自体が折れには到底信じられないんだが・・・・。使わないことが常識だと思ってたよ。

しかし、組込屋が使わないとなると誰が使うんだ?

552:デフォルトの名無しさん
05/01/12 04:50:09
おう、組み込み屋じゃない漏れはよく使うぜ。

553:379
05/01/12 05:26:37
>>551
むしろ組み込み屋じゃないほうが良く使うと思う。

554:デフォルトの名無しさん
05/01/12 06:45:49
俺もビットフィールドは嫌いだが、メーカーの提供しているヘッダファイルの
IO定義がビットフィールドを使ってるしなあ( SH/H8)。

555:デフォルトの名無しさん
05/01/12 13:03:34
まあ、取り込み作戦なんだろうけど、それを使ってもさらに抽象化しとくべきだろうな

556:デフォルトの名無しさん
05/01/12 13:26:12
>>553
ドライバ屋さんはI/Fは用意してくれるがビットに詰めるのこっち任せだったりするからね。


557:デフォルトの名無しさん
05/01/12 13:32:08
質問です。
デバイスドライバを書くときに、デバイスのどういうことを調べていくのが一般的ですか?

558:デフォルトの名無しさん
05/01/12 19:01:21
デバイスドライバを書くときは、デバイスがどういうものかを調べていくのが一般的です

559:デフォルトの名無しさん
05/01/12 19:26:26
>>558
参考になりました!ありがとうございます!!!

560:デフォルトの名無しさん
05/01/13 00:35:39
なったのかよ!

561:デフォルトの名無しさん
05/01/13 01:22:49
>>560
いいえ、皮肉です。

562:デフォルトの名無しさん
05/01/13 06:33:58
むしろ果肉

563:デフォルトの名無しさん
05/01/13 12:48:41
>>557 マニュアルはたいがい「このレジスタにこれを書くとこう動く」式で書かれてるね。
その中から、「アプリからこう使えれば便利だな」を抽出するように読もうとしてるよ。
機能レベルでそれを把握してから、時間的な条件(割り込み発生のタイミングとか、
許されるディレイ)、制約条件(この使い方のときはこっちがダメとか、書き込みと
割り込みが同時に起きたときどっちが優先、とか)の所と照合すると、間違った使い方
しようとしてないかの検証になる。

564:379
05/01/13 18:07:44
>>557
どう動かすかということはもちろんだけれども、
どう抽象化するかが上手い下手になると思う。
そのために操作の単位がどうなるのかを調べる。
そんな風に、設計してます。

565:デフォルトの名無しさん
05/01/14 21:44:36
はじめまして、一つ伺いたいのですがよろしいでしょうか?

あるRAMエリアに対して0でクリアしたあと本当に0になってるか
チェックする処理を作りたいのですが、とにかく処理時間重視と言われました。

処理能力を気にしないので良いなら悩まなくても良いんですが、
どういうロジックを組めば最も高速にクリア&チェックできるか私の頭ではわかりませんでした。

言語はCですが、処理能力考えるとアセンブラで組んだほうがいいような気もします。
何かよい知恵がありましたら教えてください。

566:デフォルトの名無しさん
05/01/14 21:45:34
あと、使ってるのはSH-2です。

567:デフォルトの名無しさん
05/01/14 21:51:01
>>565
どうやったらいいのか
どこで差がつくのかわからん

568:デフォルトの名無しさん
05/01/14 22:05:17
クリアした後
本当に0になってるかチェックした後
本当に0になってるかチェックした後
本当に0になってるかチェックした後
本当に0になってるかチェックした後
本当に0になってるかチェックした後
……

569:デフォルトの名無しさん
05/01/14 22:45:21
・・・・・よし、明日の朝はトーストとハムエッグにしよっと。

570:デフォルトの名無しさん
05/01/15 00:44:15
埋める方をDMAのバースト転送を使ってやる。
ただし、転送元は内部レジスタで0になってるとこ。

チェックはソフトで地道に。

これで、全体的には速くなる(w

571:デフォルトの名無しさん
05/01/15 01:39:09
>>570
CPUからメモリへの書き込みパスがチェックできてない。
…ということを考える必要があるかな?

572:デフォルトの名無しさん
05/01/15 02:22:53
私は普通にmemsetで0にクリアして、その後そのRAMエリアを読み込んで
0と比較すれば良いと思ったんだけど、処理能力、処理能力いうんですが
やっぱり大きく変わるんですかね~?

一番大きいバッファでもクリア&チェックする領域は64KBぐらいです。

573:デフォルトの名無しさん
05/01/15 03:35:19
どれくらいの速さが要求されているのかにもよるな

574:379
05/01/15 04:01:11
>>565
なんで?

575:デフォルトの名無しさん
05/01/15 05:20:41
>>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) ) で、クリヤされたと判定

576:デフォルトの名無しさん
05/01/15 05:44:56
指示出した奴が評価できるとは思えんので、なにやってもヨシ

577:デフォルトの名無しさん
05/01/15 06:44:27
バッファの先頭・終端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されてない時は前後に補償コードを追加)。


578:デフォルトの名無しさん
05/01/15 09:34:50
ゼロになってるか判定するコードだね。確かにバイトでやるより速い。
どうせならforの中で、resultが0でなければreturn 0、forが終わったらreturn 1に
してほしかった。 もっと速さを要求されるなら、書き込んで読みそれがゼロか見るループを
書けばいいが、そのとき最適化によって書いたメモリを読まずに書き込んだレジスタのほうを
判定するコードが出されることがよくあるので注意が必要。

579:デフォルトの名無しさん
05/01/15 11:02:18
その程度の処理ならタコな書き方しなければ大差ないだろ。
それより0書いて0読んでテストできた気になってる方が問題 ヽ(´ー`)ノ 


580:デフォルトの名無しさん
05/01/15 11:07:44
>>578
> どうせならforの中で、resultが0でなければreturn 0、forが終わったらreturn 1に
> してほしかった。
せっかくビットORを使ってループ中の分岐を減らしてるのに、それじゃ意味がないと思う。

値が0でないメモリが見つかる(= 書き込みが失敗していた)ケースは
滅多にないはずだし。 

581:デフォルトの名無しさん
05/01/15 11:26:46
>>578
volatile

582:デフォルトの名無しさん
05/01/15 12:10:45
みなさんありがとうございます。

・・・というとCでもアセンブラでも大差はないということでしょうか?
0でクリアした後0でチェックするのは、ちょっと他の所で問題があったらしいのです。

なので私は最初あるバッファに対し0xB6を書いて読んでチェック、0x49を書いて読んでチェック
その後0でクリアして0でチェックという関数を作った矢先、処理能力云々言われ
今に至っているんです。

消すバッファが最初は2つぐらいで良いといってたのに、
最終的には処理の中間に生成するバッファも含めてやばそうなバッファ全部消せ
ということで処理速度をさらに重視した次第・・・らしいです。



583:デフォルトの名無しさん
05/01/15 13:10:09
素朴な疑問。
書き込みに失敗してたらどうするんだろ。

584:デフォルトの名無しさん
05/01/15 13:13:52
マーチングテスト最強

585:デフォルトの名無しさん
05/01/15 14:28:55
582>キャッシュのことは考慮済み?

586:デフォルトの名無しさん
05/01/15 15:15:03
SH2はキャッシュがあったかどうかしらんが
キャッシュがあるCPUだとキャッシュに書き込んでいるだけになることもあるよな

587:デフォルトの名無しさん
05/01/15 16:00:34
そこでランダムリプレースアルゴリズムのキャッシュですよ。

588:379
05/01/15 16:26:19
で、どうして、書いたものが保証されないという事態がおきる?
RAMに書いたものが保証されたないって、スタックも保証されない?

589:デフォルトの名無しさん
05/01/15 16:33:37
>>582 584の言ってるのは55,AA,FFを書いた後00にする検査のことね。585,586,587はそこまで
問題にならないとおもう。583のギモンに対して特に対処策がないなら、単にmemsetでゼロを
書くだけでいいと思う。B6/49という値に何か意味はあるの?

590:デフォルトの名無しさん
05/01/15 16:36:42
たしかに、書いた物が保証されないって、RAMが別チップでチップセレクトがちゃんと出てないとか、
そんな事態ぐらいしか想像できないね。そんなのハードのアドレスデコード部分のバグだから
よっぽどのことがないとお目にかかれないぞ。

591:デフォルトの名無しさん
05/01/15 16:59:24
PCのBIOSがメモリチェックやるのはあれは何のため?

592:デフォルトの名無しさん
05/01/15 17:54:53
あれは「仕事してま~~す」というデモンストレーション」なだけ

593:デフォルトの名無しさん
05/01/15 17:57:40
>>591
PCのメモリは、
ソケット着脱式だから、
 メモリをユーザが取り替えているかもしれないから、少なくとも容量はチェックしないといけない
 もしかして接触不良があるかもしれない


594:デフォルトの名無しさん
05/01/15 18:23:24
>>590
バグと言うか、製造後の不良品のチェック用に商品に検査モードを搭載してるけどな。
RAMのアドレスバスのショートのテスト、データバスのショートの検査とかも入ってるよ。
55,AA,FF、00もそうだし、0x01,0x02,0x04,0x08,0x10・・・・・の様にデータバスのビット
立てたり、書いた後でアドレスバスがショートしてた場合の該当アドレス参照したり。

595:582
05/01/15 18:53:33
大きなことではいえませんが
昔はそのバッファは消していませんでした。
次の取引で「上書きされるだろう」とのことで・・・(処理時間を気にした結果、消さなかった)

しかし、前回のバッファが上書きされること無く悪さしたため大変なことになりました。
よって今回、いちいちそのバッファに情報を書き込む前に前回情報を消して、
本当に消えてるかチェックするという事態になりました。



596:デフォルトの名無しさん
05/01/15 19:28:15
ありがちな話だ…

597:デフォルトの名無しさん
05/01/15 20:31:30
要はバグを修正せずに小手先で逃げているわけか。
桑原桑原。

598:デフォルトの名無しさん
05/01/15 20:40:07
>>588
RAMは良く壊れます。ハードエラー(故障)だけでなくソフトエラー
(α線などによる)もあります。
RAMだけECCやパリティチェックを入れたりしているハードウェアもありますよね。

>>595を見るとそういう話でないようだけど。チェックの意味ないじゃん。


599:デフォルトの名無しさん
05/01/15 21:24:10
>>582
気が弱そうだな。そんなんで やっていけるのか?心配だな。
・・・・・・・・・・・・・・なんか小腹がすいたな。>>582よ。メロンパン買って来い (・∀・)ノシ

600:デフォルトの名無しさん
05/01/15 21:36:42
オレ午後ティー

601:デフォルトの名無しさん
05/01/15 23:46:35
>599
いえ・・・まだ新人なのもで社会人として一年も経験してませんし。
組み込み系に流れ着いたのも何かの縁、がんばります。

ところで制御系といっても同期はなにやら違うことをやってます。
なんていうかGUIでなにやら作っている感じです。(詳しくはわかりませんが)
なのでアドレスのことやI/Oのことなど特に意識してないようです。

私はSH-2でモータとか回してます。制御系といっても色々あるんですね。



602:デフォルトの名無しさん
05/01/16 04:39:02
いろいろあるよ。俺はリレーの開閉とか無線の周波数作るシンセの制御が多い。
どの分野でもシリアル通信のプロトコルは勉強しとくといいよ。割り込み、リングバッファ、
ACK/NAK、チェックバイト、再送云々・・・殆どの機器で付いて回るから。

603:デフォルトの名無しさん
05/01/16 13:22:13
>>602
>無線の周波数作るシンセの制御
これってDDS?

604:デフォルトの名無しさん
05/01/16 15:24:06
DDSにしても直接プログラムで作り出すのは無理っぽいね

605:デフォルトの名無しさん
05/01/16 15:31:28
DDSコントローラーのレジスタに書き込んで
あとはおまかせポン
ソフトだけじゃ周波数合成に専念させても数十kHzが限度

606:デフォルトの名無しさん
05/01/16 17:05:51
>>601
>なんていうかGUIでなにやら作っている感じです。(詳しくはわかりませんが)

多分、操作画面を作ってるんじゃないの?
タッチパネルとか、PCからコントロールするためとか。

607:デフォルトの名無しさん
05/01/16 19:46:19
「画面屋」にされると悲惨。なにもわかってないアホの出来上がり

608:デフォルトの名無しさん
05/01/16 21:48:18
>>607
ユーザーインターフェイスの部分は割りとスキルの面ではコアな部分じゃないからな

609:デフォルトの名無しさん
05/01/16 22:27:35
>>608
あら、ヒューマンインターフェースはそれだけで研究価値があるものだよ。

610:デフォルトの名無しさん
05/01/16 22:36:16
>>609
研究するならいいんだけど
ただ仕様に沿って実装するだけってなると
得るモノが少ない鴨。


611:デフォルトの名無しさん
05/01/16 23:00:29
>>609-610
どっちも言えてる
ヒューマンインターフェイスと言っても、自動車の制御などのように
人間の感性に関わるようなところは一つの研究テーマになる
しかし、普通の仕事をしていると、お客様苦情受け付け窓口になるw

612:デフォルトの名無しさん
05/01/17 13:52:19
>>597
バグと言うよりも最初の設計が間違ってたんだな。

>>595
>次の取引で「上書きされるだろう」とのことで・・・(処理時間を気にした結果、消さなかった)

「~だろう」ってのが技術屋として失格。ハードだろうがソフトだろうが
検証してない事を仕様にしちゃあかんよ。だから今回のような問題が
起きちゃう訳で。

613:601
05/01/17 20:53:13
みなさんご意見ありがとうございます。
明日、工場へ行ってレビューらしいので先輩についてレビューに参加します。


あと・・・やっぱり、アセンブラの知識は持っていたほうが良いのでしょうか?
一応ICE上でデバッグするとき、たまに見たりはします。SHのマニュアル見ながら。

あと春に無謀ですがエンベを受けようと思っています。
もし、新人(理系以外の人)に対して、これは知っておけ!!みたいなものがありましたらご教授お願いします。

614:デフォルトの名無しさん
05/01/18 00:06:57
>>613
エンベは無謀
午前で足切りされるぞ



615:デフォルトの名無しさん
05/01/18 00:22:53
>>614
・アセンブラがわかる ..... 言わずもがな
・データシートが読める ... 必須
・回路図が読める ......... 当然
なんてのは普通でしょ?
と言い放つもラダーチャート組めとか云われた日にゃ四苦八苦
まぁあれだ、制御系にも色々あるってこった

616:615
05/01/18 00:25:51
あぁ、すまん
>>614>>613 の間違いです


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch