[表示 : 全て 最新50 1-99 101- 201- 2chのread.cgiへ]
Update time : 07/05 20:21 / Filesize : 73 KB / Number-of Response : 261
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2006/09/19(火) 08:40:10 ]
まったり逝きましょう。
ハード寄りの話も大歓迎です。
道具話も楽しくやれるならやってくらさい。
この世界は処理系依存はあたりまえだから、処理系明記するのを忘れないでね!

過去ログ
制御系なら俺に聞いてもいいぜ(8)
pc8.2ch.net/test/read.cgi/tech/1125994426/
制御系なら俺に聞いてもいいぜ(7)
pc8.2ch.net/test/read.cgi/tech/1109102528/
制御系なら俺に聞いてもいいぜ(6)
fun.kz/test/read.cgi/tech/1099574832/ (新タイプミラー)
制御系なら俺に聞いてもいいぜ(5)
fun.kz/test/read.cgi/tech/1079102543/ (新タイプミラー)
制御系なら俺に聞いてもいいぞ(4)
pc5.2ch.net/test/read.cgi/tech/1068869894/ (行方不明)
制御系なら俺に聞いてもいいぞ(3)
pc2.2ch.net/tech/kako/1059/10594/1059488975.html
制御系なら俺に聞いてもいいぞ(2)
pc2.2ch.net/tech/kako/1038/10380/1038094914.html
制御系なら、俺に聞け!
pc3.2ch.net/tech/kako/1002/10021/1002176627.html
関連過去ログ
●●●くみこの組み込み相談室●●●
pc3.2ch.net/tech/kako/988/988084737.html

75 名前:デフォルトの名無しさん mailto:sage [2006/10/26(木) 21:27:09 ]
何で俺の妻の名前が久美子だって知ってるんだ。

76 名前:デフォルトの名無しさん [2006/10/31(火) 00:34:01 ]
収束していないステップ応答出力から
伝達関数を1次遅れ系に近似して導出する方法ってありますか?

77 名前:デフォルトの名無しさん mailto:sage [2006/10/31(火) 08:20:52 ]
1次遅れなら、1つ前の値との比率だけで求まりそうなものだが?
俺、なんか勘違いしてるのかな?

78 名前:デフォルトの名無しさん mailto:sage [2006/11/08(水) 06:10:44 ]
3MHzの8085のお仕事、まとめて6本キター------- 1,2週は楽しめそう・・・

79 名前:デフォルトの名無しさん mailto:sage [2006/11/11(土) 05:18:01 ]
続けてまた2本キター。まあ、大して\にはならないんだけど、チッチャイプログラムひねくる遊びとしては
面白いんだよね。大昔はbit誌のナノピコ教室とか好きだったし。
この石でsin/cos出してくれ、って言われたときはちょっとあせった。

80 名前:デフォルトの名無しさん mailto:sage [2006/11/11(土) 07:58:33 ]
私ゃテーブル作ったよ。
#お蔭で、sqrtよりsin/cosの方が速い罠。

81 名前:79 mailto:sage [2006/11/11(土) 13:00:20 ]
>>80 私もそうです。1度単位で出ればいいので[360]のテーブルですんだ。
ルートはどうしたんですか?

82 名前:デフォルトの名無しさん mailto:sage [2006/11/11(土) 13:53:37 ]
どうせ実数のライブラリ使うなら素直にライブラリの関数使えばいいのに。。
ひょっとして俺様定義の実数をアセで使ってるとか?
それならそんなことよりごく普通に10進の文字列との相互変換とか、
そのあたりの方が余程難しい気がするんだが。

っていうか三角関数ってテーブルを素直に参照するだけのやり方でも
pi/2まであれば十分なはずだけど。

83 名前:80 mailto:sage [2006/11/11(土) 15:21:14 ]
>>81
あー、テーブルのエントリー数は0-90度を100個にしてたかな。だから厳密には度じゃなくて0-100グラジアン。
奇数で順番に引く方法で計算してた。16ビット整数だと高々256回回るだけだから。

