1

atmel 89c2051 コントローラーをプログラミングしています。たとえば、個々のレジスタビットのステータスに基づいて条件を作成したい:

ポート 1 のビット 0 が 0 のときに (何かを) 行う

while P1_0 を使用してみましたが、コンパイラは宣言されていない識別子エラーを返します。これを行うにはどうすればよいですか?ありがとう

4

1 に答える 1

0

ポート変数をマスクしてから、単純な true/false テストを行います。例えば:

while (PIND & (1<<PD1))
{
    // Do stuff.
}

上記のコードは新しい「マスク」変数を作成し、その変数を(実際の変数は、または)1の位置にシフトします。その「マスク」は、読み取られたピンで編集されます。テストしている位置のビット以外はすべてになります(結果がになるには両方のビットが必要なため)。結果は、またはブール値テストで評価されるより大きい数値です。PD10b000000100x02AND01100true

于 2014-02-27T04:24:59.127 に答える