[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 09/12 15:48 / Filesize : 253 KB / Number-of Response : 983
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

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



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

過去ログ
制御系なら俺に聞いてもいいぜ(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

82 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 13:59:32 ]
>>81
あ、そうかw
3本線で工場内を繋いでるのかw

83 名前:デフォルトの名無しさん [2005/10/15(土) 14:02:05 ]
>>82
飛躍しすぎ

84 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 14:08:16 ]
まあ、FIFO内のコードを全部解読してから実際のコマンドを発行する仕組みにすれば良いのではないか?
そうそう途切れる事無くコードが送られて来る事も無いだろうに。

85 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 14:20:23 ]
おまいらのにプロセッサボードにはシリアルポートしか付いてないのか?

86 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 14:22:45 ]
>>85
つうより、ハード屋さんがそれしか繋げてくれなかったって場合の話らしいよ。

87 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 14:22:51 ]
>>85
エーテルネットやらUSBやら無線やらうらやましいです

88 名前:デフォルトの名無しさん mailto:sage [2005/10/15(土) 20:50:50 ]
>>85
たまに3ポート内蔵とかだとウキウキしちゃうよね。
LEDでモールスはもう面倒になってきました。

89 名前:デフォルトの名無しさん mailto:sage [2005/10/27(木) 00:37:34 ]
スレ違いかもしれないですが、
WindowsでUSB接続のデバイスを扱うプロクラムを
作りました。
そのデバイスドライバをインストール
させるのに、Windowsのコマンドか何か(API)からインストール
させる方法をご教示ください。

プログラムのインストーラまでは作ったのですが、
そのデバイスドライバも一緒にそのインストーラで
インストールさせたいです。
infファイルとsysファイル、関連dllはあります。

今は、USBを接続させ、ウィンドウズの自動認識による
ドライバインストールのウィザードからインストール
させるようにしています。

90 名前:デフォルトの名無しさん mailto:sage [2005/10/27(木) 03:50:52 ]
>>89
昔のWin DDKにinfファイルからドライバインストールするサンプルコードが付いてたな
俺はそれをDLLにして、InstallShieldから呼び出して使ったよ。
最近はその辺触ってないし、DDKもDLできなくなっちゃったからわからんけど、
Win関係のスレで聞いたほうがいいかもね



91 名前:デフォルトの名無しさん mailto:sage [2005/10/27(木) 09:54:07 ]
>>90
そうです、まさしくそれをしたいです。
「デバイス ドライバ インストール」等で 
ぐぐったりしましたが、なかなか見つかりませんでした。

Win関連板、スレの場合、多分OSの基本的な
話題ばかりかと思い、実践している方が多そうな
このスレで聞いてみました。

92 名前:デフォルトの名無しさん mailto:sage [2005/10/27(木) 11:42:26 ]
>>91
寧ろこのスレはインストーラーなんて興味ないって香具師が多い希ガス。
現にうちのプロジェクトなら、「ドライバをインストールしてください」の一言で終わる。

93 名前:デフォルトの名無しさん mailto:sage [2005/10/27(木) 11:47:06 ]
過疎ってるけど、WDMスレのが近いかな

94 名前:デフォルトの名無しさん [2005/10/29(土) 07:15:04 ]
教えてください。
mbm.livewiredev.com/
[INFORMATION]で[SHARED MEMORY]の項目を選び、[C CODE]の中の
C++Class Wrapper can be downloaded here, thanks to Raoul
を選んでダウンロードし解凍(するとcmbm.cpp とccmbm.h)してVB6.0でDLLを作成した。その際、
,(即興的っつーかテスト用に)、関数を追加した。そしてvb6.0から関数をコールしたら、
ReadValues()は、connect()から(内部で)参照されたときはエラーになってないようなのですが、
getSensorType()から(内部で)参照されたときには↓のところでエラーになるのです。何故でしょうか。

bool CMBM::ReadValues(); // connect()とgetSensorType();から参照されている
{
data = (TSharedData *)MapViewOfFile(hMapFile, FILE_MAP_READ, 0, 0, 0); <―でエラー
if (data == NULL)
{
Connected = false;
return Connected;
}
return true;
}


