1 :
仕様書無しさん :
2007/08/19(日) 15:36:08
2 :
仕様書無しさん :2007/08/19(日) 18:38:58
インターフェースとかトラテク難しいんだけど、 なんとかしてよ
実機いじるのが一番早い。
Javaエンジニアとかだと未経験なにもわからなくてもOKです^^みたいなのが多くて ひどいけど 組み込みも最近は文系未経験OK^^^みたいなの多くないですか?
まぁ誰にでも出来るような層・機能でもやらせるんでしょう。
廃人嗜好の人が多いみたいだから...
>>4 そして、難しいことやらされて、廃人になるんだよ。
>>2 俺も分からん
4月から買い始めたがいつになったらまともに読めるのやら
こんなスレで質問していないで、早く試行錯誤でバグ回避策を見つける仕事に戻るんだ! 何?やる気がありません?なら辞めろや、他の派遣雇うからw
試行錯誤でバグ回避をするのか…
12 :
仕様書無しさん :2007/08/21(火) 22:59:28
ハードウェアが自社製だと結構試行錯誤がメインにことも。 ハードのバグをソフトで回避するとか言うのやめて〜〜・・・・orz
まあ、その手の試行錯誤は単価の安い派遣にふられるんだけねw
PCでプログラム書けといわれると、どうしても 試行錯誤とコピペやってしまう。 嫌だといってるのにやらせる奴が悪いんじゃ。 と、現実逃避。
>>13 そんなの日常茶飯事、ってのが悲しい現実だよな。
量産に入られるとハードの変更は結構厳しいものがあるから仕方ないのはわかるが・・・
>>2 >>8 どの辺が難しい?と聞く前に、2と8のスキルを知りたい。
Windowsプログラムなら分かるというレベル? C言語知らないとかいうレベルなら帰れ。
CQの雑誌は実務向けなので初学者に難しいのはわかるんだが。
なんかソフトウェアしか知らないプログラマってインチキ臭いってのは わかるんだが アセンブラで機械制御はいまどきどうかと思うんだが
うちのプロジェクトで使ってるマイクロコアはコンパイラ無いよ。 アセンブラは昔自作(俺が作ったわけじゃないけど)のを使ってる。 ・・・あんま世間を知らないんだが、マイクロコアってもしや方言?
>>18 今時1クロックの無駄も見過ごせない みたいな仕事は無いんだろうね。
Cじゃないと皆理解出来ないし。
1クロックの無駄が見過ごせないわけじゃないが、それに近いことやってる。
web系の奴らに時代遅れのC言語厨とか言われてるが 果たしてそうなのだろうか?
23 :
仕様書無しさん :2007/08/23(木) 22:54:03
>>22 ユビキタスコンピューティング社会の要はセンサネットワーク
その多くは超低消費電力ワンチップマイコンで動く
ってことは、アセンブラ、C言語でガリガリ書くってことですよ!!!!
俺たちの時代です
>>22 web系で今流行ってる言語は数年程度で時代遅れになるが、Cはあと数十年くらい現役なんじゃね?
もっと使いやすい言語ができてCが駆逐されるならそれはそれでいいんだが、 今web系とかで流行ってる言語だと、速度とリソースの量が組み込み的には致命的なんだよな。
web系とかの砂上の楼閣感がなんか嫌
方向性が全然違うんだから、Javaが組込みに来るって事はないんじゃない? アセンブラは、だんだんと無くなっていくだろうし、 Cの需要が増えるだろうな。
C++ってまだマイナー?
ARMってJavaのバイナリがネイティブで動かなかったっけ
Jazelleかな。 ARM××で後ろに「J」が付いてるやつなら。
>>28 newを上書きして、固定長メモリブロックから取ってきてくれるように
してくれるなら使ってみたいw
そうやって車輪をまた発明する
組込みっていってもひろいもんな。 携帯みたいにOSがあるような組込みならC++で開発してるとこもありそうだけど・・・ うちはC++にしたらROMに乗り切らなくなるw
>>27 制御側だけが組み込みじゃないとは思うけど。
携帯のアプリ層は一応組み込みに入るんじゃないかな。
あと、AV関連でもJavaなミドルウェアはある。
素人なんだけどJavaとかは誰が作ってもだいたい同じで 組み込みCは性能差が人によってでるの? エンターティメント系のアイディア勝負!とかって書いてあるの実にインチキ臭いんだが
意味の通じる日本語を書けよ。
是外行,不?与Java?制作大致同? 也?入C性能差根据人出来? entatimento系的想法??!?写着??欺?臭
Javaだって書く奴によって性能は変わる ま、Hello World だったら誰が書いても大して変わらないがな
性能の差っていうと定義が微妙すぎるよな。 どの言語だって実装次第で性能はかわるもんだし。 組込みってのが環境がシビアでわずかな性能の差も見過ごせない という状況が現れやすいとかいうのならわからないでもないかな?
最近30代で年収550ぐらいの正社員募集が目に付く。 そんぐらい貰えるのが業界の常識なんだろうか? おしえてたもれ。 今、年300万契約社員…転職しようかな…出来るか判らんけどw
わずかな性能差が仕事の成否を分けることもある。間に合うか間に合わないかって仕事も何度かあった。 それはそうと、200kbyte近くのバイナリのうちたった数行のチューニングで数倍性能が変わるのを体験してしまったorz パレートの法則だとかそんなチャチなもんじゃあ断じてねえ。もっと恐ろしいものの片鱗(ry
>>42 今頃そんなこと言ってるって大丈夫?
いや煽りとかじゃなくて
そんなの「プログラミング概論」みたいな講義で一番最初の方に習うことだろ。
っていうか、自分で考えればそんなの当たり前だってわかるじゃん。
1μSesに一度実行されるコードの処理時間を1nSec短縮することは
一秒に一回実行される処理をどれだけ短縮することに相当するか。
1μsに1ns短縮だと1‰だな。数倍には程遠い。
>>43 マジレスすると組み込み系にはソフトの正規教育を受けないで入ってきているのが多いから
たとえ院卒でも
>「プログラミング概論」みたいな講義
何ぞ、そもそも受けたことないのがざらにいる
>>43 全体のコードの一パーセントにも満たない部分が
全体の七割近くの時間を食っていて、それをほぼ0にできて感動してたのが
そんなに悪いのかね。
プログラミング概論みたいな本は今までよんだことがないよ。
畑違いの学部を出たんだ。
おもしろいと思うから、勉強してみたら。
処理を高速化するのは楽しいよね。 HWの性能の差が処理速度の決定的差でないことを教えてやる!って感じで。
何とも感じない奴のほうが問題。まぁそういう奴はそのうち辞めるだろうけど
>>46 講義や本で学んだ知識より実際に見て感動した事の方が大きいと思うよ。
元々誰が書いたコードか知らないけど、大幅な効率UPできた時の感動は分かる
リファクタリングには前担当を否定する暗い喜びがある。
>>50 それが楽しいんじゃねーか。
それぐらいの楽しみが無ければ、組込み屋なんかやってらんねー
バグ見つけて通信機器2機種を販売終了させたのは良い思い出だ。
前担当は仕事してねーだろw
リファクタリングと言いながら、インターフェイス以外はすべて作り直したことがある。 前担当者はかなりショックを受けたみたいで数日ほど会社を休んだw
>>46 悪いとは言ってないよ。
ただ、「俺は宇宙の真理を一つ発見した!!」みたいな勢いに見えたから(ごめん
この比喩はちょっと大げさすぎるな)おいおいそんなの常識だろ、って言ってるだけよ。
>>53 2ちゃん定型書式で書いただけで別に初めて遭遇したわけでもないし
ここまで劇的なのは初めてだったけど
>52 >前担当者はかなりショックを受けたみたいで数日ほど会社を休んだw ショックを受ける=進歩する意思があるだけましだよ。 オレの所なんて、ボロボロのソース書いてそれを修正しても、 何とも感じない奴らの多い事多い事・・・ で、またボロボロのコードを量産していく。
>>55 あるなぁ、それ。
せっかく治したのに、またぼろぼろにされていく。。
57 :
仕様書無しさん :2007/08/30(木) 17:43:51
今度のマイコンはROMが2KBだだだだーーーー
58 :
仕様書無しさん :2007/08/30(木) 18:37:37
先駆者の苦労は、底知れない。..と思うが
>>57 あいまい3K それRAMってことかい ちょっ
>58 底知れなくても、 設計してない+試行錯誤+コードそのまま ってのは、マズイんだと思うのだが・・・
流れぶった切って悪いが プログラマを馬鹿にする「プログラム書き」っていないか? 俺は製品開発しているんだから、プログラマじゃない。だから、 設計だの手法だのリアルタイムOSだの、まったく興味がない! 俺が考えたように適当にやるんだ!問題ない! っての。 ハジメテミタんだが、これってどうなんだ?
大嫌いな奴を組み込み系の展示会で見かけたときは 殴り倒してやろうかと思った。 性格が悪くて仕事もできねー奴は糞。 便所に流してやりたい。
ほら吹き?
>>61 自分に被害が無い限り、放っておくのがいちばん
65 :
仕様書無しさん :2007/08/30(木) 20:05:28
うんこな組み込みプログラマーはトイレにつっこんで流そう 貧弱で体力ないしヘタレだから抵抗できねーし
相手もそう思ってるだろうし たぶんおまえらも糞。 糞は糞を嫌うか。 まー俺も糞。 所詮組込みは糞溜めだな。
世間には、まったく動かないデバイスドライバを納品しても それのクレームにまったく対応しなくても それで月130万円以上の単価ぼったくろうとも 講師としてひな壇にあがり、他人様の製品に関して得得と語ったりする。 ひんまげないと動かないボード10枚以上ならべて、 「どれでもいいから動くものを選んでデバッグしてくれ」 と、にやにや宣う髭面がいまや自作の神扱い。 そんな奴の方が生き残れる業界なんだよ。しがみつくのも ほかにできないからしかたないけどな。で、多職種からは 蔑まれ、ごみよくずよつかいすてよと冷笑される。 あははのは。
68 :
仕様書無しさん :2007/08/30(木) 20:44:14
>>60 設計してない+試行錯誤+コードそのまま
ってのは、マズイんだと思うのだが・・・
そのとーりなんだけど。
基地外がドシロート拾って作った代物なんだから。今も同じか?!
設計したといいつつ、設計ってコーディングのことだとか フローチャート書いて思い付きの処理メモするだけだって 奴なら星の数ほどいるわ。 もっとも、Windowsとかならググってサンプル探して 斜めよみして切り貼りしてもしかたねーだろ。 いいじゃんか、人もソフトもどうせ使い捨てなんだし。
70 :
仕様書無しさん :2007/08/30(木) 21:04:08
プログラムは、技術と思ってないお偉いさんが、諸悪の原因だろうねぇ〜♪
それを嗤うおまえもな。 シンデシマエ。
まぁ内部設計ぐらいまで終わってりゃ、技術無くても動くプログラムは出来るからなぁ。 技術があると、パフォーマンスとか保守性とか品質が上がる。
「別の」プログラマが悪いんだが、他職種こそスキルほぼなくても なんちゃってエンジニアでも設計できちゃうだろ。 CAD/CAM/NC/シミュレーションツールの出来といったら。 PCやらWSの上で踊ってるのは同じなのに、具象にならないからって 冷笑されるのはなんかあれだが。 まあ、内幕暴露とかで楽しめることもあるがな。
>>72 後者に自信あるけど、前者だらけで肩身が狭い今日この頃...orz
組み込みって人気無いの?
>>74 自信持て。
いざと言うとき頼りにされてるハズだっ
>>75 人気無いっつーか、華が無いっつーか。
一般人の目が行きそうなトコって精々携帯くらいじゃない?
技術職の中では最下級かと。 うっかりすると技能職より(ry
地味な事こなす奴がいないと世の中回らなくなる...
というか物作り自体が時代遅れ
そんなことをいってるから日本の産業界が傾く
日本は景気拡大を続けているそうだが
物作ってるからね
製造は仕方ないとしても設計は三国に持ってかれないように頑張らなきゃ
TOPIXは全然上がらないけど。 下げはダウと連動するけど、上がるときは上がらない。
>>67 素人はそんな奴に騙されて、堅い奴の言う事は一切耳を貸さない。
技術者が矛盾だらけの会話をしてるのに、それに気がつかないか
気がついても聞き流すってのは今流行してんのかねぇ。
いわゆる文系ってそんなに阿保なのか。
86 :
仕様書無しさん :2007/09/01(土) 04:04:56
あまりの矛盾だらけの会話に呆れているのでは 「こいつらありえねえ・・・・・・・」 理系キモイよ理系
今の日本は、ものを作って得た金よりも、金貸し業で儲けた金の方がおおいそうだね。 ものづくり=理系、金貸し業=文系 の仕事だから今は文系の方が強いのかも
「今は」ってずっとだろw。 文系にとっちゃ、理系=土方くらいの認識だろ。
90 :
仕様書無しさん :2007/09/01(土) 13:46:51
ここで言う組み込みプログラマには、WindowsCE 上で動作するプログラムを VC++エンベデッドで開発している俺みたいなのも含まれますか?
含まないんじゃないかな
ドライバからシコシコ作ってるんなら含むんじゃないかと思う
PL法やらなんやらで、やたら技術に対して厳しくなる方向に結びつきつつあるしな。 いくら技術が高度になろうとも、文系共にとっては便利になったな〜ぐらいしか感じてないだろうし。 でもって不具合があると、過剰な反応を示す。
>>93 それは文理関係なくお前さんの感覚がオカシイと思うぞw
Windows以降の(MS文化とも言うべき)この業界の非常識に毒されすぎだよ。
ユーザーとしては不具合が認められないのは当たり前だろう。
お前さん、自分が買った新車が、雨の日の後にはヘッドライト内が水滴で
曇るような車でも文句言わないの?
?
>>94 ユーザーがメーカーに文句言うのは構わない。
>>93 はそれを技術者のせいにする「メーカー内の文系」に対して文句言ってるんだろ。
>>96 責任とれない丸投げ野郎が多いからね〜〜〜〜〜〜〜〜
>>96 君頭悪いでしょw
じゃあ自動車メーカー内部の「文系」は、ユーザーからのクレームを
「技術者」にフィードバックしないとでも言うのかねw
というか、頭の悪い奴に限って文系理系ってプロレスみたいな対立が大好きなのは
何かの法則かね。
まあ、そこそこの学校出てる人間ならたいてい「オールマイティ」だから
コンプレックスの持ちようがないんだけど、そうでない人間はそうはいかないんだろう多分。
ちなみに、文系理系って無意味な区別は日本にしかない。
これ本当。
>>98 フィードバックするのと技術者のせいにするのは全然違うだろ。
文系も理系も協力して問題に取り組むのが本来あるべき姿。
現実には、そうでない会社なんていくらでもあるんだよ。
以上、自動車ディーラーの戯言でした
ネタも出さないで”やれやれ”じゃ、まともなもん出来んでしょ。
なるほど、「文系も理系も協力して問題に取り組む」とは、
「ボキュの仕事に偉そうに口出しするな」って態度のことを言うのかw
最近こういう人間が多くて困るよねまったく。
>>99 みたいのがネタとは思えないのが現代日本の病理の一つだ
この業界、ほら吹きが多いみたいだよ。
と、異形の詐欺師とよばれる
>>103 が申しております。
105 :
103 :2007/09/01(土) 17:46:30
俺はやられたことあるよ。ある意味、被害者なんだけど...
>>102 そうそう。「文系の仕事に理系が口出しするな」って態度の奴が多くて困る。
>>98 ホロン部もレベル上がってきたな。
良い事だ。
108 :
仕様書無しさん :2007/09/01(土) 20:55:59
能力もなくて性格も悪い離婚された奴のことか? ウラで「ゴマスリチ●カス」と呼んでたけどな。
109 :
仕様書無しさん :2007/09/02(日) 18:22:03
(・ω・)ノ
110 :
仕様書無しさん :2007/09/02(日) 19:37:36
「ゴマスリチン●ス」って「チマチョゴリ」に似ているよね
ロジアナを常用してる俺たちなわけだが、 こんだけ使ってるとロジアナを作りたくなってきたり な?
サウンドカード使って簡単にPCで実現できんだろか。。
どんなサンプリングレートのサウンドカードだよ
そもそもHW的に直流分カットされてるだろうし、RCAのダイナミックレンジって...
115 :
仕様書無しさん :2007/09/03(月) 20:36:10
ICEがうまく使えない、路地穴なんて触った事もないソフト屋が ハード屋と一緒にデバッグしたんだよ〜とか紛らわしい事言って自慢してるけど、 雑用コーディングする以外何が出来るんだろうか? それで居てハード屋にデバッグさせるんだから凄い政治力だと感心した。 そのせいで以降ハード屋の対応が物凄く悪くなってそのとばっちりを受けてるorz 素人と仕事したハード屋お疲れさんでした。 俺なら1ヶ月と持たず辞めるよ… 何時切れて殴るか判らんから… 賭博関係業界は腐ってるな。
>>116 程度が見えないレスだなぁ・・('A`)
118 :
仕様書無しさん :2007/09/04(火) 01:22:22
組み込みならやっても言いと思う。
そのハード屋さんも簡単なソフトが書けなかったってこともあるんだろうしな。 そこら辺はお互い様なんじゃない?
>>116 1機種リリースするたびに、膨大な文書を役所の外郭団体に提出しなければならない
業界の方でつか?
設計よりも認定用のドキュメント書きのほうに時間を喰われるんで辞めた先輩がいた。
ハネモノもスロットもハンパないドキュメントの量だったらすい。
121 :
仕様書無しさん :2007/09/09(日) 10:49:26
ハードバグが原因での動作不良に出会ったとき、 組み込みソフトを実感する そして憤慨する
ハードバグを取るためのソフトいつの間にか作らされてたり システム設計皆無でてけとーにつくったソフト保守させられたり 後で見返すと、一ヶ月100行弄繰り回してただけだったりとか。 そんな仕事も多いだろ。
ハードバグなんてつきものだろ。はじめからスケジュール考慮しているよ。 適用につくったデバッグ用機能がいつまでも保守せざるをえないのも 苦しいな。
ロジクールのとこの奴は糞
でもさぁ、ハード屋が同じフロアに居るから強く文句言えないんだよなぁ
ひきーなんだよ、内弁慶なんだよ 2chでしか強気にな僕になれないんだ!
>>123 >適用につくったデバッグ用機能がいつまでも保守せざるをえないのも
>苦しいな。
あるあるww
DbgとかTestとか言うモジュールやら変数やら、いつまでも残ってる。
消すのか消さねぇのか、さっさとハッキリして欲しい。
消さねぇんだったら仕様書に反映してプリフィクス変えさせてくれ、と思う。
130 :
仕様書無しさん :2007/09/23(日) 13:48:17
組込みやってるならMotoGP見るよな!!! 14時からだぜ!!!!!!!!
「これからの時代はxxだ」と嘯きながら何もしない上司が多数。 真意は、xxを馬鹿にしてるだけ。そんな業界。 右も左もアセンブラ大好き。アセンブラ天国。 Cを独習して書きはじめた奴から退職していく。 そんな業界。 ゲーム業界行った方がマジでいい。
今でもアセンブラでやってるところあるのか、いいなあ
133 :
仕様書無しさん :2007/09/24(月) 18:08:44
C言語によるPICとかFPGAとかH8というような 書籍がありますが、これらはいわゆるマイコンの種類ということで よろしいのでしょうか。 あと上にもありますように、アセンブラは勉強しておいたほうがいいですか? CASLUとかちょっとかじったことがあります。試験用の言語でしたっけ。
134 :
仕様書無しさん :2007/09/24(月) 18:12:42
>>132 俺も思った。
ただ、その技術って逆に、組み込み以外の業界では全く潰しのきかない技術だよなぁ。
ま、Cとか使うハードよりのプログラム書くのには、知ってた方がいいと思うけど、
そこの部分をバリバリにやってもって意味で。
Java+Oracleとかバリバリだったら、今は相当潰しきくけど、
>>133 >C言語によるPICとかFPGAとかH8というような
>書籍がありますが、これらはいわゆるマイコンの種類ということで
>よろしいのでしょうか。
ぐぐれ
>あと上にもありますように、アセンブラは勉強しておいたほうがいいですか?
>CASLUとかちょっとかじったことがあります。試験用の言語でしたっけ。
大まかな概念を理解していれば大丈夫。
細かいことは必要になってから勉強すれば十分。
>>133 Cは必須。
アセンブラは担当するマイコンにより命令がころころ変わるので、必要な時に覚えればよい。
昨今、ほとんどの開発はCを用いるので、Cを知っていればつぶしはきく。
組み込みやるなら、アセンブラは少なくとも知識としては知ってて欲しいかな あと、C言語使うにしても、コンパイラがどんなコード吐くかとは知ってて欲しい 関数の呼び出し方とか、スタックフレームの生成方法とかね もう、組み込み一筋10年の人でもアセンブラ知らない人のが多いからなあ C言語の関数設計させると、戻り値とか引数とか char にしてんの なんで?って聞いたら、メモリ節約のためだって・・・
LSI-C80かね。なつかしいな。 charだとAに乗るんだよ。
帰り値はともかく、引数はcharにすれば メモリ節約出来るCPUはまだ多いだろ
それ以前にコストとか消費電力とか諸々の理由で、 いまだに8bitマイコンのアセンブラで組まざるを得ない分野はあるんですよ。
4ビットマイコンならともかく、8ビットなら、 最近はPICでさえCコンパイラを使うけどな。 殆どアセンブラと変わらん使い方だけど、 パソコン上で検証出来るのが大きなメリットだ
4ビットマイコンを強制されるプロジェクトも中にはある。 Cなぞ使えない上にメモリ空間ガチガチ。 実装出来なかったら左遷。実話。
まあ一昔前は4ビットマイコンで 1ビットのフラグを求めて必死になったもんだけど 今はソコまで厳しくないな ・・・・ と思ってる間に、4ビット使うようなのはもう全部海外に行っちゃった・・・・既に思い出。
基板設計まで自前でやっている独立系の会社ならCが使えるね。 「いまどき〜」が通用しない業界ですよ。 RTOSなんて話にも出ませんでしたよ。 ところが中途募集見るとどこもRTOSとかネットワークとか書いてあるんだな。 配属先は外注管理じゃないか?とも思う
いちおう付き合いのあった外注先ひっくるめてのレベルです。 大手だとほとんど外注に出すから実態を知らないんじゃないかな。 携帯やるのが組み込みだと思ってる。
PICはハード屋が片手間でやる遊び。ソフト屋の仕事ではない。
引数やリターンのリソースを削減したいんなら、まず関数の呼び出し規約くらいは見てからにしてほしいよね
今度やるプロジェクト、ソースコードだけで4MBもある・・・ どうしてこうも開発規模が大きくなるんだ もういやだ
>>148 何作ってるのか知らんが、ソースコードの大半が「データ」だったりしないか?
それプロジェクトのzipサイズでbinファイルごとってオチじゃあるまいな
4Mも?。 ちっと、月曜日職場に行って、今年のプロジェクトのソースを圧縮してみよう。。 tar.gzにして全部で90Mあるから、オリジナルの部分でそれくらいは余裕でありそうな気がする。
152 :
仕様書無しさん :2007/09/30(日) 03:41:09
434 :名無しさん@そうだ登録へいこう :2007/09/29(土) 00:20:17 ID:5BCnHtRm0 左胸に○○工業とロゴが入った上下お揃いの作業着に、小学生の上履きのような静電靴を履いて、 朝から晩までPCや機器と向かい合っているようなイメージでよろしいでしょうか? スーツは嫌いです。
>朝から晩まで ってとこが間違いだな。 朝から夜明けまで、が正しい。
工場を改造した配管むき出しのスペースにPC並べて 熊みたいで口だけのリーダーを中心に 若いのがお気楽にVSを上げたり下げたりして 「UIでは一切エラーチェックやってません」みたいなソフト作る そんなイメージです。 「〜工業」という名はここ10年位の不況のどさくさで改称して消えて、 親会社の名前に何だかよくわからない外来語がくっついてます。
155 :
仕様書無しさん :2007/09/30(日) 07:10:37
作業着いいよね。冬は暖か、夏は涼しい。
156 :
仕様書無しさん :2007/09/30(日) 07:51:00
冷暖房完備だがやたら機械の騒音がでかいところで 機械系メンバー数人、工法系メンバー数人に対して一人しょんぼり 電気配線からプログラムから荷物運びまでマルチで活躍できるすばらしい職場です 今ならリアル200V体感ツアーやプログラム暴走軸クラッシュ体感ツアーも用意しております
リレー制御はするが、強電じゃないし、アクチュエータの制御もないから、危ない思いはしないな。 (俺のは通信機だから、せいぜい通電/切断とか、周波数選択程度) 釣り銭機とか、改札の通せんぼとか、ロボットのアームとか、ああいう物理動作を伴うものの 制御は、面白いのと危ないのが表裏一体という感じ。デバック中にぶん殴られたりとかしそう。
159 :
仕様書無しさん :2007/10/12(金) 20:16:01
実践的に組み込みソフトのノウハウを勉強したいんだけど、組み込みプログラムのダウンロードサイトってありませんか?
>>156 非常停止を押して停止せずであぶねぇあぶねぇ
アームがこの野郎って....ガクブル
命がけだな、俺らって
161 :
仕様書無しさん :2007/10/12(金) 22:50:47
日本信号で改札機のファーム組んだ奴、出て来い! 大変な損失が出ているぞ〜! もしかして、誰かが仕組んだウイルスか? 一斉に止まるのはおかしいよな。
どうせどっかの偽装請負が組んだんだろwww
時限バグ弾
まあ、ある程度巨大なシステムになると その仕事を取ってくる方にエネルギーを費やしてしまって 完成させる為のエネルギー不足になりがちって事なんだろうな。
165 :
仕様書無しさん :2007/10/15(月) 23:03:49
元を作った人が会社にいなくて引き継ぎで手探りで修正している様子が目に浮かぶ。 コード書きはまず無理な納期で仕事をねじこまれるところから始まる。 仕様はあやふや、大枠は無茶苦茶なのにほぼ決まっているが、詳細はすべてコード書き任せ。 機材やライブラリの手配もままならない。上も動きやしない。 書けども書けども進捗率は上がらず納期ばかり確認される。 間に合わないから変えてくれと言ってもダメの一点張り。 偉い人に煽られれば煽られるほどコード書くのが遅れる。 偉い人のそのまた偉い人まで出てきてコード書きを叩く。 開き直ってマイペースで書くようになる。心中穏やかでない。 ぼろぼろになってテストに回すとバグだらけ。 追及しきれずに出荷してその後も細かいバグがぼろぼろ出てくる。 忘れた頃に大きいのが、しかし原因はつまんないのがやってくる。 すかさず客先から袋叩き。出荷した物みんなみんなリコール。 コード書いた人間は責任問われて配置転換。 ぼろぼろになって逃げるように辞める。 組み込みってこういう世界です。別に儲かりません。 それでもやりたければどうぞどうぞ。
遅れてるプロジェクト(デスマーチ)に人員を追加しても進捗率は上がらない。 実話です。 無理な物は無理。 どんな納期の遅れでも修正する高度な政治力が下働きの時代から必要です。
バグを出す人間は悪い奴。 しかしバグはなくならない。 つまりコード書く奴は悪い奴。 上の認識は、物を作る奴はすべて遅れやミスをおかして会社の利益を損なう、悪い奴。 悪い奴になりたくなければ物づくりに携わるのはやめましょう。
まともな設計書もださんで、丸投げされれば、バグバグするのは当たり前なのでは?
要求が厳しくなってるから、設計とか実装とか考え直さないと自爆の道をまっしぐら...
171 :
仕様書無しさん :2007/10/17(水) 17:45:34
ソフトでRTC作ったことあるか?難しいぞ。
TOPがバカだと、ほら吹き集団になるみたいだよ。
まあ利益率を一瞬無限大にするには、 会社を解散することだ門ナ。
174 :
仕様書無しさん :2007/10/18(木) 10:17:27
>>167 禿同。
教育コスト・時間を考えろよな。
175 :
仕様書無しさん :2007/10/18(木) 10:19:33
>>166 こういう状況は、前線で戦わされる足軽と同じだよな。
生き残る方法は、ただ1つ。 命を捨ててかかること。
簡単なところでは、欲と打算を捨てて腐らないことだ。
無心に仕事に打ち込むことだ。
欲と打算が頭をよぎるから、「あほらし〜!」とい気分になり
良いアイデアが浮かばない。 そして、ますます作業効率が落ち
細かいとこまで気が回らずバグを作りこんでしまう。
命を捨てる必要は無いが、欲は捨てて無心になることだ。
やり方によっては、効率が何倍何十倍いや何百倍にもなることを
信じるのだ。 そうすれば、時給が100円でも実質数万円の時給に
なるではないか?
単純過ぎて、申しわけない。
>>171 リアルタイムクロックの事? あるよ。 4ビットマイコンとH8とPICでやった事がある。
32.768Kの水晶付けて切り替えるのだけど
電池のもちを長くするのに、色々大変。
でも結局一番効いたのは32K水晶の発振部分の抵抗値の調整だったりして
>>176 出来合いのRTC使うのとどう違うの? そういう構成のメリットとかあるの?
どう違うって、コストが違うだろ
百円位安くなるかな
180 :
177 :2007/10/19(金) 14:16:20
なるほど、ハードのコストを抑えるということですね。マイコンでふつうに時刻更新してゆくと 天文時計とずれてきますよね。RTCらしくさせるにはどういう補正を加えるんですか?
181 :
仕様書無しさん :2007/10/19(金) 17:57:43
日が更新されたときに月や日の整合性を保つ。 うるう年も考慮する。 だるいけどそんな難しくない。
クロックがずれる揺らぐ誤差がたまるからどーすんだといってるように見えるが?
183 :
仕様書無しさん :2007/10/19(金) 18:43:46
1秒当たりのズレを補正するって意味なら 製品出荷時に実際に1秒を何カウントで行うかをキャリブレーションするソフトを入れたりするけど。 それRTCとは関係ないよ
>>180 時刻が大事な機器でスタンドアロンなら、RTCがないってのは余り考えられないかと。
185 :
仕様書無しさん :2007/10/19(金) 19:01:23
バックアップとかきにするな。 M$様の製品を見るんだ
RTCなんてそんなに当てになるの? まぁマイコンでカウントするよりはましなんだろうけどさ
クロックの精度次第なのはRTC使おうがソフトでやろうが同じことだね
そう言えば、パソコンだってRTC入ってるはずなのにnetと同期取らせてないと狂ってきますね。 RTC持ってても、時刻が大事な装置なら天文時計とのリンク手段を持っているべきなんですね。
リアルタイムは、「その都度」という意味であって、「ホントの時間」って意味じゃないよ。 RTCは電源を切っても動き続けているというような意味でリアルタイムクロックと呼んでるの。 マイコンでワザワザ実現するのは、コストのほかに小ロット品なんかで部品調達のリスクを減らす目的もある。 専用IC使ってしまうと、廃品種になった時にその部品探して右往左往する事になるからね。 まあでも、最近CPUそのものが廃品種化するスピードが速くて、そのあたりは諦めてるけどね。 もうPIC使って、RTC使って、さっさと作って廃品種になったら作り直す方がマシだと。
>>188 時計の読み込みは起動時に一回だけで、カウントはRTC関係なしにやってるから。
マイコンが廃品種になる理由って考えたことあるか?以下適当に ・製造プロセスが変わって旧マスクは使えなくなったから ・マイコン=実は特定企業向けのASSP、そこでの生産終わって予定数製造終了 ・本当に作れないほど古いのに、ボケ入った企業の連中はずるずる使いつづけるのに付き合ってきたが いよいよ物理的に不可能になったため ・売りたい新型にとっとと置き換えたいため ・理由などなく、単に保守対応年度が過ぎ去ったため
・ラインナップ上原価割れの価格設定をせざるを得なくなった ・売れないので管理コスト削減のため
・メーカーが潰れた
ソフトでRTCって 全処理のクロック数を合わせるってこと?
なんらかのクロック源を適当に分周して、 時刻を表す値(yy/mm/dd) HH:MM:SSの更新をソフトで行うことを言ってるに決まってるじゃん。
196 :
仕様書無しさん :2007/10/21(日) 14:31:27
WindowsでもLinuxでもOSが普通にやってることだね。
あれはHWのRTCが入ってるんだよw 初代のIBP PCからしてそうだよ。 それどころか日本のPC-8801とか、X1の世代のPCですらそう
もともとRTCのチップをH8で作るって話なんだろ? H8tynyでもオーバーキルな気がするが、 供給立たれるよりはまし。
199 :
仕様書無しさん :2007/10/21(日) 15:55:08
>>197 既出だがOSは起動時しかRTCをアクセスしないよ。
起動後はシステムクロックを元にしてソフトRTCしてるんだYO!!
組み込み勉強中です カーナビはWindows Automotiveに移行しているようですが Windows Automotiveも勉強したほうが良いでしょうか
>>200 いや、すぐ廃れる流儀なのでVxWorksやりな。
202 :
仕様書無しさん :2007/10/22(月) 19:08:38
>>190 ほんでもって、ソフトRTCの精度維持にはGPSを使っている。
GPS衛星自体が原子時計を積んでいるので、高性能なGPSレシーバー
使えばマイクロ秒レベルの誤差に抑えられる。
衛星との誤差μSレベルってのはどういうことを言うの? 衛星から電波が飛んで来るのに数百mSかかり、3〜4個の衛星の情報使うんでしょ? 秒がきっちり合ってればそれでいい気がするが。
>>203 秒単位で合えばいいかどうかはアプリケーション次第。
衛星から電波が飛んでくるのに時間がかかり3〜4個の衛星情報を使う。
そこまで知っているって事はGPSの仕組みをちらっとは読んだことがあるんだな。
GPSでμ秒単位で衛星と時刻同期ができる方法を考えろ、というテーマは
組込プログラマ向けのFizzBuzz問題に使えそうな気がする。
>>194 それはプアなタイマーしか持ってない1チップでやるテクニックだね。
206 :
仕様書無しさん :2007/10/24(水) 16:22:36
実際にソフトウェアRTCをCで実装するとしたらどんな感じですか? 定番アルゴリズムはあるのですか? どなたかサンプルを提示していただけませんか? 【仕様】 YYYY:HH:MM:NN形式の時刻文字列を2007/01/01からの通算秒に直すとか、 いくら考えてもわかりません。
208 :
仕様書無しさん :2007/10/24(水) 16:43:44
>>207 はいそうです。ここでRTCの話が出ていて興味を持ったのですが何を参考
にしたらいいかも分かりません。
209 :
仕様書無しさん :2007/10/24(水) 16:49:39
>>206 うるう年を考慮に入れて計算していけば求まるんじゃない?
それより通算秒→yyyy:mm:hh:mm:ss
のほうが難しいかもね。
もう少し考えてみな。
うるう年問題はよく言われるがうるう秒は皆スルーするのは不公平だと思うんだ。
211 :
仕様書無しさん :2007/10/24(水) 23:19:13
>>210 たしかにそうなんだが、うるう病って不規則じゃないか?過去のものは
配列か何かに持つとして、将来のものはどうするよ?
>>209 Cの標準ライブラリにそんな関数があったような
>>212 組み込みだとハード構成によっては時間関係の関数はうごかんぞ。
それを自作するって話だろ>ソフトRTC
time関数は使えないかもしれないが、 一秒毎に通算秒をカウントアップして、その値をlocaltime関数か何かに渡せば良くない?
>>203 NTPプロトコルのRFCとか論文嫁。
飛んで来る電波の時間差を使う。
軍用だと更に位相差も使う。
>>199 *BSD系だと、ソフトRTCじゃなくて、
ソフトPLLで更に高精度に調整してる。
SYNC_PPS付きだと、さらにNTPパケット
の「割込み」に直にOSのソフトPLLが
同期する。
カーナビとか作るなら、一度ソース
読んどくと良いかも。
今ぶっちゃけいくら貰ってる? 俺は30男、手取りで32万。 1千万プレーヤーにはいつなれることやら
フリーで\60。同業にも安いと言われるが、ダンピング価格と言うほどではないとおもう。 稼働率も考慮すると楽ではないが、子育て終わってるし、自分の時間が多いほうがいい。
220 :
仕様書無しさん :2007/10/26(金) 00:29:57
>>219 さん
ありがとうございます。早速探してみます!
221 :
仕様書無しさん :2007/10/26(金) 11:37:59
組み込みプログラムやるのにハードを知っておくと良いと聞いたので、まずはハードの仕事を やらせてもらってるんですけど、ひょっとしてあまり関係ないんでしょうか? ソフト屋さんに渡す情報はレジスタとメモリアドレス空間の仕様くらいなんですが・・・。 今後、ソフトに移ることを考えるなら、今はどういうことを意識して取り組むと良いでしょうか??
ハードチェック用のテストプログラムをかけるようになれば、何かと便利。 動かない設計してはまりたくないでしょ?
>>222 は、もっと別のことに興味を持つといいよ。
宇宙開闢のなぞとか、極地で生えるコケの生態とかそういうの。
>>222 一段上の仕組みを意識して取り組むべきだな。
ハード、ソフトなどの全体のシステムはどうあるべきか..なんてな。
それ、そのまま組織構造、社会構造につながるから。
そしたら文転汁!。
>>222 自分も同じことを聞いてハード志望したけどソフト配属に。
ハードの仕事知らないから何勉強すれば良いのかも分からないや
とりあえずこのスレに書いてあるような雑誌から手を出していけば良いのかなぁ
データーシートは読める(理解できる)よね?たまに、ひとりよがりなのあるけど...
>>223 なるほど。
動かないのが一番怖いです。
今、業者さんに自分の描いた回路を基板に実装してもらってるんですけど、ビクビクしてます。
テストプログラムのこと、意識しておきます。
>>224 それはおもしろそうですね。
でも仕事をおろそかにするわけにも・・・w
>>225 おお、組織構造や社会構造につながるとは興味深いです。
エントロピー増大の法則と人間集団の行動規則が似ているようなかんじですね。
>そしたら文転汁!。
ぶ、文系のお仕事は自分には合ってなさそうです(汗)
>>226 おお、共にがんばりましょう。
社内ネットでソフト屋さんのプログラムコードを覗いてみたんですが、難しくてゾっとしました・・・。
あんなプログラムを書けるなんて、組み込みプログラマーの皆さんを尊敬します。
ちょっとずつがんばります・・・。
>>228 最後の段落について:「仕事をしてる/した んだ」 ということをアピールするために
ハード屋の望まないノイズを山ほど入れるからね。複雑さに感動しちゃダメ。
徒に読みにくくするのが奴らの定石だから、むしろ怒らなきゃ。
とある大き目の会社の人が書いたソフトのメンテをやったことがあるけど、 しゃれにならないくらい汚くて読めたもんじゃなかった。 同じ結果を返す関数がいくつもあるし、同じ意味を持つ変数がたくさんあるし… ソフト屋も望まないノイズが山ほどあったよ。
>>229 >>230 なるほどw
しかし、最適化してスマートなコードにすると仕事してないと見られてしまうなんてやるせないですね・・・
「行数は評価の対象にしない/ならない」という原則が定着して久しいが、それが悪いほうに 回ってるね。行数を評価するためには、「ある程度は最適化」 つまり少なくする努力をした上で てのが前提になるから、無駄なコードは省こうとするし、「簡潔な美しさ」という基準もできる。 今は、どうせ評価されないなら、キレイにする努力はムダ、という原則だから、一度入ったゴミを 取り除く努力は誰もしない。その結果ソースコードのエントロピーは、製造後時間とともに増加 する一方。 熱力学の法則と同じになってる(w
頭悪いのかねw 行数は処理内容と232のいう「簡潔さ」の関数だとすれば(大方はこのモデルに異論はないだろう) 処理内容は評価の対象ではないのだから、最初から「簡潔さ」を評価すれば済む。
234 :
仕様書無しさん :2007/11/01(木) 08:45:53
見積もり出来て成果としてだせる数値っていったらステップ数ぐらいしかねーから 開発規模を見積もるさいはステップ数を出すな ただ書類上になるからであって妥当な値を記入するけどな 平均ステップ数/hなんてもんも各社用にもってるしな まぁ 重要なことじゃねーが 客先が金出す判断に必要という以上ださなきゃしゃーねーわな ちなみに最適化なんてのはあたりまえにすることであって何をいまさらって感じだな
いくらでも細工できるスッテプ数
そして、仕込みもバッチリ?
評価手法が無いのがいかんのよ。俺なら、参照されてないdefine値それぞれについて、 これはなぜ必要か?今参照されてないなら将来のいつ必要になると想定したのか?とか 全部レポート出させる。使われない関数についても同様。 こういう評価すれば「水増し」無くなるだろうし、保守の人の負担もずいぶん減るとおもう。
ヘタレ設計書見て、ヘタレが実装すれば、ワケワカメができるってだけでしょ。
その上、いいかげんなチェックして、責任にまで丸投げ...
240 :
仕様書無しさん :2007/11/01(木) 18:42:36
>>237 コーディングチェックシートなら大概のメーカーもってるぞ(やってないメーカーも1社あった)
つーかそんなことレビューしたらレビューアが当然指摘するだろ
レビューイもレビューアもよっぽどならコーティングチェックツールとか使って致命的なのはつぶせばいいだろうて
あんたはいったい何を悩んでるんだ 核心を伝えてくれ
※コーディングチェックシート
<概要>
1モジュールなり1クラスなりを対象にアホアホな実装をしていないかチェックしていくもの
納品対象となる場合もある。
<実情>
新人以外は、ソース書くさい引っかからないように書くのでレビューアは機械的に項目を埋めていく
めんどくさいもの
>>237 評価手法っていうより嫌がらせに近いな。
実際に水増ししてきたやつがいたからかもしれないが・・・。
コーディングチェックシートより設計チェックシート作った方がいいんじゃないの?丸投げ君たち
243 :
仕様書無しさん :2007/11/02(金) 07:25:49
>>242 半年ROMれ
丸投げって言葉は悪いことの代名詞のように古くから使われてきたが
決して悪い言葉ではないんだぜ
丸投げする側にとってはw
投げた後にきちんと返ってくる相手を見つけて確保するのがなかなか難しいんだがな
それに設計チェックシートを理解し運用できるやつがどれほどいると思ってんだ!おまいは
理想を言うのはいい
だが現実から目をそらすのはよくない
実装依存じゃ、もたないよ、よっぽどの経験者じゃないと...
実装しやすい状態遷移ぐらいは出してあげてね?丸投げ君たち
丸投げさんからもらった文書から遷移状態を起こしなおしてるよorz
247 :
仕様書無しさん :2007/11/02(金) 10:09:47
すまん ちょっと割り込む 俺の勘違いじゃなけりゃ、設計書なりのドキュメントってのは コーディングしてテストした後につくるもんじゃないのか? 俺は何か勘違いしているか?
248 :
仕様書無しさん :2007/11/02(金) 11:36:36
('A`)一流が現れたぞ
回路図だけで作れってのは無理だよ。最低限の仕様は必要。
250 :
仕様書無しさん :2007/11/02(金) 15:59:43
仕様書(要望書とも)→ユースケースや状態遷移などの動作を表すもの→実装→テスト→(主として保守のために)ドキュメント作成
もうどうでもいいじゃん。皆残業代がほしいのさ。 仕事上手にやって定時帰りしたり、しようとすると干される国なんだからさ。 てきとう・いきあたりばったり・因循姑息。 あははw
奴隷商会にお勤めの方ですか?
>>230 途中で仕様変更とかあるから、ある程度汎用性の高いコードを書き始めるが、
設計期間も少なかったために想定外のことが次から次に起こり対処できず、
結果的にやっつけ仕事でだらだら書きなぐったコードに仕上がるからではないの?
ソフト屋さんは頼めば柔軟に対応しなければならないという不文律が生きている。
ただ、かつて一人だけこれに抵抗した漢がいた。
自分の作った某制御ボックスの仕様がちょっと変じゃない?とお客さんがささやいたのを聞き、
その人にあんたの方がおかしいと怒鳴ったため、その場では臆したお客から営業の事業部長に
話が伝わり、以後その漢は出張禁止になった。 腕は立つのだが。。。
奴隷に作らせても、いいものはできないよ。
255 :
仕様書無しさん :2007/11/02(金) 19:34:51
「ソフトを熟成させる」って発想無いだろ。あの連中
動いたら、儲けんもんって発想じゃないの?
257 :
仕様書無しさん :2007/11/02(金) 19:45:54
言えてるかも。
最近はチェックもいい加減みたい。なに作らせてるのかもわかんないって感じ?
259 :
仕様書無しさん :2007/11/02(金) 20:06:54
うん。対象物の動作すら解かってねーって感じ!
丸投げするところはおままごとが好きな所だから、当然なのかも?
スレ違いだけど"丸投げ"と"丸投げでない"の定義って何ですか? "丸投げでない"仕事は偽装請負のにおいがする。
人がいれば出きるってもんじゃないよ。偽装請負はOAの発想。
けーたい。かーなび。そしてテレビを代表する家電。更には社会インフラを支えるシステム。 そういったもののかなーりの部分は・・・
264 :
237 :2007/11/03(土) 01:30:04
俺の居たとこ、つきあってるとこは、コーディングルールはあるがコーディングチェックシートは 無いな。そのルールも、頭の能書きとか段付けとか接頭辞に関するルールぐらい。 「参照されない名前を多量に書いてはならない」とか、「無駄な中間変数を書いてはならない」 など、当然と思えることすらルール化されてない。だからノイズは入れ放題。 つ〜か、そんなのルール化したら自分の首締めるの見え見えだからできないだろう。
コードレビューってしないの?
大体、そういう類は「言わせる、ガス抜く」そしてしらんぷり。 ソフト屋以前に「俺は○○屋だ!」と思ってるなんちゃって組み込みプログラマが多いからそうなる。
ヘタレのコードをレビューしても何も生まれないよ。 いかにしたらバグを作り込むかがわかるぐらい? 仕込みも見破れないやつらがレビューすれば当然なのかな?
ああ、237みたいな人ってよくいるねw 俺に言わせればこういう人は手段と目的を倒錯してると思う。 町内会やPTAでヒステリックに騒ぐ更年期ババアとよく似ている。 要するにそんなのお前の個人的な自己満足を充足させるだけじゃん、っていう話。 リファクタリングの目的は何? 普通はコードの可読性を上げるためだね。 では未使用の定数や関数があると可読性下がる? いや、もちろんそれらがコードの読み手を惑わす場合がある以上皆無とはいえないが、 普通はそれほど影響はない。 そんなことより抽象化がうまくされているかどうかの方が致命的に重要でしょ。 たとえば、 ・クラスやモジュールへの分割が適切かどうか ・メソッドの切り分けは適切か ・そして一番大事なのはクラスや構造体や変数の命名が適切かどうか
いかにバグを潰せるかを考えながら、やればいいんじゃないの? 実装ミスは人がやるからどうしようもないからね。
>>268 >・クラスやモジュールへの分割が適切かどうか
>・メソッドの切り分けは適切か
それってコードレビューじゃなくて設計レビューでやるもんじゃない?
未使用変数や関数は保守性が落ちるよ。定数は列挙することもあるかな。 リファクタリングの目的を保守性におく事もあるんじゃないかな。 あと、未使用は使い忘れの事もあるのでチェックした方が良い。 毎度チェックされることを考えると、消した方が良くなる。
話が通じないなあw だから効能が[あるか/ないか]の話をしてるんじゃないの。 もちろんあるかないかで言えば効能は「ある」んだよ。当たり前じゃないか。 そうじゃなくて、効能の相対的な量や質の話をしてるんだよ。 別の言い方をすれば物事のプライオリティってこと。 要するにもっとずっと重要なことが他にあるだろって話だよ
273 :
仕様書無しさん :2007/11/03(土) 13:47:49
まあ、なんだ、組み込みは滅びないかもしれないけど。 35超えてやるしごとではないと思う。 特に組み込みのソフトやは物流(本に金が絡む所)はタッチさせてもらえない からあまり長期間やっても、政治的な発言権はない。
C++で変態メタプログラミングさせてくれるような組み込みにいきたいです><
思うんだけど、273みたいな奴に限って別のところでは 「日本では技術者が大事にされてない」とか言ってるんじゃないの?w それお前のことじゃんっていうさ
>>273 ソフトなんて35超えてからが何ぼだろ
ただのコーダーはすっこんでろ
おまえら、団塊の書いたコード保守させられたこと、ないだろ。 ・・・・・絶句するぞ。
>>276 最近俺もそう思うようになってきた
年取ってからのほうがまともなコードが組める
無理をしないようになってきた
昔、実績があったところは、今の時代についていけてないみたいだよ。
欲ボケだけにはなりたくない。
>>280 数十年後?
日本、それまでもつのかね。
数十年もつのかね、この国
あと数十年もつのかな、俺の体
まあ、衰退と滅亡へのまったりした円舞曲でも踊りながら暮らせばいんじゃねえの? 理系院生みたいなのばかりになったら、いずれにしても終わるだろ。
286 :
仕様書無しさん :2007/11/03(土) 17:02:15
先月かなどっかのチームがリリース後に致命的なバグを出しやがった。 当然なんでそんなバグが出たんだ?って原因究明のため色んな禿たかにワチャクチャされてた。 結果、結論として外部レビューしてなかった。というところに落ち着いた。 (↑身内だけでのレビューだけをしていた↑) その尻拭いで外部レビューなるものが義務付けられた。 で、そのチームが作ってるシステムの仕様もわからない俺にもレビューア側としてレビューに参加することに。。。 んな余裕ねーよ と思いながらも送られてきたソースに目を通す。 ん ネストってこんなに深くできるものなの?目がいたいよ。 ん これは関数ですよね なんでこんな長いの? ん この条件には絶対入らないのになんであるの? ん コメントアウトした過去コードはもう消せよ どんだけ前のだよ ん あーifdefだ どっからどこまでifdefだ なんだこれとーらねーじゃん ん メモリーリークってしってる? ん ヒープがこんなに・・・・ おまえかRAM無駄に喰ってたのは おまえ まだなんかしこんでんだろーーー!! 他のチームのソースは笑えないけどおもしろい。けど関わるとロクなことがない。
ほら吹きがSEもどきやってるとそうなるよ。
馬鹿でもコード置いてくれれば、動くと思ってる丸投げ君たちがいるの?
まぁなんだ。 費用対効果を考えれば、正式なドキュメントなんていらないよな。 どんなにがんばったってバグなんてなくならないし、ザルのレビューなんか 受けても仕方がない。ドキュメントなんて書いても読むふりするだけ。 オレはちゃんと管理してるんだぞという証明をして見せたいだけ。 そのためにどれだけ多くの人員を割いていることやら 生命に関わるならそれだけの体制をとるのは仕方がないが どうでもいいものを作ってるのなら怒られたときの誤まり方勉強する方が コスト的にはベターだと思うし、現状そうなんじゃない?
どうしたら、責任まで丸投げできるかを必死で考えてるんじゃないの?
>>290 お前みたいな奴がいるから
日本の技術が駄目になっていくんだ
反省しろ
294 :
仕様書無しさん :2007/11/10(土) 20:20:12
組み込み系のOSにはどんなのがあるの? WindowsCE, Linux, TRON しか知らないんだが・・・
VsWorksとか
297 :
仕様書無しさん :2007/11/10(土) 20:51:17
FreeBSD
298 :
296 :2007/11/10(土) 20:54:09
VsじゃなくてVxだな
300 :
294 :2007/11/10(土) 23:22:39
>>295-298 トンクス
結構種類があるんだな
まだWIndowsCEで動作するのしか開発したことないけど、
次はTRONあたりの案件が来ないかなって思ってる
OS無しとか、独自のOSを作って使う、なんてのもよくある。
OS無しって想像できない。 一度OS無しで行こうという案件があったが、どう作っていいのか分からない ので客を説得してμITRONの導入を提案して無事OSのある環境で開発できたこ とあるよ。ハード変更(ROM増)になったけど。
小規模ならOS無しはデフォだな。tronOSあっても重たいだけ。 ドライバ層はデバイス毎に 書いて、それぞれの割り込みとアプリ層用の入り口を持たせる。mainループにはイベントque を設け、イベント[n]でイベント処理[n]を呼ぶ。インターバルタイマを2種類ぐらい作り、 (1mSと10mSとか、10mSと100mSとか)それぞれの適切なオーダーでソフトタイマ作る。 16bit ROM64 RAM16 CLK10M台 なんてチップでトロン乗せたらスレッドが100mS単位でしか 動かなかったり。上の手法なら十分リアルに動く。8bit用のtronもあるけど、誰が使うんだ(w
たしかにもっさりしてたな。よくなかったのか。
メインループと割り込みが ノンプリエンプティブマルチタスクで動くというだけだしな。 ミドルウェアの要請がなければOSなんて不要。
OSをいれないと動かないときの言い訳が出来ないからとか?
>>303 は「スラッシング」起こすようなヘボ設計やらかしただけかとも思うぞ。
本来の意味とずれるが、かちゃかちゃかちゃかちゃショッチュウなんかをしてる状態になっとると。 まあどうでもいいけどさ。現実確かに今は8ビットじゃ考えないんだろうな。
眠い。だるい。もうだめかもしれんな。
ecosとかOS-9とかニュークリアスとかQNXとかthread-Xとか。
313 :
仕様書無しさん :2007/11/11(日) 21:04:28
デジタル家電ならOS必須だけど、世の中には扇風機とか 掃除機とか作ってる人もいるわけで、 いちいちスイッチ読み取ってモーター回すだけの動作にOS介して動かすわけないだろ? 俺にはOS無しが想像できないやつがいる事のほうが想像できない
ものは使いようで、扇風機や掃除機にも複雑な制御入れて単価吊り上げる向きもある。
そもそもマイコン自体要らないじゃないか、
>>313 の物言いだと。
OSOSいうから大仰なんだけど、ITRON系のような軽いものなら、プログラム読みやすくさせて
バグ減らすだけのために入れたって引き合うことだってないとはいえないだろ。
brewはマルチ化失敗で死亡だしな。
>>314 >プログラム読みやすくさせて バグ減らすだけのために入れたって
うーん・・・それでもやっぱりリソース食うわけだから、
今の企業のコスト意識だとちょっと考えづらいかなぁ。
うちは逆にハードの製造コスト下げるために、
開発途中で1つのモジュールのCPUとOSが消えたことがある。
開発コストは最初だけだけど、製造コストはずっと掛かるからねぇ・・・。
研究用の実験機、とかならあるか
>>314 >プログラム読みやすくさせてバグ減らすだけのために
その程度のOSモドキなら自分で書く。ITRONなんて重い重い。
まあ、どっちがより良い方法かはケースバイケースだけどな。
>>316 「すでに量産してしまったボードを消化するためのプロジェクト」
開発期間:ちょっと 生産台数:残ってるだけ
というのもたまにはあるっしょ
ガスコンロなのに単一電池2本、メンブレンSWで操作してピー!って音で返事する。 これってマイコン載せてるよなあ・・・ チャタ取りと不感時間の設定がいい加減でよく2度押しになるし。
中じゃ平気でms単位でループで無駄撃ち。 何をOSと呼ぶかは定義によるけど、4ビットでもない限りは何かを入れたほうが整理できる。 「たかが」MAX64KBでも、結構ごちゃぐちゃになるぞ。
通信モノ作るときはさすがにOS(NORTi)買ったな。TCP/IPミドルウェアも 一緒に。 余計なトコでバグ出したくなかったから。 今までよりソースが綺麗で保守性も高くなったと思う。
322 :
仕様書無しさん :2007/11/14(水) 03:23:37
ある程度の規模なら、標準OS使ってさらに独自のラッパルーチンをかましてOSコールすると いう風に組む。 目的は、ソフト資産の蓄積だな。 CPUさらにOSも変わっても、処理ロジックはそんな変わらないから。
確かにまともな大手のソースはそうなってるな。
324 :
仕様書無しさん :2007/11/14(水) 07:29:14
大卒予定ですが組み込みPGで楽なお勧めの会社ありますか?
富士ソフト
ラッパかませられる奴がいるの?
ラッパってのは、単に似たAPIを同じ名前・手続きで呼べるようにするってだけの事だろ #define ならROMコストは増えないかもしれないが、 俺はそういうのは、屋上屋を架すっだって思ってるけどね。 当人はステキだと思ってるのだろうけど 結局、そこのローカルルールを増やして閉鎖性を増しただけ。 新人の必要学習量を増やすのに役立つだけさ 置換ツールを作って一気に置換した方がマシだろうと思う
ソース分割して、グローバル変数てんこ盛りとか?
コーディングルール上直で下位関数呼べないからラッパーかます というのはよくある。コンパイラの最適化で消えるけどうっとうしい。 携帯だけどね。
ほら吹きがラッパ吹いた。
でもさ、 屋根の上にもう一つ屋根を作る ってのは結構やると思うけどな ハード的にチャタリング取って、さらにソフトでチャタリング取るとかさ 通信なんかもエラー検出をあちこちの層で重ねて行うとかさ
チャタリング知らん奴が書いた仕様書で作って苦労したことがある。 最近のスイッチはチャタとかないのか当時思った。
組込みはやっぱ地方の工場に飛ばされるんですか?
そうです。 山登りとかを趣味するのが可。
>>335 ハードがわかってるなら、そんなことはないかも?
廃人になりたくないなら、別な道を見つけた方がいいと思う。
すでに廃人しかやってないんじゃないの?
廃人保険とかないの?
地方って言っても単に金の使い道が減るだけじゃん 何を困る必要がある
金貯まるっていっても使い道ないじゃねぇ 地方は車が必須だし
>>334 それより、どこかで聞きかじった知識で「チャタリングを除去するには二回スキャンしてAND取る必要がある」
と思い込んでる奴に、それが間違っていることを理解させることの方が苦労するよ。
論理的思考がない奴が組み込みやってるの?
いや、チャタリングってのは、パタパタがたかだか一回起こるものだと 思い込んでいたんじゃないか?
ソフト開発なら都市部が多くないか? 工場とかだったら郊外ってこともあるけど。
>>343 むしろ組み込みやってる時点で三流じゃんw
認めたくないだろうけど事実でしょ
組み込みにもいろいろあるからな。 三流未満も多いが、超一流も少しはいるし。
一流でも論理設計から論理実装まで研究でも開発やってるよ。 まあ、既に新製品発表会やってる家電ソフトの結合試験で苦しんでる三流とか色々。
おままごと大手にお勤めの方は多いみたいだけど...
土方の実装を鑑賞、研究する馬鹿大手社員?
土方に品質求める馬鹿大手社員?
自分じゃどう実装していいかもわからない馬鹿大手社員?
理想のマイコン、理想のOSがあると思ってるハード屋と話したことあるけど、 この人、配線すれば動くと思ってるような感じがした。
ハードとソフト両方いける人はそれなりに珍重されるのだろうか
変人扱いされるのは?
他に頼れる人がいません!
ということにしばしばなるわけだ
層で分かれるべき所の両側やるとどっちの問題か解らなくなる
>>359 他にできる奴がいるか考えるまでもなく、
そいつに頼めばどうにかなるでしょ。
なに作ってるのかわからない人たちがやれば、そうなるのでは?
ハード動かしてるのはソフト屋だからな。 ハード屋はいまはつないでいるだけ。 あとコスト計算ぐらいか。
確かにタイル屋という言葉が言われ始めて久しい。 んが、発言権がそのタイル屋より上回っていた例は聞いたことがない・・・
ハード屋は金を操る、ソフト屋は時間を操る。
ソフトに依存しすぎるとコスト高になるんじゃないの、ヘタレだと?
普通はソフト化すれば材料コストは安くなるはずだかね。 でも性能が出なければ材料どころではない。
>>364 たしかにそんな感じがしないでもないです・・・。
でもFPGAとかでロジックを作ったりしますよ。
やはり処理速度の点でハードは断然有利ですし、頭を使うところはあると
言えるのではないでしょうか。
>>370 そういう切り分けが出来る人があんまりいないみたいだよ。
372 :
仕様書無しさん :2007/11/22(木) 02:30:37
今の職に就くまでは組み込みに関する知識はどの程度あったのですか? 組み込みエンジニア募集(未経験者可)とみかけて本当について行けるのか気になったもので
>>372 知識だけで出来るなら、廃人になる人いないと思うけど
>>372 皆無
スタートアップルーチンの存在すら知らなかった
ステートマシンは名前しか知らなかった
ソフトはOSがないと絶対動かないと思ってた
負論理の概念を知らず、ONがなんで0なんじゃい!と怒り狂ったな。
ハード屋の都合でいつの間にか論理が逆転してるなんてよくあること。
つうか。 駆け出し・・・・いろんなことで悩む。すべてに頭が上がらない。 慣れてくると・・・1ビットのバグを真剣に悩む。ハード屋にいまだ頭が上がらない。 更に慣れてくると・・・ハード屋にもへぼがいるのを理解してくる。 腐ってくると・・・残業代を稼ぐために不具合を容認する。 昇天寸前・・・それすら馬鹿馬鹿しくなる。 昇天・・・どうでも良くなる。 神・・・すべては人事。
ネガティブだなぁ
正論理、負論理とか知らん奴が仕様書書く時代だし...
>>380 負論理って、本当の意味はそんな偉そうなことを言ってる君が思ってるのと
たぶん違うよw
っていうか、誰も突っ込まないところを見るとここの連中は
負論理のもともとの意味を誰も知らないんじゃないの?
知らんからぜひ教えていただきたい。 本当の意味と、元々の意味と、380の思っている意味を。
負論理って1=L, 0=Hって意味じゃあないの?
負論理は論理素子と電気の節約になるんだよん
388 :
386 :2007/11/22(木) 21:00:13
0VふむふむGNDにつなぐっと、 電源はっと、−3V? あれ?
負論理ってググればいっぱい出てくるけど 何のために使うかがあまり多くかかれていない。 信頼性と安全性のためらしいけどいまいちよくわからず。
L時とH時で電流流量が違うので、消費電力や安定性を考慮する際に都合の良い方を 選べるように正理論と負論理の二つがある、というふうに理解しています。
TTLでは閾値電圧のLow側が低くて正論理ではノイズの影響を受けやすいからなのかな? 割り込みとか高速動作が求められるような部分ではいまだにTTLが使われているみたいだし
ワイヤードOR でググると一例が見えるかもしれない
なぜヒントを小出しにするんだろ? いいたい事は言った方がすっきりするだろうに
ほら、「ハード知識のあるぼくちんってハイスキルてへ☆」ってのが沸いてきた。 まあいいけどよ
自分で調べないと学習しない っていう宗教があるみたいよ。
ようするに、昔はトランジスタだったんだよ。 グランド側を固定にする方が楽だから2SCのようなNPNのものが主に使われる事になる。 絶縁に良く使われるフォトカプラなんかもそうだよね で電子回路は5Vで動くけど制御対象のモータとかは12Vとか24Vとかなので、 トランジスタはエミッタ接地で使われる事が多い。この場合、トランジスタオンで0Vになる事になる という事じゃないのかな
398 :
仕様書無しさん :2007/11/23(金) 18:13:25
いわゆるバイポーラトランジスタを使用した論理素子の場合、その電気特性から 負論理にした方が電圧マージンが大きくとれてノイズに強いという事だな。 あと、OR回路を構成するのに単純にワイアードORで済む。 また、論理で「1」が意味ある状態で、その状態が短時間なら 負論理で「1」の場合のみ電流が流れるので消費電力は少なくて済むとか。 割り込み信号なんか、まさにこれらのメリットにドンピシャなので 未だに負論理が使われているとか。
399 :
仕様書無しさん :2007/11/23(金) 19:52:29
最後の一行「未だに負論理が使われているとか」って、 まるで負論理は古臭い概念であるかのように言ってるけど 今でも普通に使われてる概念だぞ。誤解を生むような言い方だな。
DIPSWが負論理になってるのは、電流を多く消費すると思いますが、これは何でなの?
401 :
仕様書無しさん :2007/11/24(土) 05:42:31
DIPSなどのスイッチ状態をICの入力ポートにつなぐ場合は 抵抗でプルアップまたはプルダウンを行なうよな。 プルダウンでつなぐとスイッチONでHighレベルが入力されるので これは正論理だよな。 スイッチのインターフェースは負論理だけとは限らんよ。
CMOS使えば電力は無問題
>>400 片方の端子をGNDにつなぐ事が多い。 そうすると スイッチはオンかオープンなので
プルアップする事になる。
そういう目的で1チップマイコンの端子は弱いプルアップが可能な機能があったりする。
>>402 DIPSWの場合はスイッチオンの状態で常に電流が流れてしまうのだから
CMOSとか関係ない。
無駄な電流を流したくないなら、片方の端子もポートにつないでおけばいい。
見たい時だけパタパタさせて、応答するかどうか見ればいい。
TTLのICは入力をオープンにするとHになる。 だからプルアップの方が自然だったんだろうな 4ビットのCMOSの1チップマイコンでも、出力はLしか出せないマイコンが多い
406 :
仕様書無しさん :2007/11/24(土) 15:01:44
オープンコレクタwww
つか、消費電力気にするような機械にDIPスイッチなんて無いんじゃ?
ウィーク プルアップはソフトで切れるので、 電池駆動なら普段はウィークプルアップを切って、ポートにはL出力をしておけばいいんだよ。
409 :
仕様書無しさん :2007/11/25(日) 23:30:05
組み込み系の開発って、アセンブリ言語は必須ですか?
アセンブリ言語って何だ? アセンブラ言語と違うのか??
>>409 昨今は必須って訳じゃない。
大きいシステムでは上物のアプリ開発が主ってのも多いし。携帯とかね。
デバイス制御もよほどシビアじゃなきゃCで書かれてるよ。
ただしこの場合は割り込みとかメモリとかマイコンそのものへの理解と
そのシステムでの対応方法への理解が必要になる。
プロセッサのリセットからCのmain()に飛ぶまでの処理に関わるなら必要な位かな。
ふつー 「アセンブリ言語」 「アセンブラ」かな? 「アセンブリ言語」の処理系が「アセンブラ」 「アセンブラ」の言語が「アセンブリ言語」
>>409 読むことができれば、
コンパイラが吐いたアセンブリ出力を最適化のヒントにするとか、
最適化かけたコードをトレースするとか、いろいろできる。
一方書くことに関しては、OSの実装とか特殊な場合以外いらないだろ。
ということで、必須とまでは言えないかな。
アセンブラに頼らないとできないことを考えてみる。 ・スタックポインタの再設定 ・キャリーフラグを活用した多倍長演算 ・ライブラリで対応していない特殊命令の使用
415 :
仕様書無しさん :2007/11/26(月) 00:20:19
組み込みって最近人手不足と聞くけど派遣だとどれくらい貰えるんですか? javaやVCとかの派遣は架空案件で釣って、いざ面接すると値切られまくりでウンザリです。 募集3700円/h→登録2500円/hとか募集55万/月→登録40万/月とかどこも架空案件ばかりです。
>>415 それは君のスキルの問題。
その数字をもらってる人もいる。
むしろそれ以上の単金の方が普通。
つか、組み込みでそれ以下の単金なんてひ孫偽装くらい。
組み込みって、派遣でこられても役に立たないことが多いんだ。 役に立つ人は80万/月〜120万/月取られてる。
418 :
409 :2007/11/26(月) 01:24:01
レスありがとうございます 最低でも読めるように勉強します
多くは 仕事回してるほうが仕事を回せない(切り分けて人に説明して効率よく仕事させるスキルが皆無 脳内仕様書しかない、我流でぐちゃぐちゃのソフトしか「資産に」ない)という理由によるがな。
420 :
仕様書無しさん :2007/11/26(月) 18:57:05
まーだ、そんなレベルなのか?良く耐えてるねぇ〜
でも、おまえ自分の仕事簡潔に説明して、1日で他人に引き継いでさよならできるかい?
雑用分けるの旨い人はいるけどねえ。
丸投げ君はわんさかいるみたいだけど...
雑用は作ってるんだよ。うまそうに見せるために。 ○投げ君は・・・まあねえ・・・。
あと「問題」解決するのがうまい人とかね。
トラブルメーカーです
そらマッチポンプだ。
429 :
仕様書無しさん :2007/11/27(火) 02:04:50
>>412 そのとおり!
言語を「アセンブリ言語」という。
処理系を「アセンブラ」という。
処理系にかけて、オブジェクトを吐き出させるのを「アセンブルする」という。
ちなみに、古い人は、「アッセンブラ」とか発音してたな。
年齢にして60を超えた団塊層の上。
アイロンやミシンみたいなもんだろ そんな瑣末なことに目くじら立てんじゃねーよ
最近の子は命令表とか読めるんかね?
>>429 アセンブリをアセンブラでアセンブルする、と覚える。
工場では小物部品のことをアッセンブリと言ってたな。
小物部品? 組み立て済み部品のことだろw 英語知らんのか
車なんかの部品で「ASSY(アッシイ)」という略語はどうなんだろう
ASSYは江戸語での一人称だよ
運転手の事だろう
438 :
仕様書無しさん :2007/11/27(火) 20:46:29
山田くーん、こいつ等削除して。
moduleとassemblyの違いは何?
moduleは部品 assemblyは作った部品
442 :
仕様書無しさん :2007/11/28(水) 09:33:35
>>442 組み込みと関係ない。組み込みは注目されないから関係ないし。
そこで僕はこう返してやるんだ コピペ君って馬鹿だな、まで読んだ
>>442 税金泥棒の天下り法人、まだ生きてやがるんだな。最近組み込み系にも手を
出して来てるので注意汁。
このスレ、シグマOS被害者とか多いかも。当時UNIXやってた技術者が最近は組み込みで
食いつないでることが多そうだし。
組み込みは人間性を捨てられるかどうかだもんな。 シグマでひどい目にあっていれば組み込みもありなん。
ウルトラでスーパーなシグマ?
CElinuxで騒ぎまくってた奴はNEWS残党だった、とかあれか・・・
「シグマでひどい目」を見て真っ先に思いついたのが 3シグマとか6シグマとかそういう話かと思った俺はどうなんだ・・・ 6シグマ、ツラス・・・・・・orz
450 :
仕様書無しさん :2007/12/09(日) 21:41:47
組み込み系だと やはりC言語が主流ですかね? 皆さんCですかね?
C++
最近はJava
うんにゃ。 452じゃないけど、ドライバがJavaなコトもある。 まぁうちのメインはCだけど。 C++も少なめ。 あとは・・・一部Schemeとか・・・
処理シーケンスの記述がJavaとか、そんな感じ? まるでインタプリタ積んでた昔のパソコンのような組み込み機もあるんだぁ
456 :
仕様書無しさん :2007/12/09(日) 23:07:37
そうですか Cを分かっていれば C++を習得するのはそんなに難しくないんですかね? ってか俺が来年就職するとこは Cなのかなぁ... まぁハード設計に徹するのかもしれないけど...
>>456 CとC++はまったく別の言語。一部共通部分があるだけ。
Cを知っていても、C++は使いこなせない。
まあ、C++をCのように使うこともできるけど。 組み込みだとC++の便利なところを使おうとしても使えない場面も多々あるし。 だけどC++とCとは根本的な思想の部分が違っている。 そこがわからないとC++を習得したとはいえない。 俺もかなりC++の経験はあるけど、全部理解したと言える自信はない。
459 :
仕様書無しさん :2007/12/09(日) 23:53:18
そうなんですか.. 自分はCくらいしか分かってないので.. ゆくゆくは組み込みもJavaが主流になるって聞いたんですけど Cだけじゃもたないかぁ... アセンブラも知らないしなぁ...
>>455 ふつーにVM積んでたりとかあるんよ
オレも見るまではそんなのねーよ派だったから気持ちは察せる
>>459 うちもCがメイン。ごく一部にC++。表層でC#が使われだした。
Cのポインタと再帰が理解出来るだけの頭を持っていたら、他の言語に進むのはそんなに難しいことじゃない。
ただし、どんな言語を使う場合でも、一定の経験(時間)が必要。
組み込みの分野でC言語が廃れるなんて、現時点では予想も付かない。
悩んで色々中途半端に手をつけるよりは、C言語をとことん勉強してみたら?
> だけどC++とCとは根本的な思想の部分が違っている。 それはわかるけど、 仕様的にはC++はCのほぼスーパーセットじゃない? Cの理解にあいまいな点があれば、即C++では同じ点で躓くわけだし、 まずはCという考えはそんなに間違っていないと思う。 アセンブラは、Cのmain()にたどり着く前が問題になる組み込みでは、 嫌でも触らなくちゃいけないから、必要になった時に必要なことを 学べばいいように思う。
>>462 >仕様的にはC++はCのほぼスーパーセットじゃない?
結局、そう思ってるうちはC++マスター出来てないよね
ということを
>>458 は言っているんだと思うよ
組み込みlinuxやってるから、asmからC,C++,シェルスクリプトまであるよ。。 armのjavaVM付きとかだったらjavaもいいかもしれないね。 使ったことないけど。 C++はGUI用にしか使ってない。ボタンとか、そういうパーツ用。
プログラミング言語C++を読む限り、『Cでここまでやった俺ってSUGEEEEEE。お前等俺をもっとほめろよ』 と言ってるようにしか取れなかったが?
466 :
仕様書無しさん :2007/12/10(月) 07:19:25
やっぱり組み込み系はCが基本なんだよなぁ Cを徹底的に叩き込まないと
S社のOSで組み込み系だが、ドライバまでC++だぞ…
一言で組込みって言ってもリソース量の幅はかなりデカイからね。 リソースがショボい組込みと豪華な組込みは別世界だよね・・・。
>>462 確かに仕様上はC++はCのスーパーセットなんだけど、
C++はCの面倒な部分を隠すことが可能だから、
ぶっちゃけ、vectorとstringとfstreamだけで
イテレーターすら使わないって条件なら
ポインタなにそれ?メモリの確保ってなあに?
って奴でも最低限動くものを作れないわけじゃない。
生C++やったことないや。 大概出来たクラス使うだけで。
生C++って何だろw
ROMに焼いてない奴とかじゃね?
ROMに焼いたC++なんてどれだけの人間が触った事あるんだよw そもそもそんなもの存在するのか?
C++の機能という機能をフルに使って、 有り物を使うだけじゃなく、自分でクラス設計やって、ってことでは。 あまり多くなさげか。
C++の機能を使い切るのは組み込み向けでは夢のまた夢 オープン系でも使い切るのは至難の業だろ Boostの開発やってる人くらいじゃね? そもそも全ての仕様を満足したコンパイラって何がある?て状態みたいだし
LAMPスタックとかでの開発のことを「オープン系」と言うのも かなり一般化してきたのか?
>>476 あれこれいちいち反論するのももう面倒くさいからな
クラサバとかネオダマとか言ってた人が登場する悪寒>オープン系 横道の茶々はともかく、漏れもC++の全機能とか把握してねえw
479 :
仕様書無しさん :2007/12/24(月) 00:19:31
組み込み系は Javaが主流になるんですかね? やっぱりC?
今も昔もアセンブリ
組み込みの分野自体が分かれていくんじゃねえかな
RISC系のCPUでアセンブラはキツいよな。出来ない事無いけど。 最近のx68系だってCPUに効率よく分割処理させられる為にコンパイラ必要だし。
x68使うならもうほとんどの場合Linux積んじゃうからなぁ
x68って?
シャープのあれだな
486 :
仕様書無しさん :2007/12/24(月) 15:59:04
遅延分岐とかいろいろ考えながらアセンブラで組むのもう無理だろ コンパイラ様様だよ
487 :
仕様書無しさん :2007/12/24(月) 16:22:39
Java使ってる人は少ないみたい? やっぱりCかC++ なのか
javaで組み込みって出きるの?
javaでIOをアクセスするサンプルコードとかある?
491 :
仕様書無しさん :2007/12/24(月) 17:37:58
メモリマップドIOなんだから普通に変数に代入するのと一緒だよ
組込と言っても所詮アプリ層だろ? javaでもBASICでもお好きにどうぞ。
javamvをFPGAにしたら速いかも
javaで固定アドレスにアクセスするためのコードを提示してくださいw
>>496 使ってるVMが用意してる特製API見ろよ
他にもメモリ消費ゼロの標準出力ストリームとか大抵用意されてる
>>497 たかがIOにアクセスするだけで関数呼び出し。
しかもコンテキスト切り替えが起こったりする。
nativeアクセスが入るとデバッグもメンドクサイ。
組み込みにjavaは不要。
499 :
仕様書無しさん :2007/12/24(月) 22:49:31
監禁されてはや1ヵ月・・・ 組み込みはつらいのぉ
>>498 不要かどうかは現場で決めるんじゃない
会議室で決まってるんだ
マイコンの組み込みってハードが悪いのかソフトが悪いのかすぐに切り分け出来ないから辛い。 あとマイコン間の通信規格もメーカによって色々あってだるい。
>>503 根本的に組み込みに向いてないねあんた。
ハードかソフトかのせめぎ合いが面白いんじゃないか。この業種。
この石でこのクロックじゃ到底できない、って機能を超絶技巧で実現するのが面白いんだぞ。
超絶技巧w そういうのは趣味でやれよ。 っていうか、やってないし、やろうと思っても出来ないでしょそんなこと君には
配線すれば、動くと思ってるハード屋に当たると最悪...
俺は最近そんな仕事ばっかりだ メンテナンス性との折り合いが大変だよ しょうがないから、カリカリのところだけ隔離できるようにしてる 無理な要求されるとこうなるんだよな
>>483 うちの会社、GPLv3注意報が発令された。
だーりー
ハードがらみを切り出すって、それを普通人はドライバと呼んでたりしない?
511 :
仕様書無しさん :2007/12/25(火) 23:03:18
一般的に組込みの世界にドライバっていう概念なくない? 上位層はアプリって言ったりするけど、ドライバ層が普通だからあえてそんな呼び方しないみたいな
512 :
閻魔 :2007/12/25(火) 23:09:06
>511 割り込み使って、H/Wのポートをたたく。 これが、ドライバーだとおもってるが。。。
そりゃ唯一無二のハードウェアリソースのためにドライバなんて書かねえけど、 規模にもよるだろってことだよな。
ポーリングポーリングじゃあべつになもいらんで。
515 :
閻魔 :2007/12/25(火) 23:17:13
>>514 通信のはなしか?セレクティング?ポーリング
割り込みによらない状態変化のセンシング方法がポーリングだから、通信に限らないんでは?
517 :
閻魔 :2007/12/25(火) 23:25:30
>>516 そうだね。
でも、組み込みで、タスク間でのポーリングは、やらない。
518 :
閻魔 :2007/12/25(火) 23:26:59
組み込みでも、イベントでキックするよ。
520 :
閻魔 :2007/12/25(火) 23:28:24
今日は。寝ます。反応してくれてありがとう
>>516
521 :
閻魔 :2007/12/25(火) 23:29:51
>>519 割り込みのドライバで、イベントが発生したら、sta_tskでタスク起動。
誰かを探すために定期的に書き込みをするのもポーリング?
523 :
閻魔 :2007/12/25(火) 23:30:53
ははは、ナイス
524 :
仕様書無しさん :2007/12/26(水) 01:26:11
「割り込みのドライバ」って何?
どんな文脈で出てきたんだ? ふつうはXXデバイスのドライバとかの使い方するぞ。 割り込みは使う場合も使わぬ場合もあるが、「デバイス固有の駆動手法を抱え込んで隔離」 することと、「アプリ層に対してread/writeレベルの機能として見えるインターフェースを提供」 することがドライバ層の役割だ。
>>521 sta_tskって汎用表記?
じゃなけりゃ...
なんとなくトロンっぽい関数だな 組み込みではOS無しのシステムしか組んだことないから詳しくは知らんけど
>>529 ざっとタイトルだけ眺めたが、
基礎的なことから比較的新しい内容まで含まれてるみたいだし、悪くないんじゃね?
実用的かどうかは知らんが。
そんな愚問を発する質問者の実用性は推して知るべしw
532 :
仕様書無しさん :2007/12/26(水) 22:41:22
>>527 sta_tskはμITRON仕様のAPI
タスク起動
>>486 速度のためには無理でも何でもやらなきゃいかんこともある
コンパイラは所詮、コンパイラ
>>534 遅延分岐くらいならともかく、
命令パイプラインを考慮したときはコンパイラには到底かなわない。
コンパイラの吐くアセンブリを見ながら、
Cソースを調整していくのが効率よさげ。
536 :
仕様書無しさん :2007/12/27(木) 01:44:52
あの くだらない質問かもしれませんが Cでgoto文を使うのは 誤法度なのでしょうか? 素人がやたらgoto文を使うのはよくないのですかね? 組み込みの仕事で goto文を使う事はよくありますかね? くだらない質問ですいませんm(_ _)m
組み込みに限らず構造化プログラミングを守っている限り使っておk
>>536 ご法度ではない
限られたいくつかの場面ではgotoは有効
だが、「gotoを使ってもいいよ」というと、なんでもかんでもgotoで解決しようとする輩が必ず出てくるので
能力が高くない人がいるプロジェクトでは一律に「goto禁止」とすることもある。
むしろ「一律禁止」の方が害がないんじゃねえのか? 「おれさますきるたかいよ!うほ!」ってゴリラはたくさんいるからな。
gotoを一律に禁止しないと可読性が落ちるコードを書き出す人間は そもそもプログラミング禁止にする方が実効的だと思う。
多重ループ脱出か、使わないと変なフラグを使わなきゃいけなくて可読性が下がるときだけだな。 関数内の途中リターン禁止とか、下手するとbreak禁止みたいな変なルールすらあるが、 アルゴリズムを見直しても可読性が下がるだけならそんなルールは破ったほうがいい。
542 :
仕様書無しさん :2007/12/27(木) 15:23:38
そうですか 意見ありがとうございます。 あと お聞きしたいのですが 自分は来年 組み込み系へ就職しますが 仮にC言語だと1つの仕事で大体何行くらいのプログラムを書きますかね? まぁ仕事の内容にもよりますが... 皆さんは Cだと何行くらいのプログラムを書く仕事をしていますか? 参考にさせて下さい。
行数は関係ないよ。
千行から1万行の間くらい
15年前、G4ファックスボードのプロトコルを担当した俺が来ましたよ。 某電力会社の光ケーブル検査システムのアプリも作ったな。
>>536 乱用はいかんがここぞという時のgotoは使っても良いだろ。
昔gotoは嫌だと言っていた奴がlongjump使いまくりで萎えたな。
最近のtry〜catchてんこ盛りのソース見ると更に萎える。
547 :
仕様書無しさん :2007/12/27(木) 20:37:24
考え抜いて、行数少ないほど、真の一流!
>>542 C言語のソース(テキスト)をLZHで圧縮して結果1MBくらいだな。
行数なんてわかんねぇよorz
549 :
仕様書無しさん :2007/12/27(木) 20:38:08
1000〜10000行位かぁ
if (x > 0) { for (i = 0; i < 100; i++) { 〜〜; 〜〜; } return true; } else { return false; }
コーディング期間4ヶ月で10k〜12k行くらいのモジュールを4つ受け持ったな。
むか〜し、N○Cの作業標準で、「一日300行」 ってのがあったな(w
>>541 純粋な(副作用のない)関数的なコードになるように、とか、意味がこめられていても、
たいてい世の中機械的に適用して、なにかやった気分になるだけだからな。
学生の時5000行くらいのプログラムをかけるようになったら、 後は何行に成っても同じといわれた。 今になってみると、うーん。。。なんともいえんな。。
>>554 10万行くらいに壁があるような気がする(まともに設計してないと死ぬ壁)
そうだな 確かに数万行程度までなら把握できるけど 10万行超えると無理だ
HEXまで落とした時点で、容量が64Mこえてますた 焼くのに15分も掛かります
行なんか関係ないだろ。 階層構造にしときゃあ、何億行でも大丈夫。
1000倍違うと 「量の差」 ではなく 「質の差」 が現れる。 1K行の1000倍が百万行、winとか、大規模業務ソフトなんかがこの辺り。 億のオーダーが同じアーキテクチャで作れるとは思えない。
>>558 が正しい。
>>559 みたいな人は抽象化って概念がよくわかってないか、
酷く誤解してるんだねきっと
>>560 俺には
>>559 は何も間違ってないと思う。
いい加減な抽象化でも規模が小さければ大した矛盾もなく実装できる。
しかし、規模が大きくなると閉鎖になったピョンヤンの巨大ホテルみたいに
同じ階なのに途中で階段を作らないと通れなくなったりする。
>>559 の数字が正しいかどうかはともかく、ソースのサイズはある程度目安になる。
>>559 確かにちゃんとしてないコードがそのまま肥大化していくと
明確に質の差が出てくるな
でもそれはもっと早い段階、それこそ10万行あたりで
すでに露呈する気がする
抽象化されてない膨大なソースを一人で面倒見せられてさじを投げた俺が通りますよ
>>558 はソフト屋としてわかる感覚。
>>559 は組み込み屋としてわかる感覚
>>560 は組み込み屋か?
組み込みの場合、速度やらメンテナンス性やら考えて抽象化のレベルを変えたり
しなきゃならんこともあるだろうに。
ないのか?ないのか?。
俺だけ?、そんなぎりぎりのリソースでやらされてるの。。
In a recent blog post, Steve Yegge argues that the worst thing that can happen to a code
base is increased size, and suggests that developers should consider programming
languages on the basis of how concise a code base a language can facilitate.
http://www.artima.com/forums/flat.jsp?forum=276&thread=221157
コピペ君って馬鹿だな、まで読んだ。
567 :
閻魔 :2007/12/30(日) 00:19:02
>>536 絶対ありえない。GOTO使う理由がわかれば、謎は解けるw。
ただ、戻り値のある関数で、途中で(return 1;)として
「まだ、処理の途中だから、もう一回実行して。。」
ってゆう、パターンは使う・
すべて正常終了したら(return 0;)
>>542 行数か?
そんなのかんけね〜。
例えば、算数しかしらない小学生にプログラムさせると
100年かかって1万行のコードを書いてくる。
大学生にプログラムさせると10分で10行のコードで
完成させる。
で、質問です。
いま、組み込みに最高なマイコンは何ですか?
俺はM16Cが好きなんだが。。。。
568 :
閻魔 :2007/12/30(日) 00:35:52
Smalightは知っていますか? 組み込みOSらしいのですが。。。 「Wikipedia」の話ではなく、実体験を聞きたいんです。 俺? xxxxを破壊されてました。w
何この糞コテ
なんかの固有名だして悦にいるって奴は 今までいくらでもいたからねえ。 そういう文系理系はこの業界からあっというまに消えていくけど。
何にでも頭突っ込んですべて中途半端って感じだな。 まるで自分を見ているようだ。 w でもさー、もし仕事でμITRON 使ってるんだったら sta_tsk の使い方をもう一回調べなおしたほうが いいんじゃね? >> 閻魔 割り込み通知(発生時??) に sta_tsk は使わねーべよぉ。 w
572 :
559 :2007/12/30(日) 05:16:46
>>564 俺は組み込み屋です。560は違うだろうね。来年で40年目に突入、うち23年がクミコ。
俺がやると、なぜかROMが半分で済むよ。それで石のグレードダウンをこちらから提案したり。
誰かがリソース気にせず作った奴を引き継いでるのならお気の毒です。
拡張性のことを持ち出して、数十円程度出せばROMの多い石にできる、とか言えない?
まあ、そんだけの経験年数で続けてるって事は発言力がそれなりにあるんだろな。 だから「それは無駄」とか「こうしたほうが」って意見が通るからコードが短くなるんだろ。
ROMが少なければそれでいいのか、というのはあるぞ。 その場数百円ケチれてえがったのう^^ってのたもうても 人が変わって保守しようとすると、再開発以上のすさまじい工数がかかったり。 今はもうそういうのははやらないと思われる。 癒着したスパゲティ引き剥がすのってのは大変だぞー。 作り捨ての特注一品ものなら何でもいいんだろうけどよ。
組み込みで一番ROM削減に利くのは仕様の削除。
それには同意。
>>574 百円違うと累計10万でも1千万円
使い捨てのプログラマなら3人は雇える。
あのな。 ・そこまでぐちゃぐちゃなプログラムの保守、単価年300万の使い捨てPGには不可能。 (というか、年300万で使えるPGなんか存在するのかいまどき。中国ベトナム発注したって無理だぜ) ・しかも普通のプログラマは逃げる(考えてみろ、いわゆる箱根細工ほぐして改造せなならん上に ぎちぎちの制約残ってるんだぜ?) ・10万個も作るならテスト工数も考慮しなければならない。(つか専門テスター使うだろ) 世間知らずの馬鹿学生乙。
世の中、年間5件も注文が来れば大量受注になるシステムがあるってことを忘れないでください
>>579 100円/個もコストが違う程のサイズはフラッシュだとしても128kbyte以上
それだけ小さく作られている=
それだけ職人技と仕様制定のスキルがある奴が作ったコードは逆に読み易い。
ただし、メインテナンスする奴が同じサイズで作れるとは限らない。
まあ無理だろうけど、上の容量もので作り直せばいいじゃない。
>>579 小さく作られたコードが必ずしも保守性が悪いわけではない。
逆に聞くが メインテナンスしたいとしたら、100Kと200Kのどっちのコードをメインテナンスしたい?
200Kのコードも100Kのコードも同じ納期、同じ予算だとしてさ
まとめ:ケースバイケース
えっとねえ。 世間にはROM効率の悪い石とROM効率の良い石というのが存在してるんだよね。 基準を8ビット60KBで何とか実現可能だったものとして、機能追加高速化込み C言語化してなどで石を変えるとすると・・・。 16ビットCISC=128KB 32ビットRISC(少しは効率考えてる)=256KB 32ビットRISC(効率無視)=384KB てな例もあるんじゃないのかねえ。 で、職人気取りのスパゲッティさんにお任せすると確かにコードは減るんだけど 後で保守できなくなる。 特殊例だが、60KBぎりぎりに膨れたROMを48KB以下に減らせって話は昔あったと思う。 要求にこたえたソフトはとてもじゃないが読めない・・・。
48Kに圧縮したのは、それだけ手間をかけてもコストメリットがあったからだろ? だいたい60Kのコードが読めるんなら、メインテナンスはソッチでやればいいだろうに。 バカ?
馬鹿、って発注してくるメーカーの連中に言ってみろよ。一度削ったらめったなことじゃ増やさないしな。 で、保守改造は当然のごとく「削った後」のソースぶん投げてやらせようとするんだよなこれが。 元ソース?そんなもの渡すわけないし、ハードが違ってて使えない、ということになってる。 ひどいとこだと散逸してる。
>>584 話題に上っていないCPUの種別によるROM効率の話は 詭弁のガイドライン6に該当いたします。
また職人気取りのスパゲッティさんのお話は詭弁のガイドライン11に該当すると思われます。
>>586 それは発注者側の問題で、あなたが選択出来る問題ではありません。
その発言は、あなたの発注者にとってROMサイズのコストが 貴方の労賃を上回っているという確認にしか見えません。
ROM化するプログラムで、可読性や保守性を犠牲にしてアセンブラでソフトを詰め込むのは正か邪か、という話。 【かなり前】 ・半導体コスト高い、ソフト規模小さい、アセンブラ主体、スパゲティ概念なし。 →職人芸でソフト規模小さくして、高速化するというのがまあ正しかった時期。 ROMはあるけどRAMは無い、という状況もあり。 【ちょっと前】 ・半導体コスト高い、ソフト規模大きくなってる、C言語化ちらほら、品質問題、保守問題散見。 →人も増えてきて職人芸じゃバラツキがひどく問題になってきた時期。 →この時期に保守改造ということで、過去のものをさらにいじくったものがスパゲティ化してたりする。 →マイコンのROMコードサイズ削減、というのが売り物にされるのはこのころから。 【今】 ・半導体高集積化、ソフト規模肥大、高級言語どころかOS導入、品質問題で世間の耳目集まる。 →職人、個人レベルではどうにもならない問題が山積みになってきており、ROM化した上での オブジェクトサイズの問題より、人件費や納期の問題のほうが重視されるようになってきている。 どこでも、【かなり前】の時期のソフトをいじり倒して現在に至り、どうにもならなくなって問題視される例はあるだろ。 まあ、バブル時代の不良債権を持ち越して整理もしていないうちに辞めていく団塊世代の遺産とでも いったものに、苦しめられてる連中もいるってことだろうねえ。
>苦しめられてる連中もいるってことだろうねえ そりゃいるだろうけど、それが仕事。 仕事が選べる立場なら断ればいいわけで 断った仕事の悪口を言う奴に次から仕事そのものは来なくなるだけ。 仕事も選べない立場なら、見苦しいだけ。
>ROM化するプログラムで、可読性や保守性を犠牲にしてアセンブラでソフトを詰め込むのは正か邪か、という話。 なら、正に決まってるじゃない。 俺だってCソースが吐き出したコードから削れる部分を削るようなのを自作してるよ。 まだまだ思った性能は出ないけどね。 手作業でやるってのは愚かだろうね。
別に
>>590 の感情はどうでも良いんだよね。
ROM化するプログラムで、可読性や保守性を犠牲にしてアセンブラでソフトを詰め込むのは正か邪か、という話。
くどくなるけどこれだけ。
2007年現在では、はっきりいえば邪なんじゃねえのかなあ。業界全体では人が足りないとかいってるんだろ?
だったら、過去の詰め込みをきちんとした形に直して保守できるような奴は、もっと生産性の高い仕事に就いたほうが良いし、
経験の足りない連中は、そんな邪なソフト見て変な癖つけないほうが本人のためだと思う。
どうも、昔書いたものを今の奴にぶん投げようとして相手は馬鹿だからできないと詭弁を弄する老人の
物言いに近いものを感じるんだけど違うのかなぁ?w
>>591 だから、状況依存だろ?
RISCマイコンでパイプラインまで含めて、コンパイラより頭のいいコードを自分でアセンブラ書いて
直すのが、正しい場合とそうでない場合がある。
大体、9割の奴は何かしら見落として失敗するのが普通じゃねえのか?
高級言語化の意味がなくなるしな。
>>592 > ROM化するプログラムで、可読性や保守性を犠牲にしてアセンブラでソフトを詰め込むのは正か邪か
結局コストの問題でしょ?
トータルコストがその時に上回っている方を選択すればいいだけの事。
将来の話なんて詭弁。 そもそもCだけで組んでも可読性や保守性が保たれる保証は誰もしてくれない。
それこそ10年後には、
#ROM化するプログラムで、可読性や保守性を犠牲にして【C】でソフトを詰め込むのは正か邪か
なんて話になってないとも限らない。
>昔書いたものを今の奴にぶん投げようとして相手は馬鹿だからできないと詭弁を弄する老人の
相手が詭弁だと思うなら、しっかり反論してごらん。 それが出来ないお子様だからいつまでも使い走り。
そのままコード毎、捨てられるんだよ。
>>593 ほら、またRISCマイコンの話にして逃げようとする。
SHのようなアーキテテクチャで速度とサイズを両立させるのは確かに難しい。
コンパイラの性能があって初めて使えるアーキテクチャなんだから、
そもそも[アセンブラでソフトを詰込」そのものが難しい。
そんなもん持ち出すんならDSP持ち出すぞ!
>>594 現実に、Cで書くことがすでに効率を落とすとされている現場もある。C++飛び越え、Javaじゃないととかな。
将来のことを考えずに、というのは、巡り巡って自分のことを考えないというのと同義じゃないか。
顔を見たことも無い将来の保守やるやつのことを考えて設計するのが本来のプロだろうが。
ひっくり返せば、「今目の前のプログラムやっつけとけばいいや、あとのこたしらね。また困れば飯の種にできるな^^」
ってのが、正しいってことなのかあんたにとっては。
1人1生1カーネルか。
年末年始だから暇なおっさん(じいさんか?)熱くなってるのかねえ。 いま、現在ではRISCマイコンがほぼ主流だろ?案件としても。 DSPは某社寡占で、C++でも書けますよーとかいってなかったかなぁ。ツールで実験した結果を そのままぶち込めますよ〜なんてのが売りだったような。こうなるとモデルしか見ない奴まで出てくるよな? 実は、Z80ぐらいの石の需要はたくさんあるんだろうけど、ニモニック暗記の爺さんたちが抱え込んでて たまーに若いのに振ってもできないから(説明することすら連中できなかったりするんだけどさ・・・) なかなか一般的とはいいがたいんじゃないの?(それにここ、2ちゃんだしな)
潜在的なバグが発覚して、苦労してる人がいそうな?
>>596 将来を見据える? だったらなおさら金が大事。
将来の為には コードで残しておくより今現在利益で上げる方が余程大事な事。
その視点がどうして無いわけ?
ROMサイズで100円 開発に500万余分にかけてでも500万の利益を残しておけば、将来どれだけの余裕になる?
金は複利で増えてくれるし、金は発言力にもなる。
コードは時間と共に腐るばかり。
10年もしたら、結局は作り直し。
俺はJAVAだのC++だの今の時点で組み込みで使う奴の気持ちが判らんね。
どっちにしてもアセンブラにするところは できるだけ小さく絞ったほうが良いと思うぞ。
500万の利益? マスクでないにしろ、仮にフラッシュであったとさえしてもだ。 不具合出せばそんなもの消し飛ぶじゃないか。 量産不具合に準備金積んでる現実だって理解するべきだ。 あんたのいう発言権など、一回不具合出せば量産品では消し飛ぶよ。
>>603 その通り。 不具合を出したら消し飛ぶ。
だからキミ発注者に言われた通り、指示通り。
こちらから何か提案する事もないわけだろ?
だって提案するって事は常にリスクを抱える事だもんな。
だからいつまでもお子様扱いなのさ。
100円で1千万の差があるなら、そこをあえて提案するって事は、不具合はもちろん出さない自信があるから出来る事。
だからその提案者は信用されるし、その浮かせてあげた金の分さらに信用も築いてゆけるわけさ。
逆に言えば、そういう事をキミらが出来ないから俺達年寄りがいつまでも仕事しなくちゃいけないわけだ。
組み込みといってもいろいろあるわけだから、状況によって最適な方法を選ぶのが普通。
ケースバイケースってのはまあそうだね。
>>605 は、量産品作ってるメーカーの内実知らないのかね。
不具合対策の予算(昔はマスクミスへの引き当て金)ってのはあるんだよ。
>>604 タイプの爺さんがくっつけた火を消すのは大変なんだよ。
老獪なだけに逃げ足も速いから。
CからアセンブラにしたからROMランクが下げられる ってのはオイラはあんまし経験無いな。 データ圧縮でROM半分とかはよく提案するけど。
>>608 元の話は、単に小さいコードという話だったんだけど、
突然
>>592 が アセンブラで小さくという話を持ち出しただけ。
まあ、詭弁のガイドラインの・・・・こんな所の議論でも勝ちたいんだろな。
元は同じCで書いても、当然差が出てくるという話だった筈。
そもそもアセンブラレベルで100K埋める奴が実在したとしたら、それはもう超人レベルの話。
>>607 その引当金と500万節約できることにどういう関係がある?
アセンブラで100K超えるだけなら、昔はあったぞ。 Z80でバンク範囲決めて切り替えるとかな。結構複雑なアプリ。 その方向で8ビット系のCPUで拡張アドレス使えるのはあったと思うが? 無論構造化されているのは当たり前だけどねえ。
保守性さげるとROMが小さくなるってのも それもあんまし経験ない。 保守性あげて整理したほうがむしろコンパクトになるよね。
>>610 リスクとのトレードオフだなあ。凡人なのに俺は達人だって会社ごと轟沈させていった剛の者もたくさんいるだろ。
>>611 マクロアセンブラ全盛の頃は確かにあったけど、
それは今とはROMサイズ/開発時間 の比が1桁以上違っていた頃の話。
4Kbyte埋めるのに1ヶ月かけてたような時代。
構造化なんてサイズをあげるだろ。 サブルーチンリターンなんて使わないで すべてBRでやるんだよ。GOTOじゃないぞ。 インタラプトもRAM食うから禁止ナ。 ポーリング待ちでアイドル処理入れろよ。 サバイバル時間はμ秒だかんな。 んじゃあとよろしく。オイラは明日定年なんで。
BR ? 相対ジャンプか? なんでRET命令の代わりに使えるんだ? レジスタ分岐とかなら判るんだが IBMの汎用機世代の人?あれはCALL/RET持って無いから仕方ないんだろうけどさ
>>617 引数に戻り番号をもって呼ぶんだよ。
組み込みだとコールは有限個だからな。
8ビットなら256箇所区別できる。
? それでなんでサイズが小さくなるんだよ
>>618 コールが有限個って?
確かに、PICとか4bitマイコンではネスト数には厳しい制限があるけど
ネストが有限なのと、コールが有限ってのは違うだろうに
今朝からこういう頓珍漢な事書いてる奴って同一人物なのか?
それとも今の使い捨てプログラマってこういうレベルなのか?
ん?RAMサイズは小さくなるだろ? ちなみにPOP,PUSHも禁止ナ。
別に4bitやPICで鍛えた俺には、POP/PUSH禁止なんてへでもないぜ
なんとなく見えてきたよ。 結局、こういうレベルだと他人のコードが読めない。 短いコードのせいではない。 短い長いに関係なく読めないのだろう。 and or xor を使ってるだけで読めないというレベルじゃないのかな? チャタリング取りに2度同じビットが変化したら採用するという良く使われてるxor+and使ったコードが書かれていても 特殊なコードだという事にしてしまうんでしょ? 大抵のプログラミング言語で、プログラミング以外の作法のようなものがあるように、組み込みでも場面に応じた作法がある。 それが判れば他人のコードでも、ここはこういうテクニックを使ってると判るもの。 勉強不足だと思うよ。
>>620 コールが有限個って、そのまんまですよ。
この場合で、スタックを使わないで
サブルーチンコールを実装する方法を考えればよろし。
アセンブラレベルの思い切り下の話ね。
とかいう爺が使い捨てにならないから問題なのさ。
>571 sta_tskの件 NortiならOK、MR30なら撃沈ですね。 E_CTXエラーの実装定義の違いですね。
>>624 判らん。
4bitマイコンでもコールで直接呼べるのは最初のページだけ、
大きい番地呼ぶ時はそこから分岐命令でってのがあるけどさ、別にその仕様で困った事はないな。
なぜなら、そんな仕様のチップはそもそも、そういうサイズのROMしか持ってない。
サイズに応じた制限だからね。
たとえばCALLで呼べる範囲が256個しかないって事?ようするにtrap命令のようなもの?
でも、そういう制限なら、そういうサイズのROMだろうからさ、サイズに応じた制限は別に普通でしょ?
あと、どうして
>>618 で
>組み込みだとコールは有限個だからな。
って書いたの? 一般的な話ではないでしょ?
>>626 >>サイズに応じた制限は別に普通
だからその程度の話だってばさ。
もちろん一般的な話じゃない。
組み込んだらレアケースでスタックがこえる、
しかしいまさらRAMは増やせない。
どうする?ってだけのこと。
>>623 まったく話の流れから脱線するけど、
>チャタリング取りに2度同じビットが変化したら採用
それを言うなら「変化しなかったら」だろ、というのも突っ込みどころだが、
それ以前にこの間抜けなチャタリングキャンセル法を広めたのって一体誰なんだろうな。
もちろんごく例外的な場面では意味を持たないこともないんだが、
通常はチャタをキャンセルするのにこんな回りくどい方法をとる必要なんて全然ないのに。
チャタをキャンセルするって ・ローパスフィルタ ・シュミットトリガ ・10ms後にもう一度見に行く(正式名称は知らん) くらいしか知らないんだけど、今話題になってるのってどんな方法なの?
623 に軍配が上がったようですね。 628 は 623 の 'チャタ取り' の方法を 1万回読み返すように。 w 仕様書も満足に読めねーのかってバカにされるよ。
>>630 正気か?w
そもそも俺(=628)は623自身には喧嘩売ってないだろうw
623は、あくまで文面から読み取れる範囲では単にそういう方法を取っているコードが
存在することを紹介しているのみであって、その方法自体には何も評価を下しておらず中立に読める。
ゴメン。単なる打ち間違い。 なお、2度同じなら採用というのは、サンプリング間隔を適切に取れば非常に上手く機能する。 チャタリングが上手く取れるだけでなく、ノイズに対する耐性も非常に大きくなる。 チャタリングとはスイッチやリレーのバタつきにより2度、スイッチが押されたかのように働く事。 10〜30msサンプルで2度比較して同じなら採用する事で、一般的なタクトスイッチであれば、 まずチャタリングに出会う事はない。 非常にチャタリング時間の長いスイッチでも押し方がマズカッタかなと思わせられる頻度になる。 ダイナミックスキャンの結果キーコードが得られるなら、on/off値でなくキーコードを比較して 前回と違っていればデータを捨てるというようなコードになるし、ポートの場合は ビット単位に処理する。 その処理には論理命令を使えばビットサイズ一度に実行する事が出来、 コードサイズも実行時間も短縮出来る。 この方法が回りくどいというなら、もっとスマートな方法があるの?
それとも630は623が紹介しているチャタリングの除去方法の「間抜けさ」を 理解してないのかな?w まあそれなら「さもありなん」。 じっさいこういう人にその方法がいかに無駄かを説得するのに苦労した経験があるし、 この方法がソフト的にチャタを除去する定石だと思い込んでる人は結構いるみたいだから。
>>629 複数回読みにいく方法なので、
>・10ms後にもう一度見に行く(正式名称は知らん)
と同じと考えていい。サンプリング間隔、回数はモノによって変える。
>>632 >ノイズに対する耐性も非常に大きくなる。
理論的(といっても高校一年の数学の話だけど。。)には1/4になるだけでしょ。
636 :
635 :2007/12/30(日) 17:13:44
ごめんボケてたw 1/4ではないね。pの二乗か。
>>627 残念だけど、その手の被CALL先数に制限があるマイコンは、スタックそのものが特殊。
データRAMとシェア出来るマイコンでは見た事が無い。
そういうマイコンでROMサイズが不足して、とにかく短くする為にCALLを使いまくって、
結果、スタックが不足するからどうするって話は、それはもう20年も前のレベルの話だ。
今では、その手の貧弱なマイコンでどの程度のROMサイズが必要か事前に見積もれるし、そこまで無理はなしない。
その手のマイコンは1個のコストが100円以下、1ランク上のチップに変更しても多くて10円程度の差でしかないからね。
さすがに10円のコスト差では、そこまで頑張るメリットが生まれない。
この上の議論では@100円のコスト差が生まれる場合にどこまで頑張るかって話なんで1桁違う話。
>>633 うーん。 その無駄ではない方法を説明してみては?
たまに、一定時間毎に2度読んで同じなら採用と言ってるのに、
時間を置かずに連続して読むコードを書く人がいるけど、
そういう人を説得するのに苦労した事はない。
理屈がわかっていれば、簡単に説得出来るよ。
図でも描いてじっくり考えてもらえばわかると思うけど、 メカスイッチのような出力を前提とする場合、チャタを除去するための 必要十分条件はチャタの(最大)継続時間よりも長い期間でサンプリングすること。 わざわざ2回サンプルして〜、なんて処理には何の意味もないのよ。 ノイズ云々、ってのもよくある話だけど、 確かにノイズによる偽信号が時間軸上で完全にランダムならばN回サンプルをとることによって 偽信号を拾う確率をpのN乗に出来るだろうけど、実際にはポートの入力を誤らせるほどの 電気的なノイズっていうのはそういう性質を持ってないでしょ。 だからそれをソフトで解決しよう、なんてそもそも発想が無理。 そういうのは電気的にそもそも偽信号が載らないようにしなきゃ。
>>639 チャタリングの最大時間は100msもあるよ。
そんなに長い間隔あけてサンプリングしてたら、それこそ応答が悪いとしかられるだけ。
10ms〜30msのサンプリング間隔で、なおかつ応答を実用的な時間にして、
さらにチャタリングによる2度押しを防ぐ方法が、この方式。
前回と同じビットだけを今回採用するという方式ね。
ノイズに対しては、ソフトだけではダメなのは確か。
でも、ノイズに対する誤動作は、この2度読み採用をするかしないかで劇的に違うのも確か。
で、電気的な話は、コストとの問題。
最近は携帯電話も普及してるし、工場での火花放電などを考えると、
そこにコストをいくらかけても満点にするのは難しい。
俺は最近の、入出力が切り替えられるマイコンなら、抵抗1本100KΩ〜330KΩを直列に入れて貰う。
そして普段は出力ポートにして、読み込む時だけ入力ポートにする。
たった抵抗1本でも、この方式ならポートは
出力時は10Ω以下になってるので1万Vの電圧でも普段は1V以下の影響しかポートに与えない。
確率的には非常に強くなる。
また、入力ポートにする時間を短くすれば浮遊容量があるので、その程度の短時間なら問題ない。
このとき、ノイズを取った結果を出力しておくか、前回の結果を出力しておけば浮遊容量の
コンデンサの効果でシュミット特性も出せる。
こうしてコストダウンするわけさ。
>>639 >必要十分条件はチャタの(最大)継続時間よりも長い期間でサンプリングすること。
チャタの継続時間が異様に長い場合があったりしてだな、
>電気的なノイズっていうのはそういう性質を持ってないでしょ。
それならその性質に合わせた処理をすればいいだけの話。
>そういうのは電気的にそもそも偽信号が載らないようにしなきゃ。
それが理想ではあるが、世の中理想通りにならないことも多いんだ。
継続時間の半分を越えれば十分では。意味ないけど。
チャタリリング波形ってのは
~~~~|______|~|____________________________________|________________________
てな感じで 最初の数mの後に何10msもたってからヒゲが出る
人が押してる力が弱まった時に丁度振動が持ち上げたりするんだろうな
さらに接点が古くなると押し続けてる状態でもザラザラとノイズのように入る
>>639 の 単に時間を置いてるだけの方式では、古くなると、そのうちチャタリングが入るようになるよ。
大量の返品を覚悟した方がいいかもな。
>>641 >>必要十分条件はチャタの(最大)継続時間よりも長い期間でサンプリングすること。
>チャタの継続時間が異様に長い場合があったりしてだな、
だからちゃんと図を描いて考えた?
じゃあその「異常に長いチャタの継続時間」中に2回読んでAND取った値は
チャタらない、とでも思ってるの?
そんなことはないんだよ。
ただチャタる可能性がほんの少し低下するだけ。
要するにチャタの継続時間が異常に長いとしたら(そんなことって本当にあるの?w)
基本的には処置なしなんだよ。
>>電気的なノイズっていうのはそういう性質を持ってないでしょ。
>それならその性質に合わせた処理をすればいいだけの話。
おいおい人の書いたことを恣意的な切り方するなよ。
俺は「ポートの入力を誤らせるほどの電気的なノイズ」と書いてるんだよ。
こういう状況下じゃ、極端に言えば一回スキャンしたときに偽の信号を読み取る
可能性は0.99ってことも在りうる。
つまりN回スキャンしてANDなんていう小細工が意味をもたない蓋然性は高い。
>>643 だからさあ、君もよくない頭でよく考えなって。
スイッチが君の言うような出力を吐く状態になったとする。
で、その状況下においてN回サンプルしてAND取ればチャタを拾わなくなるの?
そんなことはあり得ないんだよ。
>>644 だからキミは他人のコードが読めないんだろう。
2度ANDなんてコードではチャタリングは取れない。
static int key=0;
int chatKey(int newkey)
{
int wk;
static int oldkey=0;
wk =(~(oldkey^newkey)) & (key^newkey); //2回同じで かつ異なるbitを1に
oldkey=newkey;
key ^=wk;
return wk & key; //今回1に変化したビットだけ1にする
}
上のコードは
ttp://www.tensyo.com/urame/prog/ALGO.HTM からコピペした組み込みで良く使われてるチャタリング取りのコードだ。
これは単にANDしてるんじゃない。 2度同じなら採用してるんだ。
>>634 が書いてるような、時間を置いて出るヒゲは短い。
サンプリングより短いヒゲはこのコードで確実に取れる。
一方、単に時間を置いただけだったり、時間を置いてANDしただけのコードではこのヒゲは取れない。
もし、今までそんなコードで出荷してるのなら、確かにそのうちチャタリングが出るようになる。
スイッチは劣化と共に、チャタリングが出易くなるからね。
どうして出易くなるのか原理は知らないけど、事実はそう。
チャタ取るのに2度一致ってあんた・・・。
>>646 AND云々は長くなるからそう書いているだけで623が言ってるような処理の
意図を理解してないわけじゃないよ。
確かに
>>643 が前半で書いている、短時間に一発だけでる「ヒゲ」はフィルタ可能だと思う。
でも後半に書いているスイッチの劣化によるノイズはそうじゃないでしょ。
偶然2度拾ったら、取れないじゃん。 アンチエイリアスフィルタをハードで用意すべきだな。
流れ読まないで聞くが、「普通は」キーをポーリングで見る場合、周期はどうするんだ? エッジを見る時はどうするのか説明してみてくれないかな。
チャッタとりってOFF検出の事だと思ってたよ。
おー、盛り上がってねー。 チャタ?。いや、キースキャン機能付きLCDコントローラー使うからシラね。
>>649 頻度の問題。 劣化は一挙におきるわけじゃない。 接点の酸化などでだんだんと悪化する。
10秒に数mのヒゲが出る状態でも、
20msに1回サンプルしてるなら
キミのコードでは1/500の確率なわけで1日に何度も誤動作してしまう。
操作してる人はいつも「戻る」キーを操作させられてイライラする事になるだろう。
一方は1/500^2 = 250000 まず年に数度しか起きない。
654 :
仕様書無しさん :2007/12/30(日) 18:20:40
>>650 周期はハードウェアの応答時間(時定数)にもよるから
十分考えなきゃいけない
>>637 CPUがどんなに高級にナっても
組み込みだとRAMがギリギリになる
って事があるって事なんだけどね。
そのときの為に覚えておいても良いテクニックってだけ。
で、普通に考えるとそのキーコントローラ相当の処理をソフトでやるのが「チャタトリ」なんだろ? 上に上がってるソースの方法はそれにそぐわないから使わないよ俺は。
657 :
仕様書無しさん :2007/12/30(日) 18:25:20
盛り上がってるな 俺も混ぜてくれ まずチャタ取りをハードでやるって言うと上司がうるさいな コストかかるしソフトで何とかってのがうちの方針だ 人の労働はコスト0だと思ってやがる
チャタリリング波形ってのは ~~~~|||||||||__________|________________________||||||||~~~~~ っての。2度検出したぐらいで判断しちゃだめよ。
659 :
仕様書無しさん :2007/12/30(日) 18:27:33
途中の ~~~~|||||||||__________|________________________||||||||~~~~~ ↑これ は何?
俺は以前の状態を保持しておいて、時間を置いて二度違うデータをサンプルしたら変化、というコードで今までやってるけど別に問題はないな。
>>658 ところが
~~~~|||||||||__________|________________________||||||||~~~~~
|<-->|
理論的には、 この時間より少し長いくらいでサンプリングすれば2度検出で十分効果があるんだよ。
もちろん劣化を考えないといけないけどね。
で、この時間は数ms 全体は長いけど、大きく暴れてる時間は案外短い。
662 :
仕様書無しさん :2007/12/30(日) 18:30:49
俺の会社のソースで 読み込み→NOP→NOP→・・・・(NOP5回くらい)・・・→読み込み→一致ならOK を2回繰り返すのあるんだけど・・・
>>662 ああ、アルな。 チャタリングに対しては殆ど効果ないけど、静電気なんかの火花放電には効果あるんじゃない?
>>653 君がいってるような劣化の仕方ならその方法が有効であることは認めるけど、
スイッチっていうのは本当にそんな「都合のいい」劣化の仕方をするのかなあ。
俺はそうは思えないんだけど。
>>658 サンプリング回数をもっと増やせば大丈夫
~~~~|||||||||__________|________________________||||||||~~~~~ だから、上の|||||||||のどこで事象が変化したかどうかを検知するのが目的で、それは仕様で決めるものだろ? 行き当たりばったりのメインループで、不定周期で二度読み一致って乱暴なコード書いたら H L ↓ ↓ ↓ ↓ ~~~~|||||||||__________|________________________||||||||~~~~~ うほうほ!H検出!L検出! といった乱暴なことになり、ひどく鈍い応答しかできなくなるように見えるんだけどどうなのかね? H→L L→H ↓ ↓ ~~~~|||||||||__________|________________________||||||||~~~~~ 仕様しだいだけど、左のようなタイミングで 変化を検出できるように設計しろということじゃないのか??
ハードで処理するかソフトで処理するかって話はよくあるが、 ソフトで処理すると余計な部品が不要になって小型化に貢献するというメリットもあったり
668だけど、ずれてしまって説明の意図が伝わらないかな・・・。 飯でも食いに出ます。ご高説を賜りたいものですね。
>>668 サンプリング周期によって応答性が変わるのは当たり前だがそれが何か?
>>659 リレーが働く音ってチッじゃなくてカチャって音でしょ?
大きめのボタンを押した時の音もパチンでしょ? 振動がそれだけ長く続いてる証拠。
その音が出てる間振動してるといっても、その振動がそのままon.off信号になるわけじゃない。
でも運が悪いと、その振動で接点がふと離れたりするわけ、
そんなわけだから、onの時にはだいぶ後にヒゲが出る時がある。
また、オフの時は 普通は物理的に距離が離れてしまっているので後でオンになることはない
>>671 いやそうではなく
まぐれの2度読み一致だと、周期にかかわらずおかしくなる場合が多いんじゃないかと。
旧いPICかそれ以下しか無いような、天地開闢以前の4ビット〜8ビットマイコンならありなのかねえ?
そういうのだともうCじゃかけないでしょ?コードの出自と有効性に疑問がある。
>>668 ボタンの場合は押した事を確実に、かつ2度ひらわずに検出出来れば、それ以上誰も文句言わない。
リレーやリミットスイッチの場合は応答時間について要求があったり
制御の都合で、応答時間の要求を自分で設定する。
それはそれに応じて考えないといけないというか、それを考えるのがお仕事でしょ。
時間の要求とノイズ耐性の両方を考えてサンプリング時間の設定と、2度読みをするかどうかを決めなければいけない
場合によっては
>>662 のような方法で火花ノイズだけを取るという事もある。
>>668 行き当たりばったりのメインループなんか書くなよ。
ポーリングするなら、必要な時間分解能はキッチリ作ろう。
それが出来ないなら教えてやるから、俺のトコに来い。
>>676 問題整理するために言ってみたのさ。俺はメインループからキーのポートは直読みしないよ。
ボタンの場合、ってFAで使うような大きなボタンならそうかもしれないけど
やわいメンブレンスイッチなどで、キー押す時間で、機器の状態に合わせてキーを別のものとして取れ、
なんてときはどうするのさ。ちと聞いてみたいなあ。
>>665 クリーニング電流ってのは聞いた事があるかい?
ある程度の電流を流すリレーやスイッチにはクリーニング電流を流さないと早く劣化する。
微少容量接点の場合はクロスバー接点のように、機械的に擦り合わせて表面を綺麗にするわけ
そういう機構だから使ってる間に磨耗するのが当然。
過去の経験から、みんなそうなる事を知っていて、それを前提に設計してるわけ。
疑うのは正しい姿勢だけど、疑うなら自分でソレなりにどういう機構でどういう仕組みなのか多角的に調べる事だね。
単に思考実験して、2度読みしなくていいって結論を下すのは愚かな行為だ。
>>677 たとえサンプリング時間が30msにしても、長押しでどうこういうのに困るなんて事はない。
長押しには短くても0.5秒以上にしないとね。
だいたい長押しとそうじゃない場合で区別するなら、途中で音を変えたり、画面に反映させたりするもの。
応答さえちゃんとしてれば問題ない。
なお、 メンブレンスイッチのようにクリック感のあまり無いタイプは、
そもそも押した時に振動が無いのでチャタリングは10ms以下。
普通に10msのループでサンプリングして2度読み一致採用すれば良い。
ただ、押し続けた時の力加減の変化で押し続けてるつもりで再入力になるという状態にはなりえるんで
良く使うキーで長押し対応は採用しないほうがいい。
時計合わせのように滅多に使わない操作くらいにね。
>>677 すまんが、何が問題なのか分からん。
普通にやればいいじゃん。
>>680 どうも、皆自分が思ってる「普通」は違うというか、チャタ判定並みに幅があるようだね。
>>677 メインループで読まないって、割り込みでって事?
それは普通だな。 もちろんLEDとかのダイナミックスキャンしながら
それにくっついたキーマトリクスを読む部分は割り込み内でやって、
キーコードを作ったりチャタリング取ったりする部分はメインでやるって事だよね?
>>677 長押し判定の方法を知りたいの?
ON状態が一定時間続いたら長押し成立。それだけじゃね?
年の瀬なのに バカばっかり集まって w
>>678 ごめんそれって反論になってないことない?
686 :
仕様書無しさん :2007/12/30(日) 22:09:12
このスレの連中とは一緒に仕事したくないぉ。 スイッチ入力の処理だけで数日かかりそうだぉ。
キーの処理ってまじめにやると結構ボリュームあるんだよ。 バリエーションもたくさんあるし。
>>679 だから二度読みなんぞには何の意味もないと何度言えば。。
二度読みに意味が無いなら三度読みすればいいじゃない
>>690 だから特殊な前提が成立する状況下でない限り、N回読んで〜なんて方法自体が無効。
回数の問題じゃない。
>>691 じゃあどうすればいいの?
チャタは取れないの?
一定間隔でN回読んでN回とも 保持してる状態と反転しているなら 保持している状態を反転したと判定する というのを延々とやれば いいってことだね
すべてのスイッチにはローパスフィルタとシュミットトリガを入れる もうこれでいいでしょ?
ソフトでやれば量産コストが下がるから なるべくソフトでやろうよ
【チャタ】組み込みプログラマーってアホ!その7【何回?】
あほか、キーセンス処理なんて、一定間隔で読んでりゃいいだけだろ。 チャタが発生するのは、ON/OFF切り替えの数マイクロセコンドだけ。 安定してる時には関係ないしな。
699 :
閻魔 :2007/12/31(月) 01:33:55
>>697 いや、少なくとも論理回路を理解し、AD、DCモータの原理くらいはわかっていて、半田ごてでLEDを光らせることができるんだから。アホではないぞ。。。。w
で、何この糞コテ
LEDって暖めたら光るの?
>>696 お前らに任せたらいつまでたっても完成しなくて商機を逸するから
少々のコストがどうでもいいくらいの損失が出る
たまに漏電してる半田ごてあるから。かな?
>>698 最近のメンブレンなどならチャタリング時間は10ms以下と規定されてたりするからソレでも最初は大丈夫。
でも古くなってくると接触不良の影響が出てくるよ。
人は押し続けてるつもりでも、押してる時の力が変化するから
その時の動きで信号にヒゲが入る。
また、リレーやプラントなんかで使われるようなスイッチのチャタリングは非常に長い。
長いといっても常に長いわけじゃない。酷いのになると100msもたってからヒゲが入ってくるから厄介
という事で、素直に2度読みを入れなさい。
チャタチャタうるさいけどさ、普通の制御の場合、チャタリングの時間がどれくらいかをモニタする必要はないんだよね。 要はユーザーがONにしようとしているのかOFFにしようとしているのか分かればいいんだよ。 だから、チャタリングが1000msあろうが、100000msあろうが OFF→チャタ→ON→チャタの遷移さえ把握してればそれでOK お前らいい加減本題を見失った議論はやめろよ
をいw、100000msだったらOFF→ON→OFFが認識できない可能性大きいだろーがw。
>>706 それでも認識できるソフトを組むにはどうすれば?って話だろ
>>705 ,
>>707 なんかおめでたいなw
そんなものを「把握」する一般的な方法なんかない。
あるというなら是非紹介してよ。
709 :
仕様書無しさん :2007/12/31(月) 11:54:07
だからさ、チャタリングが一定時間で終わる事が確実なら
>>698 は理論的には正しい。
ソコは認める。 確かに理屈は正しいんだよ。
でもさ、世の中理屈通りにはゆかないもの。
その理屈通りでない場合でも
”2度読不一致読捨” が入っているだけで、ほーら安全側。
ソレをチャタリング処理という名前だから気に入らないというのは判るけど
この処理はもともとは昔のスイッチの酷いチャタリングに対応するためのものだったから仕方ないさ。
うーん倒錯してるな。。 だから「二度読んで一致しなければ捨てる」なんて方法が有効なのは 極特殊な前提が成立している場合のみであって、世界はそんな理屈どおりには出来てないんだよ。
>>705 チャタリングが1000msってドラみたいに巨大な共鳴器でもついてるのか?
712 :
仕様書無しさん :2007/12/31(月) 12:13:45
>>710 ”2度読不一致読捨”が成立する条件は
・サンプリング間隔より短いエラー信号が、サンプリングあたり確率pで発生する
この場合、除去出来ない確率は p^2
この条件にあたるようなエラー信号は
1、チャタリングのリバウンド
2、ボタンを押し続けた時の擦動ノイズ
3、人体からの火花放電やモータ類からのスパイクノイズ
pが1/1万 という非常に頻繁なノイズ(工場で火花放電が起きてる状態)では
これを入れてないと1分に1回勝手にボタンが押された事になりますが、
入れていれば2年に1度しか入力されません。
一方対応出来ないエラー信号は
1、故障
2、上記で pが非常に大きい場合
3、サンプリング間隔の2倍以上のエラー信号
であり、これらで誤動作したとしてもプログラマの責任が問われる事はありません。
ONさせたいスイッチなのか、 ONさせたくないスイッチなのか、 それが問題だ。
チャタ(・∀・∀・)リング
>>712 >サンプリング間隔より短いエラー信号が、サンプリングあたり確率pで発生する
だからこんな前提がありえないって。
世界はそんな風にできてないの。
716 :
仕様書無しさん :2007/12/31(月) 12:51:53
チャタ(・∀・∀・)∀・)∀・)∀・)∀・)・))タタタタタタタタ
717 :
仕様書無しさん :2007/12/31(月) 13:10:20
>>715 貴方に取って困った事に、世界はそんな風に出来ているのです。
どう詭弁を弄しても、
何度言い張っても、
世界がそう出来ている以上、ご自分の間違いを認めなければ他人にバカにされるだけ。
バカにされる程度ならいいけど、その理屈で物を作れば他人に迷惑を及ぼします。
エラー信号がサンプリング間隔より長いなら、それはサンプリング間隔の設定が間違いかハードウエアにミスがあるのです。
サンプリング時間を 10ms〜30ms (10msは少し危険ですが20ms以上)におけば、
10ms以上も長いエラー信号は、
1・ 結露等による電気的なショート
2・ 長い配線にACからの電磁誘導
3・ インピータンスが高すぎる
4・ ハード的な設計ミス
こういう場合になります。
これらは入力ポートに普段は出力としておくというようなソフトウエアからの対策も可能ですがハード的な問題ですので
これで誤動作してもハード設計者が責められても、プログラマが責められる事はないでしょう。
718 :
705 :2007/12/31(月) 13:12:02
1000msが突っ込まれるとは思わんかった 1000とか10000とか書いたのはお前らのことだから メンブレンは10msって誰かが言ったら いや、メカニカルリレーは100msだ ←いまここ いや、漏電遮断器は・・・・ いは、変電所の切替器は・・・・ とどうせエスカレートして行くに決まってるから そういうくだらねぇことで場をかき回してるんじゃねぇよという意味で書いただけだ
>>718 ソレは順番が違うだろ
・ チャタリングには100msもしてからリバウンドしてヒゲが出る場合がある
それは振動があるから
↓
・ メンブレンは振動する構造じゃないから10ms以内だ
でも接触点への力の加減で押し続けてもヒゲが出る場合がある
↓
・ 世の中そんな風に出来て無い <--- いまここ
世の中どんな風に出来てるんだろうw
721 :
仕様書無しさん :2007/12/31(月) 13:47:46
もちろん”2度読不一致読捨”をしてはいけない場面もあります。 たとえばグレイコードとか2相エンコーダはそのままの値を採用 ロータリ式のデジスイッチなんかは変更途中の値を採用しないように ”2度読不一致読捨”ではダメで"多数回一致採用"が必要です。 さらに、グレイコードでない多値ポジションセンサーは設計ミスですから プログラミングにかかる前にハード設計にダメだししなくちゃいけません。
722 :
仕様書無しさん :2007/12/31(月) 13:55:57
マイクロスイッチを使わなければチャタ取りが必要ってことだな。 趣味で時計作る程度なら誤動作しても人が死ぬわけじゃないし、好きに作ればいいんじゃね。
その回路、ポートを弱いプルアップもしてないんだろな マイクロスイッチの切り替え時間は20ms〜60ms この間ポートがオープンになって浮遊容量でラッチしてる状態。 だからチャタリング取りが不要になってるんだろう。 逆にプルアップとかするからバウンスが問題になるって・・・理屈は理屈だが・・・・
チャタ取りでこれだけ盛り上がるのは 正直、異様w
>>717 ヒゲみたいなものを否定しているのではなく、
一様な確率pで発生するかどうかが疑問なのでは。
跳ね返りで発生しているなら、ある周期性を持ちそうなので
適当なサンプリング間隔だとエラーを拾いそう。
2度読みとか言う根拠不明ないい加減な手法より、
スイッチやアプリケーションの特性に基づいた方法を採った方が良いのでは。
(故障モードをハードウエア設計者と打ち合わせないのは考えられない)
727 :
仕様書無しさん :2007/12/31(月) 15:26:31
チャタリングの場合、バウンスの本体はともかく、時間を置いて出るリバウンドは短いヒゲなので 2度のサンプリングで2度ともヒゲを捕らえる確率は、たとえ周期が殆ど一致していても滅多にありませんよ?
それなら、サンプリング間隔をさらに開ければヒゲを1度とらえても問題ないんだよね。 2度とらえることは無いんだから。
周期性があるなら、その周期を避けてサンプリングすればいいじゃない。 あと、高い信頼性を要求されるシステムでは10度読みくらいするものもある。
まあ、産業機械とかコストかけられるものだったら、ぐだぐだ言わないで済むように キーは割り込みで取れるような外付けCPLDなり4ビットマイコンなりつけるものだけどさ。 石でも割り込みのエッジで取れるものがあるだろ、ハードチャタトリ付で。 わざわざついてるのに使わないばかちんもいるけどね。
>>728 あなた一人で頑張ってるみたいだけどさ
~~~~~|||||||||________________________________|__________|________
↑ ↑ ↑ ↑ ↑ ↑
0 1 2 3 4 5
H X L L X X
ここで 3と4の両方でヒゲを捕らえてしまうと 2度ボタンを押した事になってしまうって問題を持ち出したわけだろ?
このヒゲがあっても問題ないサンプリング時間は
|<------------------------------->|
これより長い時間にしなければならない。 つまり、極端に応答の悪いシステムになってしまうだろうに。
>>729 バウンス中は周期はあるかもしれないが、その後のリバウンドは周期なんてないよ。
周期があることにしたいのは一人だけ。
>>730 ボタン入力割り込みの信頼性は今ひとつの場合が多いので注意が必要だね。
SWのチャタは押したときより、離したとき...
@押してないキー(スイッチ)がノイズ、振動等で勝手に入るのを防ぐ Aキー(スイッチ)をonする最中のチャタリングで2回目が入るのを防ぐ Bキー(スイッチ)をoffする最中のチャタリングで2回目が入るのを防ぐ 上記3種の対応は別々な訳だが、これらが混同されとるから話が混乱するんじゃろう あと波形は普通回路の抵抗容量でなまるから、通常の民生機器で小さなヒゲの対策をソフトで考えずとも良いはずじゃ
”2度読不一致読捨”は、その3つに対応出来ますね。
小さなヒゲは CRが入ってるからOKかというと、鈍って、短いパルスが長いパルスになってしまい
逆に”2度読不一致読捨”で対応出来ない事になってしまいかねないので
CRで対応するならシュミットトリガ回路と組み合わせないといけない。
だから
>>640 に書いたように普段インピータンスを下げるような工夫と2度読みを組み合わせた方が状態が良いかもね。
さらに、
CPU--R1--C--R2---in
|
////
とR-C-Rにして、入出力の切り替えて、その時間をコントロールする事でシュミット特性を出すなんて方法もある。
>>734 二度読み不一致読み捨て について説明してもらえないかね。
単独のビット、定周期過去四回の組み合わせ
[0001] [0010] [0011] [0100] [0101] [0110] [0111] [1000]
[1001] [1010] [1011] [1100] [1101] [1110] [1111] [0000]
を、どう判定するのか簡単に説明してみてほしい。
よろしく。
>>735 >>646 のコードが読めないの?
確定値、前回値 という2つのメモリ上の値と、入力の今回値 これはレジスタ
1、if 前回値!=現在値 なら 前回値=今回値にして終わり
2、if 確定値==現在値 なら終わり
3、確定値を反転させる。 結果がオンならオンエッジの処理
だから 11 か00 の時に結果が 1 と 0に確定する。それ以外の時は 確定値はそのまま。
じゃあ、上のコードに上のデータをテストケースにしていれて実行して、結果を載せてくれないか。 今俺はコンパイラ動く環境が無いんでね。 きちんと入力をトレースできる形で、できれば頼むわ。
やっぱり掲示板の文字ベースのやり取りでもこうなるんだよね。 二度読み不一致なんたら〜なんて処理にはほとんどの場合何の意味もないことなんか ちょっと考えれば中学生でも分かると思うんだけど、分からない人には何度説明しても 理解しないよね不思議と。 あ、もちろんメイク後一発だけ出るごく短時間の「ヒゲ」をフィルタするのに有効なのは認める。 (そういう現象が実際あるのかどうか俺はよく知らないけど、もし実在するのであれば)
やっぱりこんな簡単なコードも読めないんだよね。 有効と認めるなら、なんで採用しないの? この方式は特許があったとしても切れてるよ。 そこまで否定して、 負荷といえるほどの負荷にもならない この簡単なコードを採用しない理由は何? 理解出来ないから? そういうヒゲが実在するかどうかは古くなった機械からスイッチでもリレーでも外して オシロで波形みれば簡単にわかる事。
>>739 >>737 だけど、俺はやはりお宅ご推奨の例のコードは使わないと思うよ。
ただ、ほかの人はどうとるかわからないし、気がついていないこともあるだろうから、事象のトレースをお願いしただけ。
確かに、自分がとるべき事象変化を検出するなら
まず 電気的機械的な仕様を調べて、あるべき波形の乱れを想定し
次に 実機で波形やデータを取って、想定が正しいか確認し
必要なプログラムを組めということだね。
いや勉強になった。
それに追加すると、ソレが出来ないヒヨッ子なら、素直に定石には従う事だね。
うん、だからその「ヒゲ」に限定すれば確かに有効な方法であるから、 実際そういう現象に遭遇したら迷わず採用するとは思うよ。 ただ、「二度読み不一致〜」にそれ以上の効力があると思ってる人がいるから それを否定してるだけだよ。 おいおい君が銀の弾丸だと思ってるものはただのBB弾だぜって。
743 :
仕様書無しさん :2007/12/31(月) 20:11:21
>>738 殆どの場合何も意味が無くとも、異常な時には威力を発揮する。
だから、みんなこれに似たコードを使ってるんだよ。 ^ を使うかどうかは別にしてさ。
744 :
仕様書無しさん :2007/12/31(月) 20:12:13
>>723 さん
自分も今 H8(3052F)を使ったロボットを作っているのですが マイクロスイッチのチャタリングで困っています。
ブルアップをして(1kΩ)ポートにつないでいるのですが うまく動きません..
どうやってチャタは防いだらいいんでしょうか?
>>742 だから、キミの言いたい事は判るんだって。
確かに、この処理は厳密にはチャタリング取りではない。
なのに、皆んなチャタリング取りというコメントをワザワザ書いて、この手の処理を入れている。
確かに名前と中身と目的は現在は一致してない。
でもさ、皆がそうしてるんだから、この処理の名前はチャタリング取りなんだよ。
そんな名前のつき方は、他にだって一杯あるだろ?
>>744 このスレでは2通りの派閥が存在します
1、バウンス期間より長い周期でサンプリングすればチャタリングなど無関係
2、
>>736 の手順で処理する派閥
どちらのご説明をご希望ですか?
747 :
仕様書無しさん :2007/12/31(月) 20:27:12
>>744 足が3つあるタイプ? なら
5V
|
CPU-----+------R-----SW
| |
=== C ///
|
///
と、3つの足を使うと、チャタリングは出ないよ。
Rは接点に流せる電流に応じて小さい値がいい。 判らないなら100Ωを使っておけば大丈夫
>>743 だからさあ、繰り返しになっちゃうけど異常な時に効力なんて発揮しないって。
ちょっと考えれば分かると思うけど、スイッチならスイッチの異常状態の時の出力っていうのは
自己相関性(って言うんだっけ?)があるから確率モデルで考えるのは間違ってるよ。
例えばある時刻tのスイッチの出力というのは完全にランダムなはずがなく、
(t - dt)におけるスイッチの出力と無関係ではない。
仮に無理を承知で確率モデルを当てはめるとしても、
スイッチが嘘の情報を吐く確率pが十分に小さい保障はなにもない。
p=1/2なら二乗したってP = 0.25だよ。
749 :
仕様書無しさん :2007/12/31(月) 20:31:48
チョッ・・・・・p=1/2ってのは完全に壊れた状態じゃないか。 それは2度読みしてもp=1/2だよ。 p^2 で近似出来るのは pが小さい時だけさ
>>731 極端に応答性が悪いって、必要な応答性はどれくらいなんだよ。
スイッチの波形を、積分すると考えると変化検出のアルゴリズムって書けないか?
>>747 判らないならって…。それなら修正し易い分だけ2度読みの方がマシだよ。
CRでLPF作ってるんだから、信号の周波数を通すように計算しないと。
必要な応答性はどれくらいなんだよ。
>>748 ランダムウォーク型で、バースト的にやってくるって言いたいの?
でもさ、そういう状態はどういう事で起きる?
たとえばスイッチが古くなっていたりさ、
結露によるショートとかさ、それで誤動作したって納得してくれる状況でしょ?
原因が判らない短時間やって来るような現象で誤動作しなければいいんだよ。
押してないのに、勝手に電源が入ってた。 分解してみたけど原因が判らない。
こういう状態の頻度を下げてくれるから、効力を発揮するというのよ。
754 :
747 :2007/12/31(月) 20:46:54
あごめん。 Cの値は 103 程度でいい。 マイクロスイッチ接点が両方オフの期間は10ms〜40ms程度。 この期間、保持すればいいんで
じゃあ、静電気、インパルス、ファーストトランジェントなどのノイズって何で起こるんだっけ。 スイッチ周りに影響なかったっけ。
そりゃ、ノイズ源によっては有効なものもあるし効かないものもある。 静電気放電: 電気的ファーストトランジェント: 誤信号は短いパルスでやってくる=2度読みが有効 これは電圧があるので、C-Rが入っていると逆に時間幅が長くなり2度読みで吸収出来なくなったりするんで CR入れるなら電圧クリップしてから入れないと薮蛇。 無線干渉: バーストでやってくる。 2度読みは効かない。 上記の電圧クリップの為の保護ダイオードが検波回路を構成してしまうので、その手前にもCRが必要 結局、下手に回路入れて万能的にやろうとするとCR-D-CR-シュミットトリガとテンコ盛り。 抵抗1本を直列に入れて、入力ポートを普段出力にするというのが一番低コストな対策。
>>753 >原因が判らない短時間やって来るような現象
だからそれには効果がないんじゃないでしょうか。
原因が分からないんでしょ?
そういう状況下では、偽を掴まされる確率pが小さい保証はないよ。
というより、pがむしろ十分大きい蓋然性が高いんじゃないでしょうか。
もしそんなことが本当におこる状況であれば。
>>757 pが大きいか小さいかは分からないよね。
pが小さい場合は効果がある。
で、pが大きい場合は効果は無いかもしれないが、もっと良い方法ある?
759 :
仕様書無しさん :2007/12/31(月) 21:30:23
惚れ惚れするほどの粘着気質に、もう酔ってしまいそうだ。
>>757 原因が無いのにやってくるノイズは、さすがに幽霊が操作してるわけじゃないので、
電磁的な何かの原因があるわけです。
で、2度読みで取れない程、バースト的にやってくるなら、自分だけが被害を受けるわけがなく
他の装置も一斉に被害を受けるわけです。
中には、まともに2度読みさえ入ってない装置もあるのはご自分がご承知の通りですから
他の装置が必ず被害を受けます。 ですからそれで誤動作しても問題ありません。
それどころか、殆ど問題なく使えたと評価を貰えますよ。
760 :
仕様書無しさん :2007/12/31(月) 21:44:41
>>747 さん
ありがとうございます。
CPU―Rの間にあるCは コンデンサですか? 電解?
どれくらいのを挟めばいいですかね?
つまり
スイッチ→GND で1つの足
スイッチ→5V で1つの足
スイッチ→R(100Ω?)→H8のポート
H8ポート〜抵抗間に コンデンサ(電解? セラミック?) をかませて→GND
でいいのでしょうか?
761 :
747 :2007/12/31(月) 21:55:03
>>760 抵抗に100Ωするなら
電解を入れるなら4.7uF以下。
>>754 に書いた通り 10E3 つまり0.01uF で十分です。
このコンデンサは時定数を作ってるのではなく、マイクロスイッチの接点が両方オフの間の
電圧保持が目的です。
インピータンスは非常に高いので103でも十分なのです。
抵抗100Ωは接点に電流を流し過ぎない為の保護です。
プルアップ抵抗を入れると、チャタリング波形を観測する事になりますが
こういう構成にすればチャタリングは発生しません。
では、抵抗とスイッチをマトリクスに組んだり、それをADで読ませたりする場合はどうなるのかな。 教えて先生。
>>759 君の議論は「結論の先取り」。
「2度読みで取れない程」なんて書いているとおり、君は二度読みに効果があると
思い込んでおりそれを自明の前提として議論を進めているが、
なんども書くとおりそんなことはあり得ない。
つまり言いたいことは、そもそも読んだ値が信頼できないような状況なら 何度読んで一致を取ろうと同じこと。 なんでこんなことが分からないのかな。。
>>762 マトリクスやスイッチ+抵抗をAD値なら
>>736 の通り
1、if 前回値!=現在値 なら 前回値=今回値にして終わり
・・・・必要ならここで、複数回数える処理を入れる・・・・
2、if 確定値==現在値 なら終わり
3、確定値に現在値を反映させる。 確定値を変更する時に処理する事があれば処理する。
ロータリ式のデジスイッチなんかは安定するのを100msくらい待つ場合もあるよ
766 :
仕様書無しさん :2007/12/31(月) 22:18:12
>>764 >そもそも読んだ値が信頼できないような状況なら 何度読んで一致を取ろうと同じこと。
だからさ、
何度読んでも正しくない状態というのは、それは壊れているんだよ。
それで正しい結果が得られるなんてのは誰も思ってない。
静電気を帯びた人間がパチンと火花を飛ばしたくらいで誤動作しない事
隣でリレーがカチっと動いただけで勝手に動いたりしない事
そういう当たり前の効果を期待してるし、期待には十分こたえてくれるって事さ。
人の押せるボタンの連打速度は秒間20回も無い。 それが答えだ。
高橋名人でも秒間16回だからな。 で?それが何か?
つまり25msサンプリングで2度見するのが最善ってのがお答えですか?
だから普通はチャタをキャンセルするには馬鹿みたいにゆったり間隔(たとえば20Hz) でスキャンすれば事足りることで、二度読みとかってアホか、ってことでしょ。
771 :
仕様書無しさん :2007/12/31(月) 22:33:39
>>761 さん
103のコンデンサは セラミックコンデンサですよね? 確か水色の
これは ノイズを防ぐ為のものですかね?
772 :
仕様書無しさん :2007/12/31(月) 22:35:01
だから2度読みは、現在はチャタリングキャンセルの為にやってるんじゃないんだって チャタリングキャンセルという名前で通ってるからそう読んでるだけ。 大昔のチャタリングの100msもあったボタンでも実用的な応答をさせたいというような目的での チャタリングキャンセル処理が、今ではノイズ対策をメインに入ってるわけ。
>>770 タイムラグ50msって用途によっては致命的に遅いんじゃね?
774 :
747 :2007/12/31(月) 22:46:07
>>771 ええとね。 マイクロスイッチの中には スイッチが2つ入ってるのです。
A B
。____/_____。______/_____。
Aが普段オンで、Bは普段オフ、 押されるとAが離れて、Bがオンになります。
で、AとBは両方オンにはならず変化する時に両方がオフになります。
この両方オフの時の電圧を保つ働きをさせるのがコンデンサです。
>>722 の人は これを省略して浮遊容量を使っています。
がソレは結露とかの影響を受けやすいので、Cを入れるというだけの事です。
スイッチは離れる時にも振動するし オンする時にも振動します。
が、振動しても、影響を受けません。
昔のジョイステックはコンデンサとVRを直列にしてCR時定数の変化を測定していましたが
これは接触抵抗の変化を非常に受けてしまう回路です。
>>747 のSWをVRに置き換えて、CPUのADCポートで受けるとガリの影響を減らせます。
それも同じ原理です。
775 :
仕様書無しさん :2007/12/31(月) 22:55:03
>>770 人間は確かに1秒に20回もボタンは押せないけど
時間分解能がソレだけしかないわけじゃない。
20Hzサンプルで、応答が速いときと遅い時のバラツキを感じるくらいの能力はある。
それは品質の悪さとして感じられる。
実際、テレビゲームのアクションゲームなんて成立しなくなる。
40Hzサンプルにして2度見すればだいぶ改善するよ。
776 :
747 :2007/12/31(月) 23:05:36
>>771 あと、水色のは たぶん0.1uF (104って書いてあると思う)
値はソレで問題ないですよ。 時定数は10E4/1E12*100Ω で 10u秒 全然問題ないです
777 :
仕様書無しさん :2008/01/01(火) 02:23:24
て事は、スイッチは全部3端子にすればチャタリングそのものが起きないってことか?
1秒に16回なら押せる
ゲームって、NTSCの垂直同期を割り込みの基準にしてなかったっけ?
>>780 そうだよ
だからどんなにがんばっても秒間15回しかON/OFFできないんだよ
782 :
仕様書無しさん :2008/01/01(火) 14:10:15
>>776 さん
すいません度々...
マイクロスイッチの足につなぐ順番は スイッチの端の足から
SW→5V
SW→R→H8
SW→GND
でいいのでしょうか?
ゲームのプログラムなんて書いたことないけど、 普通に考えればそんなはずはないでしょw まず割り込みの「基準」っていうのがなんのことか分からないが、 画面の更新ならともかく、入力のスキャンをフレームレートに同期する意味がない。
>>783 操作も画面に同期するの。
全ての動きがフレームに同期して。
なぜ何のために?w エンジニアの端くれならそのぐらい自分の頭でゼロベースから考えなきゃ。 それにまあ、今日のCPUでは心配しなくていいはずのこととは思うが、 同一の時間基準に同期して複数の処理を行うというのはCPUパワーの配分として下策でしょ。
昔はタイマーがそれしかなかった。
>>786 画面に同期はファミコン時代のマが「俺はこんなことも知ってるけどお前ら知らないんだ。馬鹿じゃん?」と
ファミコン時代のテクノロジーを自慢してるだけだからほっといていいよ
PSとか、ドリキャスぐらいまではそうだよ?
16連射はファミコン時代だよ
>>789 あー、そりゃ失礼
ゲームプログラマ以外には何の関係もないってのは何一つ変わってないけどね
792 :
仕様書無しさん :2008/01/01(火) 18:07:48
ファミコンのジョイパッドに連射を組み込んで喜んでた経験だと 1秒に60サンプルするのが多かった 連射は30連射まで可能なものと15連射までのものと2種類あった 60サンプルで15連射までという事は2度読み不一致が入ってたのだろう。
あの連射って、タイマ組み込んでパルス出すってのじゃなかったっけか。
794 :
仕様書無しさん :2008/01/01(火) 18:37:25
ジョイパッドの中身は単なるシフトレジスタでストローブ信号に同期して反転させれば最高速の筈と思ったら それでは認識しないのもあった。 カウンタで1/2にしないとダメなのがあったよ。
795 :
仕様書無しさん :2008/01/01(火) 18:50:27
>>794 それはチャタ除去とかではなく単純に
内部動作が1/30だっただけだと思う。
797 :
仕様書無しさん :2008/01/01(火) 19:54:12
わざわざシフトレジスタを動かして読んでるのに、捨ててるってか? それこそありえんだろ
798 :
仕様書無しさん :2008/01/02(水) 00:08:02
>>795 さん
わざわざありがとうございますm(_ _)m
799 :
仕様書無しさん :2008/01/02(水) 15:58:19
組み込みはホント難しいよね。 あんなのできるなんてマジ神だわ。尊敬する。 これからもお仕事頑張ってください。
800 :
仕様書無しさん :2008/01/02(水) 23:28:57
組み込みって言ってもいろいろあるからなぁ OSが乗ってたりすると他と大して変わらんかと オシロでデバッグするのはもう嫌だお
俺はオシロ好きだな
オイラのところはシンクロって呼んでる。
コピー機をゼロックスと呼ぶような感じか
シュウォッチの発売が延期したのは、おまいらのせいか
オシロスコープとシンクロスコープって狭義で厳密には微妙に違う物を指すんだっけ? シュウォッチがこのスレのせいで出なくなったってことはないだろうなぁw
オシロ:一般名 シンクロ:商品名 ホチキスとステープラ、コピーとゼロックス、無限軌道機とキャタピラー の関係。
え? じゃあ、キャタピラは英語でなんて言うの?
クローラーだっけ? 一般名詞は そもそも芋虫だし。
履帯ともいうなそういえば。
キャタピラの一般名は 日本語なら、履帯、英語ならクローラー
無限軌道ってのは聞いた事があるが、クローラーだの履帯だのは聞いた事が無い。 今後も聞かないでいい事を希望しよう。
戦車の組み込みとかやってる人いるかな。 きっと世の中には居るんだよな。 とかさりげなく話を戻す。
戦車他では履帯、建機では無限軌道と言うほうが多いか?
トマホークに組み込んでるソースが見たい
トマホークって1980年代に試写だから20年以上前だろ? C言語の公開が1978代だから高級言語が使われてたとしたらFORTRANかPL/IかPASCALか 案外アセンブラかもな。
>>814 戦車の組み込み開発をやる寸前までいったことがある。
諸事情で結局やらなかったけど。
819 :
仕様書無しさん :2008/01/04(金) 19:28:28
ヘリのCRTモニタ上の計器プログラムなら会社でやってた人が居た。 OSはトロン系、CPUはNECのVシリーズ(多分)、言語はCだったと思う。
潜水艦の聴音シミュレータって話だけはやったぞ。 自衛隊の人って人種違うんだなってオモタ。
弾丸なら作ってたことあったけど・・・
822 :
仕様書無しさん :2008/01/04(金) 23:28:57
テストが大変そうだな
823 :
仕様書無しさん :2008/01/05(土) 13:02:04
皆さん 仕事で使う言語は ほとんどがC++が多いんですかね? CとC++は必須?
人それぞれだろ。 俺の場合、16bit以上はCだけど、4ビットから8ビットから色んなCPUやDSPに手を出してくれるもんだから アセンブラが多い。 でも時間的にはDelphiを触ってる時間が一番長いかもしれない。 そのアセンブラを自作したり、ツールを作ったりの時間が一番長かったりする。
>>823 ま、事実上Cは公用語となってるな。それにC++が使えればほぼ全ての仕事で有利
Cは必須だな。 共用語のようなもの。
C/C++、アセンブラ少々、ラダー C++といってもデータと処理をパッケージにしてクラスにした程度のもので テンプレートやデザインパターン、例外などは使ってない。理由は重くなるから。 アセンブラはスタートアップルーチンの一部にちょろっと使うだけ ラダーはPLCのとき使う
組み込みだと組み込むOBJそのものより、 周りにツールの方が規模がでかいもんな。 msc++,perl,ruby,人によっては make。
lispは使わないんですか?
lisp はしらんが、make もAI的な動きして面白いよ。
lispはemacs系のエディタ(環境)をいじる時くらい?
>>827 うちだとアセンブラはフラッシュのIO周りとか、他にもチョコチョコ出てくるね
>>830-831 lispでコーディングされてる組込みソフトもあるにはある。
隣の部署だから詳しく知らんけど。
68kの組み込みやってるけどCだとどうしても要求するスピードが出ない・・・ ASMでやってるけど後継者が軒並み心折れちゃうんだよな みんな後継者とか新メンバーには恵まれてる? ウチは入社試験が無く誰でも入れるのが問題とも言えるけどさ
>>833 中国人でも雇えば良いじゃない。
いまどきアセンブラで大きい物作るなんて根性のある新人はイネーよ。
要求を緩めてもらうとか?
そんなことはない。 だからアセンブラなんてむしろ猿でも理解できるだろうよ。 高級言語の方がずっと難易度高いっての。
837 :
835 :2008/01/06(日) 00:51:14
>>836 アセンブラで大きい物(数万ステップ以上とか)を作るのは
Cで同等なロジックの物を作るよりやり難いという事を言いたかった。
アセンブラの文法そのものは簡単だけど、それをどう組み合わせれば
Cの1命令分の動きになるのか?って事までは新人には荷が重いか、やる気が無いか。
複数ステップで判断分岐、判断分岐とジャンプを組み合わせてループ、
フラグ等の管理、(68Kはあまりしらんけど、その辺は変わりないと思う)
これらを駆使してのプログラミングなんて今時のゆとりはやりたくね〜んだよ多分。
ゆとりじゃなくてもやりたくねーよそんなもん
839 :
仕様書無しさん :2008/01/06(日) 02:04:06
シーケンスはいないか・・・
>>835 中国人が同僚だぜw
理由は日本人に組み込みやらせると逃げるからww
中国人でも逃げるけど逃亡率は日本人より低い
問題はチームで日本人が俺だけであることだな
中国人は全部お持ち帰りだから。出し殻になるまで連中に絞られて終了か。乙。
>>833 需要の無いCPUのコンパイラだと最適化が温いから
出力されたコードをさらに最適化するツールを
自前で perl とか ruby で作るんだよ。
温ければ温いほど利く。
>>842 x86のコンパイラではCで書いても
出てくるコードには隙が殆ど無いぐらい最適化されてるねぇ。
下手にアセンブラで書くよりも効率良いぐらい。
>下手にアセンブラで書くよりも効率良いぐらい。 よく聞くヨタ話だけど、それは絶対ない。 特に組み込み業界のような低レベルな処理ならなおさら。
最適化が効かないコード書いてるからだろ?
僕、最適化されるとデバックできないんです。
>>844 そうなのか。
最近のWinアプリを逆ASMして見た感想では
普通にアセンブラで書いても、Cで書いても大して変わらんぐらいの出来で
驚いた。
最適化が緩い他CPUのコンパイラが効率悪いというなら同意。
スタックガンガン使うし、レジスタとワークの使い方が非効率的だし。
Cが流行り初めの頃はひどかったけど、最近のは最適化されてると思うけど...
まあ気合が入ってるのと入ってないのは当然のようにあるだろな
ある程度書いてると、コンパイラのクセが判って来るから それに合わせた書き方になるってのも大きいだろうな。 PICのWiz-Cとか最初は酷コード出すなと思ってたが、 今は別にアセンブラ並のコード出すもんな。 もちろん人間の方が適応したからだけどさ
めずらしい、道具のくせに合わせられる人がいるとは。
コンパイラのマニュアルに効率的なコードを出すためのソースの書き方が説明されてないか?
アルゴリズム変えたほうがよほど高速に出来る。
マニュアル読まない(読めない)でいきなり、コード書いてるみたいだけど?
>>852 そこまで親切な説明がされたのはみたことないなあ。
Hが昔、メモリ割り付けの説明してたの見たことある。
>>852 Wiz-Cには確かに書いてあったよ。
for(i=100;i;i--) みたいなループの書き方の場合だけ最適化しますって書いてあったのを覚えてる。
他にも ビット処理の注意も書いてあった
BYTEしか使わない事とか、
ローカル変数や引数を使わない事とかは 自然にそうしたのか書いてあったのか
int func(int a) { a++; return a; } とやるより、 int func(int a) { int b=a; b++; return b; } とやった方が良いとかってのは書いてあったりなかったり。 24bitアドレッシングか16bitアドレッシングかの配置の話とか。 一通り目を通すけど、あんまり意識して書かないなぁ。
基本的に読みやすいように書いて、問題があるならアルゴリズムを見直して、 それでもダメだったらコンパイラにやさしいソースにするって順だろうな
ん、基本をおさえてる人がいる。
>>858 へー、700ページ近くあるんだ。俺が知ってる頃はぺらぺらだったような?
基幹産業自動車に全力傾注してるから、他の儲からないやつらはドキュメント公開してやるから 自力でがんばれよ、ということではないのかなー。
>>842 あるな。
内部変数使わないのにスタックフレーム作ったりとか
途中return でも必ず後方ジャンプになってたり
なんか理由は判らんけど
先頭で最下行にジャンプしてからそこからまた上に戻るコードに必ずなってたり
HPC屋さんのコンパイラ( H F N はそうよね?)と、 Lisp魂を引いてるコンパイラ(GCC)でアプローチはだいぶ違うかな。 論文を読んだ限りではCOINSの最適化は人間には真似できないな、とは思った。 アルゴリズミック+力任せで「最適」が出せる物には人間には無理な ものがかなりある(コンパイラにハードコーディングで直接教え込む以外に 真似できないだろう人間的最適化ももちろんあるけど)。
32bit レジスタ16本ぐらいあって、 パイプラインも含めたCPU最適化なんて 人間業ではコンパイラに太刀打ちできんよ。 8ビットCPUとかのだと、まだまだ負けんが。
世の中には、本当はいらないことを付加価値だと言い張って延々とやる人もいますので、よろしいのでは。
867 :
仕様書無しさん :2008/01/07(月) 23:59:27
今度 C言語試験2級(サーティファイ)受けるんですが あんまり取っても意味無いですかね?
特に評価されることは少ないけど あれば相手を少しは安心させられる でも結局は仕事ができるかどうかかな
腕試しに受ければ? 資格や検定は取って損する事はないんだからさ
受けるからには取らないと、バカだと思われるよ
相談です(超長文で失礼します)。 自分は30代半ばで計算機科学専攻の院卒なんですが 組み込みの求人に応募しようかと思っています。 しかし、本当にこの方面に進んでいいのか迷っています。 このスレと「組み込み系の人って痛いよねw【低収入】」はすべて読みましたが 「30歳過ぎてやる仕事じゃない」という記述が何度も出てきましたね。 どうも基本的に「激務」のようですね…。 自分は「仕事はお金を得るための手段」と割り切っていますので なるべく「効率よく」高給が得られる職種が望ましいです。 そう考えると組み込みよりデータベースの方面に行くべきなのでしょうか? 「好きなことを仕事をしたい」と思うならゲーム系でしょうけど (一般的に)あそこほど激務で簿給もないと聞いてますので…。 続く
続き 求人の数で見ると、組み込みは有利だろうなと思っています。 一度手に職を就ければ潰しは利きそうだし、食いっぱぐれはなさそうですね。 ただ、働き詰めで自分の時間がなくなってしまいそうな悪寒もします…。 ちなみに、大学は海外のB〜Cクラスorzで成績は一応優秀、 得意な言語はC++とC(当然Javaも出来ますが)で 構造体やポインタはマスターしております。STLも得意です。 アセンブラは一度クラス取っただけであまり得意ではありません。 分野的にはGUIが得意なので、そちらで職が見つかればそちらに行くのですが なかなか合った募集がないですね…。英語はきっとペラペラです。 以前の仕事でICチップのトランジスタの測定や モデルパラメータ抽出などしていましたので 直流/交流/容量などの測定器や スイッチングで使うオシロスコープの扱いは慣れていると思います。 電気回路も基礎の基礎くらいは理解しているつもりです。 …今は自分の値段が分からずに 「就職先が見つからないんじゃないか('A`)」と 「俺ならもっと良い職に就けるんじゃないか(・∀・)」の狭間で揺れています。 現場からのアドバイスをお願いします。
組込みの求人ってのもピンキリで、やってる仕事もピンキリ。 院卒なら開発側にシフトした組込みって事になるでしょ。 地方のこれから伸びようって会社を自分が入ってさらに大きくしてやろうって気持ちがあるなら別だけど お仕事と割り切ってやるには、ちょっと辛い仕事かもね。
あ、よく考えたら「組み込みやらされそうなんだけどどんな勉強すれば?」も全部読んでました。
>>873 ありがとうございます。
そうですね、開発側に近い部署に配属されれば
自分にとっては心地よく働けるかもしれませんね。
当然それなりに仕事はするつもりですが
常に上からプレッシャーかけられて…というのはどうも。
地方の会社でも構わないんですが
「残業残業でまぁまぁの給料」だったら悩みます。
>>875 ありがとうございます。
なるほど、コピペにしては的確なアドバイスですね。
では、ここは貪欲的に他の選択肢(データベースなど)に挑戦してみて
ダメだったら組み込みということで…。
でも、話を聞いてる限りだとデータベースなんかよりも
組み込みの方が自分には合ってる気はしますけどね。
海外の大学にいるなら、海外のエンジニアになったほうがいいんでは?。 日本のエンジニアは待遇悪いから、英語ができるならみんな海外行きたいんじゃないかな。
仕事でやってるソースチェックプログラムって実力付くよ。
879 :
仕様書無しさん :2008/01/08(火) 18:22:58
C言語3級は持ってるんですけど これじゃ箸にも棒にもかからないですよね?
30過ぎてコーダーの腕要求されるというのは実はあまり無くて、局所的。 まあ、どうやってもいまでっちあげられちゃうんだけどね。
持ってない人に比べたら当然評価されるよ 自信持てよw
根拠の無い自信は言うまでも無いが根拠が的外れな自信もイタいだけだ 資格で飯が食える仕事ではないよ
コピペ君警備員さっさと仕事しろ
885 :
仕様書無しさん :2008/01/08(火) 19:22:35
またキー取り込み仙人でも登場しないの?
これ以上、シュウォッチの納期を遅らせないでください
またつまんない仕様追加しやがって。
>>876 その歳で駄目だったらとか書いてる時点でデータベースだろうが組み込みだろうが厳しいと思いますよ
なんでリセットするんだよー。
どうせウォッチドッグだろ
ポーリング好きの方。お疲れさまです。 もう、無意味なコテハンも、やめます。 で、最近のHEWの環境にティックル/ティーケーが我が物顔で 入っているんですが、理解できる人って40過ぎではないかと。。。。。 (HEWって名称も出したらだめですか?) 私は、「坂本文」監訳の「Life with UNIX」が好きなのですが、 皆さんの、読まないと後悔する本を教えてもらえないでしょうか?
>>891 必読は
ソフトウェア工学―理論と実践 Shari Lawrence Pfleeger
目下の問題は枯れたCPUの解説本が絶版しまくりで後継者育成がめんどいこと
俺もコマンドとレジスタの一覧を先輩から受け継いだだけだったりする
800MHz のCPUでポーリング待ちすんなおー。
動作周波数は関係無くない?
>>891 、892 by891
反応遅くてすみません。16MHzの組み込みなので。。。。。。
「ソフトウェア工学―理論と実践」って1万円近くするんですね、とても買えません。
枯れたCPUのソフトは俺ら爺さん連中が作ってればいいのではないかと思います。
以上
ここから、独り言。(荒らし禁止)
こんな文章に2時間もかかっちまった。だめだな。どうも、難しくて、文章は。
受け取る側の、気分でどうにでもなるから。。。。
善意で受け取って欲しい。
俺は、組み込みソフトがすきだーーーー
以上2
あんた 臭い。
897 :
仕様書無しさん :2008/01/11(金) 23:52:49
枯れたCPUの書籍ってZ80とか、8086とか、68Kとかあるんじゃね? 枯れたCPUの仕事やりたいな。 久しぶりにFullICE弄りたい。
>>897 FullICEで力任せにデバッグは楽だったなー
>>897 感覚としてはZ80の仕事が減ってきてるな
68Kは偶数系と奇数系の違いを知らない自称組み込み上級者とかが
凸してくるのでチーム組む場合危険があったり
いい解説書無いよな・・・
>>894 クロック高けりゃそんだけ無駄なサイクル増えるんだから
もうちょっと考えろと言いたいのでは
クロック高い石なら、OS入れてタスク作ってタスクでポーリングするんだな、そいつ。
>>899 偶数系と奇数系ってなんですか?
char 領域から long を cast してとるなよー
っての?
>>901 OSあれば sleep いれてポーリング待ちなら普通にやるお。
そんな重要な端子をインタラプトに繋がない馬鹿設計のおかげだが。。。
クロック高い石でポーリングすれば反応がよくていいじゃんw
>>902 680x0のxのところが偶数か奇数かでアドレッシングモードの動作が違う
実質010,030と000,020の違い
040,060はあまり見ないからね
C言語で配列や構造体使う時に差がわかってないとアドレスがずれる
(というかずれるのが正しい動作なので知らないとなぜリークするのかわからなく悩む)
あと組み込み環境ではxによってけっこう非互換がはげしいので
010メインの人が020やったりするとハマることも
ここら辺は68kのプログラム本に書いてあるよ
>>905 素の68Kって未だに使ってるのか?
組み込みで使うなら内臓の周辺が豊富な
683xxかColdFireに移行してるもんだと思ってたが?
>>905 同じ68系でも違うんだー
CとASMのやり取りするとき要注意だね。
ひとつ勉強した。
908 :
仕様書無しさん :2008/01/12(土) 09:33:15
ポーリング教団というのは存在していて ・割り込みでキーが取れるという回路がついているのに使わない。 (聖典として上に書いてあるような適用範囲のごく狭い、鈍い反応しかできない不一致二度読みとやらにこだわる) ・プログラムの構造がスパゲティ。 (何回回っている間に何回呼び出すから優先だ、ということを言い出す。それぞれの処理はがちがちに かみ合っており、スタンプ結合の嵐。使っていない部分もとにかく残っている。処理時間の見積もりは大雑把で 俺は完璧にスケジューリングしてるんだ、脳内スケジューラーは完璧だと抜かしつつ 「間に合わない場合の」逃げ道とやらが作ってあり、結果として「まれな」不具合が埋め込まれていても気にしない。) ・教義上どうなのかはしらんが 主ループからハードウエアのタイマカウントを見て、ではなく、タイマ割り込みそのものを主ループ代わりに使い出す。 さらに狂信的になると、タイマ割り込みの中でほかの割り込み要因を見て割り込み処理だったものを呼び出すなど 割り込み処理だかなんだかすでにわからなくなるものを常用するようになる。 つまり、究極のポーリング教団信者による組み込みシステムというのは、唯一絶対完全なるタイマ割り込み神が 存在し、すべての処理はそこで行われる。ハードウエア割り込みなどというものは邪なもので、 タイマ割り込み神がビットフラグを監視することですべての割り込み要因はタイマ割り込みに従属させられるという 一神教により構築される神聖にして不可侵なものになる。 俺異教徒でよかったよ。
割り込みとかDMAとか嫌がる組み込み屋っているよな。 それこそ組み込み様様の世界だと思うのに。
ポーリング・・・ 挙動不振だからって言うので見てみたら ポーリングサイクルより実行される処理が圧倒的に長かったり・・・ DMA噛んでなきゃとりあえずは動いてたと思うけどな その後全面的にASMで書き直したけどそのときのC言語PGが 傷心のあまり退職した悲しい思い出が 設計者がC言語でいけると判断したのがそもそもの間違いなんで PGは問題無かったんだけど
今時の「組み込み」って幅が広いからね〜 営業がそこらへんわからずに組み込み案件持ってくるのが悩ましい
912 :
仕様書無しさん :2008/01/12(土) 09:44:30
それは8ビット時代の話だろ?そうじゃなければ根本的に選ぶマイコン間違ったんだよ。 M16ぐらいになればCで設計したほうが効率のいいコード吐く筈だからな。一応うたい文句としては。 アセンブラでそこまでがちがちに書かなきゃいけないほどきっつーい要件だとして それって今に至るまで保守できてるのか?後につなげてるか? あー、その保守拡張で食ってる人か。そらすまん。
913 :
仕様書無しさん :2008/01/12(土) 09:45:06
>>911 もう携帯なら携帯一本で絞らせればいいじゃねえか・・・。
>>912 今でも厳しい環境下で稼動させるものは
8bit16bitの新規案件はけっこうあるよ
テスト環境が厳しくて基盤が死ぬことがあるくらいだけど
>>913 ASMの案件だけ受けるって言っても
営業先で組み込み技術者要求されるとこっちに持ってくるんだよw
とりあえず持ち帰って検討します、とか言ってるんじゃないかなと予想
最近は携帯と音楽プレイヤーの案件をよく持ってくるかなw
915 :
仕様書無しさん :2008/01/12(土) 10:01:01
まあ、作りに関してど素人(営業とかメカ屋とかさ・・・)がぎゃあぎゃあいってこないんだったら 何でもいいんじゃねえか?
ASMじゃないと遅いとかいうコードみたら、 そこらじゅうポーリング待ちで澱んでいたり、 頭からのシーケンシャルサーチでテーブルみてたり、 なんかそりゃそうだよな、と思わせるオチ。
>>908 スイッチ入力を普段は割り込みでやらないのは普通だと思うよ。
これはスリープからの復帰の為にあるようなもの。
寝てる時に起こしてさえくれれば、あとはポーリングで見るだけ。
割り込みは、もっと応答を要求されるようなシリアルとかのために出来るだけ空けておきたいのが普通の神経では?
ただ、ダイナミック点灯とかをソフトでやってて、キーボードスキャンがそれに同期してる場合は 割り込み内で当然 ダイナミックスキャンとキーのサンプリングはするよ。 だってダイナミック点灯のタイミングって綺麗に揃えてやらないとチラツクものね。 でもそのエンコードやチャタリング取りはメインで行うもの。 割り込みの中で処理してるの見たら気持ち悪いよね。
ああ、いちおう補足すると、 チャタリング取りってのは、チャタリングを取ってるんじゃなくて 「チャタリング取り」という名のノイズ取り処理の意味ね。
過去ログ見ると少しわかるけど、キーといってもいろいろあるわけで、一概にどれがいいとは言えないわけなんだが ポーリング教団の信者だけは異なっていて、これが決めうち決定版ほかにあるわけない! というのを、どっか一箇所に書いてある(自分で書いてたりするんだろうが・・・)情報を根拠に言い立てるわけさ。 LEDを特定のデューティー比率で点滅させるんだけど、総じて見ると残像で人の目には必要部分が 同時点灯しているように見えるという方法自体は、昔からあるよね。 ニキシ管の人が出てくるとまた混乱しそうだけど。
>>917 俺もむしろ908の考えの方がオカシイと書こうと思ったところw
ついでに言えば、908の中段の文章は意味がわからん
じゃあ、正しい考え方でも開陳してくれよ。
うんまあ、割り込みっていうのは基本的にはCPU時間というコストを犠牲にして 応答のレイテンシを最小化することを目的としたものなわけで、 基本的には邪道でしょ。
王道だよ。
応答時間は ポーリング>端子割り込み>タイマー割り込み>メイン監視 で、そのときのクライアントの要望でお好きに。 「全部できるだけ速くでお願いします」 (´ヘ`;)
全部速くか・・・・
割り込みで処理するしかなくて、なおかつ処理時間が足らないとなると
>>908 が書いてる
>割り込みの中でほかの割り込み要因を見て割り込み
しか無い。
本来は割り込み処理でフラグを立てるだけとかFIFOに書いてメインでポーリングしたい所だけど
このあたり、昔は処理時間が足りなかったから仕方ない場合もある。
なお、俺も
>>908 の書いてる事は断片的には判るが言いたい事はさっぱり判らん。
>>920 2度読み、不一致読み捨ての事?
でもコレは基本だね。 コレが入ってないとやっぱりダメ出しするね。
最近は、さらにポートの入出力切り替えも追加するのが流行だよ。
ボタンとかを割り込みで実装する人に聞きたいんだけど 派手目にチャタった時とか謎のヒゲとかボインが来たとき 割り込みボンボン来るけどハード修正不可のときとかは どうするの?
状態遷移をちゃんと考えないと妙ちくりんなものが出きるよ。
>>929 チャタ鳥を割り込みでどうやって実装してるの?
せっかくなので教えてください
932 :
929 :2008/01/12(土) 16:18:16
誰かがサンプルのサイト紹介してたじゃない? 前回のデータと今回のデータを論理演算すればチャタは取れるよ。 数年前にやったきりで思い出せない...
>>909 割り込み嫌がる奴は組込み屋じゃねーし。
エンベデッドなソリューション屋とでも言うのかねぇ
>>930 チャタ時間をタイマ割込みで待つんじゃなくて、ポーリングで数ミリ秒稼ぐとか?
メイン処理止まっちゃうね
>>933 むしろ割り込みというのは「必要悪」に過ぎない、という認識が欠如している
奴の方が困るだろw
「必要悪」とはつまり、使わなければそれに越したことはないということ。
どういう発想してるんだろこういう人って。
俺に言わせれば倒錯そのものだよ。
>>935 割込みが必要悪なんて初めて聞いたよ、組み込みなら必須技術だろ
なぜ必要悪だと思うのか語ってくれ
割り込みも使いこなせない奴が組み込みやってるの?お笑い...
>>935 大量のデータを捌く必要があるので、スループットが落ちる割り込み処理なんかやりたくね〜よ
というなら理解するけど、
スイッチ処理専門とか、下位に多数のプロセッサ抱えた処理の統括とかやる場合
割り込み無しなんて('A`)メンドクセーよ。
>>936 必須だが使わずに済めば越したことはないものを「必要悪」という。
大事なのは「使わずに済めば越したことはない」という正しい認識を持っているかどうかだね。
こういう認識を持ってない馬鹿は困るんだよ。
そのコストやペナルティーを考慮せず、
風邪を治療するのに抗がん剤を使うような愚を冒すからね。
まあ、聞いても聞かなくても毒にも薬にもならない話だねぇ チャタリングの続きをドゾ〜
>>939 いや、便利なものはガンガン使った方がコストは逆に下がると思うぞ
お前さんの言い分じゃマルチプロセスやマルチスレッド、ひょっとしたらMMUも必要悪なんじゃないか?
そんなんじゃ複雑化してる今時の組み込みに対応できんだろ
OSなしの場合 通常はループ処理 ・割り込み→要因チェック→優先度に応じてハンドラ または ・割り込み→ハード的に優先度に応じたハンドラへ切り替え これを ・唯一のタイマ割り込み→ポーリング処理→ほかのハードウエア割り込み要因チェック→他の要因の割り込み処理 ・たまにループにもどる。 としたらどうでしょう。
_,,:-ー''" ̄ ̄ ̄ `ヽ、 :.. ,r'" .. .. : : ::ノし )(::: :.`ヽ. ビキ . : : __,,::r'7" ::. ノ( ⌒j(⌒) (:::::::...ヽ_ ビキ : . ゙l | :: ⌒. .::: ::: :: .. . .⌒:: :... ゙) 7 ::. | ヽ`l ,/\,,_::..、,;_、_...:::_,,,ノ\ /ノ ) , : ; .| ヾミ,l _;;: ::: ."''=:))il((=''" . . . ::` .ヒ-彡| : . 〉"l,_l "-ー:ェェヮ;::);;;;;f';;_-ェェ-ニ,, ゙レr-{ . :: | ヽ"::::''_;:'" ̄´.::;i;;;;;;i,..`'' ̄`:;_ .::r';' } . : : . ゙N l ::. .....:::;イ;:';;;;;;;;l;;;i、::... . . ...::,l,フ ノ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ . |_i"ヽ;:...::::::/::.゙'''=-='''´`ヽ::.....:/i l" < チャタの話は上の方でもうしただろ!! .|:.:.::゙l :::i ,-==' '==::、..:i .::,il".::|'" \__________ .{::...::|:::.、 ::(┼┼┼┼} :::...:il::. .:| : . . /ト、:. :|::..゙l;: `======='".:,i' .:,l'.::ノト、 : : . .. / .|::..\ゝ、゙l;:: : : : ⌒ :: :,,/;;,ノ;r'" :| \ :: : . . '" |:: : ..`''-、`'ー--─'";;-'''"... : : :| :: : . .
>>927 たぶん
>>908 の最初の行の事だろうけど、
キー割り込みでキーをわざわざ見るなんて処理を書く奴はまず実在しない。
これは電池駆動のシステムで、休んでる時に目覚めさせるのに使うもの。
たぶんチャタリング2度読み否定の人が、何か啓示を受けての妄想だろう。
>>934 どうしてポーリングで数ミリ 止まっちゃうんですか?
そこでビジーループして時間稼ぐってことですか?
普通はそういう作りはしませんよね?
>>942 どうでしょうって。
それで間に合うなら割り込み要求フラグを見るだけ、というのは普通にやるでしょ。
たとえばものすごい短いパルスが来てるかどうかだけみたい場合
カウンタに入れてもいいけど、エッジ割り込み端子を使って、
割り込み要求があったかどうか見るとかさ、
ADCの完了フラグとして割り込み要求フラグを見ればいいというハードだったりさ
>>932 割り込みそのものが非常にたくさんくるときはどうするの?
チャタがひどいとき、処理能力を超える割り込みが
大量にくるとき
マイコンの処理能力とか考慮して作らないの?
>>945 ?の多用はうざいからやめてくれw
ビジーループは作る必要ないよな、メインループでポーリングしてりゃ済む話だ
? ?? ??? ????
>>944 おいおい俺は二度読みなんて不要で間抜けだ、と言い出した本人だが、
同時に908の言ってることにも否定的だぞw
正直二度読みも要りもしない割り込みの乱用も愚の骨頂としか思えん
世間にはプログラミング本や設計のやり方を示した本は結構ありますよね。 でも、事例集とか現実に即した使えるものの例を示した本ってのは案外ない。 人のやってることには局所的な理由があるんでしょうが・・・。 たまたま、そうだ。 それだけなんでしょうか。
奥の手見せてくれる人っていないのでは?
あ、わかってます君とかたまにいるから注意した方がいいよ。
>>953 「現実に即した例」だけでこの世の需要をカバーできるのならそもそもプログラマ要らないでしょ。
少しは自分の頭で物事考えろよ。
電子部品だとどんな場合はどんな素子がいいとかハンドブックが出てるよな
>>953 基本的なことは本を探せばたいがい見つかる
組込プログラマに要求される能力は基本を応用して
対象を解析しながらプログラムを開発すること。
それが出来ないと
>>910 に出てくるポーリング間隔も確認出来ないC言語PGみたいになる
設計どおりには行かないって事じゃ?
全員が間に合っていると信じて積み上げたら破綻とかなー。
処理時間くらい調べるだろ普通
周囲の状況で普通は変わる。世間水準とかいってもねえ・・・。 とっぺんぱらりのぷう。
じじぃ
チャタ取り 前回 今回 結果 0 0 0 0 1 0 1 0 1 1 1 1 になるようにするでどうでしょうか?
>>965 前回と今回とのインターバルは?
割り込みだと駄目だよね?
一定間隔でのサンプリングでなら
こうかはばつぐんだと思うけど
>>966 キーのサンプリングは10msでどうでしょうか?
>>965 あほか、その結果
今回のサンプルを一切無視して前回の結果だけが反映されてるじゃねえか。
一段バッファ付ければ求める結果を出してくれるよ。
>>965 ていうか、それ全く意味無いじゃん?
チャタ鳥って 実際の状態がn回連続でmとなって初めて
状態がmに変わったとみなす とか、そういう感じじゃないの?
前回ってのは内部保持状態?それとも実際の接点の履歴?
前回と今回はキーの状態、結果は別物です。何か間違ってる、俺?
>>970 >結果は別物
無意味な情報を一緒に提示するな馬鹿チンが!
>>970 0101010101
っていかにもチャタな時に
-010101010
ってなってチャタが取れてなくない?
それともこれ2回ワンセットで考えてる?
それはそれでまずくない?
000100101011011101111110011111 という入力があったときに、スレッショルド3くらいとして 000000000000000111111111111111 って具合に変換するのがチャタ鳥なんじゃないの? 蒼い鳥って名曲じゃね?
>>972 10msなら01010のパターンってあると思うんですけど、俺、間違ってる?
またチャタの話かよ。 いいから時系列で微分しれw
あ。 微分したらヒゲが顕著に検出されるだけだなw 積分するんじゃネエのかw
誰か完璧なアルゴリズム出してくれよ。
そもそもチャタがあるようなハードの設計で 10msオーダーで反応しなきゃならん物作る事自体が間違い。
>>974 チャタ取りしたくないってこと?
だったらチャタ取りしなければいいと思うよ。
センサーの揺らぎを取るなら、一定以上状態が保持されたら、ONとかの処理を俺ならするなあ。
10msオーダーの入力なら5ms以下でサンプリングしないとチャタ取りできないんじゃないかな
反応速度をどのくらいに設定するかで変ってくるからね。 手押しボタンのON/OFFを検出するくらいなら、秒間20回くらいポーリングしてその値をそのまま使えばいい。
あ、サンプリングしたいんなら、そのまま生のデータ取ればいいじゃん。
>977 オレの勘に敵うものなし
3回サンプリグして、1が2個以上なら1都下じゃだめかな?
>>976 ヒゲって何のこと?
誰か教えてくれ OTZ
>>987 一瞬ピコーンと立つノイズのことじゃね?
>>987 オシロは見た事ある?
チャタリング _________||~|~|_||~~~~~~~~~~~~|__|~|___|______
ヒゲ ______________|__________________________________________
信号の鈍りにのるヒゲ_________________||~~~~~~~~~~~~~~
こんな感じ
>>983 それはチャタリングは取れるけどヒゲは取れない。
雷とか、静電気の放電とかの短い誘導ノイズによるヒゲで勝手にボタンが押された事になる場合がある
ハード的に処理してるなら別だけどね、完全に取るのは難しい。
サンプルレート2倍にして、前回と一致選択くらいは入れないとね。
>>977 チャタ取りなら、チャタリング時間より長い時間を取るのが完璧なアルゴリズム。
チャタ取りという名前のノイズ取りなら、ノイズに完璧はありえない。
ただスイッチ入力なら20msくらいのサンプリングで前回との一致採用 不一致捨てで十分実用になる。
さらに、入力には抵抗を1本入れておいて、普段は現在の採用値を出力しておき、
入力する時だけ直前に入力に変更するというのを入れると、
入力ポートに対してシュミット特性も持たせられるし
入力ポートの相対インピータンスを下げられるからヒゲが乗り難くなる。
携帯電話や違法無線なんかにも強くなるよ。
>>986 つまり本当は1秒に20回くらいで読みたい場合に 1秒に60回サンプリングして
3回毎に、0が多ければ0 1が多ければ1ってするわけ?
それはソレなりに動くと思うよ。
101 010 101 が来ると 1 0 1 になるけど
こんなふうに連続して10101が来るような信号ってアリエナイわけだしさ
でも
>>646 の方がシンプルで処理も軽いと思うけどな。
シンプルかもしれんが意味がないっていってるだろだからw
だから悪い頭をフル回転してよく考えなよ。
>>646 が想定しているような「都合のいい」入力なんてありうるの?w
結論からいえばありえんそんなの。
993 :
仕様書無しさん :2008/01/13(日) 11:34:15
チャタ気になるなら容量スイッチに替えればOK
>>992 じゃ、見本になるコードplease!!
>>994 だからチャタの期間より長いインターバルでスキャンすれば普通に問題なし。
ノイズ除去の方法を求めているなら、そんなのソフトでやろうなんて無理無駄ムラ。
時間と脳力の無駄だそんなの。
>>995 妙なことに固執して、廃人に追い込む人がたまにいるみたいだから、なんとなく...
>>992 その結論ってのは経験の上で? どんな現場で経験してるの?
現場でなくても、ノイズ試験とかはやらないの?
998 :
仕様書無しさん :2008/01/13(日) 12:25:51
>>997 そういう間違った「現場主義」はよくないと思うよ。
机上で純粋に論理的に「オカシイ」とわかることはやはり「オカシイ」でしょ。
というか、理論値以上に「好都合な」結果が出るって普通はありえない。
だからさあ、何度も言うように
>>646 的な方法でフィルタできる波形っていうのは
どういう条件を持っていることが必須?
そしてそういう条件を備えた「都合のいい」ノイズが乗って来るケースっていうのは
どの程度ありうるの?
んな「都合のいい」ノイズが乗るケースなんてありえんでしょw
1000 :
仕様書無しさん :2008/01/13(日) 12:46:52
1000000000000000000000000000getttttttttttttttttttttttttttttttttt あっ、チャタっちゃった
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。