制御系なら俺に聞いてもいいぜ(5)

このエントリーをはてなブックマークに追加
11
俺は俺であり、それはお前の事だ。
ハード寄りの話も大歓迎だ。
道具話も楽しくやれるならやってくれ。

過去ログ
制御系なら、俺に聞け!
http://pc3.2ch.net/tech/kako/1002/10021/1002176627.html
制御系なら俺に聞いてもいいぞ(2)
http://pc2.2ch.net/tech/kako/1038/10380/1038094914.html
制御系なら俺に聞いてもいいぞ(3)
http://pc2.2ch.net/tech/kako/1059/10594/1059488975.html
制御系なら俺に聞いてもいいぞ(4)
http://pc2.2ch.net/test/read.cgi/tech/1068869894/
関連過去ログ
●●●くみこの組み込み相談室●●●
http://pc3.2ch.net/tech/kako/988/988084737.html
>>1
すみません。棒がなかなか立てられないんですが。
>>1
お疲れ様。 
>>2
倒立振子? 楽しそうだよね。
5制御シミュレーションしたい:04/03/13 09:19
PC+I/Oカードから、アナログ入力して、動的に動く、制御シミュレーションを簡単にやりたいのです。
言語はVBで組みたいのですが、何を参考にすればよいでしょうか?
>>5
?

機械の代わりにプログラムの機械モデルを動かすって事ですか?

取りあえず回路の電気特性とか入力に対する道徳性とか?
電気・電子板
http://science2.2ch.net/denki/
8制御シミュレーションしたい:04/03/14 17:30
>>6
機械の代わりにプログラムの機械モデルを動かしたいのですが、、、
>>8
そうか、そういう事ならちょっとこのスレには合わないかな。
閑古鳥が鳴きまくってる上に厨な板で処で悪いのだが、
http://science2.2ch.net/sim/

こっちにスレたてなさい。 タイトルは
「初心者がVBで作る機械のシミュレータ」

中身は>>5+>>8ね。

スレたてたら、リンクをこっちに貼れば、タマに覗いてあげるよ。
>>4
先輩が棒をぐるぐる振り回して遊んでただんだけど。あれってホントは何するもの?
>>10
宝探しとか地中に埋まってる水道管を探り当てたりとか。
>>10
倒立振り子

>>11
井戸掘るときに実際見たよ、グルグルはまわさんかった
今まで業務系の仕事をやっていたのですが、いきなり制御系にいけといわれ
テストが渡されました。何をみてもいいと言われてるんですが、もう時間が
ないです・・ 板違いとは思いますが誰か助けてください・・・
多分簡単な問題だとは思うのですが、さっぱり分かりません。

問題 V0は何[V]ですか?

5[V]
-○-
  l
  >
  > 4.7kΩ
  >
  l______○
  l          ↑
  >         l 
  >          l ←V0
  > 3.3kΩ     l
  l          l
  l          l
  l          l
  l          ↓
  ---
  ///
テンプスタッフへ電話しな
>>13
V0=5÷(4.7+3.3)*3.3
1613:04/03/16 01:19
<<15
ありがとうございます!
回路電流 I=E/R=5/(4700+3300)=0.000625
V0電圧 E=IR=0.000625*3300=2.0625
>>13
教科書のオームの法則のページを見れ。
それでわからないならまじであきらめろ。
>>13
ネタだろ?
厨房の理科レベルだぞ
>>19
あほか、アースなんぞ出てこん。
21デフォルトの名無しさん:04/03/16 23:27
カーボンで5/(黄紫赤+橙橙赤)*橙橙赤
チップで5/(472+332)*332
最近のチップは小さすぎて見ずらくなった。
グランド
>13へのテストは数値の答えよりも問題を解くために
とった手段を問われていたのではと妄想

”2chで聞く”は何点と採点されるのかね
24デフォルトの名無しさん:04/03/18 12:37
>>23
鋭いなー。

漏れも業務系から制御系に一人で放り込まれたが、どうにかなってる。
やってる事のレベルが低いだけかも知れんが。
25デフォルトの名無しさん:04/03/20 07:27
>>5
コンテックのアナログ入力ボードを使えば小学生でも制御系はマスターできます。
VB用DLLも付属しているので、簡単にPG可能です。
VBのタイマーは精度が悪いので、高精度タイマーは別途作る必要があります。
26デフォルトの名無しさん:04/03/24 09:39
普通にプログラム(C、JAVA)やるよか
こういった制御系のほうがイイメリットとかありますか。
>>26
どういう立場の人の話を聞きたい?
どういう立場があるのでしょうか?
過去ログ2より


3 名前:1 投稿日:02/11/24 09:02
就職相談の話題が循環するから先に答えておく。

好きならやれ。
他に選択肢があるならそっちをえらべ。
自分が選んだ、なりたい自分になれ。

以上。
30デフォルトの名無しさん:04/03/24 10:55
パラレルポートにCでアクセスする方法を教えて下さい。
ちなみにOSはXPでつ。
>>26
イイメリット>ワルイメリット>イイデメリット>ワルイデメリット
こんな感じでいいのか?
制御系なんてメリットがあるからやるんじゃなくて、
やるしかなかったり、やる事が決まってる人がやるもんなんだよ。
つーか、俺なんかCPU廻り設計してたH/W屋あがりだからねぇ

H/W設計しろといわれた方がなんぼかマシ
35デフォルトの名無しさん:04/03/29 22:53
>>30
giveio.sysっていうやつを使うと、Win9xと同様に
inp(),outp()命令で直接アクセスできるようになるよ。
Jiniに勝利したUPnPの次の一手は
2002/11/12

Windowsのプラグ&プレイをネットワーク機器や家電に拡張したUPnP(Universal Plug and Play)についてのデベロッパ向けイベント
「Universal Plug and Play Forum Asia Summit in Tokyo」が始まった。UPnPの標準化団体「UPnPフォーラム」には、
ハードベンダを中心に現在、524団体が参加しているが、UPnPはもともとマイクロソフトが提案した規格だけに、Windows関連の話題が多かった。
マイクロソフトのConnected Home Technical Evangelist スコット・マンチェスター氏。UPnPをサポートするルータを掲げて対応デバイスの多さをアピール
11月11日に講演した米マイクロソフトのConnected Home Technical Evangelist スコット・マンチェスター(Scot Manchester)氏は、
UPnPについてのこれまでのフォーラムの取り組みを振り返り、「仕様は充実し、認証済みデバイスの配備も開始された」と評価。
「Windows Me、XP、CE.NETでサポートされているが、次のWindowsでもサポートする」と明らかにした。
現在UPnPフォーラムが標準化に力を入れているのが、UPnPのバージョン2。バージョン2ではWebサービスとの連携を強化させる。
スコット氏によると、フォーラムはバージョン2にWebサービスの記述言語であるWSDL(Web Services Description Language)を採用。
現在、バージョン2のアーキテクチャ定義のための委員会を設置して討議を続けているという。
UPnPデバイスとWebサービスが交信できるようプロトコルや開発ツールの統一を図る。

マイクロソフトが主に主導するUPnPに対して、サン・マイクロシステムズは同様のコンセプトの技術「Jini」を推し進めていた。しかし、
最近ではJiniの話題を聞くことも少なくなってしまい、普及も進んでいない。JiniはJavaを基に開発され、プラットフォームを問わずに広く稼働することが特徴だったが、
利用できるデバイスの数などから言えば、マイクロソフトがサンとの規格争いに勝利したといえるだろう。



まあJava厨は知っている単語を並べているだけで、その技術の意味すら理解できないようだ。
>H/W設計しろといわれた方がなんぼかマシ
禿堂
34 □ デフォルトの名無しさん □ sage □ 04/03/26(金) 01:50 □

仕事が選べる>26に惚れますた
また新しい石: 客に言われたよ
   1. 自作評価基板の不具合 ---> クリア
2. C コンパイラの不具合
3. CPU コアの不具合
4. CPU 内臓周辺回路の不具合
5. プログラムの不具合
どこに問題があるとしても、プログラムで回避するしかありません。

もう、出るわ出るわ(^o^)・・・ 客がまた言うの。「枯れた物使ってると商売にならないの」
まあ、ここのメーカーがわりとまともで、しらを切ったりせずにバグはバグとして公表して
くれるからよかったけどね。
>4. CPU 内臓周辺回路の不具合
生体CPUなのかな?
4139:04/04/05 20:06
変換ミスですがな。5.はこれから山ほど出すのですが、
2と4を踏んづけてしまったよ。 さすがに3はなかなか出会えません。
4239:04/04/07 20:13
WDT割り込みが実機だとうまく動いてくれない。これはまだ未解明。
ああ、あるよね。使える筈といわれたアドレッシングモードが特定の命令だけで使えなかったり
今回は偶数アドレスでも大丈夫ですよと言われたのにやっぱりダメだったり
44デフォルトの名無しさん:04/04/09 17:17
2Mbpsで同期シリアル通信を行うターゲットボードがあります。
H8/300Hなどを使うと、2Mbpsの同期シリアル通信が可能だということがわかった
のですが、このターゲットボードが、3bitとか15bitといった、8bit単位ではな
いシリアル通信を要求しています。

H8/300Hの同期シリアルは8bit単位での通信になるので、実現は不可能だと思い
ます。GPIOだと2Mbpsは速度的に難しいでしょうか。

なにか良い方法(1bit単位で同期シリアル通信ができるボード等)は無いでしょ
うか。
>>44
オーバーランした際の仕様を調べろ

受ける方はどうにでもなるだろ
46デフォルトの名無しさん:04/04/10 00:26
>>45
オーバーランしてはダメな仕様です。
>>44
クロックいくつで動かすのかわからんが、GPIOでは無理だろう。
まずボード作った奴にどういうデバイスで制御されるのを想定したか相談しろ。
>>44
同期クロックはどっちが供給するの?
もしこちらから供給するのなら、正確に2Mbps供給する必要はないんじゃない?
間延びが許されるのなら、GPIOでパタパタやっても大丈夫なのでは?
4944:04/04/10 22:04
>>47
当初の構想では、秋月のH8マイコンボードを使うつもりだったので、
CPUクロックは16 or 18MHzです。

>>48
クロックは、今から作るボード・プログラム側が供給します。(マスタ)
ターゲットボードがスレーブになります。

そのターゲットボードが2Mbpsで動くかどうかを評価するプログラムを
作るのが目的なので、2Mbps供給が必要です。
GPIOでやったら2Mbpsでるかどうかもわかりませんが、出たとしても、
デューティー比もメチャクチャになりそうですよね。

3GHzのPCにPCIのデジタル入出力ボードを接続してパタパタって
いうのはどうでしょうか。
5048:04/04/10 22:48
>>49
一般論だけど、
この手のシリアル通信って、個々の要素は3ビットとか半端なビット数でも
まとめると8ビットの倍数とかになるようになってるはずなんだけど、
そうじゃないのかな?
かなりローカルな仕様?
>>49
それってプログラム要るのか?

ちょっとしたPLDでちょこちょこシリパラの変換する回路組んだ方が
遥かに速い気がするのは気のせいか?
52デフォルトの名無しさん:04/04/10 23:19
>>49
このテーマには初めての書き込みですが、H8のGPIOは見込みなしですね。パソコンも
CPUの速度よりは、PCIバスが心配ですね。I/Oリードに、オーバーヘッドなしでも
6クロック必要のようですから、読むだけとしても、バスクロック66Mでも2Mビットだと
1ビットの間に5回しか読めないですね。実際はもっとずーっと遅いでしょうから、余裕が
はたしてあるかどうか。 (66M / 6 / 2M = 5.2)
ソフトだけで制御するのは、難しいのではないかな。I/F回路を作らないと無理な気がしますね。

>>51
同期通信だと多分プロトコルがあるでしょうから、単純なシリパラ変換だけでは
だめかもしれませんね。非同期とちがって、スタートビットの認識は必要でしょうし、
いずれにせよ転送データの正当性の検証は必要でしょう。
>>52
石の仕様と話みた限りじゃ単純なSPIのような気がするんだが?
54デフォルトの名無しさん:04/04/10 23:49
>>53
52: 石の仕様は、書いてないと思うのですが、どの発言でしょう? 
今までの話だけで、仕様を特定できますか?
>>54
44 名前:デフォルトの名無しさん 投稿日:04/04/09 17:17
2Mbpsで同期シリアル通信を行うターゲットボードがあります。
H8/300Hなどを使うと、2Mbpsの同期シリアル通信が可能だということがわかった

コイツのマニュアル見て同期シリアルと言いそうな内蔵インタフェースを見た。
コレで出来ると思ったんなら、単純なCLK+DATA+FPのSPIだろ?

ヘッダやらなにやらがつくような高級なプロトコルじゃない
>>54
補足

どうも情報が足らないので断定は出来んが、予想が正しければ
検証用のHMと組んだインタフェース回路の制御用IにCPU使うのもいいと思う
 ちょっとしたCLI組み込んでやれば使い勝手は回路だけで組むより
相当良くなるし。 その辺は「どんな評価がしたいのか」によって取捨するところ。
 単純にそのボードが2Mbpsで通信出来るか見たいだけなら回路組むだけでもいいかも
3bitやら15bitなら受信データはLEDとSW並べたって大したことにはならない。
H8って品種によっては遅延時間を設定出来るストローブを出せたと思う。
こいつをクロックにしてしまえば、いいと思うけどね。

5844:04/04/12 10:55
>>52
>>53
通信方法としてはSPIです。CS/CLOCK/DATA IN/DATA OUTです。
SPIで転送サイズを1bit単位で指定できる何か(CPU?)は無いでしょうか。

>>48
データシートに、3bitのコマンドを送ったらCSをOFFにし...という感じで8bitの
倍数にはならないようです。
59デフォルトの名無しさん:04/04/13 00:14
>>58
52:私見だけど、転送サイズを変更できるような機能を持ったCPUはないんじゃないかな。

  機能確認ということであれば、同期シリアルなんだからクロッックを落としてソフトで確認して
  それでOKなら伝送系の問題だから、 >>56 のような簡単な確認での確認でもOKでしょう。
  相手側に細工ができないのならだめだけど。 どっかで割り切らないと手間とお金がかかる
案件のような気がするな。
6048:04/04/13 02:11
>>58
俺も、>>59と同じで、そういうCPUはないと思うな。
転送パターンが決め打ちでいいなら、AVRやSHなんかのRISCマイコンで
クロック数を計算して2MBPS正確に出すって事ができなくもないね。
12MHzのAVRなら1命令1クロックだからなんとかできるんじゃない?

あと、使ったことないけど「データジェネレータ」ってのがあるらしいね。
ttp://jp.home.agilent.com/cgi-bin/bvpubjp/agilent/Product/cp_Product.jsp?NAV_ID=-11448.0.00&LANGUAGE_CODE=jpn&COUNTRY_CODE=JP
ちょっと大げさな気もするけど、レンタルできるかもね。
61デフォルトの名無しさん:04/04/13 06:18
>>60
52: AVRのことは知らないけど、RISCに限らず高速のマイコンは、Cacheやパイプラインを使っている場合が多い。
  クロック数を計算してというテクニックは、使えない場合が多いから、そういう発想は浮かばなかったな。

  1命令1クロックということは、命令の読み出しを考えると最低限パイプラインくらいは使っているんじゃないのかな?
  クロック数で正確に計算してってことができるんでしょうか?

  それに、DATA INがあるってことは受信もあるんじゃないのかな、受信のときに、クロック数だけで、
同期クロックをチェックしないでデータをリードするのは荒技の気がするけどな。

  データジェネレータも送信だけでしょうから、受信なしでOKかどうかでしょうね。
AVRやPICや4ビット8ビットマイコンの殆どが命令数を数えるテクニックが使えます。
6502系のようにパイプラインを使っていても命令数は普通に数える事が出来ますよ。

それからデータの受信送信と、クロックのマスタースレーブは別問題でしょ
63sage:04/04/14 15:06
>>58
別にペリフェラル使わなくても自分でポートパタパタさせて
送受信すればいいんじゃないの?
自分で2MHzのCLOCKをパタパタさせながらDATAOUT/INすれば。
こんな感じじゃだめ?
void SerialInOut(unsigned char bit)
{
unsigned char i;

/* 通信前の処理 */
CS = HIGH;
CLOCK = HIGH;
DATAOUT = HIGH;

/* 通信処理 */
CS = LOW;
for (i = 0; i < bit; i++){
CLOCK = LOW;
DATAOUT = outBuff[i];
/* 時間調整 */
CLOCK = HIGH;
inpBuff[i] = DATAIN;
/* 時間調整 */
}
CS = HIGH;
}
>>63
割り込みとか考えなくてもいいなら、それもアリかもなー

結局他の処理もさせることを考えると、前にも誰かが言ってたように
PLDかPIC辺りをフロントエンドにしないと、後で泣きを見るだろうな
65デフォルトの名無しさん:04/04/14 20:48
>>63
例えば60の発言の例であげてある 12MHzのAVRを使ったとしても、1ビット出力するまでの間に実行可能な
命令は5,6命令程度。とても、63のプログラムは書けない。ソフトじゃ無理だと思うんだけどな。

62の発言のソフトディレイの使えるようなCPUは、基本的には遅いCPUといっていいでしょう。
63のプログラムが実行可能なほど高速だとCacheくらいは必須だろうから、ソフトディレイは
だめだと思うんだけどな。
単に信号出すだけなら
out命令を並べるだけだから 4MIPS あればいい
マスターで受信するなら out in out で時間を合わせる為に8MIPS必要
PICだと 8*4=32Mで動かさないといけなくなるな。

H8だと ストローブをクロック代わりにするようなアイデアが必要になるだろう
67デフォルトの名無しさん:04/04/14 21:46
>>66
4MIPSだとループもできませんね。その程度のことでまにあうのなら、そもそもCPUを使う必要がないですね。
通信の確認作業で、信号出すだけでOKというのは、まずありませんからね。プロの仕事の場合は。

受信というのは、どういうことを言っているのか分からないのですが、データとして受け取れてこそ
受信じゃないでしょうか。 信号のつじつま合わせだけで動作確認終了とは、いかないんじゃないでしょうか。
6860:04/04/14 23:39
SPIを発案したMotorolaのCPUなんかは3〜16ビットの
半端なシリアルデータを送受信できるようだね。(DragonBallとか)
もっとも、実験用に簡単に入手・使用できるようなCPUじゃないけど。
>>68
そういや、昔860使った時出来たような気もするな。

でも何したいのか未だに良く分からんがQUICCじゃ大げさ過ぎないか?

SPIだったらオーバランが駄目というより
 読み出し:CS立下りから有効Bit数のみ保証
 書き込み:CS立ち上がり直前から有効Bit数分前の入力までが有効

ってな感じになってるんじゃないの?
これなら適切に処理してやれば8bit単位で伝送したって問題は無いだろ
>>67

データを受け取れてこその受信だが受信ポートをLSBかMSBにしておいて
回転命令2つををout命令に挟めばいい。
幸いPICとかはRAM上の回転も1サイクルだ。 

そもそも、”ターゲットボードが2Mbpsで動くかどうかを評価するプログラム”
なんだから、信号のつじつま合わせのON/OFFでも信号さえ出せばOKだろう。
そうじゃないなら、どういう仕様か書けば必要な能力を見積もってあげるよ。
CPUのバグらしい現象を追跡するのにハード屋さんにつきあって、あっちこっちにプローブ用の
信号を「この位の幅のパルス出してね」ってのを一日中やった。どうやら証拠っぽい波形を得る
までにこっちはへとへと。あれでめげないハード屋さんって尊敬しちゃう。 この後この現象を
「英語で」メーカーへ文句たれるんだから、ますます尊敬しちゃう。
ハード屋は、ハードをソフトに置き換えるのがどれだけ大変か分かってない。
ソフト屋は、ソフトをハードに置き換えるのがどれだけ大変か分かってない。
>>72 禿同
>>73 んなこたーない
ソフト・ハード両方やっている者から言わせてもらうと、ソフト屋は甘いと思う。
近頃のハード屋は『ハードだけ』では通用しないしね
確かに、ソフトしか知らない奴は甘いね。
不具合発生
ハード屋はソフトで対処できるならハードの対処はしない
ソフト屋はハードで対処できることを知らされずソフトで対処する
不具合発生
ASICや基板はもちろん変更しない
ソフト屋は前回の流用だから変更したくないと言って変更しない
FPGAを変更する
不具合の対処なんてハードでやろうとソフトでやろうと原因はどうあれ
問題なく、より低コストで、ユーザにも納得させられるようできれば
どっちでも良いんとちゃうん?
コストの差が明らかでない場合も多いからな。
あと、高コストなものを作っている人間が常に楽をすることになるから、
愚痴のひとつも言いたくなるだろ。
でも、黙々とハード回路にパッチ当ててる姿とか見ると
ソフト屋でよかったってしみじみ思うよ
部品変更や改造って、購買からサービスまでの全部署全工程に影響出るしなぁ。
「ソフトで対処できるものはソフトで」ってのは、ハード屋だけの思惑ではないし。
>>83
禿胴
今時入手できないようなOpAmpでも交換しなくてはならなくなるからなぁ。
>>85
んだなぁ。
理想は、本生産開始までにハードバグ、ソフトバグが全て取れりゃいいんだけど
なぁ。

とは言っても、ハードもソフトも完璧でも、本生産開始から大分経ってから、例え
ば部品がディスコンになったりで、ハードやソフトを弄らなきゃならない事態に陥
るってのは有りがちだからなぁ…

はぁ…

>>82
0.5mm間隔のピンに半田付けしてジャンパー配線してる姿はまさに神業
ハード屋さんは電子機器界の外科医のようです
量産しない一品物はソフト修正よりハード修正の方が低コストなんだよな
89デフォルトの名無しさん:04/05/24 00:46
>>87
QFPを手半田する人もすごいね。
0.5mmピッチまでなら手付けできる
ピン上げてジャンパー飛ばせネーけど
91デフォルトの名無しさん:04/05/25 00:52
windowsでRS232Cを用いてデバイスを制御し、データの送受信を行いたいのですが、
初心者なのでよく分かりません・・・。分かりやすく説明してるサイトってないですか?
VC6.0++でやろうと思っているんですが。
そのデバイスとやらは何者だ?
>>91
シリアルは CreateFile で "COMx"を開いて ReadFile WriteFileで読み書きして
BuildCommDCB
BuildCommDCBAndTimeouts
GetCommXXXX SetCommXXXX とかで制御すればいいから簡単は簡単

VBやDelphiを使う方が簡単だと思うよ。
>>92
レーザー距離計です。

>>93
ありがとうございます。COMポートを複数開けるのも容易に出来るんですか?
初心者なもので・・・すいません。

自分はC以外やったことがないのでCでやろうかなと思っています。
昨日愕然としたこと。

ハード屋先輩「この石のXXとYYのピン、オープンなのに入力になっとるぞ」
ハード屋後輩「え、オープンのピンって入力にしておくのが普通じゃないのですか?」