95 名前:デフォルトの名無しさん [2005/10/29(土) 07:17:03 ]
テスト用に便宜的に追加した関数とは↓です。
int CMBM::getNbSensorvbType(int n_sensor)
{
int is;
is= n_sensor;
TsensorType tt;
tt = getSensorType(is);

is = getNbSensor(tt);
return is;
}

追加した理由は、getSensorTypeでは戻値、getNbSensor()では引数として使われている
TsensorTypeに対応するパラメータの型を、vb6.0では俺にはできなかったから。


96 名前:デフォルトの名無しさん mailto:sage [2005/10/29(土) 12:20:12 ]
回答者はそれをダウンロードして試した上で俺様に答えるべき、とでも思ってるのかな。
まあ問題の性質上しょうがないのかも知れないが、
それでもせめてエラーの内容ぐらい書けばいいのに。

っていうか、スレ違いのような気がする。
まあマルチがはわわ〜、なんだろうけどさ。

97 名前:デフォルトの名無しさん [2005/10/29(土) 16:42:02 ]
vb6のデバッグモードでの実行時のエラーメッセージ
以下の[ ]や( )の文は説明のためであって、表示されたものではない。

(ダイアログメッセージボックス)
VB6.EXE-アプリケーションエラー
“0×038644bd”の命令が”0×03861036”のメモリを参照しましたが、メモリが”written”になることは
できませんでした。プログラムを終了するには・・・・・・
プログラムをデバッグするには キャンセル をクリックしてください。

↓[キャンセルボタン]

(ダイアログメッセージボックス)
Microsoft VisuaI C++
ハンドルされてない例外は、VB6.EXE(CMBPRJ.DLL)にあります。:0×C0000005: Access Violation

↓[OK ボタン]