>>82
そんな贅沢なものを使えるほど余裕がないときもあったのよ。
んで、10進16進変換辺りは10進補正命令も駆使して作った記憶がある。



84 名前:デフォルトの名無しさん mailto:sage [2006/11/11(土) 15:29:19 ]
なんだやっぱり知ったかか。
unit やintじゃないんだから単純にBCDに変換なんてできるわけないじゃんw
それともint + decimal pointなんていう効率の悪いことしてるのかな。

85 名前:80 mailto:sage [2006/11/11(土) 15:39:34 ]
おや、誰か浮動小数点数を扱っていると申し上げましたでしょうか。

86 名前:デフォルトの名無しさん mailto:sage [2006/11/11(土) 16:14:01 ]
ああ固定小数点って奴ね。
それなら確かに。

しかしそれじゃ利用範囲はかなり限定されそう。

87 名前:デフォルトの名無しさん mailto:sage [2006/11/11(土) 22:21:11 ]
8085使うようなシステムの三角関数に汎用性や精度を求める奇特な人が居るな

88 名前:デフォルトの名無しさん mailto:sage [2006/11/12(日) 02:53:02 ]
汎用性や精度は求めてもいいんじゃね?

速度とか実用性はしらね

89 名前:デフォルトの名無しさん [2006/11/12(日) 03:01:56 ]
私,現代制御理論を勉強してるんだけど,学校で指定されてる教科書は,

「システム制御理論入門」(実教出版)なんだけど,

わけわからなくなって,新たに奨められた参考書

「現代制御論」(吉川井村)(昭晃堂)

買ったんだけど余計わからなくなって,問題解ければいいやと思って,

「演習で学ぶ現代制御理論」(森)

を買って確かにかなりわかりやすかったけどうちの先生数学チック
(Lyapunov方程式でA^TP+PA=-CC^Tにおける唯一解Pの存在条件出せとか)
なのが好きなんだよね.こんなかんじの現代制御で数学チックでわかりやすい問題集無いかな><
どなたか迷える私にご教授ください(汗

90 名前:デフォルトの名無しさん mailto:sage [2006/11/12(日) 03:23:49 ]
>>89
ここが何の板だか分かった上での質問か?

91 名前:89 [2006/11/12(日) 03:30:17 ]
もしや板を間違えましたか?すみません.違うところに行きます.
不機嫌にさせてしまい申し訳ございませんでした!

92 名前:79 mailto:sage [2006/11/12(日) 05:32:31 ]
>>82の >pi/2まででいい、ってのは知ってます。ただ範囲によって符号をひっくり返したりする
のがめんどうなので、ROMが余裕あるかぎり1周分用意しちゃいます。

>>83 がsqrtの説明なんですか?頭悪いんでもうちょっとくだいてくれると嬉しい。

>>88 汎用性はゼロでいいです。精度は16〜32bit整数で計算できるように押さえます。
ex) 16bitのsin/cosなら±1.0の間だから、符号1bit 整数部1bit 小数部14bitで充分な精度。
速度と実用性こそまさに求められることです。なにせ3MHz(^o^) 今どき8bitの石でも20MHzなのに

93 名前:デフォルトの名無しさん mailto:sage [2006/11/12(日) 07:10:05 ]
制御系でも javaで組むことって可能なの?
もし組めたとしても、リアルタイム性は確保できるのだろうか?



94 名前:デフォルトの名無しさん mailto:sage [2006/11/12(日) 10:30:57 ]
WEPキーをしりたいんですけど、パソコンのどこを調べたらいいんですか?

95 名前:デフォルトの名無しさん mailto:sage [2006/11/12(日) 11:57:54 ]
制御系はC++ですらサブセットしかないのにJavaが乗るわけないだろ

96 名前:デフォルトの名無しさん mailto:sage [2006/11/12(日) 14:22:33 ]
PLCって制御系?