(;´Д`)

この後輩、もう3年目ぐらいなんだけどなー。折れはソフト屋だけど
CMOSの入出力ピンをプルアップ/ダウンなしで入力にしちゃいけない
ことぐらい知ってるんだが・・・(キホンだよねぇ・・・

なんかたまに小難しいことをいう割にこんなことも知らないというのは
ちとなぁ。さすがに呆れた。新人ならともかく、いままで何をしてきたんだろうと。

まぁ、任されていたハードのデバッグがつまると、なぜか病気になって休んだり
と(w 問題行動が多かったけど、妙に腰を低く振る舞うから救われているだけ
なんだよな。休んだときは先輩が仕方なく尻ぬぐいしてたけど、不憫でならない
わ。休み明けに後輩が出てきて謝って、先輩はキニスンナとかそいつに言ってた
けど、影では先輩は上司に別の香具師に変えてくれと懇願してるよ(w
>>94
CでのWindowsプログラミングの経験次第かなぁ。

全く無いってのであれば、結局VBやDelphiで書いた方が早いって事も有り得る。
あとはまぁ納期次第かと思ったり。

97デフォルトの名無しさん:04/05/28 01:18
PCと自作組込機器とをシリアルで結ぼうと思ったんだけど、
PC側は将来的には、VBか何かで作るとして、
とりあえずはフリーウェアのシリアル通信ソフトでお茶を濁そうと考えてたんだけど、
バイナリファイルを扱えるシリアル通信ソフトって意外とないものなのね
みんな、ターミナルソフトばっかり
自作基板なら好き勝手組めるんだからFTDIとか使ってみるのは?
PC側USBになって転送速度も上がるだろうし、ハッタリ効くし(w
FTDIのページにドライバー有るし、C、VB、Delphiのサンプルソースもある
機器側もシリアルかFIFOかチップで選べる
通販価格840円、難点はQFPなんで手配線だとピッチ変換基板が要る
>>97
自作機器ならテキストで扱えるようにしといたら?
何かと端末ソフトがそのまま使えるから何かと便利よ。
さもなきゃXMODEM辺りをサポートするかねぇ。
>97
>バイナリファイルを扱えるシリアル通信ソフト
フリーでSerial Command Exploreがあるよ(Winなら)
ttp://www.namakoworld.com/lowtech/index.htm
装置のデバッグには結構便利
通信速度とデータ量の関係でバイナリで送らざるを得ないときもあるから
UDP版もあるし、あとはTCP版があれば良いんだけど
>>100
97じゃないけどイタダキ
アリガトン
>>95
「オープンなのに入力」ってのがよく判らない…
オープンドレインってこと?
>>102
オープン=未接続

CMOSデバイスの入力ピンを開放すると色々な問題があったはず…。
>>102
マイコンのI/Oが未接続なのに入力になっとる、って事だろうな。

こんなん見つけた。
ttp://www.h3.dion.ne.jp/~shimitti/picmicon/micon2.htm
「組込み開発者におくるMISRA-C―組込みプログラミングの高信頼化ガイド」
が出ました。

http://www.amazon.co.jp/exec/obidos/ASIN/4542503348/qid%3D1085755357/250-4090891-8703413

みなさんよろぴく。
>105
ワカタヨ(アソシエイトのリファ抜き↓)
http://www.amazon.co.jp/exec/obidos/ASIN/4542503348/
107デフォルトの名無しさん:04/05/30 00:24
>>100
おっ、なかなか便利そうなフリーウェア
というわけでDLしたよ
理想は受信データをログ保存できて、送信もバイナリファイルを送信できるものなんだけど
108デフォルトの名無しさん:04/06/12 14:13
部品の買い方・そろえ方。
ここさえなんとかなれば…
109デフォルトの名無しさん:04/06/25 03:16
今Windowsで、BIOSのI/Oからデータを取得しようとしているのですが
BIOSのI/Oポートの一覧を調べるにはどうしたらいいのでしょうか?
またそういうのが見れる所がありますか?
Windowsだけでは判らんのよ。 NT系列なのか9x系列なのか。
それからBIOSのI/Oポートという書き方も良く判らん。

具体的にWindows2000ならデバイスマネージャ -> 表示->リソース(種類別)
 で、アドレス一覧が表示出来る。

ただし、Windows2000なら、I/Oを直接読み書きするには誰かにサービスしてもらわないといけない。
GWIOPM GIVEIOなどが有名所だ。
111109:04/06/27 00:34
>>110
どうもレスありがとうございます。

>Windowsだけでは判らんのよ。 NT系列なのか9x系列なのか。
>それからBIOSのI/Oポートという書き方も良く判らん。
すみません、説明不足でしたね・・
一応、NT系OSでI/Oアクセス出来る様に「giveio.sys」を導入して
I/Oアクセス可能にする所までは出来てます。

具体的に何がしたいかと言いますと、CPU温度とかファン回転数みたいな、BIOS上で参照出来る情報が取得したいんです。
自分で色々調べた結果、BIOSのI/Oにアクセスして情報を取得出来るという所までは分かったのですが
具体的に、どのI/Oポートアドレス?からデータを引き出せばよいか分からないんです・・
この辺は、モニタリングチップや、マザーボードの種類によって色々変わってくるみたいですので
その辺の事が、ハードの種類別に知りたいのですが、そういう事を調べるにはどうしたらよいでしょうか?

あまり、ハードウェア関係の知識がありませんので
言っている事が分かりづらいかもしれませんが・・
>>111
Linuxのならソースあるんじゃない?
113デフォルトの名無しさん:04/06/27 00:54
>112
ナイスぼけ
たしかに舌足らずだったな。
ttp://www.itmedia.co.jp/help/tips/linux/l0393.html
のあたりのソースを参考に、ってことだ
115109:04/06/27 01:29
>>114
情報をどうも。
とりあえず、ソースがあるのなら「Lm_sensor」でも落してみます。
また良い情報がありましたら、宜しくお願いします。
116デフォルトの名無しさん:04/06/30 09:43
PowerPartsとGENWARE2の評価教えて下さいでつ。
117デフォルトの名無しさん:04/06/30 17:50
T-Engineで開発費抑えれるかと思いきや、
開発環境やライセンスが異常に高価でない?

こんなんじゃ、Win系に制覇されちゃうかも。
WinCE/T-Kernelなんてデモしたにもかかわらず、
WinCE 5.0のアナウンスにも入ってないし。
>>117
どの開発環境と、どのような事で比べましたか?
>>118
iTRONにGUIライブラリとフォントを足すのと、
WinCEのライセンス価格を調べました。

WinCEはMSECで動作せず、
バージョンアップ販売停止がはやいので、
組み込みに不向きなのは知ってますが。
>>117 !? 開発環境はLinuxかCygwinだからタダじゃなくて?
まあ周辺のライブラリは必要になるが。
121120:04/07/01 18:33
失礼 >>119読んでなかった・・
gcc使えば無料
ライブラリは自作したりフリーの使えば無料
>>119
QNXにしとけ
124デフォルトの名無しさん:04/07/02 08:49
詳しく教えて。>>123

QNXって、まさか100マイクロセカンドで動作出来たりしないよね?
出来たらITRON並みのUNIXだね。
>>124
QNXはRTOSだぞ。。。。
VxWorksマンセー
>>126
高いよママン
128デフォルトの名無しさん:04/07/05 06:55
割込ハンドラと割込ルーチンはどこが違うのですか?
また、なぜ分ける必要があるのでしょうか?
windowsXP,c言語でAPIを使ってCOMポートの制御やってるんですが、
受信バッファのサイズを変更するなど、
バッファに関するAPIはどのようなものがあるか教えて頂けませんか?
>>128
言葉の違いにしか思えないけど、
その二つが具体的にどんなものなのか書いたら説明できるかも。

思いつきで想像すると、

割り込みによって起動される処理で
とりあえずハードからさっさと情報をかき集めるだけの処理と

集めた情報をちょっと落ち着いてから処理する部分かな?
(WindowsではDPCとかLINUXだとBHとかいうやつ)

分ける理由は、割り込み処理内では使えるAPIが限られているのと
割り込みでいつまでももたもた処理しているとみんなの迷惑だから。


>>129
COMポートでバッファといったら、
後は送信バッファとUARTのFIFOサイズ
送受信とも、バッファの残りがどのくらいになったら
通知してくれるかの設定くらいしか思い浮かばん。
実装上、どうすればいいかは、MSDNでも使ってしらべれ。
131デフォルトの名無しさん:04/07/06 00:42
>>128
割込ハンドラ・・・とにかく他の割込を禁止してでも、緊急に処理しなければならない必要最小限のプログラム
割込ルーチン・・・ハンドラで処理の終わった残りのプログラム。あとで少し余裕を持って(メインルーチンで)処理。他の割込は受付可能。

分ける理由・・・割込禁止区間を長くしたくないから。

こんなところでどう?
132デフォルトの名無しさん:04/07/06 05:20
>>131
ちょっと用語集も調べて見たけど、ハンドラのことを緊急に処理しなければならない必要最小限のプログラムと
定義したものはなかった。プログラマ結構長くやっているけど、そういう区別を自分は耳にしたことはない。

OSを使っている場合に、割り込みハンドラという言い方をしているかと自分は思っていたけど、用語集を見る限り
割り込みハンドラは、割り込み時に読み出されるプログラムコードという定義がしてあるようだ。

特に、区別されてないんではないのかな?
>>128の言う割り込みルーチンというのは
割り込みハンドラから起動されるタスクのことを指しているのかも
某CPUだと、割り込みハンドラって所謂割り込みベクタに書けるような小さいロジックってイメージが…
#で、通常はそこにはジャンプだけ書いておいて飛んだ先が割り込みルーチン。
「割り込みハンドラ」「割り込みルーチン」から
割り込み時の飛び先が1個所で、割り込み要因をチマチマと割り込みを発生させた
デバイスのレジスタのビットをチェックして、それぞれのルーチンに飛ばしてる
大昔のゲーム機を思い浮かべた
136デフォルトの名無しさん:04/07/06 21:39
>>134
H8なんかそうでしょ?
て言うか普通そうなんじゃないの?

>>135
SHは割込ハンドラの中で割込を発生させた要因を調べなければならなかったような
>>136
SHにかぎらずRISCプロセッサはみなそんな感じ。

RISCにかぎらずPCIだとそれしかないし、
Chain of Responsibility な割り込みハンドラになるし。
138123:04/07/06 23:04
>>124
日本語である程度文書あるね
http://www.qnx.co.jp/resource/

ホワイトペーパーよんでQNXマンセーしる。

>>126
6.0は売れないとみた。
139デフォルトの名無しさん:04/07/07 01:00
>>136
SH3から
SH2までは要因ごとのべくた
H8やSHについて解説してあるページや書籍には
どんなものがあるんでしょうか?

おすすめ教えてください。
>>140
オフィシャルサイトからデータシートをダウンロードできると思いますが。
>>140
丁寧なアプリケーションノートが置いてあるよね。
>>140
ピンからキリまで、腐るほどある
今からビッグサイト逝く香具師の数→(1)
明日逝くょ。
ビッグサイト、暑そうだな。
>>144
俺も明日
逝ったひとは感想をplease。
イイ!!とダメダコイツラ..ってのを。
コンパニオンのS/N比が気になる。

ってかそんなにいないか。
150デフォルトの名無しさん:04/07/09 01:52
>>140
日立時代は電話すればマニュアルを無料で送ってくれた。
ルネサスになってからは、知らない。
151デフォルトの名無しさん:04/07/09 01:54
MSのブースでVS2005のDEMO中
フリーズしてDEMO中止になった
>>150
日立時代は、日立のサイトからマニュアルをダウンロードできたが
ハードコピーマニュアルをスキャナで取り込んでPDF化したもので
とても使えるものではなかった。

ルネサスになってからはまともなPDFをサイトからダウンロードできるようになった。
(あれ?その前からかな?)
初期の時はしらないが、SuperHのサイトのときは普通のPDFだった記憶がある
>>153
あ、すまへん。言葉がたんなかった。
H8がそんなヘボイPDFだった。SHはマトモなPDFだった。
初心者が一番はじめに手を出すとしたらどのチップがよいでしょうか。
やはりmips?
H8が人気なのはトラ技のせいなのかな・・
>>152
古いマニュアルはそんなんだな。PDF化できる電子データがないんだろう。
ページ数のわりにやたらでかいので、落とすのも大変だった…
>>155
取り敢えずCPUを触ってみたいってんであれば、Z80辺りを
触ってみては?

参考資料も多いし、CPUの基礎を勉強するには手頃なんじゃ
ねぇかなぁ。今でも現役で使えるし。
>初心者が一番はじめに手を出すとしたらどの

仕事?趣味?学校? どこでどーするのかオシエレ
159155:04/07/09 17:26
>>158
PC上でC言語などでのプログラミング経験があるが、組み込みの経験が
ない人を対象として、コンピュータの仕組みをよく理解するために、
それほど複雑でないマイコンを使って、アセンブリ言語やC言語などで
プログラミングして実際にポートの入出力などを体験しながら学習する、
といった用途です。
>>159
秋月電子にあるようなボードでするのがラクかもね
個人的にはH8やSHやったほうがいいかなって気はするけど、
PICも捨てがたい・・・
>>159
秋月のH8ものに一票
intは16ビットと叩き込む(w

PICやAVRなのど石はまんどくさいよ
162デフォルトの名無しさん:04/07/09 18:58
RS-232CのTxDをC#から制御しようと思ってます。

目的は学習リモコン

38kHzの変調もソフト出かけるつもりです。

今、com1の設定を115200bpsにすると
1bit=8.68us
38kHzのキャリアは1/38kHzだと26.3us
duty比がわからないのですが、
110か100にしてキャリアの1cycleが1bitになるようにして
データを送ったのですが機器が反応しません。

どこがまずいのでしょうか?
>>162
>どこがまずいのでしょうか?
この程度の情報で答が得られると思ってる162の頭

IR-LEDはどのように発光させてるの?
で、発光してる位は確認済み?
学習リモコンのハードも自作するのかな?
165162:04/07/09 21:40
情報少なくてすいません。

電流制限抵抗なしでTxD-GND間にIR-LEDつけてます。
発行してるかどうかは赤LEDに付け替えて目視確認しました。

スタンドアロンのリモコンとしてではなくPCから制御するつもりです。

//これまでにしたこと。
LIRC,WinLIRCのサイトを見てDCD受信、DTR送信なトランスミッターを作成。
winLIRCにて、外部機器が無事動作するのを確認。
つぎに上述のTxD-IR-LED送信機(っていうほどでもないですが)を作成して
WinLIRCで取得した生データ(High us,low us...)を元に
>>162に至った次第です。
166163:04/07/09 22:43
なるほど。そこそこはやってるのね。

>電流制限抵抗なしでTxD-GND間にIR-LEDつけてます。
大丈夫か? そんなことして。って気がしないでもないが、
WinLIRCとやらはテストの足しにはならないのでしょうか?
167162:04/07/09 23:08
LEDは大丈夫なようです。(WinLIRCからだと無事動く)
念のためCRDいれときます。

WinLIRCは生データを覚えてそれをそのまま吐き出す用にできていて、
入力はDCD,RxD 出力はDTR,TxDが選べるようになっているので
とりあえず丸覚えさせたデータをTxDで出してみて動作確認はしました。

やはりduty比が悪いんでしょうか?(1/3か2/3しか選べないのが…)
>>148
ダメってわけじゃないが
T-engineばっかりで嫌になった
169163:04/07/10 01:14
>>167
>とりあえず丸覚えさせたデータをTxDで出してみて動作確認はしました。
ってのは、本来のリモコンの送信を学習できるのを確認したってことだよね?
WinLIRCが記憶するデータの仕様が分かるなら、自作の送信機を学習させて
比べてみたらどうだろ。

キャリアのdutyは50%が良いんだろうけど、実は中心周波数が安定していれば
大丈夫な気がする。
それより、普通にTxDをキャリアとして使おうとしたらStart|Stop bitをうまく
処理しなくちゃと思うのだが、それは大丈夫なんだろか。
170163:04/07/10 01:38
何度もありがとうございます。
winLIRCのデータの仕様は Xμsec high , Xμsec lowの繰り返しだけで、
それをそのまま自作の送信プログラムに持ってきてます。

C#でシリアル通信をするのに、ネットで拾ってきたラッパー
http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=b06e30f9-1301-4cc6-ac14-dfe325097c69
をつかって
public void Write(byte[] buffer, int offset, int count)
を使ってます。
シリアル通信仕様をいまいちわかってないのですが、
start,stop bit(1bitに設定)というのは1byteごとの最初と最後に1がつくってことなんでしょうか?
171デフォルトの名無しさん:04/07/10 03:14
>>159
AlteraのNiosとかどうよ?
トレーニングキットで、ついでにデジタル回路の学習もできるっていうおまけつき。
あんまり情報がないからダメか?
>>170
>シリアル通信仕様をいまいちわかってないのですが、
>start,stop bit(1bitに設定)というのは1byteごとの最初と最後に1がつくってことなんでしょうか?

その通り
調歩同期やUARTで調べてみろ
173163:04/07/10 11:49
>>172さんありがとうございます。

非同期通信=調歩同期 start,stopビットありなんですね。
で、ふつうにラッパーとかが想定してる送信方法はこれと。

TxDピンの出力を直接制御するのはかなり難しそうですね…
うーん…
同期送信ってあんまりメジャーじゃないみたいで。
>>171
その通りじゃないでしょ。 startビットは0 stopビットは1
だからstopサイズが1 でデータサイズが8なら 10bit周期しか作れない。

だから 0<10101010>1 これはOKだけど、これ以外は難しいよ。 これで送信してみては?

周期がバラバラずれると、受信機には、振幅変調がかかるようになるからダメ。

175163:04/07/10 15:21
>>174さん ご丁寧にありがとうございます。

>> 0<10101010>1
の場合“だけ”ですよね?
start/stop,1bitで周期がずれずに送信可能なのって。
Highを出力するのはこの手でいけそうですが、
Lowが続くとき、 0x00 を送信したとしても 受信する側からみたら
b' 00000 00001 になっちゃうから結局リモコンとしては使えなさそうですね…

PICみたいな感覚でいたのでもっとDTRにしろTxDに任意のピンをいじれるかなって
思ってたので、考えが甘かったみたいです。
176163:04/07/10 15:24
PICみたいな感覚でいたのでもっとDTRにしろTxDに任意のピンをいじれるかなって
↓訂正
PICみたいな感覚でいたので、DTRにしろTxDにしろ任意のピンの状態をいじれるかなって

すいません。
>>174
アヒャ!
Low/Highみてなかった

>>175
正直、そういう用途でピンを弄るなら
プリンタ出力でやれ
>>175周波数が違えば振幅変調になるから 0 0000 0000 1 でも距離を離せばいけるかもしれないよ。

他に、例えば DTRとの間で送信するようにして、TXには常時送信してるようにしてDTRでON/OFFするとか

あるいは、PIC使えるなら PICにシリアル送信でコマンド送って PICで赤外送信したらどう?
179163:04/07/10 17:28
みなさんお付き合い頂きありがとうございます。
>>177さん
LPTですか。 盲点でした。 LPTの扱いについてもこれを機にちょっと調べてみます。

>>178さん
2ピン使ってANDとるのもありですね。

TxDにbyte[]送るときに、 byte[] = 0x00なら DTR = LOW
それ以外で、Highにして。

早速やってみます!

>>179
and 取るというか、単純に2電間でLEDを点けるだけだよ。
TxD-GND間にLED入れてるんでしょ? GNDの代わりにつなぎ変えるだけ。

RS232Cでは、ショートした時の電流規格があった筈で、火災が起きないような電流に制限されてたから
リモコン用の赤外LEDなら壊れないとは思うけど・・・まあ抵抗入れた方がいいと思うけどね。
|3・)・・・
|3・)アルェーゴバクシッチャッタyo
183ホンモノの163:04/07/10 20:09
しょうがねえなぁ…
COMポートを速度 115200bps、データ長 7bits、ノンパリティ、ストップビット長 1bit
で設定して、データとして 0x12 か 0x5B を連続して送出してみな。
TxDからきれいな38.4kHzの信号が出るはずだから。
184163:04/07/10 20:24
>>183
ありがとうございます。
ちょうど>>174さんの方法だと57.6khzになるので困ってました。
0x12 は 0 0100100 1 で100,100,100でバッチリなるのでこれで行ってみます。
185ホンモノの163:04/07/10 21:01
おっ!飲みこみが早いねぇ
その調子ならきっとうまく行くよ。

ちょっと気になるのは、TxDから直接取れる電流じゃ多分弱々なんじゃってこと。
昔の記憶を辿るとLEDには数100mA(ピーク時)を流した覚えがある。
そうしないと数メートルと離れられない。
もしかしたら今のLEDは高輝度だから大丈夫なのかもしれないが…
>>185
正直、PCからの出力でTr制御して
別電源で駆動したいところだ
アキバでLEDと抵抗買ってこい
今時のLEDは10mA流せば十分
なんか面白そうな事やってるなぁ。
夏休みの自由研究にでも出来そうなネタだ。
189187:04/07/10 22:18
ああ、ただLED光らせるんじゃないのか・・・
IR-LEDでリモコン制御か、ログ全然読んでなかった
スマソ
>>189
そんなトコじゃないかと思ってた。

(´-`).。oO(X68000+ジョイスティックポートで学習リモコン作ったなぁ…)
昔は楽しそうだなあ
193 ◆Wsx33BP8MQ :04/07/11 18:57
162(170/173/175)です。
>>163さん
途中から番号間違ってしまってすいません。 トリップつけます。

38kHzのパルスを作るには0x12@7bitでいけそうなんですが、
0x00がやはりstopbitがついて 0 0000 0000 1 0 0000 0000 1 0...
になってしまうので、上ででた
TxD-IR_LED-CRD-DTR
にして、
bool pulse //LED,ONの時true
byte p = 0x12 l = 0x00 で、
this.serialPort1.BaudRate=115200;
this.serialPort1.DataBits=7;
if(pulse)
{this.serialPort1.DtrEnable = false;
this.serialPort1.Write(p,0,1);

}
else
{this.serialPort1.DtrEnable = true;
this.serialPort1.Write(l,0,1);
} }

としてるのですが、LEDはちゃんとpulse=trueの時だけ発光してるのですが、
機器が動作しない=コードが認識されてない 状態です。
>>162
発振はRとCとインバータでマルチバイブレータ作ったほうが簡単だと思うが。。。
あとIR-LEDが光ってるかどうかはビデオカメラ等でも確認できる。(CCDでは緑っぽく光って見える)
195 ◆Wsx33BP8MQ :04/07/11 21:21
PICで作った100mSecに何個パルスが来るか数える周波数カウンタに
TxDの出力を入れると…80Hzとか…
while(true)
this.serialPort1.DtrEnable = false;
this.serialPort1.DtrEnable = true;

しても1(ずっとHight)
無限ループ中に for(int i =0;i<4000<i++){}
な空ループ入れると8kHzくらいになるんですが。
いったいどこが悪いんでしょうか…
わけわかんなくなってきました…
WinLIRCはいったいどうやって高速にシリアルポート制御してるんだろう…
DTR出力ですら38kHz作れるなんて…
196ホンモノの163:04/07/11 23:28
>>193
COMポートから 0x00 を送信する局面ってあるか?
赤外線リモコンってキャリアのON/OFFだけで変調かけるわけだから、
TxDでキャリアを送出するならタイマ割り込み契機でトランスミッタを
Enable/Disableすれば良いんじゃないかなぁ。
書かれたコードじゃどうに変調かけてるのかサッパリ分からんです。

>>195
そのカウンタってのにTxDを直接入れたのか?
TxD(というかCOMポートの出力)はTTLレベルじゃないのはOK?
PICがあるなら PICにデータ出力して送出してもらえば?
つうか そんな問題じゃないか。。
198 ◆Wsx33BP8MQ :04/07/11 23:49
>>163さん 長らくお付き合い頂きありがとうございます。

トランスミッタってのはどの部分をさしてるんでしょうか?
後、タイマ割り込みはμsecオーダーで機能するんでしょうか?

カウンタにはフォトカプラ経由で入れました。


で、さらに調べて、WinLIRCでTxDにIR-LEDをつないで送信して機器が動作するのを確認して、
LEDはずしてカウンタにたたき込んでも全然カウンタが拾えてないみたいです。
PICカウンタ自体は、555なんかで発振したのをたたき込むと16bit/100mSecまで確実にカウントできるので、

何が原因か調査中です。
199 ◆Wsx33BP8MQ :04/07/12 00:57
フォトカプラ使うのやめて
TxD抵抗-Red_LED-ベース
Vcc-コレクタ
エミッタ-10kΩ-GND(232C,PIC共通)
でエミッタ電圧をカウントするようにしたら無事カウントできました。

で、たぶん機器が赤外線受け手も動かない原因は
>>193で書いた0x00にstop bit 1がつくのと、
示したコードだと38kHzがでてないっぽいです

とりあえずコードの問題のようなので、いろいろがんばってみます。
200ホンモノの163:04/07/12 01:28
>>198
トランスミッタってのはCOM?のデータ送信部のことだよ、この場合。

PCのタイマ割り込みでもH/Wとしてはμsec単位程度の精度は出る。
Windowsの上でどうかと云われると分かんない。調べてみてくれ。
尤も赤外線リモコンじゃμsecの精度は全然要らないと思うが…
WinLIRCとやらでも充分な精度の計時をやってるはずだから何等かの方法は
あるってわけだ。

>>199
>193のコードだと 1byte送出しておしまい、なんてことはない?よな…
まあがんばってくれ。
201デフォルトの名無しさん:04/07/12 07:52
実機デバッグのまったくできない環境は、制御系の場合、けっこうあると思うのですが、
こういう場合、どうやって、実戦投入一発で決めたり、実機のない状態で、バグをつぶしたりするのですか?
>>201
脳内エミュレータ
>>201
"HILS" "検証"でググれ!
>>201
人生色々。 環境も色々。
実機デバッグ出来ないような環境だと、仕様さえまともに決まってない場合が多いしね。

自分が良くやるのは制御系なら簡単な中間言語スクリプトを作って
そいつのエミュレータをWindows上で作って、そいつで主な動作は仕上げるようにして、対応力を上げておき
先に元客にそいつを触って貰って実機来る前に大方を固めるパターンかな。
205デフォルトの名無しさん:04/07/13 06:24
>>204
中間言語スクリプトと言うとPerlか何かですか?
>>205
なんでやねん。
>>205
そんな賢いもんじゃなくて、四則演算と内部関数呼び出しが出来る程度のものね。
言語仕様としては昔のbasicより貧弱な程度、中間言語はスタックマシンで十分実用になるよ。
208 ◆Wsx33BP8MQ :04/07/15 22:22
ちょっと間が空きましたが、進展なしです…
winLIRCの出力パルスを見てみたんですが、405と変な数で
もう何がなんだか分けわかんなくなってPICなぞ買ってみましたorz
まぁPICは別に使う予定なんですが、こっちも最悪PICかなとも思ったり…
209163:04/07/16 21:02
>>208
> winLIRCの出力パルスを見てみたんですが、405と変な数で
ってのは、もしかして100ms間のパルスを数えたんじゃないの?
事象が100ms以下の場合のことは考慮してる?
赤外線リモコンって1シーケンスはせいぜい数10msだと思うんだよな。
赤外線リモコンは 変調 40KHz付近 (38〜42K)で 16周期程度が1単位になってる事が多い

1:1/1:3 とか 1:1/ 1:2 が1ビット つまり0,1で長さが異なる 固定長レートではない事が多い。
211 ◆Wsx33BP8MQ :04/07/17 13:26
ぇーっと大事な発見をしました。
http://elm-chan.org/docs/rs232c.html
をみてたんですが、
100100100 を 送ると ピンの出力電圧としては -10V,+10V,+10V,-10V,+10V,+10V,-10V,+10V,+10V
になるんですね。

>>163さん
100msで数えてます。出力は合計39msくらいです。うち発光部が20msなので
20msで405だとキャリアが38kHzにならないんですよ…
winLIRCみるかぎり38kHz Duty1/2で出してるみたいなんですが。
>>193 >としてるのですが、LEDはちゃんとpulse=trueの時だけ発光してるのですが、

ほんとにこうなってるなら ±10Vで反転してるのは問題ないと思うが
213 ◆Wsx33BP8MQ :04/07/17 15:29
>>193
が間違えていたようです。
常に38kの変調かけてるつもりだったので、
duty1/3じゃなく2/3で光ってたみたいです。
ぁぅぁぅ
214 ◆Wsx33BP8MQ :04/07/18 22:29
笑ってください…ヘタレです…
555つかって38kHzのキャリア作って無事動作しました…

今の僕には100us単位でしか制御できないみたいです…
while(true)
{
this.serialPort1.DtrEnable=true;
this.serialPort1.DtrEnable=false;
}
ってコード書いてDTRを抵抗通してPICのカウンターに入れても
10.3kHz程度しかでないの…C#+シリアル通信ラッパーだと38kのキャリア生成できなさそうで…

調歩同期で0x6Dおくれば38kHz duty1/3でますが、こちらもいまいち
動いてくれないので…
可能性としてはまだ調歩同期ならいけそうな気もするのでがんばってみます…
>>214
いいやん。取り敢えず別法ってのはアリだよ。全部ソフトで
やらなあかんって事はないし、全部ハードでやらなあかんっ
て事もないしね。