(cmbm.cpp)
bool CMBM::ReadValues()
{
⇒ data = (TSharedData *)MapViewOfFile(hMapFile, FILE_MAP_READ, 0, 0, 0);

・・・・・・・・


98 名前:デフォルトの名無しさん [2005/10/29(土) 17:05:16 ]
Public Declare Function Connect Lib "cmbmprj" () As Double
Public Declare Function isConnected Lib "cmbmprj" () As Boolean
Public Declare Sub DisConnect Lib "cmbmprj" ()
Public Declare Function getNbSensorvbType Lib "cmbmprj" (ByVal n_sensor As Integer) As Integer
以下はTsensortypeの型定義の仕方が不明だから、標準モジュールで止めたファンクション定義
'Public Declare Function getNbSensor Lib "cmbmprj" (Tsensortype As SensorType) As Integer
'Public Declare Function getSensorType Lib "cmbmprj" (n_sensor As integer) As Tsensortype

以下のboolean Bcnctは ローカルウィンドウで、"True"に表示される。
cmbmprj.dllの,bool CMBM::isConnected()のリターンコードがTrueで戻ってくるというのは
既に、dllが参照された時点で、CMBM::CMBM()とdouble CMBM::Connect()が参照され、それによって
bool CMBM::ReadValues()も参照されていると判断される。

Dim iret As Integer
Dim wcnct As Double
Dim Bcnct As Boolean
 Bcnct = isConnected() '戻り値は Trueが確認されている
If Bcnct = False Then
  wcnct = Connect()
  If wcnct = -1 Then
   ・・・・・
  ElseIf wcnct = -2 Then
   ・・・・
  Else
   ・・・・
  End If
Else
  iret = getNbSensorvbType(1) 'vb 側としてはここでエラー発生
  Form1.List1.AddItem "温度センサーの登録数:" & Str(iret) & " " & TTIME
End If



99 名前:デフォルトの名無しさん [2005/10/29(土) 17:11:19 ]
CMBM::CMBM()
{
   data = NULL;
   Connected = false;
   Connect();
}
//---------------------------------------------------------------------------
CMBM::~CMBM()
{
   DisConnect();
}
//---------------------------------------------------------------------------
bool CMBM::ReadValues()
{
   data = (TSharedData *)MapViewOfFile(hMapFile, FILE_MAP_READ, 0, 0, 0);

   if (data == NULL)
   {
   Connected = false;
   return Connected;
   }
return true;
}


100 名前:デフォルトの名無しさん mailto:sage [2005/10/29(土) 17:11:43 ]
スマナイけど、俺たちは仕事をする為にこのスレに来てるわけじゃないし、ましてやタダ働きする為に来てるんでもない。

なにか面白い書き込みを楽しみに来てるわけで。
細かい具体的内容書かれれば書かれる程、ゲンナリしちゃうわけ。

質問は結構だけど、もう少し整理してくれ。
理解出来ないから丸投げじゃ、面白くもなんともないよ



101 名前:デフォルトの名無しさん [2005/10/29(土) 17:12:45 ]
double CMBM::Connect()
{
   if (isConnected()) return -2;
   // try to open shared memory
   hMapFile = OpenFileMapping(FILE_MAP_READ, FALSE, "$M$B$M$5$S$D$");
   if (hMapFile == 0)
   return -1;
   // try to make a first read to memory
   if (!ReadValues())
   return -1;
   Connected = true;
   //return MBM version
   return data->sdVersion;
}
//---------------------------------------------------------------------------
bool CMBM::isConnected()
{
   return Connected;
}


102 名前:デフォルトの名無しさん [2005/10/29(土) 17:17:06 ]
>回答者はそれをダウンロードして試した上で俺様に答えるべき、とでも思ってるのかな。
>っていうか、スレ違いのような気がする。
>まあマルチがはわわ〜、なんだろうけどさ。
↑(だから、コードを貼ったのだ)
矛盾

>理解出来ないから丸投げじゃ、面白くもなんともないよ

結局、答える能力はないから、自己投影で最後に難癖つけてきただけだろ。


103 名前:デフォルトの名無しさん [2005/10/29(土) 17:18:11 ]
>制御系なら・・・

「羊頭狗肉」ってこういうことを言うんだ。

104 名前:デフォルトの名無しさん mailto:sage [2005/10/29(土) 17:22:53 ]
だからさ、 回答したくなるような+アルファをクレって、
そういう芸風はもう飽きてるんだよ。


105 名前:デフォルトの名無しさん mailto:sage [2005/10/29(土) 17:25:35 ]
お前のためのスレじゃない
飽きたなら消えろ

106 名前:デフォルトの名無しさん mailto:sage [2005/10/29(土) 17:29:25 ]
おいおい・・・このスレの最初のスレから3割以上レスしてたこの俺に消えろっていうんだな?

107 名前:デフォルトの名無しさん mailto:sage [2005/10/29(土) 17:30:17 ]
その通り
邪魔だ消えろ

108 名前:デフォルトの名無しさん mailto:sage [2005/10/29(土) 17:43:28 ]
判ったよ。 じゃあ、後は頼んだ。

109 名前:デフォルトの名無しさん [2005/10/29(土) 17:47:07 ]
AD変換のシステム(計測マン・マシーンインターフェースソフトも含む)
は計測制御の基本だよ。計測が出来なければ制御(DAシステム)なんて
出来るわけがないからだ。しかもCPUの温度に関してときてるのだ。それなのに、
「制御」のスレで、その質問に高飛車に「スレ違い」って言うような連中が、
なんら批判されず、のさばってられるスレっていうのは奇妙なものだ。


110 名前:デフォルトの名無しさん [2005/10/29(土) 17:47:58 ]
住人さんたち、スレタイに「系」がついてることを忘れるなよ。



111 名前:デフォルトの名無しさん mailto:sage [2005/10/29(土) 17:50:53 ]
>>109 誰も高飛車に言ってないだろ。 そんだけ講釈出来るんだらお前が答えて終わらせてやれよ。

112 名前:デフォルトの名無しさん mailto:sage [2005/10/29(土) 18:00:48 ]
結局 (俺も含めて) 誰も回答できないわけか…。

113 名前:デフォルトの名無しさん [2005/10/29(土) 18:02:45 ]
>スマナイけど、俺たちは仕事をする為にこのスレに来てるわけじゃないし、ましてやタダ働きする為に来てるんでもない。
こういうの、高飛車だけではないな。陰湿な排他的性格も含むから。
あ、そうか。ここの「制御」って「人間排他制御」のことか。(藁

今や水冷とかファンコントロールがオーバークロッカーだけでなく静音マニアでも
でもあたりまえ。それを「仕事」とか「タダ働き」だとさ。呆れるね。

114 名前:デフォルトの名無しさん mailto:sage [2005/10/29(土) 18:03:25 ]
金にならねえやっつけ仕事ほど、無駄な時間の浪費はない。

115 名前:108 mailto:sage [2005/10/29(土) 18:08:02 ]
やれやれ

質問者へ
 1、まず、どういう立場なのかとか多少は自分の事も書いてみて
 2、つぎに、何をしようとしているのか買いてみて
 3、そして、問題は何なのか簡潔に書いてみて


 で、メモリマップファイルで、通信しようとしているようだけど、
 書かれているコードではバイト数をゼロでREADオンリーにしてる。 後から変更しているの?

116 名前:デフォルトの名無しさん mailto:sage [2005/10/29(土) 19:06:55 ]
MBMの本体が動いてないからじゃないの?

117 名前:デフォルトの名無しさん mailto:sage [2005/10/29(土) 20:06:59 ]
本家にBBSあるんだからそこで聞けよヴォケ
www.livewiredev.com/bbs/forumdisplay.php?s=&forumid=68


118 名前:デフォルトの名無しさん mailto:sage [2005/10/29(土) 20:16:48 ]
制御系とか関係ないじゃん。
MBM DLLをVBから使いたいってことじゃん。

ス レ 違 い

119 名前:96 mailto:sage [2005/10/29(土) 20:16:51 ]
>>100の書き込みは俺じゃないよ。
っていうか、>>96の書き込みを見て、それでそれに応えるつもりで
コードをコピペしてるんだったら、質問者は基本的な日本語の読解力が怪しいんじゃないの?

まあ>>102が質問者かどうかわからないけど、それにしてもね。

とりあえずWin32のCのintに対応するVBの型はIntegerじゃなくてLongだよ。
それが障害の原因かどうかはわからないけどね。

120 名前:デフォルトの名無しさん mailto:sage [2005/10/29(土) 20:20:46 ]
大体質問に答えてもらおうって態度じゃないな。
俺のところじゃそのモニタを使えてるが
絶 対 に 教 え な い



121 名前:108 mailto:sage [2005/10/29(土) 20:39:04 ]
あ勘違いだ。 サイズゼロだと、最大を指定したのと同じなんだね。

それから
 data = (TSharedData *)MapViewOfFile(hMapFile, FILE_MAP_READ, 0, 0, 0); <―でエラー
と書いてあるから、 data  への書き込みに失敗したのだろう。

となると、CMBMが作成されていないのに、メソッドが呼び出されたという所かな


122 名前:108 mailto:sage [2005/10/29(土) 20:46:58 ]
ところでVBからDLLを呼び出すからエラーの追跡が面倒になるのだと思うのだが
VBだけではポインタが無いから難しいと思ったのだろうけど・・・・・

なんか昔、VBだけでやれた気もするんだけどなあ

最近、こういうのはDelphi使ってるから忘れちゃったよ。Delphiならポインタ使えるし

123 名前:デフォルトの名無しさん [2005/10/29(土) 21:20:34 ]
VB厨(笑)

124 名前:108 mailto:sage [2005/10/29(土) 21:35:58 ]
ちょっとぼんやり思い出した。
long 変数でポインタを受けて、MoveMemoryとかのAPIで VarPtr(構造体) で移動ってな所だったかな?



125 名前:デフォルトの名無しさん mailto:sage [2005/10/29(土) 22:04:26 ]
まあ制御系でもVB使わない事もないが、さすがにメインじゃ使わない。
PC用のGUIが必要なら DelphiかBCBだろ。
ただ、実験とか社内ツールだとExcelVBAなら結構多いかもな。

一昔前は測定器にPC使ってVBなんてのも多かったけど、
なんか大変動じゃないけどいつの間にかVBやってた所はZ80と一緒に地盤沈下。

126 名前:96 mailto:sage [2005/10/29(土) 22:12:59 ]
>>125
本当にこの世界の人?
この世界に限らず、特定用途向けのGUIアプリなんて今でもほとんどVB製ですけど。
じゃなきゃ、ここ二年ぐらいはドトネト。

Delphi使ってるなんてところは日本じゃほとんど見たことない。

127 名前:デフォルトの名無しさん mailto:sage [2005/10/29(土) 22:19:01 ]
>>196
そうか?
なんかVBアプリからの置換の仕事が多いから一昔前は多かったというのは実感してるが、
昔はバブルだったのか、これが今の請負額より1桁上の金額取ってたのかよというのばかりだけどな

128 名前:デフォルトの名無しさん mailto:sage [2005/10/30(日) 00:10:28 ]
組み込み専門の俺には割り込む余地も無い(w


129 名前:デフォルトの名無しさん mailto:sage [2005/10/30(日) 00:12:57 ]
>>128
組込み専門なら、割り込みもこなせなくてどうする!

130 名前:デフォルトの名無しさん mailto:sage [2005/10/30(日) 02:38:39 ]
最近は、そういうのは OS がやってくれたりするからなぁ。



131 名前:デフォルトの名無しさん [2005/10/30(日) 11:07:10 ]
組み込みと制御系って何が違うの?

132 名前:デフォルトの名無しさん mailto:sage [2005/10/30(日) 12:55:35 ]
制御系は組込み系の部分集合。

133 名前:デフォルトの名無しさん mailto:sage [2005/10/30(日) 12:57:08 ]
まあ、諸説あるだろうけど…

組み込み系というのは、機器に組み込まれて動作するソ
フトウェアを言う。つまり、どちらかと言うと実装上か
ら見た区別。

制御系は、機器を制御するソフトウェアを言う。つまり、
用途から見た区別。

だと思う。

134 名前:デフォルトの名無しさん mailto:sage [2005/10/30(日) 16:55:54 ]
組み込み系⊆制御系
じゃないの?

135 名前:デフォルトの名無しさん mailto:sage [2005/10/30(日) 17:01:48 ]
>>134
は?

136 名前:デフォルトの名無しさん mailto:sage [2005/10/30(日) 17:55:26 ]
>>132, >>134
例えば、物流の制御システムなんかだと PC 使ってやってることもあるから、
制御系だけど組み込み系じゃないって感じがする。

逆に、電卓のプログラムは組み込み系だけど制御系というのはちょっと違う感
じがする。

137 名前:デフォルトの名無しさん mailto:sage [2005/10/30(日) 20:04:49 ]
>>136
LCDの制御やボタンの入力などを読んだりするのは?

138 名前:デフォルトの名無しさん mailto:sage [2005/10/30(日) 22:33:03 ]
>>137
気分的には制御と言いたくない。

139 名前:デフォルトの名無しさん mailto:sage [2005/10/30(日) 22:56:11 ]
マジレスすると、電卓にソフトウェア部分は無い。

140 名前:デフォルトの名無しさん mailto:sage [2005/10/30(日) 22:58:02 ]
そんな餌で、釣れるんか?



141 名前:デフォルトの名無しさん mailto:sage [2005/10/30(日) 23:13:35 ]
>>140
連れてるじゃん

142 名前:俺も含めて大漁だな、オイ。(w mailto:sage [2005/10/30(日) 23:27:11 ]
オマエモナー。

143 名前:デフォルトの名無しさん mailto:sage [2005/10/31(月) 00:28:02 ]
制御系っていうと、最近は会社によっては、
MPUの仕様やプログラムは一切知らずに、
ステートフローや伝達関数書いてシミュレーションしたり、
実験してパラメータ決定するだけで、
その組み込みは、他部署にお任せってのも多々あるみたいだけど、
このスレでは、そういうやからもおkなん?

144 名前:デフォルトの名無しさん mailto:sage [2005/10/31(月) 00:34:27 ]
>>143
ああ、あの「試作品作るなんてお金の無駄です。」ってやつな。
いいんじゃね?

145 名前:デフォルトの名無しさん mailto:sage [2005/11/02(水) 21:47:03 ]

こんにちは、今回、会社にあるん古いバーコード・プリンタを
復活させる必要が出てきました。マニュアルを読むとRS232c経由で
制御できるようなんですが、XPのDOS窓から、RS232Cにエスケープコマンドって
送れますか?

昔、DOSの頃パラレルのプリンタをエスケープシーケンスで制御して遊んだ事が
あるんですが。出来ることは覚えていますが、TYPE CONとかなんだったか
忘れてしまいました。

詳しいサイトとかありましたら教えてください。


146 名前:デフォルトの名無しさん mailto:sage [2005/11/02(水) 22:00:30 ]
>>145
送れるるよ。modeコマンドで各種パラメータを設定するのを忘れずに。
あーあと、EscコードはEscキーでは発生しないからね。

147 名前:145 mailto:sage [2005/11/02(水) 22:12:20 ]
>mode
 ありがとうございます。だんだん思い出してきました。

148 名前:145 mailto:sage [2005/11/02(水) 22:18:06 ]
>147
みつけました。あした一日遊んで見ます。
forum.nifty.com/fpcu/dosvcmd/mode.htm#TOC4

149 名前:デフォルトの名無しさん mailto:sage [2005/11/03(木) 11:18:35 ]
>>145
ターミナルソフト使ったほうが便利では?

150 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 00:33:09 ]
半角かなの使用率高いな



151 名前:デフォルトの名無しさん [2005/11/06(日) 19:01:32 ]
制御系で働くものとしては、どの程度まで制御理論を理解するのが一般的なんだろ。
現実的には古典から最新理論まで全部理解してるって無理だと思うんだよなぁ

152 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 19:34:27 ]
俺は古典制御ならわかるが、現代制御はさっぱりだな
でも、仕事では殆どが、通信の制御だったり、ロジックの制御だったり、
デバイスの制御だったりするから、
知らなくても全く問題なしだw

153 名前:デフォルトの名無しさん mailto:sage [2005/11/06(日) 20:01:41 ]
>91
亀だが、MSがDriver Install Frameworks Tools 2.0
とか称してそのあたりを纏めたツール・APIを公開している。
1.0のときには、ドライバ認証が要るとかいうふざけた話だったが。

154 名前:デフォルトの名無しさん mailto:sage [2005/11/07(月) 17:37:06 ]
>>153
情報ありがとうございます。
そのツールを使用して何とか
作成しようと思います。

155 名前:デフォルトの名無しさん [2005/11/08(火) 16:38:40 ]
TRON準拠のマイコンソフトなのですが、
デバッグのため、イベントが発生する毎にリングバッファにイベントをどんどん記録する、
という仕組みを追加する事にしました。
リングバッファに書き込む処理自体は共通のサブルーチンを用意して、イベントを引数で渡す、という
単純なもので特に問題ないのですが、
このサブルーチンを通常のタスク処理と、割込み両方から使いたいので、排他制御を考える必要が発生しました。

実装に当たって参考になる、なにか、良い資料やサンプル等ないでしょうか。または定番の方法など


156 名前:名無し募集中。。。 mailto:sage [2005/11/08(火) 18:39:08 ]
NORTi/86 ?
排他ならセマフォが定番

157 名前:デフォルトの名無しさん mailto:sage [2005/11/09(水) 00:06:45 ]
>>155
正直そういう処理をするなら、排他以前に
イベントの検出直後〜リングバッファへの書き込みの間は
割り込みを禁止(Maskでは無い)しないと、イベントの発生順が
訳分からん状態になると思われ

158 名前:サービスコールの不可分性 mailto:sage [2005/11/09(水) 02:34:47 ]
>155
以下、uITRONVer4仕様での話
固定長メモリプールからイベントを書き込むバッファをゲットする。
(固定長メモリプールの長さはイベントのデータの最大長とする。)
書きたいデータをそのバッファに書く。
ゲットしたデータをメールボックスで送り出す。
受けるタスクでメールボックスを受け、固定長メモリを解放する。

実装によりますが、非タスクコンテキストからもpget_mpf(),snd_mbx()が利用できるものが
多いと思います。少なくともNortiは、仕様書をみたところそうなっています。
この場合、特に排他処理を用いなくても問題ありません。というよりサービスコール
はリエントラントです。(正確には、サービスコールの不可分性の保証のことです)

方法は上記と違いますが、参考としては、私の知る限り、toppersJSPのログ機能です。
ログタスク経由か、直接出すかを選択できたと思います。ログタスク経由の場合はいったんキューイング
して出していたように記憶しています。肝心な排他制御しているかどうかは未確認
です。 していなければ、セマフォよりも、loc_cpuが、いいかと思います。
lockするのは、キューの管理ポインタの更新時のみに限定できると思います。
ver4からの仕様ですが、loc_cpu中といえどカーネル管理外の割込は可ですので、
lock中 != 割込ディセーブルです。お間違えなく。




159 名前:デフォルトの名無しさん mailto:sage [2005/11/09(水) 15:29:49 ]
レスありがとうございました。
説明が最初に不足しておりましたが、元々の処理のタイミング等に出来るだけ影響を与えないようシンプルにしたい、
という事情がありまして、
本当は割込み禁止はしたくなかったのですが、
検討の結果、157さんもおっしゃるような書き込み中割込み禁止にする、という方向になりました
結局、これが一番シンプルでした あとは、割込み禁止期間が少しでも短くなるようなロジックにしました
(セマフォはやや大掛かりになってしまうため不可)
ありがとうございました。


160 名前:デフォルトの名無しさん mailto:sage [2005/11/11(金) 01:12:18 ]
>>152
そんなもんだよね。
古典も完璧とはいえないけども



161 名前:デフォルトの名無しさん mailto:sage [2005/12/01(木) 16:02:03 ]
Forth使ってる人居る?

162 名前:デフォルトの名無しさん mailto:sage [2005/12/01(木) 19:38:10 ]
組み込みスクリプトに?
自作の中間言語インタプリタなら作って使った事はあるけど

163 名前:デフォルトの名無しさん mailto:sage [2005/12/02(金) 00:45:42 ]
業務系プログラマでつ。
制御系にジョブチェンジしたいんですが
(Java,C/C++、簡単なUSBのドライバならつくれます)
参考書籍を3冊くらい教えてください。

164 名前:デフォルトの名無しさん mailto:sage [2005/12/02(金) 00:56:48 ]
>>163
制御系たっていろいろあるからね。
目指すものによっていろいろ

 ドライバ書けるなら、いろんなOSマスターして
ドライバ屋という手も無いではない
 その場合はマニュアル見ながらひたすらソース読んだ方が
理解できたり。。。。。

165 名前:デフォルトの名無しさん mailto:sage [2005/12/02(金) 11:19:25 ]
>>163
弊社でよければ面接の用意をしますw
いや、業務系も制御系も人が足らんのよ。

166 名前:デフォルトの名無しさん mailto:sage [2005/12/02(金) 13:10:43 ]
昼間から2ch覗いてる管理職のいる会社には行きたくないです

167 名前:デフォルトの名無しさん mailto:sage [2005/12/02(金) 13:18:20 ]
大丈夫、夜間仕事しているから(ぉぃ

168 名前:デフォルトの名無しさん mailto:sage [2005/12/02(金) 14:18:18 ]
プログラミングではなく制御設計はこのスレではあまり関係ない?
PIDとかz変換とか。

169 名前:デフォルトの名無しさん [2005/12/09(金) 00:35:52 ]
正直、業務系に転職したい
業務系ならあと20年は働ける気がする

170 名前:デフォルトの名無しさん mailto:sage [2005/12/09(金) 00:49:42 ]
妄想だけじゃメシは食っていけないよ?



171 名前:デフォルトの名無しさん mailto:sage [2005/12/09(金) 01:01:24 ]
>>168
それをネタに話してもスレ違いと暴れる奴はいないと思うが
電気・電子板でやった方が人がいると思うぞ

俺は無理、ついていけない

172 名前:デフォルトの名無しさん mailto:sage [2005/12/10(土) 08:48:03 ]
マ板のクミコスレで聞いたら呆れられたのでこっちで聞かせて。 8051互換チップでDAC端子
が「作動状態」=Lo-Z状態=制御電圧が出ている状態、「停止状態」=Hi-Z状態で、テスタ
で見てみると0Vが出てるように見えます。 これと0Vが出てる状態とがどう違うか?なんです。

インピーダンスって、理科の時間には「交流、とくに高周波に対するコイルの抵抗」って習った
のに、直流の端子でインピーダンスがどういう意味を持つんですか?

173 名前:デフォルトの名無しさん mailto:sage [2005/12/10(土) 09:44:22 ]
>>172
またも板違い
電気・電子板が適切かと

制御電圧に対してHiZだって事でしょ

インピーダンスは交流もあるんだよ

174 名前:デフォルトの名無しさん mailto:sage [2005/12/10(土) 12:50:43 ]
>>172
 そのテスターで、+電源とその端子の間の電圧を測って、それぞれ結果を報告してみて。それからだ

175 名前:デフォルトの名無しさん mailto:sage [2005/12/10(土) 17:01:26 ]
マ板って、、、、、あそこはネタスレだろう
しっかり釣られて、まともな話をし始めてるのが業だな

>>172
お前さんのやったことは
+端子と−端子を持っただけの時の電圧を測ったのと変わらん

176 名前:デフォルトの名無しさん mailto:sage [2005/12/10(土) 17:35:19 ]
>>172
ぶっちゃけ、その線が断線しているのと同じ状態<HiZ

177 名前:名無し募集中。。。 mailto:sage [2005/12/11(日) 21:13:24 ]
ハイ・インピーダンスって抵抗値が大きすぎて繋がっていない事と同義だと思うの
TTL出力は出力と出力をつないではいけないけど、3ステート出力なら
出力していないときはハイインピーダンスにしておけば大丈夫(バスの基本原理)

178 名前:デフォルトの名無しさん mailto:sage [2005/12/15(木) 17:30:36 ]
ありがとう。理系的な解り方じゃないけど、感覚的にはわかったような気が・・・(^o^)

話は変わりますけど、安いROMライタありませんか?簡単なシリアル入出力をよく頼まれる
のですが、PCしかないのでHEXを送って向こうで焼いてもらうと、つまらないタイプミスが
1,2度はあります。弁当箱は貸してもらえそうなので、ROMライタを自前で持ってれば便利そう
なのですが・・・スマートライタというのは見たことあってコンパクトでいいなと思ったのですが、
\59,800ぐらいします。

179 名前:デフォルトの名無しさん mailto:sage [2005/12/15(木) 17:55:28 ]
仕事じゃないなら秋葉でジャンクを探すとか自作するとか。
仕事なら、レンタルで借りるとか。
#処で弁当箱とは何のこと?
#それがUVEPROMの消去用の紫外線灯の入った箱のことなら蛍光灯スタンド+殺菌等でも大丈夫w

180 名前:デフォルトの名無しさん mailto:sage [2005/12/15(木) 18:58:47 ]
www11.plala.or.jp/silicon/DATA/develop_romwriter.html
日本製で安価なのは パレット11ハンディ
windowsソフトは別売だけど ttp://www.tensyo.com/PT11/WPT11.htm にある

先頭の安価なのは秋月ならもっと安価
akizukidenshi.com/catalog/items2.php?p=1&q=M-00513
これの使い勝手は判らない。
もし買ったらレポートよろしく




181 名前:デフォルトの名無しさん mailto:sage [2005/12/15(木) 19:01:58 ]
殺菌灯は強力なので、カバーをつけないといけないよ。
俺は、隣の机でカバー無しで使ってたら顔の半分の皮がボロボロと・・・

182 名前:179 mailto:sage [2005/12/15(木) 19:10:32 ]
机の下に入れて水虫対策とか。

私自身は机の中に入れてた。






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

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

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