97 名前:デフォルトの名無しさん mailto:sage [2006/11/12(日) 17:10:15 ]
リレーの制御を書くような奴? ちょっとスレチかな。 いちおうマイコンのプログラムまでと
おもってる。

98 名前:デフォルトの名無しさん mailto:sage [2006/11/12(日) 17:20:13 ]
でも組み込み用のJavaってあるよな

99 名前:デフォルトの名無しさん mailto:sage [2006/11/12(日) 19:37:53 ]
>>93
リアルタイムなところははサブCPUに任せて

100 名前:80 mailto:sage [2006/11/12(日) 20:36:48 ]
おっ、やっと荒らし規制明けた。
まぁ、私が扱ってたのは2バイト整数とその派生の固定小数点数だから。

>>92
今更ソースはないし、説明も面倒なんでCで書いてみた。
int main(int argc, char ** argv)
{
int x = atoi(argv[1]);
int xn;
int r;
for (r = 1, xn = x; xn > 0; r += 2) {
xn -= r;
}
r >>= 1;
if (xn < 0) {// 切り上げなら不要
if (r * r - r >= x) --r;// 切り捨てなら不要
}
printf("%d:%d\n", x, r);
return 0;
}
四捨五入しなくていいなら掛け算も使わないのが味噌屋根。


101 名前:デフォルトの名無しさん mailto:sage [2006/11/13(月) 02:07:12 ]
>>98
RTOSの上にJavaタスクが乗ってるって奴じゃ?
たとえばJBlendだとITRONの上にJavaタスクが乗ってる
リアルタイム処理はITRON、リッチな処理はJavaでやる

102 名前:デフォルトの名無しさん mailto:sage [2006/11/13(月) 05:01:20 ]
>>100 ありがとうございます。筆算で開くやり方と似たやり方に見えますね。メモメモ・・・と

ITRONを130MHzぐらいのSHで使ってみたけど、mSオーダーのリアル性はダメダメでした。
いいとこ10mSオーダーまでかな。MSECを1にしたら重くなるし。

103 名前:102 mailto:sage [2006/11/13(月) 05:10:55 ]
以前、ringバッファの滞留数をwp,rpから計算する手法をここで聞いたし、石選択の相談もしたし、
2chで仕事の役に立つネタを拾う俺って・・・まあ、頭悪いんだからしょ〜がない\(^o^)/



104 名前:デフォルトの名無しさん mailto:sage [2006/11/13(月) 05:48:42 ]
>>98
ジャズルジャズル

105 名前:デフォルトの名無しさん mailto:sage [2006/11/13(月) 11:38:03 ]
>>100 奇数を加算した回数が n^2になるという方法だね。
簡単だけど、大きい数で時間がかかりすぎるかもね

16bitなら sqrtの結果は8bitに収まるんで
x^2のテーブル作ってバイナリ検索も簡単で、ソコソコ早いよ

106 名前:デフォルトの名無しさん mailto:sage [2006/11/13(月) 15:38:10 ]
テーブルに何入れとくんですか?
あ、0,1,4,9,・・・(255)^2を入れといて当たりの位置がルートですね?
これだと256個のテーブルの2分検索だから高々8回のループでよい、ということですか?

固定少数点で16bit求めようと思うともっと大変ですよね?

107 名前:デフォルトの名無しさん mailto:sage [2006/11/13(月) 17:03:05 ]
頭悪いんだからしょ〜がないっても、そんなことまで聞くほど馬鹿だとは思わなかった。

108 名前:デフォルトの名無しさん mailto:sage [2006/11/13(月) 20:45:09 ]
>>106
入力が32bitの場合の事?
掛け算が使えるならニュートン法が一番高速と思うけど
掛け算使えないなら、

 (a+2^n)^2= a^2 + 2^(n+1)*a +2^2n

を使って処理するといいよ。

 n=0の時はこの式は  (a+1)^2= a^2 + 2*a +1 で
 a^2に 2a+1を加算すれば(a+1)^2になる事を意味してる=奇数を加算すればいい