ソフトで38kHzのキャリア作るのは宿題と言う事で今後も
研究してみるといいと思う。
>>214
なんか基本的なところで間違ってる気がするんだよな〜
217 ◆Wsx33BP8MQ :04/07/19 01:05
まとめ
・DTRを切り替えるのは遅い。
・TxDに115200bpsに 1101101(0x6D)を送ればduty1/3の38kHzになる
・ラッパーのWrite(byte[],int offset,int count)メソッドで
各要素が0x6Dの配列pulse[]を Write(pulse,0,発光時間(μsec)/78)
で送信
QueryPerformanceCounter(ref long);
で出力Low時間分待ち。
上に戻る。
でやってみましたがだめでした
>>216さん
ヒントください…
218 ◆Wsx33BP8MQ :04/07/19 01:13
できたーーーーーーーーーーーーー
217の内容読み直して自分で見直したらできたーー!!!

やったーーー
for(int i=0;i<len.Length;i++) //len[1]=(発光時間/78)μsec len[2]消灯時間そのまま(μsec) len[3](発光時間/78)μsec …
{
pulse=!pulse;
if(pulse)
{
last+=len[i]*freq/12820; // 78/1000000 = 1/12820
this.serialPort1.Write(p,0,(int)len[i]);
end = last + len[i+1] * freq / 1000000;
}
else
{
while (last < end)
{
QueryPerformanceCounter(ref lasttime);
}
}
}
でいけました!
219 ◆Wsx33BP8MQ :04/07/19 01:17
あ、ソースの
QueryPerformanceCounter(ref lasttime);

QueryPerformanceCounter(ref last);
です。板汚しスマソ
一応プログラム全体としては,high,lowを一行ごとにusec単位で書いた
テキストファイル読み込んで動作します。
6行目が味噌でした。 現在の時間を取るのに
送信終わった跡で、
QueryPerformanceCounter(ref time);
をかけずに自分で指定しないとだめだったみたいです。

