• 締切済み

マイコンにおけるビット間の干渉について

C言語でマイコンを使ってLEDを点灯させるプログラムを作っているのですが分からないことが出てきたので教えてください。 LEDは全部で3つあって、それぞれRB0,1,2です。 以下のようにプログラムを作ったのですが何故かLED3がLED1と同じ出力になってしまい、原因が全く分からない状態です。 各LEDを出力として PORTBbits.RB0 = 1; //LED1 PORTBbits.RB1 = 0; //LED2 PORTBbits.RB2 = 0; //LED3 これだとLED1が点灯し、他が消灯すると考えていたのですが LED1とLED3が点灯、もしくは、LED1とLED3が消灯してしまいます。 尚、以下の表記した時は、ちゃんと動きました。 PORTB = 0x0007; 意味的には同じ筈なのに不思議です。

みんなの回答

  • ceita
  • ベストアンサー率24% (304/1218)
回答No.1

その質問では、エスパーしか答えられないでしょう。 マイコンの種類、回路、Cのソースがないとわからないように思います。 「意味的には同じ筈」と思い込んでるだけで、 実際には違うのでしょう。

peace1st
質問者

お礼

回答ありがとうございます。 確かに質問の仕方が悪かったです。 改めて、質問し直そうと思います。

関連するQ&A