具体的には、 aとa2 の2つの変数を最初0から、n=15から スタートして
入力値Xと a2 とを比較しては
   a2=a2 + 2^(n+1)*a +2^2n ; a=a+(2^n) ;
 と更新してゆくわけ

109 名前:106 mailto:sage [2006/11/14(火) 09:04:06 ]
16bitでS4.11(上5bitがsignと整数部、下11bitが小数部)みたいな約束で、同じ精度でsqrtを
求めたいときでも、そのアルゴリズムは使えますか?sin/cosなんか±1.0の間だからS4.11
みたいな16bitで持ってたので、そのオーダーの数値で少数点つきで扱うときに使えるといいなと。
アルゴリズム辞典みると、実数についてしか書かれてなくて、応用の仕方がわかりません。

110 名前:デフォルトの名無しさん mailto:sage [2006/11/14(火) 09:35:07 ]
それならニュートン法で。

111 名前:デフォルトの名無しさん mailto:sage [2006/11/14(火) 09:57:40 ]
>>109
nは負数でも式の形は同じなので使える事は使えるよ
ただシフト方向が逆になるのでメンドクサイが

掛け算が使えるなら、2ビット単位に見て初期値を決めてニュートン法が一番早い
掛け算が使えないならこの筆算法がまあ我慢出来る範囲だと思うよ

112 名前:106 mailto:sage [2006/11/15(水) 06:06:54 ]
いろいろありがとうございます。四則演算しかできないヘタレなので、助かります。

113 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 11:06:34 ]
a =0
a2=0
n =2
a2d=a2 + 2^(n+1)*a +2^2n = 16( 実際には16<<11) と最初は比較して
  それ以上なら a2=a2d , a=a+2^n
次にn=1,n=0で同じ事を繰り返して nが-11になるまで繰り返す
  途中 aのシフト方向が反対になる

だからループで処理するより ループを展開して
書いた方がいいと思うよ



114 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 06:15:01 ]
いつもの3MHzの8085の人です。入力が数十秒切れ目無く続くとき、出力にring上書きのような
バグが出て困ってます。入力はヘッダ文字〜<CR>で切り出してstrcpyで保存、タイマで数秒
ごとにそこから出力するようにしてるので、処理が間に合わない的なことはないはずなのですが
正体が判ったらネタ書きますね。

115 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 00:13:24 ]
>>114
単純に入力のバッファ溢れだったりしてな

116 名前:114 mailto:sage [2006/11/27(月) 04:20:15 ]
ああ、それか(*o*) 入力ringで上書きが起きたら、そこから読み出すタスクは変なフレームは
捨てると思ってましたけど、ヘッダを検出後、蓄積状態になってから入力ringに上書きが
起きたらそうなりますね。頭ABC,123,・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・<CR><LF>
                       ↑この辺に別の頭CDE・・・がかぶったりします。
入力taskでちょっと重い処理=整数変換のsscanfとsprintfをやってたとき出ました。
タイマ処理で減算するタイマの種類も増えたし。 以前出力ringで上書きが起きて、そのときは
ringが置かれるアドレスによって出たり出なかったりしたことがあり、そっちに頭が行ってました。

117 名前:114 mailto:sage [2006/11/27(月) 04:40:40 ]
軽くする対策としては、こんなのが効き目がありそうです。
・入力処理では数値計算はやらない。→strcpy程度なら間に合うだろう。
・変換/編集は出力のときにやる=数秒に1回でいい。
・変換/編集の間に上書きがおきないよう、入力ringのサイズを増やす。

>>115さん、ありがとうございます。また2chが仕事に役立ってしまった\(^o^)/

118 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 04:57:00 ]
>>117
人が助けてくれたんだよ
役に立つとは何事か?

119 名前:114 mailto:sage [2006/11/27(月) 05:42:59 ]
ごめんなさい。言葉が悪かったですね。
>>115さん、ありがとうございます。また2chで助けてもらっちゃいました\(^o^)/