長らくありがとうございました。
ASPと組み合わせて携帯からアクセスしてエアコンの効いた部屋に帰れそうです。
220216==163:04/07/19 01:50
まずは良かったね。
ん? 0x6D なんてどっから出てきたんだよ!
ふ〜ん、そんなんでも動いちゃうんだヽ(^o^;ノ
勉強になりました。ありがとう
221 ◆Wsx33BP8MQ :04/07/19 11:30
0x6D=1101101
にstart stopがついて 0 110 1101 1
出力はこれを反転させて1 001 0010 0
のつもりだったんですが。

で…0x12,0xED,0x7Dとか0x11(これは適当) でも動いちゃいました…
結構アバウトというか何というか…
極めつけに0x00でも動きましたよ…

一応0x6Dが38kHz duty 1/3には一番近いと思うのでこれで行くつもりです。
>携帯からアクセスしてエアコンの効いた部屋に帰れそうです。
志低いなぁ、おい。w

まぁ、サボるために定時連絡電文発呼装置作ったエジソンよりはましか。
>>222
まぁ必要は発明の母だからな。

あれだ、目的意識がある分、所謂「言語やろうと思いますが、何作ったらいいでしょうか?」
って頭悪い奴よりは遥かにマトモかと。この経験はきっと何処かで生きると思うしね。

基本的にモノと言うものは人間が楽をする為に作る訳だしね。
>>223
>まぁ必要は発明の母だからな。
それを言ったのはエジソンだってことだね。
ついでに言えば、>221は「発明は1%のひらめきと、99%の努力」をも地で行ったわけだね。
>>224
んだな。まぁエジソンは若い頃は列車でボヤを出したり、>>222のように
手段に溺れて目的を逸脱したモノも作っちゃうんだけどね。それでクビ
になるのは当然なんだが。それもまた経験なのかも知れず。
226 ◆Wsx33BP8MQ :04/07/20 00:00
いろいろとご意見ありがとうございます。

99%の努力のうちまだ30%くらいしかできてない気がします。
残りの69%は受信部分…
これまではwinLircって別のソフトで受信したのを送ってたんですが、
DSRピンをIR受光モジュールの出力につないで、
100usecごとに読めばいけるかと思いきや全然そんなこと無いみたいで。
まだまだ長い道のりがまってそうです。
227163:04/07/20 00:01
>>221
> 0x6D=1101101にstart stopがついて 0 110 1101 1
もう一度基礎からやり直せ。

> 出力はこれを反転させて1 001 0010 0のつもりだったんですが。
そういう論理レベルと物理レベルをごっちゃにするような考え方はすべきでない。

短いお付き合いでしたが以上を餞の言葉とさせて頂きます。
228デフォルトの名無しさん:04/07/22 22:59
19じとか、20じとかに こんなこと書いてるなら、もう少しやってから帰ればいいのに・・・
229デフォルトの名無しさん:04/07/24 15:09
多数の入力が非同期に入力され、
それに応じて、出力や内部状態を変化させる、
そういう場合にエレガントにコーディングする方法はないのでしょうか?
状態遷移を関数テーブルなどで組んだとしても、
入力が多数で、その入力の組み合わせで、次の状態が決まるようなケースだと、
状態遷移関数が複雑で長くなると思うのですが。
>>229
入力の検出手段を複数用意するとか
>>229
いっそラダーチャートの方がシンプルかつエレガントだったりして。
象かよ
233デフォルトの名無しさん:04/07/24 20:46
>>232
それはエレフ(ry
234デフォルトの名無しさん:04/07/25 00:09
>>231
ラダーはシンプルかつエレガントでしょ
グラフィカルで直感的に把握しやすい
>>229のような用途に使うために開発された言語なんだから
>>229もラダーを使ってみたら?
>>229
分割っつーか、個々の状態の組み合わせには出来んのか?
236デフォルトの名無しさん:04/07/25 06:47
>>236
ラダーか。自分がやったなかでは、最も嫌いなものだな。20世紀に置いて
くるべきだって思うくらい嫌いだったな。

昔のBASICの悪夢を極端に増幅させてたな。ちょっと前なので、改善
されてるかもしれないが、自分が仕事中に感じたのは

(1) 基本的に機能拡張がないので、際限なく増えた命令
(2) 遅い、制御には問題ないが、処理には向かない。
(2) サブルーチンやライブラリもないので、カット アンド ペースト命
(3) 変数、I/Oはコイル番号。記憶力が良くないときつい。
(4) ソースをパソコンに読み出して編集とかできなかった。不便だった。
(5) 機種ごとの互換性がない。
(6) 人の書いたラダーなんか読めたもんじゃない。

オブジェクト指向どころか、構造化プログラミングも糞食らえの、
超プリミティブ環境。簡単な制御ならOKだと思うけど、結構複雑な制御も
しているみたいで、信じられなかった。

かなり偏見が入っている気がするが、自分はもう二度とやりたくない。
>>229
論理演算でさらっと
>>239
>そういう場合にエレガントにコーディングする方法はないのでしょうか?

もっと具体的な例を出してもらわないことには何ともいえないな・・・
239デフォルトの名無しさん:04/07/25 12:31
>>236 かなり偏見が入っている気がするが
偏見ではない。

ラダーは、電気が流れると磁石が働き、スイッチが閉じることを知っているだ
けで設計できるもの。本来は機械屋さんが電気屋を介さずに、自分で機械系を
制御するときに使うもの。

でも、工場のラインの制御で使われることが多く、ラインの保守担当が理解で
きて、変更できるものとして使われている。

まともな頭を持っていたら、ラダーの設計なんてアホくさくてできない。
OOP を理解しているやつに、ラダー回路を設計させたら辞めてしまう。
だって、「エレガントに」なんておっしゃるんですもの〜(くすくす
夏を感じるぜ
まぁ>>239が偏見に満ちているのは間違いない事実だが。

単なるOOPバカだろ。
ラダーはクズだ
244デフォルトの名無しさん:04/07/26 01:08
>236
今のラダーは、構造化プログラミングの影響を受けて、多少マシになっている

> (1) 基本的に機能拡張がないので、際限なく増えた命令
メーカーごとに、命令を増やしている。
しかし、ユーザー定義の命令を使えるものもある。
(だが、ラダーに無理矢理、シーケンシャルな処理を追加したような形となっているので、使い勝手はよくない。)

> (2) 遅い、制御には問題ないが、処理には向かない。
組込向けCPUよりも、大幅に汎用性を持たせているために、CPU規模の割りにはるかに遅いのは事実。
しかし、最近は、CPUパワーにものを言わせ、1msecスキャンのものも出ている。

> (2) サブルーチンやライブラリもないので、カット アンド ペースト命
最近は、サブルーチン、モジュール構成を使えるものが多い。

> (3) 変数、I/Oはコイル番号。記憶力が良くないときつい。
I/Oコンフィギュレーションのようなもので割付を行う。コイル、リレーは実アドレスではなく、変数で管理できる。

> (4) ソースをパソコンに読み出して編集とかできなかった。不便だった。
ソース、コメントもPLCに保存できる。

> (5) 機種ごとの互換性がない。
これは、進歩なし。

> (6) 人の書いたラダーなんか読めたもんじゃない。
これも進歩なし。ただ、どのプログラミング言語でも、同じことでは?

> かなり偏見が入っている気がするが、自分はもう二度とやりたくない。

・・・いろいろ、PLCを擁護しつつ、同意。
最近のトレンドを採り入れて、あまり凝ると、生産現場から、理解できない、メンテナンスできないとクレームが来るから。
漏れもラダー図を使う人種の発想は理解できないが、それで良いんじゃないかい。

「ソフト屋の言うことは信用するな」ってのが、メカ屋の鉄則らしいし、
同じ物を違う観点から見たほうがシステム全体の信頼性は上がるんでないの。

オブジェクト指向で設計しました、とか言うメカ屋がいたら逆に怖いと思う。
俺は職業ラダー使いだが・・・。JAVAもやってる。

確かに馬鹿みたいな言語は同意だが、ラダープログラムって超安定してるんだよねー。24時間365日絶対止まらない。
生産現場では抜群の信頼性を持つので重宝されている。

俺はラダーやってて、「こんな馬鹿みたいな言語やってたら将来ホームレスだよ」なんて心配したから、JAVAも勉強してる。
でも、最近思ったのは、JAVAよりもラダーの方が飯が食えそうだ(金になる)な。と思った。
だって中途半端なJAVA技術者→デジドカでしょ?
話によると、業界の方向性としては、どうやら組み込み系JAVAとラダーが融合していく方向性のようだ。どんな形になるか分からんが。。

俺は>>237さんに同意かな。
>>246
ちゅうか
ラダー = 論理演算のかたまり
なんだよね
>>247
組み方にもよる
249229:04/07/26 22:54
で、組み込みマイコン制御で多数の非同期入力を扱うにはどうしたらよいのでしょうか?
251デフォルトの名無しさん:04/07/26 23:09

これがほんとのメッセージループ


>>249
だから階層化して分割出来んのか? と言ってるだろう

最終的に導き出す状態が1つだからってなんでもかんでも
一つの状態遷移表にまとめる必要はないだろ
ロータリーエンコーダの発注の時、パルス数指定するの忘れて
100P/Rのが来てしまった。500P/Rのが必要だったのに…
素人過ぎだ俺。
254デフォルトの名無しさん:04/07/28 03:46

バ ル ス
小は大を兼ねない
>>253
パルス数指定なしで、なんの疑いも無く100P/R
よこしてくる方も、なんかあれな感じだな
ロリータエンコーダ禁止
制服系?
援交だ
260デフォルトの名無しさん:04/07/28 13:33
>>259
うまい
261デフォルトの名無しさん:04/07/28 20:33
ロリータ援交だの発注のとき、年齢指定するのを忘れたら、10歳のが来た
14歳がよかったのに
263デフォルトの名無しさん:04/07/28 21:55
知り合いの言葉を借りるとロリータの定義は、「初潮を迎える前の美少女」らしい。
となると14歳も10歳もロリータには当てはまりそうにないな。
>>263
ぐぐってみたら、平均年齢は12歳くらいらしいぞ
265デフォルトの名無しさん:04/07/28 22:26
>>264
乙。今でもそんなものなのか。最近じゃ平均が10歳だと
思ってた。正直12歳ってのは20年位前の統計じゃない
かと疑ってしまった。スマソ

まぁ14歳がロリータだと思ってる>>261は、俺の知り合いに
失笑を買うだろうな。

だからなんだ? って言われると困るけどな。
流れからすると、>>261はパルスの話じゃないのか?
まあ、そっちの方はよく分からんけど。
267デフォルトの名無しさん:04/07/28 22:44
>>266
空気読めてない奴ハケーンヽ(゚∀゚)ノ








>>253>>257>>259>>261
14歳のパルスを1.4分周すると10歳になりますか?
269デフォルトの名無しさん:04/07/28 22:57
ラピュタが滅びます
>>269
そりゃパルスじゃなくてバルスだと突っ込んでみるテスト
>>269-270
概出
>>254
272デフォルトの名無しさん:04/08/04 23:38
2種類以上の割り込み要因による割り込みがあるとき、
その割り込みが重なったときに、どうやって対処する?
プライオリティを考える?
多重割り込みを許可する?
ケースバイケースだろうけど
あーここ制御系スレだったね。
>>272
プライオリティ順に処理する。
もしどちらもプライオリティが高いなら、
割り込み処理を分割して最低限のことだけやって
続きは別の機会に片付ける。
>>272
多重割り込みを許可するのと複数の割り込みが
Pendingされてる時は、別の問題だと思うが?

どっちのことを言ってるんだ?
その質問だとよくわからんぞ
ようするに反応時間を満足するように作るしかないわけで、
  満足出来なければクロックを上げるてなんとかするとか、 
  外部ハードで反応時間の余裕を上げるとか

多重割り込みで解決出来るケースはそれほど無いだろう。
まあ多重割り込みで解決出来るくらい割込処理に負荷かけてるなら別だが
276デフォルトの名無しさん:04/08/09 07:36
クロック上げてくれと言ったら却下された
俺が選定したわけじゃないのに
277デフォルトの名無しさん:04/08/10 01:53
>>276
そんなタイトなクロックを決める方がアホかと
原子力発電所のプログラム書いたことある人いる?
います
あんまり多くは語れないか。
281デフォルトの名無しさん:04/08/10 17:40
>>279
原子力発電所/飛行機/車などの制御プログラムを、どうやってテストしているか教えていただけ
ますでしょうか。

私がもし飛行機制御のプログラムを作ったら、その飛行機には乗りたくありません。ましてや他人が作った
プログラムが制御している飛行機なんて絶対に乗りません。
飛行機って、製作元の異なる3つくらいプログラムが、
互いに結果を照合しあって合致してるかどうか
確認してるんじゃなかったっけ?
283デフォルトの名無しさん:04/08/10 18:31
>>281
男なら覚悟を決めて、実機デバッグ
もちろんテストパイロットはプログラマーなw
飛行機なら、ハードのバグよりも操縦士のバグの方が問題視されてるよな。
>>284
どういう意味だ?
>>285
パイロットが予想外な警告に対応できなかったりとか。

にしてもさ、未だに事故があるたびに、ボイスレコーダーが
どうとか言ってるんだけど、本当はコックピットの全ての
オペレーションに大してログ取ってるんでしょ?取ってないの?
>>286
パイロットだって人間だぞ?ミスはあるし混乱もする
おまえだって人間だろ?ミスしないのか?混乱しないのか?
>>286
フライトレコーダーはあるが、こまかい操作まで取っているものではない
これは中々象徴的な出来事だった。
http://www.asagaku.com/donto/2002/donto7/donto7_14.html

で、やっぱりボイスレコーダーがどうとかやってる。
まだこんなことやってるの?って感じ。
あー、もちろん空の世界はアナログ、デジタル混在、
新旧よりどりみどりの、いろんなシステムが飛んでるわけだから、
たまたま原始的な方法を用いた、旧来の飛行機が事故にあった
という話は分ります。
あんなただの鉄のかたまりが飛んでいるのに、空港も空路も満杯なのに
事故は多くないんだよ。
292デフォルトの名無しさん:04/08/10 19:43
まあ、ヒューマンエラーを引き起こすようなソフトは仕様の不備というのもあるわな
それよりエアバスみたいにホントにバグで落ちる方がこわい
あと、最近流行の自動車のリコール
ソフトのバグでリコールとかないの?
>>292
ttp://u-cfc.mitsubishi-motors.co.jp/Recall/displayselect.do?orderno=11051
こんな感じの?検索したらいっぱいでたが。
>>292
航空機産業はエアバスの1人勝ちらしいですな。
ボーイングもうダメポらしい。

っていうか、マ板に制御ネタのスレあったっけ。
あればそっちでやるべきか。
でも、最近のマ板のあまりラウンジ化で、ひとが
いないからなあ。
>>294
ここ

制御系プログラマーこそ神
http://pc5.2ch.net/test/read.cgi/prog/1069842456/
296デフォルトの名無しさん:04/08/11 19:24
ながーい割り込み処理のトンネルの中に
遅くてもOKな処理がポツポツと浮かんでいる上越新幹線みたいなプログラムを組んでみた
これって変?
>>296
書いてることが変
上越新幹線の辺りを説明してくれ
>>298
トンネルを抜けるとまたトンネル
割り込み処理が終わるとまた割り込み処理
ということでは?
普通に割り込みだけのプログラムを作っているが何か?
いや、別に・・・・w
302デフォルトの名無しさん:04/08/13 01:07
今日ビックカメラ行ってきたんだが、マッサージチェアって
凄いな。もはやマッサージロボットと呼んでもいいだろ。

金と置き場があれば一台欲しいとオモタヨ
Z80とかって割り込みベクタとハンドラ作ってHALTして終わり
っていうプログラムの書き方しなかった?
304デフォルトの名無しさん:04/08/13 16:35
HALTしたら、リセットしか受付なくないか?
>>304
そんなことはない
>>305
じゃあ、割り込みハンドラから帰ってきたら、どこへ行く?
HALTの次の命令???
>>304
DI
HALT
するとそうなるかな?
あ、NMIを受け付けるか。

>>306
そう
308デフォルトの名無しさん:04/08/13 23:36
昔のCPUはそんなシンプルなつくりしかできなかったんだよな
凝ったもの作ろうとしても
OSなんか載らないし
>>306
0000H
0008H
0010H
0018H
0020H
0028H
0030H
0038H
0066H
の中から選べる。
>>308
Z80系にはCP/Mという立派なOSが載っていた
>>309
それは戻り先じゃないっしょや。
0-0x38がRST0-RST7の割り込みベクタ。
0x66がNMIの割り込みベクタ。
割り込みモードによっては0x00-0xffをバスから与える。

>>306
処理が終わったらHALTしておく。
つまり、割り込みハンドラから戻らない。
312デフォルトの名無しさん:04/08/14 15:57
むかーし、取引先が新規に自社CPUをつくった。
NMIがマスクできる仕様だった・・・・・・(;´Д`)??????

でも、そのMPU関連の仕事くれたから(・∀・)イイ!!
それはNMIと呼ばないのではw
314デフォルトの名無しさん:04/08/14 19:49
打ち合わせの時、「そのNMIはマスク出きるか、否か」の確認は取ったが、
その点以外は誰も突っ込まなかった。
カラスは白い場合もあるんだな、って思ったよ。
書込み可能なROMみたいなもんだな。
そのたとえはいかがなものかと
リセット入力をマスク出来るCPUみたいなもんだな
美子っていう名のブスみたいなもんだな。
誰も突っ込まないところも同じ。
>>317
 設定EPROMレジスタでリセット入力端子を汎用入出力に出来る一チップマイコンは普通にあるけどね
バグっててリセットできないとむかつく。ノートPC使ってるが、ハングッたら
電源OFFさえできないのでバッテリーはずして電源ケーブルを
抜かなきゃならん。ヽ(`Д´)ノ 
何を考えて設計しているのかと小一時間・・・
>>320
電源スイッチ長押し
>320
今時、電源スイッチ長押しでだめなノートPCあるの?
それとも自分の無知を棚上げ...
323320:04/08/15 15:37
>>231>>232

え?電源スイッチ長押し・・・・・・?あ、ああ。そうだよ。そうとも

>>それとも自分の無知を棚上げ...
((((;゚Д゚)))y-~~ガクガクブルブル

・・・嫌だな。釣りだよ。釣り。
今時 知らない香具師いるわけないじゃん。w
次にハングしたら、慌てず騒がず、いつもの様に電源長押しで対処さっ ♪

                ∩
                ( ⌒)      ∩_ _グッジョブ !!
               /,. ノ      i .,,E)
              ./ /"      / /"
   _n グッジョブ!!  ./ /_、_    / ノ'
  ( l    _、 _   / / ,_ノ` )/ / _、 _    グッジョブ!!
   \ \ ( <_,` )(       /( ,_ノ` )      n
     ヽ___ ̄ ̄ ノ ヽ     |  ̄     \    ( E)
       /    /   \   ヽフ    / ヽ ヽ_//


漏れのノートPCの電源スイッチは落下のショックで押せなくなったのだが。

>>320
餅搗け。レス番間違ってるぞ。
>>324
起動できないね
>>325
大丈夫、ゼムクリップを使えばなんとか端子を接触させられる。
一度起動したら後はサスペンドかリセットしかしないし。
#サスペンド/サスペンドからの復帰は蓋の開け閉め。
327デフォルトの名無しさん:04/08/18 11:44
割り込みで書き込み、普通のルーチンで読み込みするとデータが化けるんだけど、何で?
色んな原因が考えられる。一概には言えないので、
なにをどうしてるか、環境とかをUPしてください。
>>327
バグってるから
>>327 volatile付けた?
多いのが 8bitマイコンで割り込みで 16bitのINC をさせたりしてるのを
メインで比較しようとしたらとかのミスだね
332デフォルトの名無しさん:04/08/18 19:02
メイン側の比較の最中に割り込みが起きるとアボーンというわけか・・・
333デフォルトの名無しさん:04/08/18 21:23
int幅より大きい変数を扱う場合は化ける可能性がある
あと、構造体やデータブロックを扱うときは
メインでアクセスしている最中に割込が入れば、
割込前と割込後でデータに整合性がなくなることがある
334デフォルトの名無しさん:04/08/19 07:47
単純に割り込み禁止・許可をすればいいんじゃない?
質問したひともういない?
336デフォルトの名無しさん:04/08/19 16:39
セグメンテーション・フォールト って
叫んでみたんだけど、まるで何かの必殺技みたいだよな
>>336
プログラムを一発で停止させる必殺呪文
338327:04/08/20 22:07
帰郷してました(^^;

職場の先輩に聞いてみたら、やっぱり>>331>>333のような話でした。
でも、割込禁止を使うと割込できるところが少なくなってしまうという問題があって。
割込って難しいですね。
>>338
複数命令にまたがって読むほんの数バイトのコードのとこだけ割り込み禁止にすればいいんだよ
340デフォルトの名無しさん:04/08/20 23:08
>>338
割り込みは不必要に多用される傾向があります。

割り込みを使うと、今回のようなボラタイルなデータの発生があります。どの
データがボラタイルか明確ならば良いのですが、注意していても見逃しやすい
ものです。通常は、割り込みルーチンを先に作りあげ、後からはできるだけ
いじらないようにします。

割り込みの多用は、プログラムを難しくすること以外に CPU の時間不可を
消費することです。急いでもいないものに割り込み処理をさせることで、
本当に高速に処理しなければならない処理が遅らされてしまいます。

残念ですが、最初から、時間不可を適切に配分した制御プログラムの設計は
めったに見られません。
>>340
 今回の件はvolatile関係無いんじゃ?
 volatileつけてても、下位の計算と上位の計算の間に、割り込みルーチンにより変数が
変化したら壊れた値を読んでしまう。
どうしても割り込み使いたくないなら、排他制御でぐぐれば
何かよさげな方法が見付かるのではないかと。
atomic性を保証する手段はいくつかあるし。

まあ割り込み禁止してしまうのが簡単・確実だと思うが。
>>342
AVRとかでの推奨は、16ビットレジスタは、
unsigned int TIM16_Read_TCNT1(void)
{
unsigned char sreg; /* ステータスレジスタ一時保存変数定義*/
unsigned int i; /* TCNT1読み出し変数定義*/
sreg = SREG; /* 現全割り込み許可フラグ(I)を保存*/
_CLI(); /* 全割り込み禁止*/
i = TCNT1; /* TCNT1値を取得*/
SREG = sreg; /* 全割り込み許可フラグ(I)を復帰*/
return i; /* TCNT1値で呼び出し元へ復帰*/
}
というふうにしてヤレとなってますな。
>>338
割り込みで16bitのカウンタを実装しないというのもシンプルで有効な戦法だよ。

割り込みでは8bitのカウンタを inc だけして
メインではそのカウンタがゼロでなければ、ひとつdecして16bitカウンタを1つ動かす。

メインで実際のカウンタを実装するわけ
345デフォルトの名無しさん:04/08/21 11:55
341>今回の件はvolatile関係無いんじゃ?
C 言語の volatile じゃなく、英語での volatile の意味と解釈してください
346デフォルトの名無しさん:04/08/23 07:45
データブロックの場合はバッファを持たせて、ポインタを使えば、
バッファを指すポインタをつけ換えるところだけ割り込み禁止にするだけでよいので、
割り込み禁止の影響は最小にできる
>>346
その方法ならReadポインタ Writeポインタを別にすれば、割り込禁止も無くせるね
348デフォルトの名無しさん:04/08/23 09:38
>>347
ReadポインタとWriteポインタが重なったときはどうする?
>>348
buff1
buff2
 ・・・
buffN
 とバッファがあるとしよう
PointerR PointerW が 最初 buff1を示しているとする。 
PointerW は割り込みでその位置に書いて 次のバッファを示すように更新される
PointerR はメインで、PointerWと値が違うときに、その位置を読んだ後に次の位置に更新される

たとえば、割り込み周期内でメイン内で1回以上呼ばれるなら、バッファのサイズは2でよい。

さて問題。
PointerWが2バイトで表現されたとして、メインの比較途中に割り込みが起きたとして、
それが誤動作の原因になるか?
>>340 デバイスドライバのトップハーフとボトムハーフみたいに、
「本当に必要な箇所のみ割り込みで動作」させるというのが解?
>>350
イエス
>>349
PointerW と PointerR の不一致検出なら
PointerRは割り込み側で更新されないから誤動作しないと思う

差などの演算結果を利用してたりするとダメダメ



>>352
もっとも比較のしかたによっては一周期検出が遅れる場合はあるでしょうから
それでタイミングが間に合わなくなるようだと誤動作するということになるですね
ほんなとこに神経使わなくていいように素直に割り込み禁止かけるのが吉
デバッグや機能追加でハマル原因
>>340
>残念ですが、最初から、時間不可を適切に配分した制御プログラムの設計は
>めったに見られません。
わたしゃ8ビットCPUのしょぼいコードしか書いたことないから偉そうなことはいえないけど、
「時間負荷の配分」がそんなに難しい問題とは思えない。

要はイベントaに対応する必須の処理を処理Aとすると、処理Aをブロックする処理(処理A自身を
含む)の合計時間がイベントaの最短の発生間隔を超えないようなコードを書くだけ。

あとはゲームや動画の分野では初歩の初歩である「忙しいときは
やってもやらなくてもいい処理は諦める」ようにするだけ。
これは時分割ルーチンのフラグをメインの中でポーリングするようにすれば
自然とそうなる。
355デフォルトの名無しさん:04/08/24 00:29
>>349
ポインタをインクリメントするところだけは割り込み禁止にしないと危なくないか?
厳密には安全な場合だってあると思うが
356デフォルトの名無しさん:04/08/24 11:34
HEW/C++では関数ポインタをvoid *で使えないみたいです。
何を定義したら良いですか?
>356
void (*pfunc)();

キャストするときはこんな感じ
pfunc=(void(*)())func;
>>355
良く考えれば、それぞれのポインタのインクリメントは割り込みとメインでされて
それぞれの不一致比較だけなので、問題無いと判ります。

危険そうだから保護というのは一見正しそうにみえて深く考えてなく
危険なのに保護されない原因になるので注意。
>>358
下の2行が なんか 心に響いた
360デフォルトの名無しさん:04/08/27 02:51
SH3を扱っている方で、
マニュアルに、多重割り込み時のレジスタの保存はユーザがやれみたいな記述があったと思いますが
gccで開発するとき、このあたりを意識していますか?
ちゃんとコンパイラが吐き出したコードを見ればいいのでしょうけど
アセンブラが苦手なもので。。。
ご教授ください。
>>360
そんな人はこの業界から去ってください。
海外に発注したほうがマシだ。
362360:04/08/27 09:53
>>361
ここは質問スレかと思った。すまんね。
>>360
意識以前にそんな濃いとこはアセンブラで書けよ
364デフォルトの名無しさん:04/08/28 06:13
割り込みはアセンブラで書くよな
365デフォルトの名無しさん:04/08/28 07:44
>>360
マニュアルにそう書かれているなら、
少なくともルネサスね開発ツールではサポートしてなさそう
やはりgccでもないと考えるのが妥当では?
366360:04/08/28 08:36
>>365
ありがとうございます。
やはりCとアセンブラではCの方が圧倒的に可読性が高いし楽に感じますので

単純に関数に入るときに現在のレジスタを退避するだけでいいなら
なにも考えなくてもいけるかなとか思ってました。
どなたか経験者がいればお話を聞きたいと思いました。
>>363, >>364 アセンブラで通常のジャンプとはどういうところを変えるか気にして書いたらいいですか?
うーん。

Cで書いて間に合うような処理なら、割り込みではフラグだけ建ててメインで処理すればいいんじゃないの?

と思っちゃうんだよね。 割り込みは最低限にするべきじゃないの?
割り込み負荷が大きいと、電池の消耗も大きいしさ、
色んなタイミング合わせが厳しくなって、その時楽に思えても、後で効いてくるんだよね。

通信  FIFOに書くまで
タイマ カウンタやフラグを建てるまで
368360:04/08/28 10:09
>>367
もちろんそうしています。
>>368
フラグだけ立てる処理をCで書いても、レジスタ保存しなくてよい可能性高くないの?

結局、Cの吐き出すソース見なくちゃ無駄なレジスタ保存するだけなわけで、
可搬性を考えるとそこだけ#if で区分けするしかないんじゃないの?

だったらそこだけアセンブラで書いたっていいんじゃないの?
370360:04/08/28 12:04
言語に関して言えば、
Cだと、割り込みをつかっても周辺機能のドライバは
H8->SH1->SH3 まで、ほとんどソースの変更なしに使えるし
初めてのチップでも
FDCのドライバで16bitFATを実装して4日
NE2000互換チップで、UDPまでなら6日
くらいで書けますよね。

これがアセンブラじゃそうはいきません
、、、すくなくとも私は、
>>361 だから仕事が回ってこないのかなぁ〜
やっぱアセンブラでグリグリ書ける位でないとだめかな
371360:04/08/28 12:09
>>368
もちろん処理系依存でしょうが
interrupt修飾子のついて関数は適切にレジスタ保存してくれていると思ってます。
ちゃんと吐き出されたアセンブラみないといけないですよね。
SH-2Aは割り込み専用のレジスタバンクを15個搭載してるらしい。
373360:04/08/28 16:05
↑の >>369 だったすみません
俺のペニスを制御するにはどうすればいんだ?
座禅でも組め
>>374
根元に付いている玉をはずしてみる
板違いかと思うんですけどちょっと質問させてください

当方、某地底大の理学部生なんですが
最近自分のやりたいことが純粋物理よりも制御系に近いことに気づいてしまいますた。
今までただの物理野郎だったので制御系に関することは自力で勉強しないといけないかな・・・と思ってまつ

将来的にはメーカー就職で制御系SEになりたいのですが、
こういう理論を勉強しておくとよいってのはありますか?
それとみなさんはこの道何年くらいやってるんですか?
378360:04/08/29 01:57
>>377
私は、>>361で言われている程度なのであまり大きなことは言えませんが
私の場合、元が高周波、アナログ系なんですが、多少なりとも電子回路をやっておいて助かったことが多いです。
ソフト屋は大抵工期の終盤ですし、トラブルがハードのせいなのかソフトのせいなのかの判断に迫られることが
毎度です。
ちゃんとハード屋が対応してくれればいいですが、「検査したし動くはず」としらんぷりするところも多く
ハードがわかっているとこういうトラブったときに、主導権を握りやすいです。
>>377
そういうのはなろうとするもんじゃなくて、私みたいになってしまうもんだと思ってたw

と冗談はさておき、制御系といってもやることはいろいろあるので問題を切り分ける能力が必要。
ハードウェアを渡されて、動かしてくれって仕事もあれば、
EWSのライブラリとCUI版の動作確認ツールを渡されて、GUIを作ってくれって仕事もあるだろう。
前者であれば>378の言うような電子回路系の知識やCPU周りのロジック回路の知識が必要かもしれないし、
後者であれば他人の書いたライブラリのバグを発見する能力が必要かもしれない。
また、(プログラミングもするSEでなく)上流工程を扱うなら、顧客の要求を聞き出す能力や
プログラマを管理統括する能力も必要になるだろう。

だがしかし、(大手)メーカー就職でそれだけの能力を身に付けてそういう立場に立つことができるかと聞かれると……
>>379
>そういうのはなろうとするもんじゃなくて、私みたいになってしまうもんだと思ってたw
ワラタ
あと、メーカったってどこに就職するかってのは難しい問題かもしれないね。
どこも分社化、アウトソーシングが進んでいるしね。
メーカに就職しても制御系の仕事(実務)が出来るかというと・・・さあ?
>>377

採用する側の設計管理職だが、物理のセンスは役にたつ。でも、留年してでも、
電子工学などでマスターを取ったほうが良い。工学屋の勉強もしておくことが
重要だよ。
>そういうのはなろうとするもんじゃなくて、私みたいになってしまうもんだと思ってたw

ムカツク
hmhm
とりあえず、工学部の院を目指してみることにします。
理学学士でも工学院の受験って可能ですよね、多分。

3年だからちょっと必死ですけどorz
↑377です
>>384
可能だよ。
でも、入りたいところの分野の基礎は知っていないとダメ。
制御系ソフト屋になるって学生時代から考えてる香具師もいるのか・・・
昔は電子工学卒でじゃんけんに負けた人がなる、と思われていたもんだが・・・



388360:04/08/29 20:11
>そういうのはなろうとするもんじゃなくて、私みたいになってしまうもんだと思ってたw
まったく同じく(w
なろうとしてなった俺は変わり者ですか?
390382 :04/08/30 00:01
>>384

4年目の研究室を工学系を選ぶの手だね。今の大学物理教育のレベルは
おちているそうだけど、統計・量子力学くらいまではきちんと学んだほうが
いい。いまでは工学系の授業は取れないの?

ま、厳しい実験系の研究室に行くことだよ。その1年間の苦労は将来に
必ず報われるからね。

391360:04/08/30 01:39
>>389
幸せ者だと思います。
>>387
一昔前はそんなもんだろ
回路屋ばかりの中でババひかされた奴が、
CPU廻りからソフトまで全部やってるうちに
何時の間にか組み込み専門になってるパターン
スイマセン専門しか出てない品管あがりのオサーンが
回路引たりVHDL書いたりI/Oなんかの下回りを
コーディングしたりしてから大卒院卒の子たちに上辺の
処理書いてもらってます。

だーれも半田ごて握ろうとしないでやんの
394デフォルトの名無しさん:04/08/31 06:56
ハードリアルタイム処理は
難しい
難しい
難しい
だんだんマターリと良い雰囲気になってきたなあ
愚痴はよそでやれ、なんて無粋なことをいわんでくれよ
396デフォルトの名無しさん:04/08/31 23:40
300mm対応の半導体製造装置。
semi規格準拠。
このような装置、シーケンサーで制御可能ですか?
シーケンサーで適切ですか?
情報量が少ないので、シーケンサーで十分という事にしましょう
ただし、MITUBISHI製な
398デフォルトの名無しさん:04/08/31 23:58
最近まで制御系っていうとハードに近い部分かと
思ってたけど、なんかメッセージでやり取りする
サーバ側のプログラムも制御系っていうの?
>>398
言わないな
400デフォルトの名無しさん:04/09/01 00:15
最近まで制御系っていうとOSのことかと思っていた。
401デフォルトの名無しさん:04/09/01 07:06
>>346>>349
亀レスだけど
データブロックとかReadPointer、WritePointerだと
割込禁止を減らせるというのがいまいちわかりません。
詳しくおしえてください。
>>399
部署いっしょじゃないの?
403360:04/09/01 07:30
>>396
むしろ、PLC(シーケンサ)の方が安全でよいんじゃないでしょうか?

>>397
なぜにMITUBISHI?
MITUBISHIのPLCって、シリアルモジュールで
連続でMAX点数まで読み込み要求すると、ぶち切りで全点返さないことがありません?
つまり、500点要求したのに200点しか返さない
もちろんパケットは正常に正規のパケット形式で。
>>396
制御はできるだろうけど、装置の分野によるんじゃないのかなあ。
PLCでR2Rとかできるのかなぁ。(よくわからん)
405360:04/09/01 08:18
>>396
製造装置の一部ですが、
上位との通信にPCを、本体はPLCでやってますけど。
406360:04/09/01 08:20
SECSをセクスと読んで怒られます(w
>>401
 割り込みと、メインで別の領域に読み書きしている限り割り込み禁止する必要は無い
 というのは判るよね?

割り込みで次々にデータが発生する場合、書き込む場所をその都度変えて
メインで読む場所とかちあわないようにしようというテクニックの話をしているわけ
408デフォルトの名無しさん:04/09/01 22:15
シーケンサー扱っている皆様へ
三菱派 or オムロン派

タッチパネルは
三菱派 or オムロン派

私はオムロンかな・・・
特にタッチパネルのNSシリーズはいろいろ出来て好きです。
(というか、GOTはあまり使ったこと無い)
409360:04/09/01 22:26
>>408
ラダーは書きませんが、コミュニケーションユニットでPCとの通信はよくやります。
MITUBISHIは、>>403みたいなことがあるし、フレームの形式などをみると
オムロンの方がだんぜんシンプルで好きです。
410デフォルトの名無しさん:04/09/02 00:04
組み込み系は解るんですが、制御系はどんなお仕事なんでしょうか?
マジレス希望。です
411デフォルトの名無しさん:04/09/02 00:05
>>410
このスレを読んでください。
>>410
PCプログラマの漏れの想像では、

・ボタンAが押されて、センサBがOFFなら、モータMを回すスイッチMをONにする。
・センサCがONになったら、モータMを逆転させるスイッチRをオンにする。
・センサDがONになったら、スイッチM、スイッチRをOFFにする。
・センサCがONになったら、アームを動かすモータのスイッチHをONにする。

とかこういうのを数百くらい定義して、機械を動かす仕事なんじゃないだろうか・・・
>>412
想像で言わないように。邪魔なだけです。
414デフォルトの名無しさん:04/09/02 17:06
413=410
>>412
そのようなことはPLCにまかせるのが常識。
PLCとの通信も今やほとんどOPCを使う。
設定値を書いたりデータ収集もSCADAがやるので
たまに上位通信のコードを書くくらいか。
なるほど。
PLCのプログラム(ラダーとか)を組む=制御系、かと思ってました。
そんな事だけの仕事なんてねえよ…ナメとんのか
418410:04/09/02 23:37
>>411
レスどうもです。はい、読んでみます。
>>412
レスdクスです。私も似た感じの想像をもってますよ。
419デフォルトの名無しさん:04/09/03 00:25
ヤフオクのパソコンでテレビ・ラジオが見放題の方法わかる人いる?
気になってるのだが。
>>419
そんなもん、制御系やってる人間なら常識だろ
>>410
機械制御に纏わる諸々を含めて制御系と言う。
例えばカーエレクトロニクスで言えばエンジン制御もカーナビも制御系と言えば制御系。
#対義語は業務系。
>>419 が何を言っているのかわかる人いる?
スレ違いな気がするのだが。
423360:04/09/03 11:24
>>422
みんなわかってますよ。
424410:04/09/03 21:39
>>421
レス、どもです。わかりやすい説明、ありがとうございました。
過去スレも読んでみました。
理系色が強い分野という印象受けました、です。
>>421
 住人には機械屋さんが多いみたいだけど
スレの歴史的には組み込み全般も含めて
広義の制御系じゃないか?

ちなみに俺は通信機屋、見た目だけなら全く動かない(w
制御系もハードよりとソフトよりがある。
ハード系の仕事にソフトしか知らない自称「制御系」が入ってくると悲惨。
ナニコイツ.....(;´Д`)????って感じ。
FAの世界では制御するのはあたりまえなのであまり制御系とか言わない。
昔ROMに焼いてプログラム動かすのが組み込み系と思ってた
429デフォルトの名無しさん:04/09/04 13:26
>>428
今もほぼその解釈で合っている
430デフォルトの名無しさん:04/09/04 14:01
>>429
おいおい
>>426
いま組み込みLinuxがうるさくいわれてるのはそんな人が多くなったからでしょ?
Linuxベースにすれば莫大な数のソフトを流用しやすくなるしね。
PCアプリ系の方が強いコーデックとかの数学関係のミドルウエアは魅力。
CPUのFLASHに直焼
>>433
デバイス変わっただけだろ
435デフォルトの名無しさん:04/09/07 04:14
>>433>>434
禿ワロタ
>>426
>ソフトしか知らない自称「制御系」
ああ、これは困るんだよ
将来食えないんだよ
どうしよう
ソフトで食べれなきゃハードで食べればいいじゃないの
(マリー)
438360:04/09/07 21:20
>>426
ソフトの都合を考えてくれないハード屋さんも困りもの
そりゃ論外か(w
ソフトもハードも逝ける両刀使いなのが制御系の利点なんじゃないか
ウッフーン
PLCのメンテ関係も便利になってきたよね。
ROMライター使わなくてもコンパクトフラッシュでプログラム保持したり
USBケーブルでメンテ出来たり・・・
441デフォルトの名無しさん:04/09/11 00:59:15
保守
442デフォルトの名無しさん:04/09/13 01:12:18
ドライバやファームウェアは制御系で合ってる?
443360:04/09/13 01:44:22
>>442
組み込みってことですよね。
対するは業務系なので制御系のつもりでいます。
で、なにか話題がありますか?
444デフォルトの名無しさん:04/09/13 01:48:15
ttp://www.cqpub.co.jp/interface/
自分としては↑こーゆーのとか(ソフト含む)をまとめて制御系という認識だなあ
445デフォルトの名無しさん:04/09/13 01:50:50
446デフォルトの名無しさん:04/09/13 02:26:54
あるデバイスのインターフェイス関数をまとめるとき、
引数と戻り値を構造体へのポインタで受け渡しするのはいいとして、
呼び出される側の関数が内部で保持する変数群を、
呼び出す側から指定するのは、どうやったらすっきりまとめられる?
447デフォルトの名無しさん:04/09/13 03:25:50
>>446
> 呼び出される側の関数が内部で保持する変数群を、
> 呼び出す側から指定するのは、どうやったらすっきりまとめられる?

ここがいまいち不明なので詳しく
448デフォルトの名無しさん:04/09/13 04:46:12
>>446
グローバル変数

449デフォルトの名無しさん:04/09/13 07:03:50
>>447
失礼
要するに、同じ関数を何度も呼び出して、それぞれに状態を保持させる場合という意味
その状態は、外部には関係ない変数というとき、どうしたらよいのか
450デフォルトの名無しさん:04/09/13 07:22:37
複数のオブジェクトということかな?
451デフォルトの名無しさん:04/09/13 09:06:55
お前らXMODEMとか好きか?
452デフォルトの名無しさん:04/09/13 12:42:29
>>449
そんなあなたにオブジェクト指向
453デフォルトの名無しさん:04/09/13 12:45:59
>>451
俺はお前が好きだ
454360:04/09/13 13:12:13
>>449
普通に戻り値で状態値を返して呼び出し側で管理する
じゃダメなんですか?

やたらなんでも隠すよりも、
関数1つ1つをなるべく汎用的なパーツにして
使うほうがいろいろ理するほうが、後で見てわかりやすいとおもうけど
そういうこととはちがう?
それともポリモリたいってこと?
455360:04/09/13 13:29:13

×いろいろ理するほうが
○いろいろするほうが
456デフォルトの名無しさん:04/09/13 14:02:45
C の fopen だって、いってみれば FILE クラスの
インスタンスへのポインタを戻す関数だ。
だから、内部バッファに何バイトデータが入ってるとか
そういう細かいことを気にせず使えるわけで。
457デフォルトの名無しさん:04/09/13 18:59:12
>>454
そうですね。
やたらとこれは公開する、これは隠ぺいするとこだわると、
かえって複雑になるだけのような気がします。
この場合は、無理にstatic属性にするよりも、
インターフェイス用の構造体に含めてしまった方が自然に思えます。
どのみち、Cでは完全なオブジェクト指向はできないですし。
458デフォルトの名無しさん:04/09/13 19:00:24
未だにC++も使えないのかこの業界は(w
459デフォルトの名無しさん:04/09/13 19:01:38
>>458
あなたは制御系やったことあるの?
460デフォルトの名無しさん:04/09/13 19:03:09
USBのメモリスティックの接続を切るAPIってありますか?
調べたけど全然見付からない。。。 OTL
461460:04/09/13 19:32:35
OSはITRONです
462デフォルトの名無しさん:04/09/13 20:17:39
また512k発言出ないかなー
463デフォルトの名無しさん:04/09/13 20:48:36
>>458
mallocも使ったことないけど何か?
464デフォルトの名無しさん:04/09/13 21:51:52
組み込み業界じゃC++は普及率国内15%ぐらい、英・米で40%ぐらいだったと思う。
その内組み込みの世界でも流行するのかね?
C++にするメリットがイマイチよくわからん。
クラスなんて概念だけにとどめておけばよいものを、言語仕様にするから
下手に設計→プロジェクト頓挫、なんてことになるのでは?可読性もいいとは思えん。
ま、おっさんで現役引退してるからな・・・・
465360:04/09/13 21:54:24
>>464
確かに一部の機能は欲しくはなりますね。
466デフォルトの名無しさん:04/09/13 21:58:43
動的インスタンス生成なんて、メモリの使用状況が読めないので、こわくて使えない。
だいたい必要なインスタンスの数は静的に決まってしまうので、配列で充分なことが多い。
オブジェクト指向は興味あっても、使い道がない。
467デフォルトの名無しさん:04/09/13 22:26:57
そのうちメモリ1GB積んだ炊飯器とか出るんだよ。
そのときC++が役に立つ。
468デフォルトの名無しさん:04/09/13 23:05:39
>>466
> だいたい必要なインスタンスの数は静的に決まってしまうので、配列で充分なことが多い。

だね
ヒープが虫食いだらけになって、ガベージコレクションが始まったら・・・((;゚Д゚)ガクガクブルブル
469デフォルトの名無しさん:04/09/13 23:07:13
>>467
そのころのPCではどんなプログラミング形態になっているんだろうね〜
470デフォルトの名無しさん:04/09/13 23:09:12
>>469
そのころはWinCEで制御なので(ry
471デフォルトの名無しさん:04/09/13 23:39:29
蓋を明けたら真っ青なお米が炊き上がってるんだな
472デフォルトの名無しさん:04/09/13 23:42:36
炊いてる途中なのに凍るんじゃない?
473デフォルトの名無しさん:04/09/13 23:57:49
>>468
ガベージコレクション?
ヒープマネージャすらいないですよ
どうせグローバル変数ばかりですよ
悩まなくていいから気楽ですよ
474デフォルトの名無しさん:04/09/14 00:31:51
>>460
ミドルウェアとして販売されているんじゃないの?
フリーで手に入れたいとか?
475デフォルトの名無しさん:04/09/14 00:32:45
>>464
ポリモーフィズムとかテンプレートとかいいと思うけど。

>>466
placement newがあるよ。
476デフォルトの名無しさん:04/09/14 00:39:13
前にMSP430C413上で組んだときRAM足りなくなって困ったことがあったなぁ

>>462
512K発言も去年のいまごろだっけ
477ビル・ジョブス:04/09/14 04:36:06
>457
遅レスで申し訳ないが、公開と隠蔽は設計時に考慮しておけば問題にならない、
というか、そこにコストを費やすのがプロでしょ?

>476
TX49(32BITモード動作)でSDRAM256MBもあって困ってるよ。
どんな蛸が書いてもキビキビ動作しちゃうからバグの巣窟になりそうで。
478デフォルトの名無しさん:04/09/14 05:21:35
256MBしかないの。
479デフォルトの名無しさん:04/09/14 05:30:48
>>477
C++でなくて、Cで公開、隠蔽にこだわるのも限度があると思うが。
480デフォルトの名無しさん:04/09/14 08:53:39
メモリも安くなったよな
481デフォルトの名無しさん:04/09/14 18:38:36
C++にこだわる理由もないし、Cで書かなきゃいけないわけでもないので
開発者の好きなようにさせればいいと思う。っていう事で桶ですか?
482デフォルトの名無しさん:04/09/14 18:50:11
>>481
それは普通に駄目だろ
483デフォルトの名無しさん:04/09/14 18:54:56
>>481
ハードウェアのコストとソフトウェアのコストとサポートのコストの合計
を抑えられるならね。
484デフォルトの名無しさん:04/09/14 19:03:34
>>482
意見を述べよ
485デフォルトの名無しさん:04/09/14 19:10:33
言語の指定は開発者じゃないよなぁ
まあ趣味でやってる開発者ならそうなのかもしれないか
486360:04/09/14 19:57:38
>>485
自社製品ならいいんじゃないでしょうか
487デフォルトの名無しさん:04/09/14 20:22:28
474>>

自分で実装しないといけないんですよ。
OSはWindowsなのにWindowsを見せないとかいう訳のわからんコンセプトなので。
だったらメモリスティック使うなと(ry
488デフォルトの名無しさん:04/09/14 20:31:06
>>487
OS は ITRON じゃなかったの?
489デフォルトの名無しさん:04/09/14 20:53:19
はい。TRON上のWindowsCEです。
490デフォルトの名無しさん:04/09/14 21:00:48
>>481
今の仕事の環境では、Cかアセンブラしか選択肢がありませんが何か?
491デフォルトの名無しさん:04/09/14 21:06:17
>>487
DeviceIoControl() IOCTL_STORAGE_EJECT_MEDIA
そんな実機無いから試してないので動くかどうかわからんがな
492デフォルトの名無しさん:04/09/14 23:39:55
>>490
そこまでしてTRON使うほど時間に厳しいのか?
493デフォルトの名無しさん:04/09/15 09:41:16
今度の案件はメモリ16KBですが何か?
494デフォルトの名無しさん:04/09/15 09:59:15
>>488
OSはWindowsです。
461は偽者です。

>>489
俺を騙るなヽ(`д´)ノ

>>491
ありがとうございます。
試してみます。
495デフォルトの名無しさん:04/09/15 10:56:38
>>493
おめでとう。
俺は今まで6KBだったよ
496476 :04/09/15 12:18:06
8KB ROM, 256B RAM
こいつはPICマイコンかと思た<MSP430
スタートアップ以外全部Cで書いた、よく収まった、自分を誉めてあげたい
497デフォルトの名無しさん:04/09/15 21:17:52
コンパイラ作者もほめてあげてw
498デフォルトの名無しさん:04/09/15 22:01:41
スタートアップもCの文法範囲内でむりやり書いたことがあるよ。
興味本位でやってみたけどつまらなかった。
499デフォルトの名無しさん:04/09/15 23:15:15
興味本位でするなよ・・・・
500デフォルトの名無しさん:04/09/15 23:18:02
256のRAMでCって、チャレンジするだけですごい
どんなアプリを走らすの?
俺なら、チャレンジする前に、そんなのできるか!って言いそう
501デフォルトの名無しさん:04/09/15 23:23:47
>>468
ガベージコレクション?MMUで対応できますよ。例えば・・・・・

 焼肉屋で、カルビセット頼んだ。
  ↓
 「ナルム」が付いてきた。単体ではまず頼まない品です。だって、いらないもん
 でも食べました。だって価格に含まれてるもん。
  ↓
 会社で次機種ではARM946EJ-Sを採用しますって言われた。
 MMUが搭載されています。
  ↓
 ざわざわ・・・ナルムか・・・ざわざわ・・・・・・ナルムだろ・・・・
502デフォルトの名無しさん:04/09/15 23:24:40
あ・・・926EJ-Sだ・・・orz
503デフォルトの名無しさん:04/09/15 23:26:48
504デフォルトの名無しさん:04/09/16 02:15:16
>>498
ヲタクw
505476:04/09/16 04:20:40
>500
ある懸賞の賞品、11000作って10000は撒いたらしい

>497
IARは偉かった
506デフォルトの名無しさん:04/09/16 10:14:12
>>504
なんだと
507デフォルトの名無しさん:04/09/16 18:13:34
興味でプログラム書いている奴はヲタクでしょ?
508デフォルトの名無しさん:04/09/17 07:46:14
おまえら
C++でもCでも、どっちを使ってもいい環境のとき
どっちを使う?
509デフォルトの名無しさん:04/09/17 07:50:24
>>508
まずは設計図を見る。
510デフォルトの名無しさん:04/09/17 08:00:39
そして開発陣の力量と、
仕様書と開発言語のマニュアルとetc…
511デフォルトの名無しさん:04/09/17 08:49:24
>>508
C++選んどいて、C中心
512デフォルトの名無しさん:04/09/17 09:27:02
でも、実際C++をC++らしく有意義に使いこなせる香具師って
めったにいない。
叩かれているが、エピスくらい使える香具師はめずらしい
513デフォルトの名無しさん:04/09/17 10:21:50
使えるならC++使う。
だがうちに来るファーム関係の仕事ではC++が使えるような規模のはまず無い。
514C++ ∋ C:04/09/17 11:27:36
>>508
その環境で C を選ぶ理由がない。
515デフォルトの名無しさん:04/09/17 12:37:40
C++だと、そんなにメモリを食うのですか?
516デフォルトの名無しさん:04/09/17 12:49:22
マジレスしておくと、言語使用的には特にメモリの必要量が増えるわけではない。
寧ろ、効率よいコードを書くことによって減る可能性もある。

問題は、C++だからと安易にSTLを使って肥大化させてしまったり、
ターゲット機上ではコンパイラが動かなかったりすることかな。
517デフォルトの名無しさん:04/09/17 14:09:52
STLだって実装によってはコンパクトなのもあんじゃないの?
確かにSTLPortとかはでかいけど。
518デフォルトの名無しさん:04/09/17 14:43:01
リアルタイムしかやらない俺にはC++なんて無関係
519デフォルトの名無しさん:04/09/17 22:10:48
>>517
安易じゃなきゃいいの。
520デフォルトの名無しさん:04/09/17 22:51:37
Cでオブジェクト指向っぽく書く方法ってないの?
521デフォルトの名無しさん:04/09/17 23:03:06
あるけどそんな事する位ならC++を使った方がいい
522デフォルトの名無しさん:04/09/17 23:03:09
523デフォルトの名無しさん:04/09/17 23:41:47
>>522
そう言うの期待してたよ
thx!
524デフォルトの名無しさん:04/09/17 23:52:36
>>520
特集 オブジェクト指向の実装技法入門

多態や隠蔽の実装を解説
 オブジェクトやクラスをC言語で表現する

http://www.cqpub.co.jp/interface/contents/2002/200205.htm
525デフォルトの名無しさん:04/09/17 23:53:41
>>522
趣味の世界だな。仕事でやられたら・・・・
読みにくいんじゃ━━ヽ(`Д´)ノ━━ ゴルア!! 

    パーン _, ,_  パーン
パーン_, ,_  ( ・д・)  _, ,_パーン
  ( ・д・) U☆ミ (・д・ )
   ⊂彡☆))Д´(☆ミ⊃  パーン
    , ,∩彡☆ ☆ミ∩, ,
  (   )  パーン (   )
 パーン      パーン
526デフォルトの名無しさん:04/09/18 00:02:59
>>525
私はやってるよ。
C++よりは早いからね。
527デフォルトの名無しさん:04/09/18 00:05:35
初期のC++は、Cソースへ変換してからコンパイルしていたという話もあるな
528デフォルトの名無しさん:04/09/18 00:08:36
>>526のソース、なんとなく見たくない。
529デフォルトの名無しさん:04/09/18 11:43:29
>>522 のリンク先、近い事はウチもやってるなあ。
Solaris や HP-UX の仕事で。
いや C++ コンパイラが買えないからしょうがなく。

>>525
一度、Xt Intrinsics でカスタム Widget を作る事をオススメする。
530360:04/09/18 16:25:26
C++や、なんちゃってC++は、出来る人のコードならいいんでしょうけど
プロジェクトにやっとこさついて来てる程度の人だと
後で見て、とても追えないものになっていそうで怖いですね
クライアントもまだついて来れませんし、ひとりよがりって見られそうです
うちでは、まだフルに使える状況じゃないですね
531デフォルトの名無しさん:04/09/18 16:36:04
C++を使うなら使うで、部門内での意思統一は必要ですね。
なんちゃってC++の時点でコンセンサスが得られていないかと・・・
532デフォルトの名無しさん:04/09/18 16:38:01
本来なら楽な意思統一のためにフレームワーク使うんだけど
組み込みじゃ無理だろうな…
533デフォルトの名無しさん:04/09/19 01:14:04
インスタンスの動的生成という時点で、使ってみる気が失せる。
アメリカではC++の方がCよりも使われてるようだが、
どうやって使いこなしているのだろうか?
534デフォルトの名無しさん:04/09/19 02:13:55
>>533
C++は動的生成が必須なわけではありません。
535デフォルトの名無しさん:04/09/19 02:18:54
std::stringとかコンテナは動的生成してない実装を見た事がありません
536デフォルトの名無しさん:04/09/19 02:20:12
>>533
それはもちろんアメリカ人が優等人種だからですよ
537デフォルトの名無しさん:04/09/19 02:22:45
ユダヤ人ね
538デフォルトの名無しさん:04/09/19 05:22:17
そりゃま、全部静的にできるけどさ、
それってC++である意味がほとんど無い。
better C的なものでしかないね。
ま、俺も組み込み系でC++を使えたときにはほとんどそうなっちゃうんだけど。
Winアプリとか作るときにはそんなことはしないが。
539デフォルトの名無しさん:04/09/19 09:42:39
>>538
無くネーヨ
継承しなければクラスも普通に書けるんだし。
540デフォルトの名無しさん:04/09/19 10:24:18
静的生成だと、グローバル変数でもいいじゃんって希ガス
541デフォルトの名無しさん:04/09/19 10:27:40
>>540が何言いたいのか分らないのは俺のレベルが低いせいだろうか..?
542デフォルトの名無しさん:04/09/19 10:39:12
>>541
間違いなく
543デフォルトの名無しさん:04/09/19 11:32:25
>>540
飛躍し過ぎ
動的生成→malloc
静的生成→配列
で、配列のオフセットくらい渡せるだろ
544デフォルトの名無しさん:04/09/19 11:54:59
つーかうまくpoolするようにアロケータ書けば動的生成も問題無いと思うんだけど。
やっぱ制御系は頭腐ってるオッサンばっかなの?
545デフォルトの名無しさん:04/09/19 12:00:08
>>544
リアル厨房ですがなにか
546デフォルトの名無しさん:04/09/19 12:00:56
まぁ確かにポインタ変数に整数値を持たせる戯けはいるし
1024*20*32768なんて3次元配列静的に確保する阿呆はいるし
グローバル変数があればメンバ変数なんて要らないなんて頓珍漢もいるがな。
547デフォルトの名無しさん:04/09/19 21:21:50
ioctlの引数はマジで柔軟すぎ
あるときはポインタ、あるときは整数、またあるときは
548デフォルトの名無しさん:04/09/19 22:11:40
Interface誌でもC++やってんのにまだ否定的なひと多いのな。
549デフォルトの名無しさん:04/09/19 22:19:54
過去レスにもあったけど、炊飯器が1Gのメモリでも積むようになれば、
C++を考えてやってもいい
550デフォルトの名無しさん:04/09/19 22:23:18
否定的っていうか、C++使うほどでもない物にC++使わないし、
使いたいなら使うし。
551デフォルトの名無しさん:04/09/19 23:12:25
静的メンバだけで閉じる規模のシステムだと、
動的生成なんか実装するだけ無駄だろ。
制御とか組み込みとかになると、全部が全部そんな贅沢な環境じゃないってこと。
552デフォルトの名無しさん:04/09/20 00:00:07
>>549
>>550
>>551
どのくらいからがC++が選択肢に入るの?
553デフォルトの名無しさん:04/09/20 00:07:59
つーか怖がりすぎ。
BetterCだとしても使えるものは使うのが技術者ではないのかね。
554デフォルトの名無しさん:04/09/20 00:15:03
コンパイラが用意されれば少なくともbetter Cとして使うよ。
バッファ以外に数十kbyteくらいメモリがあって、
クラスを使うメリットがあるなら普通に使うし。
単に環境に合わせているだけだよ。
555デフォルトの名無しさん:04/09/20 13:44:36
C++使える開発環境なんだが、既存ソース至上主義の職場だから
手を入れられねぇ

それ以前にまずは、構造化をちゃんとやれと・・・・
556デフォルトの名無しさん:04/09/20 13:47:14
つーか16KBもあれば十分C++で動くだろ。
iostream使うとか余程アフォな事しない限りは。
557デフォルトの名無しさん:04/09/20 15:12:24
OSもライブラリも無い状況では、まずメモリ管理を実装するのが面倒なんだよね。
だからメモリがある程度あっても静的変数ばっかりのほうが楽で速い事が多い。
そもそも入出力からファイルシステムからみんな自分で作らないといけないなんてざら。
入力がボタンだったり出力が新規開発のデバイスだったりとかね。よくあるよ。
558デフォルトの名無しさん:04/09/20 17:14:27
C++でもnew封印すりゃ組み込み便利だぜ
559デフォルトの名無しさん:04/09/20 17:53:13
>558 それいいけど代替品作るの面倒だよな。

C++が恐いのは動的生成によるメモリ分断化なんだけど、防ぐ方法ないよな?

MMU使ったOSとか、そういう豪勢な環境ならまだしも
560デフォルトの名無しさん:04/09/20 19:43:54
ガベコレってOSがやってくれるの?
561デフォルトの名無しさん:04/09/20 20:29:48
少なくとも低レベルメモリ管理はOSのお仕事の範疇でしょう。
562デフォルトの名無しさん:04/09/20 20:49:49
>>560
OSがやらなければ、誰がやるんだ?
少なくとも俺はやだ
563デフォルトの名無しさん:04/09/20 21:46:32
>>559
覚悟を決めてallocator<T>をつくるしかない。
もしくはboost::poolとか使えるかも。
564デフォルトの名無しさん:04/09/20 23:57:28
>>562
キミはいったい誰なんだ?
OSではないとすると、アプリなのかw
565デフォルトの名無しさん:04/09/21 00:03:31
>>564
きっとドライバだよ
566デフォルトの名無しさん:04/09/21 00:13:27
動的生成を封じられたC++の存在価値って何?
567デフォルトの名無しさん:04/09/21 00:15:27
リアルタイム制御で、C++をはじめとしたオブジェクト指向が使われないのは
やはりメモリマネジメントの問題と考えてよいのでしょうか?
568デフォルトの名無しさん:04/09/21 00:16:46
>>566
カプセル化(制御系に多いバカ封じ)
そもそもバカはC++を使えないと言う話もあるが
569 ◆FIcNi4f8js :04/09/21 03:43:54
>>567
メモリマネジメントの問題というより、そもそもC++ってメモリ使いまくるし
遅いから・・・
570デフォルトの名無しさん:04/09/21 05:21:15
>>569
ネタ?
どっちかと言うとこっちのスレ向けなんだが。
http://pc5.2ch.net/test/read.cgi/tech/1090324689/
571デフォルトの名無しさん:04/09/21 07:39:08
ヒープ使いすぎ
572デフォルトの名無しさん:04/09/21 10:04:13
>>567
最適化の問題が絡んでるって事は?
組込みだとコンパイル前後でのコードの実行順序が代わるのを
嫌って最適化を弱くする事が多い(volatileをきちんと使えば
よいだけな気がするけど)。その結果、本来ならinline展開
されるようなコードでも、展開されず遅くなるとか。

>>571
>ヒープ使いすぎ
別にC++は"stringやらlistをメモリオーバーヘッド無しで
利用できますよ"なんて規格でうたっているわけではない。
組込み向けなヒープにやさしいライブラリを作ればいいだけでは?
573デフォルトの名無しさん:04/09/21 10:14:03
組み込みだとそもそもヒープ自体存在しない環境も多いのでは?
574デフォルトの名無しさん:04/09/21 10:18:49
Cでいいじゃん。
575デフォルトの名無しさん:04/09/21 10:45:23
>>573
ヒープが使えなくてもコンテナライブラリは作れると思うけど。
まあ、そういう規模の小さなものまで何が何でもC++でとは言わんけど。
ただ、余りに本質とかけ離れた言い訳でCでいいじゃんとか言ってるのは
ソフト屋としては余りに痛いかと。

576558:04/09/21 11:00:06
単純に文法として便利な面が多いから
new封印C++を使ってるが、異端なのか?
577デフォルトの名無しさん:04/09/21 11:05:34
>>576
classも封印、structの中にメンバ関数書くのも封印
//も封印
578デフォルトの名無しさん:04/09/21 11:25:10
>>576
templateなんかは本来組み込みにもってこいなんだけどねぇ。
templateのコード展開量を簡単に確認 and 展開量を強制
出来りゃ問題無いんだろうけど。

>>577
だーかーらー、仮想関数じゃないメンバ関数の呼び出しと
普通の関数呼び出しのコストは代わんないって。仮想関数
じゃなくてもカプセル化の観点からすれば十分意味あるし。
579デフォルトの名無しさん:04/09/21 11:27:18
>>578
組込CPU用コード生成するコンパイラでまともにテンプレートに対応してるのなんて聞いた事無いよ。
580デフォルトの名無しさん:04/09/21 11:33:46
他にネタは無いのか!ネタは!
581デフォルトの名無しさん:04/09/21 20:45:32
enum型で関数オーバーロード、演算子多重定義。
これなら組込みでもオーバーヘッド無しに使えるだろ。
582デフォルトの名無しさん:04/09/21 21:49:58
Embedded C++は無視ですか?
まああれは糞だけど
583デフォルトの名無しさん:04/09/22 00:11:04
>>566
動的生成なしでも使えるのがC++のいいとこだとおもうけど。
Javaにはできない。

>>567
リソースが少ない環境がおおいから、嫌ってるだけかと。
AdaもOOやってんだから、組み込みnotOOってわけではない。


俺がC++で苦痛なのは例外処理。
組み込みで使ってる人いるんだろうか。
584デフォルトの名無しさん:04/09/22 06:38:58
>>581
オーバーロードは便利そう。
型の違う引数のとき、いちいち関数を作り替えたり、関数でなくてマクロにしてみたり、
Cだとめんどくさい。
585360:04/09/22 13:54:26
毎回同じ環境ならいいのですが
CPUが変わったり、処理系が変わったり
一人だったり、複数でやったりだと
開発者のレベルもまちまちってこともありますし
処理系のためのライブラリをわざわざ作るのも
単にトラブルの元になるだけって感じだし
そういうのを意識したくないので
C++にはまだ行く気がしないですね
ちなみに、パソコンやワークステーションの方は、C++かDelphiです。
586デフォルトの名無しさん:04/09/22 14:02:38
>>584
581は「enum型で」オーバーロード、演算子多重定義なわけだが。

enum A;
enum B;
int operator+(A a, B b);
とか
int f(A a);
int f(B b);
int f(int d);
とか。

enum→整数型が自動変換なので型チェックが甘い。
ただしclassほどのオーバーヘッドがない。
GCCだと要素ひとつのclassのインスタンスもレジスタにうまく載らない
が、enumのインスタンスは載る。
587デフォルトの名無しさん:04/09/24 13:00:27
gccでC++が普通に使えるって、こないだ知ったわ
588デフォルトの名無しさん:04/09/24 14:54:44
状態遷移表を使ってる人っている?
あとそれをサポートするCASEツールを使っている人とか。
589360:04/09/24 15:43:36
>>588
有限状態機械のことですか?
違ってたら逝きます。。。orz
590デフォルトの名無しさん:04/09/24 15:49:54
>>589
ステートダイアグラムの事じゃない?
有限状態オートマトンって…
591デフォルトの名無しさん:04/09/24 16:26:13
Oat Mutton
592360:04/09/24 16:55:01
>>590
そうです。
状態遷移表って、そのことかなって

有限状態機械は、2次元でやると穴が出来ないから
すっ飛びにくくはなりますね
昔、1次元で、猛烈にひどいコードを見た事がありますw
593デフォルトの名無しさん:04/09/24 22:55:10
>>592
使ってるけど、CASEは使ってない

以前ZIPCはよさげだなと思った
594デフォルトの名無しさん:04/09/25 00:23:52
>>588
通信系では使います。
マンマシンインタフェィスで、必要になる場合は、
操作性が悪いということだと解釈してます。
595デフォルトの名無しさん:04/09/25 06:11:02
C++でいいと言う人。Cでいいと言う人。いろいろいると思いますが。
”住めば都”って言うように、実際その言語でやっていけば
本当にいいと感じるかもしれません。
ただ、Cから強制的にC++に引っ越すには。それをさせる動機があまりにも弱く
ある結果(アプリの作成)を出すにはどちらでもいいように感じます。
実際のところ今までやってきたCを捨ててまで、
C++に移行しなきゃならないように追い込まれるほどではなく、
ソフトの作成はCでほとんどできちゃいます。極端な話、これは何十年たってもそうだろうと思う。

#個人的に思うにオブジェクト指向というのも、
#今までの構造化プログラミングに変わるソフトウェア作成の概念というだけであり、
#両方の考え方とやり方は違うが、同じ結果を出せるはずだと思います。
#もっと、深読みすると「ソフトウェア産業の活性化」だけの為にできたようにも個人的に感じる。

あと、思ったのはオブジェクト指向がアルゴリズムの実装方法に関して
学習するのを妨げやしないか、と個人的に思ったりしてます。
というのも、今までにある使い尽くされたモジュールは大抵は実装されて
それがどういう処理になっているか知らずに簡単に使用できます。
初心者等が簡単に実装できる半面、それ自体の処理の流れは知らなくてもいいのです。
まぁ、もちろんそんなもの勉強すればいいじゃんと言われればそうですけど、
そういう風になる可能性もあるということが言いたかったのです。
極端なことを言うと、実際の処理を知らずにアプリを作成する、ということも可能なのです。
これは、良いことじゃねーかと言われる方もいますが、自分にとっては何か不安が残るところです。
596595:04/09/25 06:19:41
むしろ、先にCを覚えずにC++を覚えた方がスムーズに
学習できるかもしれません。
Cを先行してマスタしてC++に移行した方に質問したいのですが、
C++をスムーズに学習できましたでしょうか?
597デフォルトの名無しさん:04/09/25 06:34:55
御託並べるからC++の肝が理解できなくなる。

それはさておき、先ずはK&R時代のCの書き方を捨ててansiで書くようにすべし。
そうすればコンパイラがどちらであっても通るコードになるはず。
#細かい差はあるにせよ。
然る後、拡張部をC++流で書くなり必要なところを置き換えるなりすればよい。
C++だからといってなにも畏まる必要もないし、それはCでも同じこと。

学習の妨げ云々に関してはオブジェクト嗜好のみの問題でなく、
構造化プログラミングでも同じことが言えると思う。
部品のモジュール化、カプセル化、詳細の隠蔽はCのみでもそれなりにわけだし。
598360:04/09/25 07:10:26
以前、Cで書いたあった処理をC++に書き直したとき
きちんと構造化してあったおかげで、ほとんど苦労なく書き直せました。
たしかにC++の方が綺麗に作れますが、ヘボが書くととんでもない事になりますね
まあ、この辺の話はスレ違いで、組み込みなどのプアな環境でのC++という話だったかと。。
599デフォルトの名無しさん:04/09/25 08:26:15
あっちのスレで見たんだが、二進数を0b11010010って書けるCの処理系があるんだそうだ、
って今やってみたら、うちの処理系でも出来たわ。今までの苦労はいったい、、、、
600デフォルトの名無しさん:04/09/25 09:09:49
苦労?工エエェ(´д`)ェエエ工
601595:04/09/25 09:37:06
何かちょっとしたものを書くとき、
すぐにCで考えてしまうのが割り切れてないのかなぁ、と思う今日このごろ。
602デフォルトの名無しさん:04/09/25 10:11:26
>>599
あるそうだって。。。。。。
603デフォルトの名無しさん:04/09/25 10:38:56
>>600
2進で書くのも16進で書くのも大差ない気がするが。
もしかして>>599は10進で書いてたとかw
604デフォルトの名無しさん:04/09/25 10:45:23
>>603
パラレルの入出力考えてたり、SPIなんぞで
妙な位置に割り付けられてると偉く面倒なわけで

出来ないわけじゃないが、面倒くさい
605デフォルトの名無しさん:04/09/25 12:35:24
>>603
実際にハードじか叩きするコード書いたことない人間の発想だな。
606デフォルトの名無しさん:04/09/25 12:41:20
>>605
>>603じゃないけれど、
2進数を16進数に一瞬で脳内変換できるくらいでないとダメだと思うよ。
実際、16進数で書いても2進数で書いてもほとんど変わらない。
でも、確かにポートのビットをOn/Offするのには2進表記の方が見た目に
直感的だとは思うけれど。
607デフォルトの名無しさん:04/09/25 12:43:40
2進で書くと、何番目がたってるか目で追うのが逆に大変だったりとかない?
608デフォルトの名無しさん:04/09/25 12:52:18
>>565
なんか単に感傷にしか聞こえないんですが。
じゃあお聞きしますが、仮想化・ブラックボックス化が不安というなら、
あなた自分の書いたコードの動作を固体物理学レベルで(w理解してないと不安に
なるんですか?

だってそうでしょ?
c処理系・機械語・ALUやメモリ・トランジスタ……
色即是空じゃないが、これ全部仮想化の産物ですよね。
609608:04/09/25 12:56:06
X:>>565

○:>>595
610デフォルトの名無しさん:04/09/25 13:05:58
>>605
>>606
直叩きするときに面倒だろ
直感的に分かり辛いと間違える馬鹿が必ず出てくる
611600:04/09/25 13:48:24
>>実際にハードじか叩きするコード書いたことない人間の発想だな


 || 
 || × 0x3f284b74
 || ◎ 0011111100101000101101110100
 || 
 ||
 || 
 ||                           Λ_Λ  605
 ||                       \ (゜ー゜*) ハードじか叩きのキホンです。
 ||________________  ⊂⊂ |
    ∧ ∧    ∧ ∧    ∧ ∧    | ̄ ̄ ̄ ̄|
    (  ∧ ∧ (   ∧ ∧ (  ∧ ∧ |      |
  〜(_(  ∧ ∧ __(  ∧ ∧__(   ∧ ∧ ̄ ̄ ̄
    〜(_(  ∧ ∧_(  ∧ ∧_(   ∧ ∧  ・・・・・ホントっすか、先生・・・・
      〜(_(   ,,)〜(_(   ,,)〜(_(   ,,)
        〜(___ノ  〜(___ノ   〜(___ノ
612デフォルトの名無しさん:04/09/25 13:53:58
漏れも16進の方が判りやすいや。>611見てそう思ったよ。
2進で書くならせめて、
0011 1111 0010 1000 1011 0111 0100
って書いてくれ。
613デフォルトの名無しさん:04/09/25 13:57:05
00100000とするのと、20とするのとだと、後者の方が間違い難いと思う。
右にある5個の0を数え間違えたりするかもしれない。
614デフォルトの名無しさん:04/09/25 14:01:15
605が窮地に追い込まれました
615デフォルトの名無しさん:04/09/25 14:01:44
8bitの型までしかない処理系なんだろ。
616デフォルトの名無しさん:04/09/25 14:03:50
autoconfで作ったconfigure走らせたらこんな感じのが出てくるのか?
char -> 1
short -> 1
int -> 1
long -> 1
float -> 1
doble -> 1
617デフォルトの名無しさん:04/09/25 14:05:29
doble->double
618デフォルトの名無しさん:04/09/25 14:08:13
0x7B
0b01111011
619605:04/09/25 14:19:40
>>611
ワロタ
しかし、そのAAに描かれている発想そのものが、
はからずも600が「ハードを直叩きするコード」を書いたことが無いことを表していますな。

もっともコレ、実際にコード書いたことが無くてもちょっと想像力があれば
理解可能なことだとも思うけど。

>>608の話ともつながるんだが、(608も私だ)600の中ではメモリ上の「数値」
が仮想化の産物だって意識がないのだろう。

だから<数値>を「あえて」バイナリで表現することが馬鹿げたことに思える。

「あえて」2進数で表現したい時ってのはメモリ空間上にマップされた
ペリフェラルのレジスタビットとか、>>606も書いているポートを操作したいときなんかだね。
こういうものは数字に「写像」してしまうとかえって仮想化の有り難味が消えてしまう。

ロングワード長のビット操作対象のレジスタってのは普通はありえん。
仮にあっても、>>611のAA見たいにバイナリ32桁をずらずら書くなんてせず、
プリプロセッサつかって1バイトごと書く。

>>612
アセンブラなんかでは、
 B1010$0101
みたいに区切り文字を任意に入れられることが多いと思う。
620デフォルトの名無しさん:04/09/25 14:48:43
gcc3.2だけど、ケンシロウ進数を使えるようにするパッチを書いたよ
ポイントは全角ひらがなと全角カタカナに対応したところ
621デフォルトの名無しさん:04/09/25 14:52:16
ないよりあった方が便利じゃん。そこまで必死に否定するのはなぜ?
この手の議論では極端に走りがちだが、適材適所でしょ。

まあ実際には無いから使わないわけだが。処理系の拡張であっても使
わないと思う。でもHDLなら使う。32Bitでも。
622デフォルトの名無しさん:04/09/25 14:53:18
ケンシロウ進数をHDLにも対応してください。
623360:04/09/25 15:10:43
>>612
禿同
624デフォルトの名無しさん:04/09/25 16:28:55
8bitより長い数値を二進数で書く気にはなれない。
分かち書きできるんなら16bit位までなら使ってみたいな。
マニュアル見ながらbit位置を直書きするときなんかに便利だと思う。
01ずらずら書いて後で16進に変換するのが面倒。
625599:04/09/25 16:36:21
だってさ、マイコンの仕様書には、タイマーのイネーブルとかオーバーフローとかのビット説明が
7      6    5    4    3   2   1   0
TMR0 TMR1 T0OV T1OV T0EN T1EN   X   X
とかかいてあるわけじゃん。だったら例えばTMR1とT1ENをマスクしたい!と思ったときに
ボクは10111011 と一度メモに書いてから0xBBって改めてコーディングしていたわけだが、
このスレの皆様は上の様な場合に、『2進より先』に16進の0xBBっていうのが閃くわけですか。そりゃすごいや。



626599:04/09/25 16:39:28
あ。失礼
あたあああたああ って書かないとわからない人もいるんでしたっけか?
こう書くとまた「ぷっ。ランレングス圧縮ケンシロウ記法を知らないのかっ!」っていうわけわからんヒトが出てくるからツーチャンネルはいやなんdせうよえs。
627デフォルトの名無しさん:04/09/25 16:45:31
>>625
普通、defineして、~(TMR1|T1EN)とかしないか?
628599:04/09/25 17:05:40
>>627
結局TMR1をdefineするのに
#define TMR1 0b01000000
って書いたほうがいいか
#define TMR1 0x40
って書いたほうがいいか

って事になりませんか?
無論、0bの使えない処理系でも
#define B0100_0000 0x40
って書くのは、ここ西九条でも大流行中の兆しです。
629デフォルトの名無しさん:04/09/25 18:27:00
>>628
#define 0b01000000 0x40
って書いちゃったほうがよくない?できるかしらんけど。
#define あたたたたたた 0x40
でもいいけど
630デフォルトの名無しさん:04/09/25 18:38:58
俺なんかは

#define HOGE 0x20 /* 0010 0000 */

とか書くよ。
回路図の配線と見比べるときとかはこっちのほうがわかりやすい。
配線の関係でビット位置変更とか良くあるから
2進表記があると便利だろうなとよく思う。
631360:04/09/25 18:57:36
>>625
ビットフィールド使えばいいじゃん
632デフォルトの名無しさん:04/09/25 19:24:17
0b0001001000110100 と書かれるより 0x1234 と書かれた方が
読み間違いが少ないな。
2進数と16進数の脳内変換が瞬時にできれば
どちらか一方を書かれても他方を連想できるので
どちらか一方だけでもいいんだけど
長い2進数表記は読み書きで数え間違いが起きやすいので
慎重に読み書きしなきゃならなくなってその無駄が嫌。

>>630
> #define HOGE 0x20 /* 0010 0000 */

0x20 を見た瞬間すぐに 0010 0000 を連想できるはずだから
そういうコメントは無駄だし邪魔。
コメントとコードの差違があるとバグが発見されにくいし
コメントがデバグの邪魔をするのは昔からよく起きてること。
連想できない人は鍛えるべきであって
過剰な甘やかしでそのチャンスを奪うので良くない。
自動車のブレーキペダルに「ブレーキ」ってラベル貼ってるようなもので
そりゃブレーキがどこか知らない人にとっては便利なラベルかもしれないが
そもそもそんな説明書きがないと分からない人がブレーキペダルを
操作しようとしてること自体おかしい。

#define ほ ((((((((0
#define あ <<1)+1
#define た <<1)
int main(){int i=ほ た あ あ あ た た あ た;/*0x072*/printf("%x\n",i);return 0;}
633デフォルトの名無しさん:04/09/25 19:28:19
#define ほ ((((((((0L
#define あ <<1)+1
#define た <<1)
#define ー +
#define たーー! /**/

int main() {
unsigned long i = ほ ー ほ ー ほ ー ほ あ
あ た あ あ あ あ た あ た あ た あ あ た
あ あ た あ あ あ あ あ た あ た あ た あ
あ あ あ たーー!; /*0xdeadbeaf*/
printf("%lx\n",i); /* 牛はもうすでに死んでいる */
return 0; /* あた! */
}
634デフォルトの名無しさん:04/09/25 19:42:10
#define げ ((((((((0L
#define あ <<1)+1
#define う <<1)+1
#define ー <<1)
#define ぼ +
#define ぬるぽ /**/
#define もうだめだ! /**/

int main() {
unsigned long i = げ ぼ げ ぼ げ ぼ げ
う あ ー う あ う あ ー あ ー あ ー あ う ー
あ う ー あ う あ う う ー あ ー う ー ぬるぽ
う あ う あ もうだめだ!; /*0xdeadbeaf*/
printf("%lx\n",i); /* 牛と一緒に俺も */
return 0; /* ぎゃー! やっぱ16進数の方が分かりやすい! */
}
635デフォルトの名無しさん:04/09/25 19:49:01
ケンシロウ進数が一番分かりやすいですな
636デフォルトの名無しさん:04/09/25 22:42:36
>>635
なんだその結論は
637デフォルトの名無しさん:04/09/25 23:15:39
結局0bっていうのが通る処理系はマイナーなんですね?
GCCは通るみたいですが、あと通るのはナニ?
638デフォルトの名無しさん:04/09/26 00:12:39
> > #define HOGE 0x20 /* 0010 0000 */
> 0x20 を見た瞬間すぐに 0010 0000 を連想できるはずだから
> そういうコメントは無駄だし邪魔。
そういう人がうらやましい。
おれは線を数えながら16進<->2進変換するのは骨が折れる。

> コメントとコードの差違があるとバグが発見されにくいし
> コメントがデバグの邪魔をするのは昔からよく起きてること。
だから処理系に2進表現が欲しい
639デフォルトの名無しさん:04/09/26 00:23:17
>>638
結局は経験数なんだよね…
長い間組込みとか制御とかやっていると、同じようなシーンに遭遇するから
自然と覚えてしまう。。
640デフォルトの名無しさん:04/09/26 00:23:29
>>638
16パターンくらい覚えろ
今日は
0x7  0111
0xA  1010
この2つ覚えろ。覚えるまで寝るな。
641360:04/09/26 01:13:18
>>638
昔は、同じように思ったけど
いまは、16進が自然に出てくる
車のナンバー見て、なんの苦もなく2進が浮かぶよ
まだ10進−16進はでないけどね
642デフォルトの名無しさん:04/09/26 01:31:49
>>640
そんなん二十年前に覚えてるってば。
テスターを線に当てながら、
「0はH、1はL、2はL、3はH…」とかやりながらソース見たときぱっとわかるかってこと。
643デフォルトの名無しさん:04/09/26 01:54:49
そりゃもう頭が退化してるな
644デフォルトの名無しさん:04/09/26 02:01:01
うん、そうかも。
恥ずかしながら、よくBとDで0の場所間違うし…
けど、一度0と1を頭の中で並べないと16進変換できないから面倒なんだよな。
645デフォルトの名無しさん:04/09/26 02:18:11
>>640
おまえ、全然わかってないな。
タイマーの制御レジスタみたいに、元がビット列で表されているモノは、そのまま2進数で表せるなら、2進数のままの方が自然だという話だ。
それをいかに早く脳内変換できるか、なんて威張っているのは「変換」という言葉を使った時点で負けなんだよ、負け負け。
なぜなら変換する必要がないからだ。16進数に直す必然性なんか全然無い。

それならお前は、1から100までのループをするときに
for (int i=1;i<=0x64;i++){
って書くのかよ(ぷげあ) 

100回回したかったら
for (int i=1;i<=10;i++){

って書くだろうが。

元が2進なら2進。10進なら10進。16進なら16進で書けるなら書けということだ。

646デフォルトの名無しさん:04/09/26 02:22:24
つっか、2進表記が出来ないアセンブラなんて無いだろ?必要だからあるんだ。
組み込みに使うCで2進表記の出来ないCなんて無いだろ? 必要だからあるんだ。
組み込み言語だったら、BASICだって2進数使える炉
647360:04/09/26 02:41:20
>>645
いちお、コードを脳内変換して読みました。
648デフォルトの名無しさん:04/09/26 03:33:15
>>588
> 状態遷移表を使ってる人っている?
> あとそれをサポートするCASEツールを使っている人とか。

状態遷移表で表現できるのって、入力と内部状態の点数がそれほど多くない場合だけでしょ?
何点くらいまでの入力と内部状態を扱ってる?
649デフォルトの名無しさん:04/09/26 04:02:02
>>648
>状態遷移表を使ってる人
サブルーチンみたいに
理解しやすいレベルまで入力と状態をまとめるのだよ
650デフォルトの名無しさん:04/09/26 04:24:15
about:blank
これがエクスフローラ開くとどうしても最初に立ち上がってしまう
これって治せるのかな?
651デフォルトの名無しさん:04/09/26 05:42:47
こんなとこにまでマルチポストすんじゃねえ!ハゲ
652デフォルトの名無しさん:04/09/26 10:32:14
>100回回したかったら
>for (int i=1;i<=10;i++){
>
>って書くだろうが。

 あ、出た・・・・・・ ロン
653デフォルトの名無しさん:04/09/26 11:58:44
>>652
実は100進数の処理系でした。とか。
654デフォルトの名無しさん:04/09/26 12:00:09
>>650
blazefind にいって、blazefindツールバーをインストロロールすれば解決するよ。
655デフォルトの名無しさん:04/09/26 13:49:24
>>637
そのgccは改造されている。

gccの拡張仕様で0b対応という動きは昔からあるようだが、
何故かいまだに採用されないらしい。
656デフォルトの名無しさん:04/09/26 16:12:10
>>655
そか。GCCだったら0bが使えるってわけじゃないんですね。
組み込み用のGCC-H8とかだけなんかな?
657デフォルトの名無しさん:04/09/26 16:55:27
どうでもいいよ、そんな事。
658デフォルトの名無しさん:04/09/27 15:44:18
>>656
(OДO)ψ <そのgccは改造済みだったんだよ!
659デフォルトの名無しさん:04/09/27 22:34:14
gccか・・・展開効率悪くないですか?
純正メーカー製 買ってくらさいよう・・・・

      _, ,_
     (`Д´ ∩ < ヤダヤダ、gccなんてヤダー!
     ⊂   (
       ヽ∩ つ  ジタバタ
660デフォルトの名無しさん:04/09/28 01:00:49
>>659
高卒の製造課上がりのゴマスリ野郎が技術部長をやっている、うちの会社ではタダより有難いものはございません。アリガタヤアリガタヤ。
661デフォルトの名無しさん:04/09/28 07:22:37
どうせデバッグはgdbですよ
662デフォルトの名無しさん:04/09/28 07:41:57
gdbこそ、真のデバッガー。
663デフォルトの名無しさん:04/09/28 09:37:17
何故、雑誌「Interface」にはCDROMが付かないのだろうか>49出版社よ。
ソースが載ってた場合、手打で入力ですか。そうですか。
664デフォルトの名無しさん:04/09/28 09:42:12
>>659
gccの展開効率が悪いって言ってる奴は、
Optionの指定が足りてない。
665デフォルトの名無しさん:04/09/28 09:43:51
俺は>>660が何を言わんとしてるのかよくわからん。
666デフォルトの名無しさん:04/09/28 09:46:42
>>663
なんでInterfaceのサイトからダウンロードしないの?
667デフォルトの名無しさん:04/09/28 09:55:43
>>666
あ、サイトですか。
っていうか、いつも全てのソースを載せているんだっけ?
668デフォルトの名無しさん:04/09/28 11:33:55
40ページにも及ぶダンプを手入力していた昔を振り返れば
たかが数ページのソースなどたやすいものよ
669デフォルトの名無しさん:04/09/28 12:22:51
>>664
どんなOption指定してますか?

これ制御系でgcc使ってるみなさんに聞いてみたいな。
670デフォルトの名無しさん:04/09/28 15:34:45
面倒だから-O2で終了
人間が最適化した方が気が楽
671デフォルトの名無しさん:04/09/28 15:37:09
エレベータがあるのに階段で行った方が気が楽だ、と言っているようなもの。
そしてその人はエレベータのボタンの押しかたが解からないんだって。
672デフォルトの名無しさん:04/09/28 15:50:13
>>671
何階上がるかにもよると思うけど
それよりもたまには歩いて登った方が健康にいいYo
673デフォルトの名無しさん:04/09/28 19:26:58
>>638
16進が簡単にマスター出来ると思ってるのが間違いだ。
お前は小学校の時何を習った?九九だろ?九九をやり、四則演算を浴びるほどやったはずだ。
だからお前は10進数をすんなり使いこなせてるんだ。
16進を極めたいのならまずFFをやれ。ファイナルファンタジーじゃないぞ。

   1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
1  1  2  3
2  2  4  6
3  3  6  9
4  4  8  C
5  5  A  F
6  6  C 12
7  7  E 15
8  8 10 18
9  9 12 1B
A  A 14 1E
B  B 16 21
C  C 18 24
D  D 1A 27
E  E 1C 2A
F  F 1E 2D

4の位からはお前が作れ。そして暗唱しろ。毎日だ。1ヶ月かけてもいい。ゆっくりでいい。
あとは・・・分かるな?
674デフォルトの名無しさん:04/09/28 19:56:02
>>673
ステキ
675デフォルトの名無しさん:04/09/28 20:20:43
>>673
>16進を極めたいのならまずFFをやれ。ファイナルファンタジーじゃないぞ。
不覚にもワロテしまった。
676デフォルトの名無しさん:04/09/28 20:24:14
私はファイナルファンタジーかと思って突っ込もうかと思ったけれど
先手を打たれた
677デフォルトの名無しさん:04/09/28 21:00:25
インド人は22X20の九九を覚えているというから
FFも余裕なんだろう。
678デフォルトの名無しさん:04/09/28 21:11:58
いーいーがしーじゅうよん
いーえふがでぃーじゅうに
679デフォルトの名無しさん:04/09/28 21:14:39
>>678
いーいーがしーじゅうろくよん
いーえふがでぃーじゅうろくに
じゃ?
680デフォルトの名無しさん:04/09/28 22:24:24
おまえらここをネタスレにするつもりかw
681デフォルトの名無しさん:04/09/28 22:58:32
FFに慣れたら、次はVV(32進数)がいい。
そして最終的にはxx(60進数、1〜9、A〜Z、a〜x)を目指して欲しい。

60進数のメリットは時計だ。
何と分の単位が必要なくなるんだ。いきなり1時7u秒とかが使える。
これは便利すぎる。
682デフォルトの名無しさん:04/09/28 23:23:13
ネタにマジレスかっこいいわけですが、例えば、0xceに、1のビットがいくつあるか、また、bit6とbit3がが立ってるか寝てるかを即座に答えられるヤツはエライと思います。
だから二進でかけるならかけたほうがいいです。っていうか、アセンブラだったら書けるんだからCで書けないほうが元々不自然。

683デフォルトの名無しさん:04/09/28 23:29:31
論理演算するときは2進表記のほうがらくだな〜おれは
684デフォルトの名無しさん:04/09/29 00:03:27
>>682
ビット数くらい即答だろ?
0-0 8-1
1-1 9-2
2-1 a-2
3-2 b-3
4-1 c-2
5-2 d-3
6-2 e-3
7-3 f-4
これ覚えるだけじゃん。規則性はあるし、使っていれば嫌でも覚える。
685デフォルトの名無しさん:04/09/29 00:16:14
いつまでつまらない話題でレスするつもりだ
686デフォルトの名無しさん:04/09/29 00:19:18
16進は割と直感で分かるが、8進は悩まんか?
687デフォルトの名無しさん:04/09/29 00:21:17
8進数は使用頻度が低い
688デフォルトの名無しさん:04/09/29 00:35:28
>>687
そりゃ、自分じゃ書かんが
LAPBの古いコードをメンテしてるとき
テーブルが8進で書かれてて泣きたくなった
689デフォルトの名無しさん:04/09/29 00:39:15
>>688
エディターにコピペしてちょちょいと書き直すべし
690デフォルトの名無しさん:04/09/29 00:48:24
16進数に対する数値的感覚が養われてないからだよ。

7*Eを即答出来る奴いないだろ?
それどころか8*7を16進数で"数秒で"即答出来る奴もいないだろ。

まじでFFやっとけ。これ結構便利だぞ。
2*8=10とかの場合は、"にはちいちぜろ"と読むようにすれば、九九とも被らないしな。

2進数変換はまた違う話になるが。
691デフォルトの名無しさん:04/09/29 01:08:38
> それどころか8*7を16進数で"数秒で"即答出来る奴もいないだろ。

数秒かけて答えられるのか、それとも即答できるのかの違いがありそうだが、
それを数秒で答えられないのはまずい。7を左3シフトするだけだから。

> 7*Eを即答出来る奴いないだろ?

これも類似問題。
0x0e*(8-1)だから
0x0e=0b1110を左3シフトして
0b1110000。
そこから0x0e=0x1110を引いて
0b1100010=0x62。

こういう16進数2進数ソロバンが脳内で動いて数秒以内に答えを出すのが普通。
できないならこの業界に向いてない。

> まじでFFやっとけ。これ結構便利だぞ。

これ正解。数秒かけて脳内ソロバン動かすより速くて正確。
DQよりFFの方が勉強になる。
692デフォルトの名無しさん:04/09/29 01:14:35
いーびーがきゅーえー
いーしーがえーはち
いーでぃーがびーろく
いーてぃーがかむほーむ
えふしーがびーよん
えふでぃーがしーさん
えふいーがでぃーに
えふえふがはつばい
693デフォルトの名無しさん:04/09/29 06:46:12
おまいらちゃんとしごとしろ
694デフォルトの名無しさん:04/09/29 07:54:09
>>691
意味無いことにアタマ使うな。
意味無いことがスキなら、おまえらCもアセンブラも使わず、機械語(死語)で直接書け。
695デフォルトの名無しさん:04/09/29 09:36:26
FFはマジで便利だな
ケンシロウ進数の次に便利だ
696デフォルトの名無しさん:04/09/29 23:50:58
>>628
#define TMR1 (1<<6)
俺はこんな調子だなー。
でもワード幅が増えたとき (1<<18) とか (1L<<31) なんて書いて失敗したり。
(1L<<18) (1UL<<31) じゃないとシフトアウトして…
697デフォルトの名無しさん:04/09/29 23:52:34
>>694
人間は全員が知能指数同じではないので。
算盤の名人なんか数桁の掛算を悩まず即答するし。
694にとって難しいことでも
他の人にとって簡単なことも世の中にはある
698デフォルトの名無しさん:04/09/30 09:06:21
>>697
そんなに0b記述が必要ない って言い張るのなら、
googleで
0b01 + 0b1101 =
が計算できるのを、どう言い訳するんだ?
699デフォルトの名無しさん:04/09/30 09:10:50
nibbleマクロとかそれを使ったnibble2,nibble4マクロなんかを使っています。
700デフォルトの名無しさん:04/09/30 12:05:36
必要ないなんて主張している奴はいなくて、
今までなしでやってきたしなくてもなんとかなるんだから
余計な仕様増やすなと思ってるだけかも。
#つーか私はそうだが。
701360:04/09/30 12:33:54
ビットに意味付けが欲しいなら、ビットフィールドでやればいいし
そうでなければ、16進で事は足りてる。
ま、あればあったで別にかまわないけど。
702デフォルトの名無しさん:04/09/30 15:00:08
あった方が便利だから付け加えて欲しい。
その前に、どうしようもないコンパイラをまともにしてくれるほうが先だが>そのへん
703360:04/09/30 15:26:31
実は、コンパイラにさえ、さほど不満がないオレって..........orz
昔の日立のには確かに不具合があったけど。。
704デフォルトの名無しさん:04/09/30 18:42:44
ご迷惑をおかけします。
でもバグのないコンパイラを作るのは本当に難しい…。
2進サポートくらいなら、そんなにバグはでないと思いますが。
705デフォルトの名無しさん:04/09/30 21:20:28
他スレから誘導されたのでこちらで質問させて下さい。
Linuxでシリアル通信を行うプログラムを作成しているのですが、どうしても
データの取りこぼしが起こってしまいます。いろいろ調べた結果データ欠損
の対策として

・low_latencyフラグを立てる
・受信トリガレベルを1バイトに設定し1バイト受信毎に割込みを発生させる

という方法がある事が分かったのですが、肝心のプログラムへの実装方法が
全く分からず困っています。どのように実装すればいいのでしょうか?
ちなみに通信チップは16550Aです。よろしく御願いします。
706デフォルトの名無しさん:04/10/01 00:12:39
>>704
2進をサポートしたら、0xb0が0になっちまってごめん。テヘ。 ってな記述が苺リナックスに描いてなかったっけ?
707デフォルトの名無しさん:04/10/01 00:50:43
>>706
当社マイコンボードに付属しているgccの2進数パッチにバグがありました。
gcc-3.4.0+2進パッチが含まれているCDが対象で、以前のgcc-2.95.xは今回の対象ではありません。
gccのバージョンはh8300-hms-gcc -vで確認できます。2進パッチの問題で、0xb0,0xb1を記述すると0になってしまうという単純なミスでした。
申し訳ありませんが、こちらをお使いくださいますようお願いいたします。
708360:04/10/01 10:31:43
>0xb0,0xb1を記述すると0になってしまうという
これは、さすがに困るが、、、
いままでほとんどコンパイラのバグにあったことがない。
それ以前に自分のプログラムに問題がある(w
というか、初めて使った日立のコンパイラがあまりおりこうでなかったので
計算式を1行でやらせないとか、なるべく複雑なことをしないようにしている
最適化もしてないし、速度を要求するところはASMで書くし
(それで済むような仕事であったりして)
ハードから、なるべく余裕のあるようにしてごまかしてる
709デフォルトの名無しさん:04/10/01 12:28:24
バグなのか仕様なのかわかんないけど
SH系のコンパイラで以下のような現象があった。

sub(123, 456.789);
//関数subを整数123、実数456.789を引数にして呼び出す

//パターン1
sub(int a, float b){
printf("a=%d,b=%f\n", a, b);
}
実行結果「a=123,b=0.0」

//パターン2
sub(a, b)
int a;
float b;
{
printf("a=%d,b=%f\n", a, b);
}
実行結果「a=123,b=456.789」
710デフォルトの名無しさん:04/10/01 14:16:18
>>709
それはANSIの仕様だね。
sub()の呼び出しの前にプロトタイプ宣言すれば、逆にパターン1が正しい結果となるはず。

711デフォルトの名無しさん:04/10/01 14:26:34
二重ループにif文くらいのソースで最適化とデバッグオプションつけると
デバッグ情報が無効になるコンパイラには難儀した。
最適化オプション抜いたやつが吐き出したコードをアセンブラレベルで手直ししたら
実行時間が1/7になったのには脱力。
712デフォルトの名無しさん:04/10/01 15:21:05
Cは便利なんだけど、(BYTE)dat とか、のデータ長拡張の時のアレとか
割り込みのフラグが最適化ではじかれないようにvolatileつけるとか、
余計な事も覚えなきゃならんのよな。
713デフォルトの名無しさん:04/10/01 15:37:13
>>705
>low_latencyフラグを立てる
ttp://www.humblesoft.com/mlml/msg00085.html

>受信トリガレベルを1バイトに設定し1バイト受信毎に割込みを発生させる
ドライバ書き換えしないと駄目かも?
714デフォルトの名無しさん:04/10/01 16:22:44
>>705,>>713
>受信トリガレベルを1バイトに設定し1バイト受信毎に割込みを発生させる
ioctl使えばいいじゃん。
715デフォルトの名無しさん:04/10/01 16:44:28
>>705 たかが(失礼)シリアル通信ぐらいで、そんなにシビアなタイミングが
必要になるのかなあ? 普通に/dev/ttyS?経由じゃダメ?
716デフォルトの名無しさん:04/10/01 17:20:44
>>705
だからioctlで全て解決するだろーが。
まず、初期化ルーチン内でioctlを使用して初期化して、
main loopでselectでcheckして、データ来たら1byte単位でreadすると。
お仕事がんばれよ。>>705
717デフォルトの名無しさん:04/10/01 17:22:21
ハードウェアフローには出来んのか?
718705:04/10/01 21:12:28
>>713
情報有難うございます。これでlow_latencyフラグを立てる事が出来そうです。

>>715
LinuxシリアルHowTOなどを参考にして普通に/dev/tty経由で送受信してるのですが
数回に一度ぐらいの割合でデータの欠落が起こってしまいます。

>>717
ハードウェアフロー制御を行わせるためにtermios構造体のc_cflagにCRTSCTSを
指定しています。後はハードウェアが勝手にフロー制御を行ってくれると解釈して
いるのですがプログラム中で明示的にRTS信号のON・OFFを行う必要があるのでしょうか?

FIFOの割り込みトリガレベルの調整方法は制御レジスタをいじる方法をネット上で見つけたので
試してみる事にします。
719デフォルトの名無しさん:04/10/02 09:11:51
>>718
ハードウェアは自動的にフロー制御はしないけど、
ドライバが制御してくれるはず。

相手が何か知らんがCTS/RTSを見てないとかは?
720デフォルトの名無しさん:04/10/02 11:59:41
CTS-RTSはとにかくつなぐ
なにかあったらとにかくつなぐ
721デフォルトの名無しさん:04/10/02 12:09:36
先生! メーカー純正ケーブルがCTS-RTS繋がってません。
クロス仕様で専用コネクタなんで手も出せません。
#いや、マジであったんですよ_/ ̄|○
722デフォルトの名無しさん:04/10/02 12:46:39
↑ 自分でつなげばいーじゃん?
723360:04/10/02 13:02:49
>>722
モールドしてあるからつなげないんじゃないのかな
というか、それ以前に、
メーカー純正ケーブルなのに、そうなっているのが信じられんし、
専用コネクタなんで手も出せない。
って、そのままの意味なんじゃないでしょうか?
724デフォルトの名無しさん:04/10/02 13:29:06
テスター当てて結線図を書いたら
ケーブルを真ん中で切断ですよ
725デフォルトの名無しさん:04/10/02 13:42:49
>721の実際に私が遭遇したケースでは、客先(ソフト部隊)経由でハード部隊に報告、
ケーブルの仕様変更ということになって作り直しに半月かかった。
#実はその間に慌ててプログラムの割り込み周りのバグを直したのは内緒。
726360:04/10/02 13:46:10
>>724
仕事によっては許されませんね。
727デフォルトの名無しさん:04/10/02 15:06:59
>>705
相手もPCなのか?
PCじゃなかったら相手が半二重だったりすることがあるぞ
728デフォルトの名無しさん:04/10/02 17:17:50
>>726
俺が許す
気にすンなッて
729デフォルトの名無しさん:04/10/02 18:39:54
>>726
客にバレなきゃいいんだよ。どうせ客なんてセッティング中は見に来ないだろ?
730360:04/10/03 00:21:19
>>729
原発とか、そういう作り方でもいいですか?許してくれますか?
731デフォルトの名無しさん:04/10/03 01:13:03
>>730
北チョンの原発ならOK
732デフォルトの名無しさん:04/10/03 17:42:38
>>730
まず切ることを報告し、切った後問題を修復し、修復後チェックし、問題ないことをまた報告
原発だろうとなんだろうと同じだろ
733360:04/10/03 17:54:16
>>732
「報告」と「チェック」がどの程度のことかわかりませんが
原発じゃないにしても、私のクライアントだと
通常の基準で言えば、不合格になる可能性大です。
734デフォルトの名無しさん:04/10/03 21:10:34
うちの顧客は自動車メーカー。
めちゃくちゃ細かい。
そんなところまでチェックするなら、自分で書けよと言いたい。
735デフォルトの名無しさん:04/10/03 21:17:11
>>734
ミツビシでは無いね
736デフォルトの名無しさん:04/10/03 21:18:59
最近多品種少量生産だから、品種替えなんかが多くてソフトが面倒くさい。
737デフォルトの名無しさん:04/10/04 00:21:19
>>735
三菱はノーチェックだろw
738360:04/10/04 04:11:23
>>732
もしかして関電系だったりして(笑
通常、その工事手順をふむよりきちんとしたものを製作したほうが早いです。
739デフォルトの名無しさん:04/10/04 19:20:30
>>705
シリアル通信関係のテストで問題が起きた時は、通信モニタがあれば9割方解決出来る。

ってことで通信モニタ買って来い。
740デフォルトの名無しさん:04/10/04 19:33:09
>>739
技術評論社のCCT-98IIでよろしいでしょうか?
741360:04/10/04 20:23:59
>>740
モニタっていったら「みえちゃん」でしょ(w
742デフォルトの名無しさん:04/10/04 23:02:28
>>741
○ッツの回し者キターッ!




その節はお世話になりました orz
743360:04/10/05 01:17:15
>>742
回し者じゃないけど。ほんと、元をとりました。これがないと始まらない
電池がダメになったので、一度はメーカで交換、
2度目は、自分で単三のNi−MH電池に交換しました。
古いので19200までしか見れません、デバッグ中と実稼動でbpsを変えてごまかしてきました
そろそろ新しいのにしないと。。。
セキスイのも悪くないけど、みえちゃんは"惜しげない"感じがイイ
744デフォルトの名無しさん:04/10/06 07:30:25
開発環境のeclipseってどうよ
745デフォルトの名無しさん:04/10/06 12:44:05
>>744
javaの環境のこと?
あまり組み込みと関係ないような希ガス
746デフォルトの名無しさん:04/10/06 20:23:57
eclipseはいいね。
ただ起動が糞長いのをなんとかしてくれ。
つっても学生の頃の卒業研究以来使ってないけど。

>>745
別にeclipseはjavaに限った環境じゃないだろ。
747デフォルトの名無しさん:04/10/06 23:18:48
>>746
しかしJAVAのイメージが強いのも事実。
748デフォルトの名無しさん:04/10/07 09:15:40
そんなことない、君の視野が狭いだけ。
749デフォルトの名無しさん:04/10/07 09:32:07
広い視野で見ると、やっぱり世間的にはJavaのイメージが強いと思う。
750デフォルトの名無しさん:04/10/07 12:53:00
本屋に行けば、Javaばかりだよ
もっとも組み込みの本自体少ないけど
751デフォルトの名無しさん:04/10/07 13:44:11
eclipseのCDTは超ショボいので結局Java目的にしか使えない。
752デフォルトの名無しさん:04/10/07 18:36:37
徐々に良くなってはいるよ >CDT
753デフォルトの名無しさん:04/10/07 18:45:43
C++でecripseつかうくらいならVS使うよ
754デフォルトの名無しさん:04/10/07 18:46:21
でもemacs一つで十分だったりもする
755デフォルトの名無しさん:04/10/07 19:44:45
でも、UNIX環境じゃなかったりする
756質問ちゃん:04/10/07 20:40:56
タブプラウザってありますよね。
あれを起動してから複数のhtmlファイルを窓上に
ドラッグすれば一気に読み込めますよね。

その複数のhtmlファイルがCD-R内のパスの定まった
フォルダ内においてあるとして
CDいれるとオートランで自動的に
タブプラウザでそのフォルダ内のhtmlファイルを全て読み込んで
立ち上がるにはどうすればよいのでしょうか?

757質問ちゃん:04/10/07 20:43:56
タブプラウザは自分ではつくれないので
できるだけ既存のものがいいです。
機能としてはIEコンポーネント本体とタブと最大化機能さえあれば十分なのですが・・
758デフォルトの名無しさん:04/10/07 20:44:21
>>757
ここを何のスレと思ってるんだ?
759質問ちゃん:04/10/07 20:46:26
スレ違いだったら誘導していただけるとありがたいです
760デフォルトの名無しさん:04/10/07 20:48:17
断る
761デフォルトの名無しさん:04/10/07 23:01:41
何故このスレで質問しようと思ったのかを聞きたいな
制御系なら俺に聞いてもいいぜ
       ~~~~~~~~~~~~~~~~~~~~ここしか見てなかった?
762デフォルトの名無しさん:04/10/07 23:14:54
組み込みJAVAはこれからどうなりますかね。
メーカーは変則的ガベージコレクションでリアルタイム性を確保しようとがんばっていますが。
763デフォルトの名無しさん:04/10/07 23:19:25
携帯&JavaでFFやドラクエできる時代だからなー
GUI必要な場所ならtronのみやCEよりはラクそうだな
764デフォルトの名無しさん:04/10/07 23:20:15
見やすい状態遷移図の書き方教えてくれ……
765デフォルトの名無しさん:04/10/07 23:31:08
>>763
x 携帯&JavaでFFやドラクエできる時代だからなー

○「すごいな。携帯でFFやドラクエが出来る時代なのか。 さすが21世紀はすげえや。透明チューブの中をエアカーが疾走するのはまだか?」
766デフォルトの名無しさん:04/10/07 23:37:29
>>765
馬鹿かお前
767デフォルトの名無しさん:04/10/07 23:56:08
>>766
コピペにマジレスっすかお前
768デフォルトの名無しさん:04/10/09 12:57:45
>>767
コピペなら常に馬鹿に該当しないと思い込んでる馬鹿
769デフォルトの名無しさん:04/10/10 09:36:18
必死な人がいる
770デフォルトの名無しさん:04/10/10 23:27:07
ひねくれた人がいる
771デフォルトの名無しさん:04/10/11 00:24:18
>>765-770
お前等ウゼー
くだらねー煽りあいなんて他所でやれ
772デフォルトの名無しさん:04/10/11 15:01:34
真偽値 ってTRUEとFALSEだよね

トライステートつーかいわゆるZ状態を扱うときは
boolではなく 何で表現すればいいのかな
n>0, n==0, n<0 あたりでいいかな?

みんなはどうしてる?
773デフォルトの名無しさん:04/10/11 15:03:32
いちおう
n>0 真(TRUE)
n==0 不明(z)
n<0 偽(FALSE)
みたいな感じ。これなら if(n)で不明かそうじゃないかわかるし。
あと、TRUE,FALSEに相当する定義はなにがいいの?
774デフォルトの名無しさん:04/10/11 15:41:24
Zとtrue/false かな つまり1bitZかそうでないかを追加してそっち優先にすると

775デフォルトの名無しさん:04/10/11 16:48:20
Zってハイインピーダンスのことじゃなかったの?
776デフォルトの名無しさん:04/10/11 18:54:46
Zはハイインピーダンスだよ。普通は。
不明はXかUだろ。
777360:04/10/11 20:06:41
>>772
わたしだったら
TRUE/FALSEを使うと BOOLと混同するから
英語として正しいかどうかはわからないけど
VAL_HIGHER / VAL_EVEN / VAL_LOWER とか定義して
少なくとも TRUE/FALSE は使わない
778デフォルトの名無しさん:04/10/11 22:03:41
プルアップかプルダウンしてれば不明にはならないから何も問題はない。と
779デフォルトの名無しさん:04/10/11 22:03:50
>>776
ごめん
780デフォルトの名無しさん:04/10/11 22:07:44
>>774
2ビット使って
00 多分 偽
01 多分 真
10 間違いなく 偽
11 間違いなく 真
こんな感じ?
781デフォルトの名無しさん:04/10/11 22:17:53
ミツトヨのリニアゲージからのデータを取り込みたいのですがデジマチック出力しかありません
出力信号はDATA(測定データ出力端子)とCK(同期クロック)とRD(データレディ)があるのですが
どのようにやり取りしていいのかさっぱり・・・

参考になりそうな書籍やサイトがありましたら教えて下さい
これってシリアル通信関係を勉強すればどうにかなりますか?

スレ違いなら申し訳ありません
782デフォルトの名無しさん:04/10/11 22:28:59
>>781
ミツトヨには聞いてみたの?

ミッちゃんの俺様フォーマットだから少なくとも本はないと思う。
たぶんデータ吐き出すタイミングでRDがアクティブになるんで
それに答えてREQをアクティブにしてやるとデータ送信が開始されるって
感じだと思う。
783デフォルトの名無しさん:04/10/11 22:44:40
784781:04/10/11 23:37:56
>>782
どうもです
一応聞いたんですが資料を1枚くれただけでした・・・
詳しい人ならそれだけでもわかるのかも知れませんが。
もうちょっと聞いてみます

>>783
どうもです
この手のでお茶を濁そうとも思ったんですが、アクチュエータ付きのリニアゲージを使ってて、ボタンなどを押さずに任意の位置で測定しないといけないのでダメっぽいのです・・・
785デフォルトの名無しさん:04/10/12 08:30:30
VHDLには弱いHighとかもあって、
信号状態は9種類用意されていたと思う
でも、きちんとプルアップ/ダウンされていれば、使い道ない気がする
786デフォルトの名無しさん:04/10/12 19:48:28
私H/L/出力オフでしか考えてなかった
787デフォルトの名無しさん:04/10/13 00:46:29
ローアクティブとハイアクティブとあるからにゃ
気をつけないとにゃ
788375:04/10/15 11:16:35
制御系と組み込み系は、一般に給与はどうなんですか?
組み込みは薄給だと聴いたことがあるんですが
789デフォルトの名無しさん:04/10/15 11:23:03
薄給す
790デフォルトの名無しさん:04/10/15 11:23:19
お金の話しですいません。お金を儲けたいと思ったので。
もし場違いな質問になってしまってたら、どうぞスルーして下さい
791デフォルトの名無しさん:04/10/15 11:25:36
>>789さん ほんとすか。。正直ちょっと残念です。レスありがとうございます
792デフォルトの名無しさん:04/10/15 12:48:32
>>791
我が社では業務系と制御系で給与体系に差はありません。
#尤も、業務系のほうが金になるので有利になるのは事実。
793デフォルトの名無しさん:04/10/15 13:30:39
>>792
*できる*制御系の奴であれば、替えが効かないので差があってもいいと思うのだが。
どちらかと言うと業務系の方が、替えの効く奴が多いと思う。
794デフォルトの名無しさん:04/10/15 13:33:28
*できる*人材不足はどこもいっしょと思うなぁ
こんだけやってもギャラおんなじどころか、わりにあわな、、、ここはム板だっけ
795デフォルトの名無しさん:04/10/15 13:45:18
制御系な奴の価値が低いのが問題なんだよ。
開発サイクルから言うと業務系の方が短いからかな。
やってる内容は濃い場合が多いんだけど>制御系
796デフォルトの名無しさん:04/10/15 14:25:05
>781
リニアゲージの入力端子と、リニアゲージからの入力端子の種類が書いてないけど?
797デフォルトの名無しさん:04/10/15 15:34:13
>>792氏 そうですか。レスありがとうございます。とりあえず僕は、今週末の基情受けてきます。またきます
798360:04/10/15 15:47:16
金に関しては、医療関係の業務系は特にいいですね、
ヒマだし、金はいいし、納品先は白衣だし(w

制御系は、好きじゃないとやってられない。
799デフォルトの名無しさん:04/10/15 16:04:41
白 衣 が で す かw
800デフォルトの名無しさん:04/10/15 16:28:30
中身は黒だ
801デフォルトの名無しさん:04/10/15 22:46:17
白衣系は、好きじゃないとやってられない。
802デフォルトの名無しさん:04/10/16 00:43:05
ホールピペットが恐い。
化学よくしらないけれど。
803デフォルトの名無しさん:04/10/16 01:10:00
>>801
白衣が?
804デフォルトの名無しさん:04/10/17 01:56:41
m16使ってるんですが、16bitCPUは初めてでよくわからないことだらけです。
RAM領域がFFFF超えたらどうなるんでしょう・・・?
アドレッシングは出来るみたいですけど
宣言とかがFFFFまたがっても大丈夫なんでしょうか?

アセンブラの命令だとストリング転送は
32ビットアドレッシングがサポートされてなくて
領域の初期化ができねぇ・・・・。
805デフォルトの名無しさん:04/10/17 03:10:24
806360:04/10/17 10:56:19
>>804
今マニュアルをダウンロードして見たら、データバスが16/8bitで、アドレスバスは24bitのようですけど
807デフォルトの名無しさん:04/10/17 11:30:19
>806

M16は、16ビット超のアドレスをアクセスするのは、別のアドレッシングモードを
使う必要がある。 C言語だと、宣言に far を使う必要があるんですよ。

使い方は、よく知らないんで申し訳ない。OAKSの16-MINIっていうM16CTinyを
使ったキットで遊びはじめたばかりなんでまだ良く分かっていない。

Tinyの場合、16ビット超にはRAMはないんで、初期化データの宣言とか、そのデータを
使う変数とかが、宣言の対象になると思う。

マイナーなキットだけど使いやすい。5000円くらいでシリアルケーブル以外、電源も
付いている。開発環境も、最適化ができないだけで、ソースデバッギングもできる。

H8みたいに色々開発環境があるよりは、使えるのが1つあるほうが分かりやすい。
808デフォルトの名無しさん:04/10/17 12:15:47
おいおい、開発環境は純正を買ってくれないとわが社の利益(ry
809デフォルトの名無しさん:04/10/17 19:11:03
>>807
farとか86みたいだな
セグメントになってるの?
なんだか使いにくそう
810デフォルトの名無しさん:04/10/17 19:37:26
アドレッシングモードだって言ってるじゃん。。
しかしM16ってウルトラマンの巣かスタローンが脇に抱えて乱射しそうな名前だねえ。
811デフォルトの名無しさん:04/10/17 19:48:14
M16C
812デフォルトの名無しさん:04/10/18 07:22:30
M16Cは素直なイイ子だよ。 
813デフォルトの名無しさん:04/10/18 23:07:10
M16について質問したものです。
farに関して勘違いしてました。
386みたいにセグメントからのオフセットでアドレッシングしているのでは
なくてfarかnearかでマッピング位置が決まるみたいですね・・・・。
しかしストリング転送命令はnearしかサポートしていないようで
far宣言の初期化に使うこと自体が間違いのようでした。


814デフォルトの名無しさん:04/10/19 00:06:59
>813

farかnearかでマッピング位置が決まるんじゃないよ。関数はfar とか
ディフォールトの設定がある。

そもそも、C言語を使うのなら スタートアップのncrt0.a30 の中でfar領域も初期化
されているはず。手元の NC30 V.5.10のマニュアルだと、
2.2 スタートアッププログラムの準備のJKがその処理のはず。

自分は M16CTinyだったんで、far領域にはRAMがないんでやったことはないけど。
M16CTinyの場合、そこはコメントにするからね。
815デフォルトの名無しさん:04/10/19 08:48:59
スタートアップはアセンブラで自作するものなのですか?
アドレスなんかを設定すると、
コンパイラが自動的に作ってくれるのしか使ったことないです。
816デフォルトの名無しさん:04/10/19 08:51:38
>>815
それでいいと思えばそれでいい
817デフォルトの名無しさん:04/10/19 14:25:08
>>815
不要な設定や初期化を省きたいときは、汗しかないね
でも、一度経験する分には構わないけど、
プロセッサが変わったりするたびに作り直すのは
正直めんどい
818デフォルトの名無しさん:04/10/19 17:47:29
スタートアップを作れるかどうかが一流と二流の境目
819デフォルトの名無しさん:04/10/19 21:51:26
マイコンチップ使う程度の規模のハードの初期化処理なんて
そんなたいしたもんでもないと思うが。

自分で言うのもなんだけど、俺は二流だけどそんなの普通に書けるよ。
ていうか、「スタートアップ」って言葉の使い方変じゃないか?
820デフォルトの名無しさん:04/10/19 22:08:59
OSがないと生きていけない私は二流ですか
821デフォルトの名無しさん:04/10/19 22:11:07
vector.s

por_vector:
jmp _startup

main.c

int main()
{
asm("_startup:");
// initiazize...
822デフォルトの名無しさん:04/10/19 22:40:33
ワンチップマイコンのスタートアップなんて、大概、リセット直後のプログラムメモリ0番地スタート、これだけだろ。

ROM、RAMがペリフェラルで分かれてる時、ROM上のプログラムで、不揮発メモリ・フラッシュメモリ・各種媒体から読み込んでRAM上に展開させる必要が出てくる。
更に、その前に、デバイスがあるかないかの判別も居る。
823デフォルトの名無しさん:04/10/19 22:51:24
というか、面倒なのは、可変のプログラムを載せる為のプログラム(モニタ・デバッガ)を最初に載せることだろう、
JTAG使うのもあるし、PSEN(ProgramStoreENable)とかいう書き込みピンをアクティブにして書き込む場合もあるけど、
例えば、モニタには、最低限、シリアル経由等で、プログラムを吸い込んで、基板上の不揮発メモリ等に載せてやり、シリアル経由でコマンド(他に同じ2進コードが無い一意のコード)を送って実行させる機能が無ければいけない。
(この辺は、フラッシュや各種ストレージなんかから読むなら、それから読んでRAMに展開させるモニタになるけど)
824デフォルトの名無しさん:04/10/19 22:54:57
スタートアップのソースにブートローダーのコードは書いてないやオレ
つーかワンチップじゃねーかこれ外バスねーよ
825デフォルトの名無しさん:04/10/20 01:14:08
モニタープログラムお手上げ
ブートローダー挫折

これでも組み込みやってます
826デフォルトの名無しさん:04/10/20 01:16:27
世の中は
まぐれで動いている
827360:04/10/20 02:03:11
いままで、やってきて思った事
「やらなかったことは、かならずツケとして帰ってくる」
ソフトもハードについても、
すべてに目が通せるわけではないのだけど
とにかく自分の関連はすべて目を通しておかないと
大抵の場合、最後の最後に、問題は目を通してなかったところから始まります

試験に関しても
大手メーカの現場担当の人は、このあたり徹底していて、すごいです。
ホントあたりまえなのだけど
通電する前に盤の接点のひとつひとつ最後まで丁寧に徹底的にチェックしますね
朝から晩まで、線番に頼らずにテスターなどでチェックしてるのをみるとホントに頭が下がります。

その昔、ボードの入力信号の取り込みのチェックに手を抜いて
32点の入力を31点まで値のチェックをして、まいいやあとOKなんて。。。
その最後の1点が不具合でパニクったことがあります(恥
828デフォルトの名無しさん:04/10/20 03:39:28
>>822-823の方が仰った事が今ひとつピンとこないワタクシは三下ですね
829デフォルトの名無しさん:04/10/20 04:00:22
そういう人がどうやって給料もらえる仕事できているのか理解できない_| ̄|○
830デフォルトの名無しさん:04/10/20 04:18:39
Windowsのデバドラについての質問はここにしてもよいですか?
831デフォルトの名無しさん:04/10/20 04:24:09
>>830
何でこのスレで?
http://pc5.2ch.net/test/read.cgi/tech/1063453024/
じゃあかんの?
832デフォルトの名無しさん:04/10/20 19:22:32
M1号に見られている気がします
833デフォルトの名無しさん:04/10/20 22:31:54
>>822
ROMからの読み出しはアセンブラですよね?
Cで書けたらいいけど、Cで書いたらブート用のメモリに入らないです
834デフォルトの名無しさん:04/10/21 00:40:29
>>830
Chipの設定なんかの思いっきりデバイス依存の話なら
相談に乗れる人間はいるだろうけど

大抵の組み込み屋はWinのAPIとしてどう見せなきゃいかんか?
なんてのは素人だぞ

自主開発したボードの叩き方でも
相談したいんでもなきゃお勧めしない
835デフォルトの名無しさん:04/10/21 07:50:01
>>825
モニターなんか自作するくらいなら、ICE買え
836デフォルトの名無しさん:04/10/21 08:58:24
WDTに引っ掛かったらモニターに落としてますが何か。
837デフォルトの名無しさん:04/10/21 13:14:56
>>835
デバックモニターが貧乏臭いってことだよね

オレもそう思う
メーカー製の統合環境とICEしか使って無いし
838デフォルトの名無しさん:04/10/21 21:21:22
モニタープログラム=プログラムを制御するプログラム。コンテキストスイッチングが
必要なので、ライトなOSみたいなもんだ。デバックモニターとはイコールじゃない
839デフォルトの名無しさん:04/10/22 13:15:35
でもアイスって高くない?
うちみたいな貧乏な職場だと買えないな
840デフォルトの名無しさん:04/10/22 13:21:59
一度きりの仕事ならレンタルだな
841360:04/10/22 13:28:59
>>839
ICE使ったのは最初の1回だけだった。
nonOSだとまったくICE無しでやってます。
レンタルでも 20マソ/月だしね。
842デフォルトの名無しさん:04/10/22 13:59:36
岩技が京都マイクロとコンピューテックスになって最後がソフィアの人
843デフォルトの名無しさん:04/10/22 19:50:14
岩技・・・・・懐かしい
844デフォルトの名無しさん:04/10/22 19:54:47
まぁ、モニタプログラムは、色々機能をつけなきゃならないから、
PCからシリアルでコード送って色々動かす機能とか、実行を途中で止めて、その時のレジスタ値見たりとか、
こういう機能があるから、同じ類で、プログラムを走らせる為のプログラムとしては、実製品のブートローダの方が簡単。
ブートローダは、デバイスがどれがついているか判別して、デバイスから、オペコード・オペランドともにただのデータとして読み込んでRAMに展開して、RAMに展開されたプログラムを読んでいってやればいい。
或いは、RAMをただのワークエリアとして使うなら、ブートローダの役目は、ただ単に、プログラムが入っている不揮発RAMの先頭から読み込ますだけ。
すなはち、プログラムメモリへの先頭番地へのGOTO命令ただ一つ、これだけよ、これだけ、奥さん。
845デフォルトの名無しさん:04/10/22 22:20:34
>>844
ブート元がフラッシュだったり、ディスクだったり、ファイルシステムもどきだったりしたら、
けっこう凝ってこない?
そういうのも汗るわけ?
846デフォルトの名無しさん:04/10/22 22:59:53
>845
それはすでにブートが走っている。
例えば、PCで起動ドライブの選択は拡張バイオスを認識し、これを動かす。
拡張BIOSを認識、起動させるのはBIOS。
従って、>845の意味するブートとは、ほとんどOSのカーネル。
847デフォルトの名無しさん:04/10/22 23:30:36
で、>844はなにがいいたいんだ?
848デフォルトの名無しさん:04/10/23 00:06:46
>>847
「俺様は偉い」
849デフォルトの名無しさん:04/10/23 00:37:51
また分けわかんないのが沸いてるな

>843
岩崎技研のPROASM使ってる (C)1985古っ!
8.3ファイル名規則に目をつぶればwin2kのコンソールで動く

さすがに8インチ搭載ポータブルwは埃被ってるが
850デフォルトの名無しさん:04/10/23 01:00:37
京都マイコンさんとソフィアさんしか知らないや
851デフォルトの名無しさん:04/10/23 01:21:23
マイテックのNICE-Z80
ユニダックス DICE-6502

もう使ってません
852デフォルトの名無しさん:04/10/23 04:15:48
ASCII入力を実数変換するのに、cの実数変換が重くて使えないので、小数点の上下を整数で
表現しようと思います。strtol()で整数部を変換した後区切りが'.'ならその後ろをatoi()とか。
有効桁数はそれぞれ16bitで十分な程度です。そこで相談は、小数部の表現なのですが、
何桁まである、と決まっていればいいのですが、.001だと整数変換すると1になって1/1000に
ならないし、.100となってたら100になって1/10にならないし・・・ 小数部をどういう表現で持てば
小数点付きの数をうまく扱えるでしょうか?
853デフォルトの名無しさん:04/10/23 04:32:17
1.000 = 1000 / 1000
0.100 = 100 / 1000
0.001 = 1/1000
854デフォルトの名無しさん:04/10/23 04:36:12
855360:04/10/23 04:43:13
>>852
単に、小数点3桁なら1000倍した値としておけば?
3.027 = 3027 で扱うだけ
856852:04/10/23 06:59:55
早朝からありがとうございます。 853,855のアイデアは「少数以下何桁と固定で」の考え方ですよね。
できるといいなあと思っているのは、xx.1でもxx.523でも扱える手法なんです。この2例を整数変換
すると1と523で、例えば1/1000単位と決めたらこれを100と523にする規則が考えつかないです。
857デフォルトの名無しさん:04/10/23 07:16:03
( ´D`)<アイスは8段アイスがうまいのれす
858デフォルトの名無しさん:04/10/23 08:20:42
>>856
その例なら、整数変換後10の(2-桁数)乗すればよろしい。
といっても、高々3桁しか入らないと言うのであれば、
static const int ratios[] = {0, 100, 10, 1};
int i = atoi(s) * ratios[strlen(s)];
とでもすればいい。
859デフォルトの名無しさん:04/10/23 08:28:04
>>856

少数点以下何桁あったか見ればいいじゃないか。
あるいは、少数点以下に0を埋めてから処理すればいいじゃないか

ただ、俺たちは、普通は 自前で変換=頭から x*10+n を繰り返して処理するけどね
860デフォルトの名無しさん:04/10/23 08:30:12
>>859
いや、「俺達」っていうけどあんたみたいな馬鹿他にはそうそういないから。
861デフォルトの名無しさん:04/10/23 18:44:19
>>860
そうか。スマン。
Cでさえ滅多に使わん奴らのスレかと思ってたよ。
862360:04/10/23 18:58:51
>>856
ちょっと意味がわかりません。。。鬱
小数点の取り扱いって、どうなっているかじゃなくて、どう取り扱うかって考えるものと思っていましたので
0.1 = 0.10 = 0.100 = 0.1000 じゃないのかな
863360:04/10/23 19:10:07
>>856
要求される精度って最初から決まってはいないんですかね?
最初からその精度で取り扱えばいいように思うのですが
なんか変?
864デフォルトの名無しさん:04/10/23 21:05:27
>360
>>852は自分のやりたいことが頭の中で整理できてないんんだろう。
少なくともそれを人に説明できる程度には。

まあ、本来は恐らく次のようなことを聞きたいのだろう。
-----------------------------------------------------------------------
小数点付の数値を表す文字列を「数値」(もっと扱いやすいデータ型)に
変換したいんだが

  (1)「数値」はどのようなフォーマットが簡便か?

  (2)文字列からその「数値」への変換はどのように行ったらいいか?
-----------------------------------------------------------------------
それでいま困っているのは、小数点で区切って小数点以下をatoiすると0.1(1)も.01(01)も.001(001)も
1になってしまう、どうしたもんか?って話なんだと思うよ。

>>852
こんな風にすると簡単じゃない?

まず、「数値」のフォーマットとしては実際の数値の10^n倍の値をLongで持つようにする。
たとえばn = 4なら、"123.4"は内部形式としてはLongで1234000、"12.34"なら
123400、"1.234"なら12340で表現するようにする。

で、この「数値」( = X)への変換方法としては、(1)元の文字列から小数点を取り除いた
文字列をLongに変換する。( = L) (2)元の文字列の小数点以下の文字数dを求める。
(2) X *= pow(10, 4-d)
865デフォルトの名無しさん:04/10/23 21:09:01
番号付け間違えた、(3) X *= pow(10, 4-d) でした
866デフォルトの名無しさん:04/10/23 22:03:04
そのやりかたが合理的だとは思えないがどうしてもそれでやりたければ
頭に1をつけてから atoi しろ、元へ戻すときはあたまの一文字を消せば桶

867デフォルトの名無しさん:04/10/23 22:06:39
>>866
もうちょっとスマートにやりたければ補数にしとけ
868852:04/10/24 06:40:57
>>864 うまく表現してくれてありがとう。そんなふうに言いたかったのです。
866は864の(3)のstepについてのうまいやり方ですよね?小数点以下が4桁までならatoi
5桁以上ならatolでいいですね。(3Mの8085でのアプリだから後者はまずありえません)

実際には表現桁数は決まっているのですが、後で有効桁数増やされたりしたときの為に
内部に保存する表現はなるべく桁数保っておきたいと思ったので相談させてもらいました。
勉強になりました。
869デフォルトの名無しさん:04/10/24 09:44:25
8085でCって…
どこのやつかは知らないが標準ライブラリ使ってる限り
速度の向上は見込めない気がする
870360:04/10/24 10:34:06
>>868
つまり >>855 とどう違うのでしょう?(馬鹿ですまいません)
871デフォルトの名無しさん:04/10/24 12:04:53
話が噛み合ってないと思われ。
872デフォルトの名無しさん:04/10/24 12:36:52
8085なら、俺なら100進使うところだな。 余計な話だが。
873デフォルトの名無しさん:04/10/24 14:21:10
確かに80系ならCでのサポートがない点を覗けば、BCD使うほうが楽だね。
874デフォルトの名無しさん:04/10/24 17:16:46
80系で速度要求するならアセンブラつかえよ(w
875デフォルトの名無しさん:04/10/24 18:06:33
たとえば、ペンチアムは80系って言っていいのか?
そういえば、例えば、CPUとっかえた時、手元に残ったP3とかP4でLEDを点滅させるのは出来るんか?とか。
876デフォルトの名無しさん:04/10/24 18:22:21
>>875
そのへんのCPUなら、アドレスバスかデータバスあたりにぶら下げておけば点滅するん
じゃないかなあ。電圧が足らんかもしれないから適切につなぐように。
877デフォルトの名無しさん:04/10/24 18:30:50
点滅は見えないでしょ・・・・・薄暗く光ってみえるかも
878868:04/10/24 18:42:03
>>870 数学的には同じこと、って気がします。cで扱いやすい表現がどうか、って話かと。
>>874 ASM使っても乗算・除算の回数は変わらないとおもいます。cのlibはいちおう効率を考慮
して書かれているでしょうから。cを注意深く書けばASMとの違いは「callオーバーヘッドだけ」
にできます。
879デフォルトの名無しさん:04/10/24 20:26:34
>>878
汎用にかかれたものと特定の用途に絞って書かれたものとではずいぶん違ってきますふつう
880デフォルトの名無しさん:04/10/24 20:39:15
8085には掛算は無でしょ?だから、x=x*10+n を実行するには
10 = (2*2+1)*2
と分解するとか、そういう所からやるんが普通では?
881デフォルトの名無しさん:04/10/24 20:47:00
なんで掛け算の話になってんだ?
882デフォルトの名無しさん:04/10/24 21:02:33
>>897
8085のアーキテクチャ知らないと正確なことはいえないし、だから断定はできないけど
今話題になってる処理(Ascii => BCD, BCD => Binary)なら、確かに違いは
ないとはいえないがまあ無視できるレベルと予想するのが妥当でしょ。

オーバーヘッドなんてせいぜい引数をスタックで渡すことぐらいしかないと思う。

しかし8085って70年代の石でしょ確か。
こんなの使うシステムがまだ存在するの?8051と勘違いしてません?
883デフォルトの名無しさん:04/10/24 21:07:24
>>882
甘いな。甘すぎだな。
引き数をレジスタ渡しするコンパイラもあれば、動けばいいというレベルで実装されたライブラリもある。
従って、一概には言えない。
おまけに、80系(8080、8085、Z80からの派生)のCPUは今世紀に入っても作られている。
884デフォルトの名無しさん:04/10/24 21:11:18
>>882
元ネタは ”cの実数変換が重くて使えない” これです
885デフォルトの名無しさん:04/10/24 21:23:14
まず、その添附ライブラリがどうやって変換してるのか調べた方が無駄が少ないんじゃね?
886デフォルトの名無しさん:04/10/24 21:25:06
>>883
>動けばいいというレベルで実装されたライブラリもある。
なんか非現実的な想定って気がするけど。。

昔「プロのプログラマは人が作ったライブラリを信用しない」って小話(?)が
あったけど、これはもちろん他人に必要以上に懐疑的な奴に限って自信がない
三流の奴だってネタなんだけど、君もその類なんじゃないの?

>>884
だから>>882で書いた「今話題になっている処理」の話になっているわけでしょ。
887デフォルトの名無しさん:04/10/24 21:27:41
インデックスレジスタ少ないしレジスタ修飾貧弱なのにCで吐き出すコードが効率いいとは思えない

と昔に教え込まれた
888デフォルトの名無しさん:04/10/24 21:31:16
>>886
元ネタへのcじゃ重いへの返事としてASMでやりなってこと
どんなにがんばってもプログラマーの技量が同じならcでASMより速いルーチンはかけないだろう?


889デフォルトの名無しさん:04/10/24 21:34:54
>>888
読解力ない人だねえ。。
890デフォルトの名無しさん:04/10/24 21:35:37
へたれCプログラマがまともにASM書けると思うのか?
891デフォルトの名無しさん:04/10/24 21:40:51
っていうかねえ、実数扱う処理なんてド素人に、曲がりなりにもプロが書いている
コードより効率がいいものがホイチョイト書けますかねえ。。

掛けるとしても、まずコンパイラの実数のフォーマット調べる必要があるわけで
これは案外大変な場合があると思うんだが。
892デフォルトの名無しさん:04/10/24 21:44:24
Cだけで書いて早い処理がやりたいのか、そうじゃないのかハッキリしる
893デフォルトの名無しさん:04/10/24 21:45:58
>>892
ハッキリしてるって。読解力ないなあ本当に。。
894ε=( ̄。 ̄)yー~~:04/10/24 21:49:21
>886
配列・ポインタで使われるベースインデックスアドレス指定の話とか分かってるか?
具体的にアセンブラで言うとeb〜の話だ。
その使い方によっても速度は思いっきり変わる。
ポインタ使えば、速度は速くなるってことぐらい知ってるのであろう。
>883の甘いってのは、こういう基本的なアドレッシングモードの話が分かってるのかどうかということであろう。
895ε=( ̄。 ̄)yー~~:04/10/24 21:53:40
追加だ。
アドレッシングモード・・・、やさしく言うと、
アドレス指定方式の話だ。
基本情報の試験にも出るぞ。
そこを分かっているかと問われているのだ。
はずかしいと思うべし。
896デフォルトの名無しさん:04/10/24 21:58:58
>>891
ホチョイと書かなくてもいいんじゃねえの、一ヶ月くらいかかって書いてみればいいのよ
で、だめだったらあきらめて整数型のところへ降りてくればいい、そしたら一ヶ月の苦労が実って
整数型のルーチンがホイチョイとかけるようになっていると思われる
897デフォルトの名無しさん:04/10/24 22:10:50
>>894
あのー、Ascii => BCD, BCD => Binってアセンブラで書いた経験あります?
こんな処理にディスプレースメント付のインダイレクトアクセスなんて
普通は使うまでもないんですが。

しかし、HNに顔文字使う人ってたいていヘタレなのはどうしてだろう。
本人は余裕かましてるつもりなのかもしれんが、
「余裕かましているふり」をしないではいられないことが傍目には
脆弱にみえることがどうしてわからないのかだろう。
898デフォルトの名無しさん:04/10/24 22:17:09
8085と思ってない模様 <ε=( ̄。 ̄)yー~~
899ε=( ̄。 ̄)yー~~:04/10/24 22:21:58
>897
>オーバーヘッドなんてせいぜい引数をスタックで渡すことぐらいしかないと思う。

こう書かれていたからだよ。
アドレッシングにスタック使うなんてx86はスタックマシンじゃあるまいし、無いはずだが。
この一行は、割込みでのスタック処理でのオーバーヘッドと読んだのだが?

>普通は使うまでもないんですが。

オーバーヘッドの話題だそうだからだ。
別に使う必要が無ければ、普通にCで書けば良いのではないのか。
900ε=( ̄。 ̄)yー~~:04/10/24 22:24:13
>898
ん?8085・・・
901デフォルトの名無しさん:04/10/24 22:32:05
>>900
8085なんだろ、8086ですらない

そんなもんでSoftwareFloatingPointなんて使えば
ライブラリの出来以前の問題で遅いだろうな
902デフォルトの名無しさん:04/10/24 23:12:09
>>886
作った張本人が言ってるんだから間違いない。
実際、atoi()は空白を読み飛ばせない代物だった。
#どこのなんてコンパイラかは内緒。

あーそうだ、MS-DOS用時代のCコンパイラの(製品版の)バグもいろいろあったねぇ。
必要以上に懐疑的になる必要もないが、充分な検証もしないで過信もしない。
903デフォルトの名無しさん:04/10/24 23:15:49
>>902
当時はバグをいかによけて使うかというのがプログラマーの腕に含まれていたからねえ
古きよき時代じゃッたよ・・・・え゛

904デフォルトの名無しさん:04/10/24 23:59:41
今もだよ(泣
905デフォルトの名無しさん:04/10/26 06:00:38
昔語りが出てくるとスレ止まるのなw
906878:04/10/26 09:41:10
ずいぶん引っぱってくれてありがとう。CはLSIC80('85頃のVer)。LIBは逆ASMして調べました。
整数変換機能の中では*10はシフトと足し算でやってます。callは通常reg渡し<--引数3個を
越えると以降はスタック渡しだから3個までで済むように気をつけてます。sscanf/sprintfみたい
な「可変引数関数」は全部スタック渡しです。この調査の結果変換機能などの「下層」はASM化
する必要はないと判断しました。printf系では整数除算が使われるはずで、そこをASMで書いても
除算が減るわけではないと思います。アプリ部分をASMで書いてもリーダビリティが悪いだけで
速度改善には(工数かけた割には)貢献しないと思います。
割込は外付け8251が4本と8253を8259で整理させる方式ですが、割込処理も「先代」のASMより
速い奴をcで書いて実装しました。
907デフォルトの名無しさん:04/10/26 09:46:04
>>905
ヤングが付いて来れないからじゃね?
908デフォルトの名無しさん:04/10/26 11:16:18
>>906=878
で、後は何が問題だ?
#大体片付いたのかな?
909デフォルトの名無しさん:04/10/26 13:58:26
OSを使い始めるのはだいたいどのくらいの規模から?

いや、この話もループになることはわかってるんだけど
定期的に議論しとくといいことあるかなって
910906=878:04/10/26 17:20:01
片づきました。906は純粋に御礼です。
>>909 アプリがOSの10倍くらいかなあ、行数で。何度も開発するならいいけど、一発モノなら裸でいい。
911デフォルトの名無しさん:04/10/26 20:45:06
まあでも8bitCPUなら、自分ならCでも
 1234.56 は char [3] で確保して100進法で処理するな。
足し算も掛け算も100進法なら作るのも確認も簡単だしBCDの相互変換もテーブル引くだけだし
トータルの処理コストも低いしな
912デフォルトの名無しさん:04/10/26 21:28:36
なんだよ「100進法」って ヽ(´・`)ノ
913デフォルトの名無しさん:04/10/26 21:42:14
10進数でいうところの0〜99までを1桁とするんだろ?
2進数が北斗なら、100進数は南斗だな。
914デフォルトの名無しさん:04/10/26 22:41:26
100進法なんて半端なことするなら256進法の方が効率良いだろ?
915デフォルトの名無しさん:04/10/26 22:49:24
>>914
石によってはな。
916914:04/10/26 23:12:51
あぁ、もしかしたらBCD 2桁を1byteにパックしたのが「100進数」ってことなのか?
もしそうなら、それは一般的な呼び方なのか?
で、一般的なのだとしたら、いつの頃からそう云うようになったのだろうか…
かつてはファームウェアを専門にしてたのだがなぁ〜。歳取ったな〜
917デフォルトの名無しさん:04/10/27 10:20:34
36進数って結構使うよね
918デフォルトの名無しさん:04/10/27 13:39:02
漏れなら 8bit CPU (というか 8085) なら、100進法じゃなくて素直に BCD 使うなぁ。
どうせ掛け算は無いし、桁上がりの処理も 100 進法よりラクだし。
919デフォルトの名無しさん:04/10/27 18:22:10
それだとDAA命令が要るでしょ。それがcで書けない。
920デフォルトの名無しさん:04/10/27 21:55:10
そういうのは自分でライブラリ書け
921デフォルトの名無しさん:04/10/28 07:45:01
桁上がり処理って100以上なら上に足すだけだからさ。
asmでDAA命令使って書くのと同じ程度のコストだよ。

それに、100進ならCで手軽に書けるだろ?
ポータブルに書いて、それで速度足りないなら自前で処理してもいいでしょ。

パックBCDのメリットはそのままHEXダンプで読める程度だな。

922デフォルトの名無しさん:04/10/28 07:49:38
>>914
多倍長だと、最終的に10-16変換があって、バイナリ多倍長だとこのコストが大きい。
加減算のコストを1.5倍くらい払っても、最悪を減らるからいいじゃない。

それに100進数だと、0.05の掛け算とかがとても楽だよ。バイトずらして 2*2+1するだけだし
923デフォルトの名無しさん:04/10/28 09:16:10
>最悪を減らるからいいじゃない。

へらる
924デフォルトの名無しさん:04/10/28 12:41:00
>>921
>桁上がり処理って100以上なら上に足すだけだからさ。
>asmでDAA命令使って書くのと同じ程度のコストだよ。
このものすごい勘違いには誰も突っ込まないのか?
925デフォルトの名無しさん:04/10/28 12:50:35
>>924
馬鹿構うのに疲れてきた恭子の頃。
#歳かな…
926デフォルトの名無しさん:04/10/28 15:21:11
>>924
「上の桁に1足して(今の桁からは100引く)」ってことだと思う。
漏れにはこれが DAA と同じ程度のコストとは思えないけど、
人によっては「どちらも O(n) のアルゴリズム≒同じ程度」なんだろうな・・・
927デフォルトの名無しさん:04/10/28 15:47:30
>>924
突っ込んでくれよ。 8085のアセンブラ忘れてしまったから、
アセンブラで書けば、こんなコードになる筈
CF=0
loop:
RAM からロード=>A
RAM からロード=>B
A=A+B+キャリー
DAA
AをRAM に格納
DEC COUNTER
JNZ loop

同じく100進数をアセンブラで書けば(たぶんCで書いても同じようになるだろ)
C=0; ;CはCF用のレジスタ
loop:
RAM からロード=>A
RAM からロード=>B
A=A+C        ;
A=A+B       ;ここで最大は99+99+1で199で8bitに収まる
ADD A,#(256-100) ; 100以上ならCFが立つ
C=0
JC SKIP
  ADD A,#100 ; 桁上げが無いので元に戻す同時にCFが立つので
  C=1
SKIP
AをRAM に格納
DEC COUNTER
JNZ loop

そんなに変わらんだろ?
928デフォルトの名無しさん:04/10/28 17:26:10
>>927
「そんなに変わらん」=「同程度」かはともかくとして、
8085 で C レジスタまで使っちゃったら、カウンタ用のレジスタがなくなっちゃう罠
(HL, DE は RAM からロード/ストアする際のポインタとするとして)

もともとの速度の話に戻ると、C で100進法の加算をインプリメントしてDAA とホントに
同程度になるのかは疑問っぽいのでは。憶測なんで外れてるかも知れませんが。
929デフォルトの名無しさん:04/10/28 18:40:06
CANを使おうとおもっているんですが、
参考になるソースやデバイスの使い方に詳しいサイトははないでしょうか?
930デフォルトの名無しさん:04/10/29 21:51:53
RS232Cで通信して動く機械AとBがあり
それぞれを連動させて動かすプログラムを作りたいのですが、、、
まずAのみのプログラムはちゃんと動き、Bのみでも同様に動きました
そこで二つを連動させたら動かない、というかプログラムを実行したところでPCがフリーズ
なぜでしょうか?
素人質問ですみません
931デフォルトの名無しさん:04/10/29 21:56:24
>>930
他人にわかるように説明しろ
932デフォルトの名無しさん:04/10/29 22:02:59
あいまいすぎて原因が絞りこめないんだが…
933デフォルトの名無しさん:04/10/29 22:36:28
プログラムに問題があるか、仕様に問題があるかのどちらかだろう。
934デフォルトの名無しさん:04/10/30 00:19:00
同じCOMポート使おうとした…そんなわけねぇな
935デフォルトの名無しさん:04/10/30 01:09:52
両方受信待ちしてるとか言う、ベタな落ちに5000バーツ (・`ω´・)ノ
936デフォルトの名無しさん:04/10/30 01:41:21
>まずAのみのプログラムはちゃんと動き、Bのみでも同様に動きました

それぞれどうやって「ちゃんと動いたかどうか」確認出来たんだろう・・・
937デフォルトの名無しさん:04/10/30 02:38:40
ちゃんとした後輩Aと、ちゃんとした後輩Bを連動させたら大変に険悪なことになった
938デフォルトの名無しさん:04/10/30 04:51:39
>>937
ワロタ
詳細キボンヌ
939デフォルトの名無しさん:04/10/30 22:32:42
おかしいのは>>930の頭

以上
940デフォルトの名無しさん:04/10/31 13:37:11
彼女Aとはちゃんと、、、彼女Bともちゃんと
そこで2人を合わせたら、、、(以下略
941デフォルトの名無しさん:04/10/31 13:47:45
うむ、制御系はやはりノウハウが必要だね。
942デフォルトの名無しさん:04/10/31 13:48:04
>>930
共通ヘッダがだめだめ
943デフォルトの名無しさん:04/10/31 14:47:30
>>940
お前さあ、世の中には3Pとかやってる香具師いるんだよ?
HIGH/LOWだけじゃなくて、もっと世の中を(ry
944デフォルトの名無しさん:04/10/31 14:58:31
>>943
量子コンピューティングを学べ
945デフォルトの名無しさん:04/10/31 15:04:11
量子コンピューティング=乱交パーティー
946940=360:04/10/31 17:54:35
>>943
3Pに関しては、男2女1あるいは女2男1ともに経験ありますが、こういうこともあります。
再現性は高いです。場合によっては資源を喪失することもあります。
いわゆる、深刻なダメージを受けるといったらよいでしょうか。
947360:04/10/31 17:59:32
資源の共有には十分な注意が必要ですね。
調停者を置くか、ルールの規定が必要ですね。
基本的には、 need to know と言ったらよいでしょうか
知る必要の無い事は知らなくてよい。

もういいって?しつれいしますた。
948デフォルトの名無しさん:04/10/31 18:03:14
>>945
違うね、オナニーだ。しかも、両刀使い。
949デフォルトの名無しさん:04/10/31 18:36:54
収拾つかなくなってきたな。で、>>930、原因は何だったんだ。
このスレは参考になったかい?ん?
950デフォルトの名無しさん:04/10/31 19:39:38
ネタ振りしてる間に 出て行ってくれ
951デフォルトの名無しさん:04/11/01 00:00:30
>>950
それは確か… 沢田研二
952デフォルトの名無しさん:04/11/01 00:09:13
>>949
ストレートケーブルだったのさ
953360:04/11/01 00:13:16
>>950
年齢が。。。と、自爆攻撃
954デフォルトの名無しさん:04/11/01 02:45:11
>>953
360って何の番号?
955360:04/11/01 03:02:08
360=0x168=イロハ
956デフォルトの名無しさん:04/11/01 13:30:21
>>952
ケーズルがクロスだけの事はあって、苦労ス
957デフォルトの名無しさん:04/11/02 16:43:01
新スレ建てないと、このまま落ちますよ。 950超えてるので自動的に落とされます
958デフォルトの名無しさん:04/11/02 22:25:09
キタ━━━( ゚∀゚ )━( ゚∀)━(  ゚)━(  )━(゚  )━(∀゚ )━( ゚∀゚ )━━━!!!!
香田 やっと、やっと キタ━━━。・゚・(ノД`)・゚・。━━━ !!!
http://www.ogrish.com/a/shosei_koda_beheading_video_on_american_flag.html

すっげー。エグさでは韓国人が一番だったけど、悲惨さではトップかも・・・・・
やられる前の朗読でずーっと下向いてるのはもうカクゴとか決めてるのかな。
泣いちゃったのかな?

おまいら、感想は?どうよ?(゚∀゚≡゚∀゚)どうよ?どうなのよ━━━━━ん?
959デフォルトの名無しさん:04/11/02 22:31:51
buffer って何ですか?どこにあるのですか?
960デフォルトの名無しさん:04/11/02 22:35:46
bukkerなら結構身近にあると思うよ
961デフォルトの名無しさん:04/11/02 22:56:31
>959
〈衝撃などを〉やわらげる,緩和する
擬音語 ‘buff' から、つまり
叩くとバフッて音がする
チミのお腹の脂肪のことだ
962デフォルトの名無しさん:04/11/03 00:34:35
>>957
そうだな、そろそろ立てるか
以下テンプレ、問題なきゃ明日立てる

俺は俺であり、それはお前の事だ。
ハード寄りの話も大歓迎だ。
道具話も楽しくやれるならやってくれ。

過去ログ
制御系なら、俺に聞け!
http://pc3.2ch.net/tech/kako/1002/10021/1002176627.html
制御系なら俺に聞いてもいいぞ(2)
http://pc2.2ch.net/tech/kako/1038/10380/1038094914.html
制御系なら俺に聞いてもいいぞ(3)
http://pc2.2ch.net/tech/kako/1059/10594/1059488975.html
制御系なら俺に聞いてもいいぞ(4)
http://pc5.2ch.net/test/read.cgi/tech/1068869894/
関連過去ログ
●●●くみこの組み込み相談室●●●
http://pc3.2ch.net/tech/kako/988/988084737.html

963デフォルトの名無しさん:04/11/03 00:35:55
スレが落ちてからでも問題は無かったりする
964デフォルトの名無しさん:04/11/04 07:41:13
>>963
じゃ、その方向で(w
965デフォルトの名無しさん:04/11/04 11:24:12
落ちてからじゃ遅いんだよ
制御系ならフェイルセーフをきちんとしる
966デフォルトの名無しさん:04/11/04 11:26:44
そのためのウオッチドックだ
967デフォルトの名無しさん:04/11/04 11:39:26
だけど ”誰” が ”ウオッチ” するんだよ!?

・・・>>966、よろしく頼(よろ)んだぜ!? (ビキッ
968デフォルトの名無しさん:04/11/04 13:26:48
魚っ値
969デフォルトの名無しさん:04/11/04 14:00:04
970 がスレ立て担当
970デフォルトの名無しさん:04/11/04 21:33:38
北チョンのニュース番組はだいたいこう聞こえる

  踏んだら孕んだ!
  孕んだ振る降る般若だ!
  童貞擦る無駄、フン出る春巻きはむ無理!
  チン毛ちぎり、看板塗る飛騨!
  安眠煮る焼酎!
  安打!?半田ゴテ適時打!!
  原チャリ盗んだ!
  よくちょん切れるハサミだ!

        ∧__∧   ________ 
      <丶`Д´>/ ̄/ ̄/ 
      ( 二二二つ / と) 
      |    /  /  /  
       |      ̄| ̄

971970:04/11/04 21:36:43
ぎゃああああ。アクセス規制中でしたああああっ?(;・`д・´)
だずげでええええっ
----------
新このホストでは、しばらくスレッドが立てられません。
またの機会にどうぞ。。。
デフォルトの名無しさん ( , 1)

ホスト121.net218219044.t-com.ne.jp
制御系なら俺に聞いてもいいぜ(6)
名前: デフォルトの名無しさん
E-mail:
内容:
俺は俺であり、それはお前の事だ。
ハード寄りの話も大歓迎だ。
道具話も楽しくやれるならやってくれ。

972デフォルトの名無しさん:04/11/04 22:25:53
>>970-971
荒らしじゃないのか(w

FailSafe起動します
973デフォルトの名無しさん:04/11/04 22:28:32
次スレ告知です

制御系なら俺に聞いてもいいぜ(6)
http://pc5.2ch.net/test/read.cgi/tech/1099574832/
974970:04/11/05 13:37:56
>>972,973
ありがとゴジャマス m(。。;)m あんなのはじめて見たんであせった。
もうしません、もうしませんからあっ、って言ってからトライしても同じエラーだった。
975デフォルトの名無しさん:04/11/15 04:55:30
sage
976デフォルトの名無しさん
未だ生きてたのか。