マイコンソフト 悩み事相談室 3 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
.
∧ ∧
( ´・ω・) < コンフィグって何? 昆布なら知ってる。 ボラチルって何? ボラは魚だよ。
( ∪ ∪ ,.-、 ,.-、 ,.-、 ,.-、
と__)__) (,,■) (,,■) (,,■) (,,■)
PIC AVR H8 ARM
学校でC言語を習ったことがあるので「楽勝でしょ」って、マイコンを始めたけど、
わからないことだらけ。誰か教えて!
PCとは別世界の、マイコンのソフト。難しいよね。
ツールの使い方、ツールの設定、マイコン特有のC言語の書き方、
「デバッグモードにプログラミングモード。何?」 Eclips, Emacs って何?
VBAしか知らないよぉ、という人まで、
各社マイコンに関するマイコンソフト相談室です。
質問者は、「初心者質問スレ」の>>1を見て、分かり易く質問を書いてね。
回答者は、威張らない、バカにしない、言葉使い注意で、親切に教えてあげてね。
あっ、そうそう。
ハードウェアに関する質問は、それぞれのマイコンのスレに、達人がいるから。
過去スレ
1 2014/09/11〜
2 2016/07/31〜 http://rio2016.2ch.net/test/read.cgi/denki/1469905691/l50
では、質問、ドゾ〜 『割り込み』はデフォで使えるとは思うが、『多重割り込み』はデフォで禁止になってないの?
勝手に有効にされたら困るぞ、普通は。 タスクに絡まない多重(レベル)割込みはやればいいと思うが、ISRの多重実行はスイッチャが
複雑になってスタックも余分に要るからたいへんですよ。 スタックは使うが大変ではない
と思うが
何が大変? 割り込み処理中に、さらに割り込みを許可させるには、改めて割り込み許可命令を実行しないといけないんじゃないの?
それとも、逆に割り込み中断命令を実行しないと割り込みかけたい放題なのが今のCPUのトレンドなの?
なんか、よくわからなくなってきた。
俺のまわりの環境が特殊だったのかな… >>581
>>573
割り込み禁止区間は最低限にするものだけどね普通は >>582
俺が気になったのは、割り込み処理が始まったら
・大事な処理を行った後に割り込み許可命令
なのか、それとも割り込み処理が始まったら、
・割り込み禁止命令、大事な処理、割り込み許可命令
この順番でやるの、どちらなんだろ?と、思ったのよ。
割り込み禁止時間が短い方が良いのはわかるが、それは仕様次第じゃね? マルチレベル割込みと単純な多重割込みを混同しないようにね >>583
割り込み有効がデフォ
割り込み禁止が必要なら期間は最短で
これが常識的な設計ポリシー
ISRの先頭で禁止なら真っ先に有効にする
これが普通の考え方 多重とかスタックとか
そのせいで四苦八苦してるくせに
その頭しかない連投バカ
そうしなくても十分使えるシンプルな処理でよいし
それが主流でPLC製品が普及してる で、その多重バカの作ったインタプリタで
機械を数10台動かせば、動きがちぐはぐで反応遅くて他所の機械の終了待ちしてるさまが
想像できる 最初に学んだ所の手法を世の中の常識と思っちゃってそれ以外は邪道としか考えられないんでしょうね…
反面教師だな… >>585
いくら割込み禁止区間を都合よく短くしても
重要な割込み来てる瞬間にぶち当たった時に
間抜けになりさがる インタプリタ?
誰と勘違いしてるんだ?
シングルタスク+多重割り込み
小規模マイコンではかなりの率だと思うよ
普通に自動コード生成しても普通はそういうコードが吐かれるし
知らないうちに使ってたりするんじゃないの?
ホビーな人は世の中の常識とは異なる設計が普通だと思ってる人が多くて面白いね
超小規模マイコンでもマルチタスクOSが普通と思ってる人
標準で使える多重割り込みを使わない人
割り込み自体全く使わない人
LED 1個でタスクを作る人
割り込み禁止に抵抗が無い人
アセンブラで書くのが偉いと思ってる人
自作のOSもどきを自慢する人
PLCの常識を押し付ける人 マイコンに割込み禁止命令がわざわざあるのは
多重割込みのためではなく、自己の割込みを防ぐためだ
自己の割込みなら堂々と禁止にしてよいが
自己割込みさせない前提で設計するのがスジ
多重割込みかけておいて他所の割込み禁止とか
何様だよ?ってくらいアホ >>592
>マイコンに割込み禁止命令がわざわざあるのは
>多重割込みのためではなく、自己の割込みを防ぐためだ
の「自己の割込みを防ぐため」の正確な意味がよく分らないけど、
ディスパッチャを動かしているときに、
今ハード・ディスパッチ割込みされたら困るから、
割込み禁止命令を実行してハード・ディスパッチ割込みを禁止する。
はよく使う。
もちろん、
今ディスパッチ割込みして欲しいから、ソフト・ディスパッチ割込みを実行する。
もよく使う。
いやぁそれにしてもこのスレの打って変わった進行速度はスゴイ! あらあら
ゲームなどでフレーム落ちって
どういう時に発生するか、理屈わかってないバカがいるんだね
割込み処理中に同じ割込み(自己)をさせないから、フレーム落ちになってエラーにならずに処理進むってのに まぁこの馬鹿>>595がゲーム作れば
割込み処理の後半全部終わる前に、次フレーム始めちゃって
データがしっちゃかめっちゃか
アホなデータ参照して処理して、問題抱えてるのにいつまでも気付けない無能 思い出したw
某DMMゲーで、戦闘5倍速とか、クソスペックPCでプレイすると
敵のターンがパスされまくりで超難度も糞も関係なく勝てちゃうって奴
結局直す術知らんから、ターン制限とか明後日の方向で調整してるとか
ほんと、バカがプログラム組むとろくでもないものになる
バカには触らせたくないから去ってほしいわな >>598
ゲームではそうだろうけど、たとえば自動倉庫のコントローラなら割り込みは取りこぼしちゃならんし、たとえ処理落ちしてもスタック全部処理せにゃならんだろう。
それにゲームの画面処理と違って、自動倉庫なら多重に割り込むのも一過性で終わるから、データ参照先をレジスタとかで賄えば、スタックが許す限りは問題抱えないんじゃね?
マイコンの使い方にも色々なシチュエーションがあるのに、『これじゃなきゃダメ!』という硬い意見が混じってる気がするわ。 >>598
小規模マイコンの話で突然フレーム落ち?
いみわからん
シングルコアの普通のマイコンは
同じ優先度の割り込みが多重にかからないようになってるよ
割り込みがかかるのは処理中の割り込みより優先度が高いものだけ 普通のシングルコアのマイコンの多重割り込みといえば
最大でも各優先度1個ずつだけしか処理中にならない
優先順位を同じにすればシングル割り込みだし
優先度を3個だけにすれば最大でも同時に3個しか処理中にならない
PCのゲームプログラム?
普通ISRをユーザーが直接コーディングなんか出来ないぞ
何の環境の話? ディスパッチャ君やPLC老害もレベルが低いが
全くのソフトの素人が偉そうに語るのが電気電子板って感じだね
>>570
>>571
>>579
>>586
>>589
>>592
>>598
この辺が特にひどい コールバックとISRを混同してるのかな?
PCゲームの人 ひとを貶すために、広義と狭義を恣意的にふりまわすのって良くない。
>>604
コールバックで実行される内容まで含んで、割り込み発生からリターンまでをISRと呼ぶ
習慣の人たちがいることはわかってるよね?
自分が断固としてその流儀の定義を否定する、ということとは別だよ。 >>606
広義を含めISR内じゃないぞ
少なくともWindowsやLinuxでは
そんなのをアプリに解放するわけがない
ちょっと行儀の悪いアプリがいただけでアウトだ
ちょっとは勉強してから書きなさい 取りこぼしてはいけない割り込みは、ISRが処理中でも禁止しないのは当然。
でもそれをISRとして実装するなら面倒だ。
タスクに絡まない処理として実装すべし
たとえばシリアル通信をタイマで波形作ってやるような場合、次のデータを
バッファから取り出してタイマのレジスタに書き出すとかはタスクに関係ない形で
遅れなく応答する形で書く。クリチカルセクションとか使わずに、メモリをいじるときだけ
(タスクのほうも)DI、EIで済ます。 >>608
どの辺が面倒?
普通の多重割り込みの仕組みだけど ふつーは要求フラグ立ったまま保留されるよね
禁止されていたら。
で、解除したら割り込みされる。
禁止時に同じのが多重に入ったら一つ抜けるが
意図していないなら(そんな例は知らんが)それは多分バグだ
尤も、保留用のフラグなんてない石もあるのかもしれないが
それなら自前でやるまでだが ああ、>>589の意味がわかった
割り込みが保留にならずに
割り込みがすっぽぬけると思ってたのか
普通割り込み禁止期間といえば割り込みが保留される期間だと思うが >>611
そりゃあスタンバイ制御回路でも実装しない限り、割り込みフラグは1bitしかねーんだから、同じ割り込みが何回発生されても1回しか認識できねーだろ。 >>582
ベクターが少なくて多機能だと、割り込み要因の判別に処理時間取られてしまう。 こいつらレベル割り込みとかエッジ割り込みとか知らんのか? やはり割込み保留を許容するほどのろまな用途なんだね
バカが作る制御は気楽でいいよな
だから不評なんだよ
自分で言っといて、ここで愚痴言ったって好評に変わるわけないじゃん
不評な物はどこの世界でも不評なんだよ >>615
イベントを待つ為の割り込みなら、応答遅くても問題無いだろ。 わはは
イベントドリブンなループを並べといて割込みで開始してんの?
平和な世界だねぇ >>614
割り込み要因の判別に割り込み禁止が必要な理由は? シングルタスク、シングル割り込み
シングルタスク、多重割り込み
シングルコア、マルチタスク
マルチコア
環境の前提がごちゃまぜになってきた
前提を書いてから語ろうよ >>617はアンカーミスか
シングルタスク、多重割り込みの環境だと、
最低プライオリティ割り込みなんかかなりスローな処理だったりするぞ
この辺はマルチタスクと大きく違う アンカー打ってないレスにアンカーミスって書いてる。ややこしい。
>>621自体がアンカーミス?
それとも、広義のmissなら、アンカーを打つべきところを打ってないケースもアンカーミスに含まれるかな? あれ、レス番号がズレて表示されてる
キャッシュをクリアしたらなおった
専ブラのバグか?
>>621は>>615宛で、1行目は無視して ID:S5C1oC7d
ID:G+mPw1KW
この2つ、ずっとアンカーが1個ずつずれてました
ワケわからん書き込みが多いとおもったら、
自分がワケわからん書き込みでした ずれてるのはアンカーだけじゃないだろ w
とりあえずちょっとROMっとけ >>592より新しいレスへのアンカーが全て1個ズレてましたすみません
>>592の内容が2個書き込まれたのを見て
>>593 >>594を書いたんですが
>>592は2個書き込まれていませんでしたね
ここからズレたんでしょう 流れ無視ですまんが、ボタンのダブルクリックの検出って
ボタン押し下げ毎の時間間隔を測っといて
Nミリ以上ならシングル、それ下回ったらダブルって判断が
一般的かな? いみわからんのは>>619くらいだね
あとは意味がわかる
>>619は>>617に対してのレス
ISRでイベントをセットするのは普通だと言った
>>617はISRからタスクを起動するのはどうやってるだ?謎 意見の交換じゃなく煽り合いになってる
不毛なスレだな >>627
ON/OFF/ON
1個目のONがダブルクリックではない
1個目と2個目のONの間に特定のアクションが入らない
とかも条件になるかも 一般的なマウスならONで確定だけど
他のデバイスならOFFで確定ということもあるかも やはり頭悪い
ONで確定したらどうやってシングルとダブルを見分けるのだね?
得意の「遅延」使うのかね? >>624
しかも自演自分でばらしてるし
頭悪いし必死 ダブルクリックがOFF確定のマウスは見たことがないな >>633
場所でIDが変わるんだよ
自分が自演してるからって他の人もしてると思わないでね プログラム実行中にハードウェア割込みの禁止・許可、ソフトウェア割込みをやるようになれば、
小さな8ビットMCUの初級者レベルを卒業、と言えるのではなかろうか?
中級者レベルの卒業は( )かな。 >>637
ん?
こんな簡単な文章も理解できないの?
大丈夫? スクラッチで
ブートローダー、スタートアップコード、
一通りのペリフェラルの制御、
を書けること 上級になると
・誰かに仕事を丸投げする能力
・困ってるときだけ助けて「あの人はすごい」と言わせる能力
・納期遅れになりそうな場合、それをほったらかしにして長期出張できる能力
が必要になる。 ・誰かに責任を丸投げする能力
・困ってるときに助けてもらって「あの人が悪い」と言う能力
・責任を追及されそうな場合、トカゲの尻尾切りにして長期在任できる能力 >>651
そうなんですか?
民間でも多いですよ。>>650みたいな人。
公務員と民間の違いってあまりないよね。
(場合によっては他の人の足を引っ張ってでも)うまく立ち回らないと
職を失うリスクが高いのは民間かな。 大容量RAMとか高速ADCとか、尖がった性能のマイコンって無いのかなぁ
何十ピンもある高級チップって、お手軽電子工作には使いにくい。。。 >>654
何十ピンだったら、マイコンのピン数としては少ない方だと思う。
前に調べたことがある
PIC24FJ128GC010
12ビット 10Ms/s
STM32F303
32ピン版がある。少ピン。
12ビット 5Ms/s で2個のA/Dコンバータが載ってる。(マルチプレクサが2ch入力じゃないよ) 16bitAD内蔵のPICもあったよね
マイコンからのノイズが気になって採用しないけど 昔、12ビットの外付けADCをフィードバック制御に使った事があるけど、
結局、ノイズや精度を考慮して上位10ビット(最少5mV)で制御した。
CPU内蔵の16ビットADCなんて私には使いこなせそうに無いな。 下位ビットなんてただの飾りdeth 工口いひとにわ(ry >>661
そうだよ、電源ラインやら信号ラインやらに色々ノイズ対策したうえで、2ビット捨てた……
制御相手はプラズマ溶射用のMax100KWの電源の電圧と電流。 捨てる意味がよくわからん
例えノイズに埋もれてようが使った方が精度は良いはずなんだけど 普通は何回かのサンプルの平均をとるとか、移動平均を使うとかすると思うけど
目的を達すればいいわけで、他人がどうこう言うことではないかも 他人に指示してるわけじゃなくて
単純にわからないと言ってるの
ノイズや精度を考慮してわざわざ2bit削る理由が 捨てるだけのほうが簡単だ(と思った)からじゃないの
制御系だと、測定値のサンプルだけだけ精度上げてもしょうがないから 10bitだろうが12bitだろうが処理が1発なら
捨てる処理の方が無駄って事かな? 例えばなんかの表示に使ってたらノイズで表示がチラチラ変わるのがウザいとか理由はいくらでもあると思う 勢いでよく考えずに作り話を書いてしまった
ってとこだろう >>673
わざわざ理解してないことをアピールしなくてもいいんだよ
説明はしないから自分で考えてね 下位ビットを捨ててる例なんて巷にゴロゴロあるのに…。
他人からは何も学ばない人がいるようだね。 ■ このスレッドは過去ログ倉庫に格納されています