2016-11-03 5 views
0

私は最近IAR組み込みワークベンチ8051について学び始めました。まあ、私は現在LEDだけで遊んでいます。私はこれを行うためにCC2540 BLEチップを使用しています。私は8ピンのLEDを持っているとしましょうが、他の6ピンに影響を与えないように2ピンだけを制御したいのですが、どのようにビット演算子を使ってコード化するのですか?私はこのコードP1SEL = 0;を使ってGPIO用のピンをすべて設定しました。このようなコードを入力すれば、他のピンに影響を与えます。もし私がそれを宣言すれば、P1SEL = 0xFC;?他の人たちが影響を受けますか?他のピンに影響を与えないで2ピンのみを使用する方法は?

+0

もちろん、レジスタ全体を割り当てると他のすべてのピンが影響を受けます。 8051の最も一般的なレジスタはビットアクセス可能ですので、1ピンを変更してそのビットに割り当てたい場合に使用します。それが利用できない場合は、レジスタ全体を読み込み、必要なビットだけを変更する必要があります。 –

+0

[C/C++でどのように1ビットをセット、クリア、トグルするのですか?](http://stackoverflow.com/q/47981/995714 )。複数のビットは同じことをします。 [CC2540 USBドングルの出力ピンを設定](https://e2e.ti.com/support/wireless_connectivity/bluetooth_low_energy/f/538/t/436679) –

+0

答えを=ありがとう。)、私はそれを読む。 –

答えて

1

実際には&と|特定のビットを設定します。

P1SEL = P1SEL & (~(1 << i)) // set bit i to 0 
P1SEL = P1SEL | (1 << i) // set bit i to 1 
+0

=)さて、私はまずそれを試してみると思います –

関連する問題