- 電子工作入門者・初心者の集うスレ 42
758 :でっきるっかなでっきるっかな NOPさん[]:2012/06/24(日) 22:57:53.54 ID:VrOWffyL -
組み込み豆知識 何もしないで待つ、いわゆるウェイトを NOP連呼やforでやるやつはとんでもない奴である。 なぜなら、「それをやるにもCPUが最低でも1クロック食ってフル回転」だからだ。 つまり、「それをやっている間は何もできなくなる」のである!!! こういうときはCPU以外のタイマーを用いる。 x86系統ならACPI SH系統やPowerPC系統なら内蔵タイマー(SHは3つもあって豪華豪華) PICでもタイマー内蔵のSKUがあるので、そうすべきだ。
|
- 電子工作入門者・初心者の集うスレ 42
759 :でっきるっかなでっきるっかな NOPさん[]:2012/06/24(日) 23:00:35.86 ID:VrOWffyL -
また、forループのウェイトは完了まで一定しない。 当たり前だがクロックが違うとループ速度も変わってくるからである。 PC98の頃はメモリ載り待ちにこれをやってるものがあり、(当時でもとんでもないことであったが) もちろんそういうのは機種が変わると正常に動かなくなったものである。
|
- 電子工作入門者・初心者の集うスレ 42
765 :774ワット発電中さん[]:2012/06/24(日) 23:49:52.87 ID:VrOWffyL - なんでもできる
タイマーが送ってよこすのは割り込みなので、その割り込みが来るまでは何でも可能
|
- 電子工作入門者・初心者の集うスレ 42
766 :774ワット発電中さん[]:2012/06/24(日) 23:52:29.87 ID:VrOWffyL - 「CPUに何もさせないこと」は、消費電力から見ても重要。
forループだと、人間からすると何も起こってないように見えるだけで CPUは一生懸命ループして数えているから、フル回転しているわけだ つまり電気を食って働いている。 タイマーが、完了したさいのアンダーフロー割り込みを送るまで、本当に何もしないならアイドル状態の電力しか食わない。 これは電池駆動の際に特に問題になる。
|