OSを作ろうpart5
■ このスレッドは過去ログ倉庫に格納されています
0172ひげぽん ◆Ngzcp/NZpA
NGNG片方のタスクで取得する実験をしてみました。
キー入力取得タスクの肝
while (true) {
while ((ch = km.getCharacter()) == -1) {}
_sys_printf("%c\n", ch);
}
これを実行するとchが不定の状態で
なぜか_sys_printfのところが実行されることがある。
「実行されることがある」とは
タスク実行中キー入力がない場合whileの条件は
ほとんどtrueになるが50回に1回くらいnot trueになる
getCharagter()の実装はまじめにキーを返すバージョンや
return -1;
オンリーだけでも上記の現象がおきる。
(1)
while ((ch = km.getCharacter()) == -1)
⇒
while ((ch = km.getCharacter()) == 120)
とやっても
この現象は起きます。
■ このスレッドは過去ログ倉庫に格納されています