120 名前:114 mailto:sage [2006/11/27(月) 05:43:58 ]
この業界って夜型が多いイメージがあるんですが、私以外にも早起きさんがいるんですね。

121 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 07:38:33 ]
徹夜だったりして

122 名前:デフォルトの名無しさん mailto:sage [2006/11/28(火) 04:55:39 ]
でも、月曜の明け方・・・って、日曜から徹夜?ウヒャー

123 名前:115 mailto:sage [2006/11/29(水) 00:48:27 ]
まぁ、そのぐらいの言葉遣いはどうでもいいが、、、、

ネタで初歩的なミス書いたのに、そのものズバリかよ。。。。。。。。



124 名前:デフォルトの名無しさん mailto:sage [2006/11/29(水) 08:10:05 ]
技術者同士だから当然だと思って説明に書かなかったような事でトラブルって良くあるよ

多重割り込がかかるとだけ書いたら、スタックが2度使われてると文句が出たり
帰還の入ったデジタルフィルターを低い周波数に設定したらノイズが出るって文句が出たり


125 名前:114 mailto:sage [2006/11/30(木) 05:38:26 ]
確認してきました〜、そのものズバリでした。入力時に数十ミリ毎に乗除算をするともうダメ。
>>117の対処でバッチリでした。あらためて、>>115さん、ありがとうございます。
この手のソフト、20回近く作ってるのに、ありとあらゆるミスをくり返してます。トホホ・・・

126 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 08:15:25 ]
まるで漏れが面倒見る羽目になりそうなプロジェクトのようだな。

127 名前:デフォルトの名無しさん mailto:sage [2006/11/30(木) 12:25:39 ]
なんていうか、むしろ>>114みたいな意味不明の文章を解読できる人間が
本人以外に存在するってことが驚きだよ

128 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 00:26:32 ]
>>127
「CPUがおかしい」とか「ライブラリのバグ」とか「コンパイラのバグ」って
言う奴の報告なんて大抵あんなもんだろ

129 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 03:42:41 ]
>>127 前スレあたりで、「3MHzの8085Aを使ってuartの入出力をやってます。ROMはxxxx、
RAMはこの位・・・」とかシステムの概要は説明されてるので、それ読んでる人にはそんなに
意味不明でもないな。同業だし。unix系とかcobol系の人には意味不明かも。

130 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 05:51:37 ]
前スレ見てきたがもう1年経ってるんだな
1年やっててそのレベルか・・・

131 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 12:08:00 ]
この程度の規模だと、大体そういうミスをやらかすんだよな
俺も最近、出力が止まるミスをやらかしたが、
割り込みで出力して出力中フラグを立てて、
次の割り込みで出すデータが無くなったらそれを倒す、って作ったら
割り込み内で処理が終了する場合があって、
そのときにフラグが永久にたったままに…

132 名前:141 mailto:sage [2006/12/01(金) 17:29:27 ]
ナカーマ!・・・でも私なんかと仲良くしたくないよね。バカが伝染る(^o^)

133 名前:デフォルトの名無しさん mailto:sage [2006/12/01(金) 18:12:02 ]
確かに数字を間違えるようじゃ制御系では致命的だからな。



134 名前:114 mailto:sage [2006/12/02(土) 02:19:26 ]
あちゃ〜(*o*) こないだも1と2見間違えて動かないのに3hはまった・・・ディスプレイのせいにしよ

135 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 11:29:26 ]
だから即値を使うなとあれほど

136 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 11:55:59 ]
即値とマジックナンバーは違うでしょw

137 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 13:56:03 ]
いや、#defineの名前じゃなくて関数名にch1puts()とch2puts()ってつけて、引数も同じだし。
隣のCHに出してた・・・orz

138 名前:デフォルトの名無しさん mailto:sage [2006/12/02(土) 22:11:17 ]
>>137
だから、共通化して引数でCH指定しろと何度(ry

139 名前:デフォルトの名無しさん mailto:sage [2006/12/03(日) 00:30:05 ]
結局1と2の間違いはどこまでも付きまとう予感。

140 名前:137 mailto:sage [2006/12/03(日) 04:37:45 ]
>>138 昔、G.J.マイヤーズの「複合設計」という本に感銘を受けて、「制御結合イクナイ」が
刷り込まれてるのですよ。この場合だと、呼ぶほう puts(1,"abc\r\n"); 呼ばれるほう
void puts(int ch, char* str) {
   if( ch==1 ) ch1のringへ出力
   elseif( ch==2 ) ch2のringへ出力
   elseif( ch==3 ) ch3の・・・     なんて感じになりますよね。 この1つ目の引数は
マイヤーズの言う「制御パラメータ」で、オーバーヘッドです。呼ぶとこでは1/2のどちらに出すか
判っているのだから、それぞれの機能の入り口があればそこを呼べばいい、という考えです。

でも、Win系に慣れてる今の人はこういうののほうが違和感あるみたいです。会社で書かれる
コードの殆どはchを引数に持ちますね。「それムダじゃん」って突っついても「これが標準化
だから」で終わり。 まあ、今のPG環境には「不足」よりは「過剰」がトレンドですからねえ。
こういう人たちに3MHzの石使わせると「動かねエ・性能出ねエ・石ダメじゃん」は必至。

141 名前:137 mailto:sage [2006/12/03(日) 04:47:18 ]
で、139さんの言うとおりなんです。今の画面は10年前のイイヤマの15吋なんですが、縁ばかり
デカくて、点々が荒い。客の会社であたりまえに使われてるDELLの17吋がキレイで夢みたい。
1と2の入口名をchONEputs()、chTWOputsとでもしないと、このディスプレイでは、またやりそう。

142 名前:デフォルトの名無しさん mailto:sage [2006/12/03(日) 12:29:59 ]
>>137
あんたも同僚さんも教条主義的に物事考えすぎなんじゃないの?
その方法がよいか悪いかを判断する基準を、あんたの現場を知りもしない
どこかの学者さんとかに任せるの?w

プログラムは問題解決の手段なんだから、判断基準は、どちらがその問題を解決するにあたって
適合的かどうかでしょう。

まあそうはいっても、「特別の理由がない限りは」引数でChannelを指定する方法を
採用すべきだろうね。理由は、

(0) コードの直観性に関しては、呼び出すその部分だけ見ればどちらも大差ない。

(1) 余程頻繁に呼び出されるのでもない限り、Chによる処理の分岐程度のオーバヘッドは
大昔のマイコンのような貧弱な環境でも問題にならないはず。

(2) 指定するチャンネルを動的に変化させる必要がある場合、>>137式のコードの場合、
呼び出し元の数だけ呼び出し先を選択する余分なコードが必要になる上、
そのコードを読む者に「こんな冗長なことをあえてしているのには何か特別な理由があるのか?」
と余計な詮索を強いることになる。

143 名前:デフォルトの名無しさん mailto:sage [2006/12/03(日) 15:23:21 ]
そもそも数字を間違う時点でお察しなのはおいとくとして。

保守性を考えればどちらにすべきか一目瞭然ではないかと。
仮に性能が出ないというのであれば、それを実測した後に対処すればいいとおもうが。



144 名前:デフォルトの名無しさん mailto:sage [2006/12/03(日) 15:56:53 ]
だいたい>142-143のいうとおりなんだが、付け加えるなら
Ch1とか2とか抽象化している時点で>137の考えは破綻しているような。

145 名前:137 mailto:sage [2006/12/03(日) 16:14:35 ]
ども。こんなアホの相手してくださって嬉しいです。そうですね、保守性の点では他の大多数の
PGが見ることを考えて標準的な書き方にしといたほうがいいですね。いつか誰かが読んだとき
(2)みたいなことで頭ひねらせたらすまないですもんね。割り込み処理がCH分あるのは
しょうがないとして、タスク側のインターフェースはスキーリしますね。
箇条書きの項番が(0)から、ってのが、さすがクミコ屋さん。

146 名前:デフォルトの名無しさん mailto:sage [2006/12/04(月) 08:10:03 ]
まあch1/ch2なんて名前じゃなくて Main/Subとかの方がいいだろな
1を使うか2を使うかは#define で切り替えればいいのだから

147 名前:デフォルトの名無しさん mailto:sage [2006/12/04(月) 10:29:33 ]
ch3は何と名付けようかね

148 名前:デフォルトの名無しさん mailto:sage [2006/12/04(月) 10:33:11 ]
Main/Sub/Sub2/Sub3・・・

149 名前:デフォルトの名無しさん mailto:sage [2006/12/04(月) 12:55:03 ]
primary
secondary
tertiary

150 名前:137 mailto:sage [2006/12/04(月) 16:01:27 ]
CHは4つあって、お客はA-CH、B-CH、C-CH、D-CHと言ってます。
メイン/サブだと、なんか主に使うCHとついでに使うCHみたいに感じますね。
実際はどれも並列で、使うときにどの装置とつなげるか適当に決めます。

151 名前:デフォルトの名無しさん mailto:sage [2006/12/05(火) 07:31:30 ]
それならforループで回せるように 引数にch番号を入れるのは悪くないね


152 名前:デフォルトの名無しさん [2006/12/05(火) 17:47:03 ]
SH-2について教えて下さい。今、HEWを使いCソースを書いていたのですが、
   PE.DR.BIT.B0 = 1;
のC言語ソースが
   MOV.W  L11,R6
   MOV.B  @(1,R6),R0
   OR       #1,R0
   MOV.B  R0,@(1,R6)
L11:
   .DATA.W     H'83A0
のようにコンパイルされます。

別の割り込みで、例えば「PE.DR.BIT.B3 = 1」の様な操作をしたいのですが、
これだと、OR  #1,R0の辺りで割り込まれると、割り込み先での「PE.DR.BIT.B3 = 1」が無効になります。
(Read-Modify-Writeの途中で、割り込みが発生した場合)
タイミング悪く、PE.DR.BIT.B3 = 1を無効にしない為には、どのようにすれば良いでしょうか?

153 名前:152 [2006/12/05(火) 17:48:04 ]
あと、マニュアル見ると
OR.B  #imm,@(R0, GBR)
というのがあるんですが、これを使ってくれないのは何でなんでしょう?



154 名前:デフォルトの名無しさん mailto:sage [2006/12/05(火) 22:11:03 ]

その  OR.B #imm,@(R0, GBR) を #pragma inline_asm で使うか
その前後で割り込み禁止許可したらいいんじゃないの?

今 SHの環境は削除してるから C言語でもっと巧く出来るのかもしれないが

155 名前:152 mailto:sage [2006/12/06(水) 00:26:52 ]
ありがとうございました
H8/300では1命令で出来たので、苦労無かったのですが・・・
割り込みを禁止許可を前後に入れる方向でやってみます

156 名前:デフォルトの名無しさん mailto:sage [2006/12/06(水) 04:42:42 ]
300ならDI/EIでいいけど、SHだと割り込み許可レベルの変更になりますよね。
それだと全種類の割込みを止めてしまう。それよりはPEDRを使うことが判っているデバイス
(uartとかDMAとか)の制御レジスタの割込み許可bitを禁止する手法のほうが、
巻き添えを食う処理が少なくてベターだとおもいます。

157 名前:デフォルトの名無しさん mailto:sage [2006/12/06(水) 11:18:04 ]
  STC  GBR,@-R15 ;スタックにGBRを保存して
MOV.W L11,R0
add
OR #1,@(R0,GBR)



158 名前:デフォルトの名無しさん mailto:sage [2006/12/06(水) 11:28:03 ]
ゴメン 編集途中で書いた

#pragma inline_asm(setHoge)
static void setHoge(void)
{
   STC  GBR,@-R15 ;スタックにGBRを保存して
  MOV.L L11,R0
   LDC R0,GBR ;
   MOV    #1,R0
   OR.B      #1,@(R0,GBR)
   LDC     @R15+,GBR
}

こんな感じでいいんじゃないの?

159 名前:デフォルトの名無しさん mailto:sage [2006/12/06(水) 12:33:30 ]
関係ないけどH8のアセンブラって使いにくいよね。
どこの馬鹿が考えたのかと思う。

シンボルの再定義もできないんじゃ、ルーチン内でレジスタにシンボル割り当てて
高級言語のローカル変数みたいな使い方することができないじゃん。

160 名前:デフォルトの名無しさん mailto:sage [2006/12/06(水) 14:01:02 ]
H8はもうCで書くのが定着しちゃったから、インラインで書く程度では?

H8/M16 あたりから上はC言語でしょ?

161 名前:デフォルトの名無しさん mailto:sage [2006/12/07(木) 05:57:35 ]
H8は最初からコンパイラありきで開発されましたからねえ。アセンブラはPGに使わせるため
というよりは、cの最終フェーズのためにだけ作られたと考えたほうがいいでしょう。
ANSI にないbit代入の書式までcで書けるし。ベクタ部もcで書けるし。
でも sfr.1 = (判定式)? 1:0; みたいな書き方するとコンパイラがバグったな。

162 名前:デフォルトの名無しさん mailto:sage [2006/12/22(金) 03:12:23 ]
いつもの3MHzの8085の人です。プリンストンの19インチWというディスプレイに変えました。
文字くっきりでとても快適です。1と2見間違える対策にはこれがいちばんみたいです。
DOS窓でLSIC80走らせるだけにしてはえらくオーバースペックですけど。

163 名前:デフォルトの名無しさん mailto:sage [2006/12/27(水) 21:59:42 ]
フォトセンサーは何ボルトぐらいの振幅が出ますか?



164 名前:デフォルトの名無しさん mailto:sage [2006/12/27(水) 23:51:38 ]
1万ボルトくらい

165 名前:デフォルトの名無しさん mailto:sage [2006/12/28(木) 21:57:34 ]
一般論で言えば4Vか、11Vか、23Vか、47Vか、全くでないか、煙が出る

166 名前:デフォルトの名無しさん mailto:sage [2006/12/28(木) 22:41:50 ]
電気はな、触って骨が透けて見えるくらいが丁度いいんだ

167 名前:困ったさん [2007/01/08(月) 23:16:00 ]
やってもらいたい問題があるんですがお願いします!
連続系の制御と離散系の制御の本質的な違いって説明せよ。

168 名前:デフォルトの名無しさん mailto:sage [2007/01/08(月) 23:38:50 ]
連続系がアウトランだとすると、離散系はパワードリフト

169 名前:困ったさん [2007/01/08(月) 23:42:18 ]
回答ありがとうございます。
知識まったくないんでわかりやすく説明してもらえませんか?(>ω<)

170 名前:デフォルトの名無しさん mailto:sage [2007/01/08(月) 23:59:37 ]
知識無いなら単位は諦めて勉強し直せ

171 名前:困ったさん [2007/01/09(火) 00:22:52 ]
俺に聞いてもいいぜとか書いてあったから聞いたんですが。

172 名前:デフォルトの名無しさん mailto:sage [2007/01/09(火) 00:32:23 ]
聞くのは勝手だが、スレもロクに読まない教えて君に答えるのは馬鹿馬鹿しい。


173 名前:困ったさん [2007/01/09(火) 00:37:41 ]
はいはい



174 名前:デフォルトの名無しさん mailto:sage [2007/01/09(火) 00:57:06 ]
馬鹿が名乗ってるおかげでNG登録しやすいぜ

175 名前:デフォルトの名無しさん mailto:sage [2007/01/09(火) 01:14:27 ]
連続系がアフターバーナーUだとすると、離散系はG-LOC






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<73KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef