Microchipはアメリカの会社です。アメリカの会社はみんな日本語はキライです。
なので、日本語コメントに罠を張っています。以下の文を見てください
PORTB = 0;
一見何の問題もなさそうですが・・・
RB0 = 1; //PORTB全てにLEDを接続しています。
RB1 = 1; //このプログラムで
RB2 = 1; //全てのLEDを点灯させることが可能
RB3 = 1; //(許容電流の問題はわすれましょうw)
RB5 = 1;
RB6 = 1;
RB7 = 1;
RB3に接続されたLEDだけが光りません(゜Д゜;)
じつはこれ、4行目のコメント文の最後の文字「能」のせいです。
「能」は2byte文字で、16進数で"945C"。この後半の"5C"は1byte文字で「¥」(表示によってはバックスラッシュになる)にあたる数字です。
つまり、コメントを1byte文字の目で見ると、最後が「¥」で終わっているのです!
「¥」という文字は特殊な意味をもち、コメントの最後にくると、
「コメントが次の行に引き続く」
という意味になります。
つまり、コンパイラは2byte文字にも関わらず(2byte文字の表示はできるのに・・・)「¥」を単体で認識し、
次の行をコメントアウトしてしまいます。
つまり、5行目はなかったことになります。
当然、コンパイルエラーにはならないので、これは
非常に気付きにくいバグを生みます。
PICC-Pro Lite, C18, C30全てにおいてこの現象が起こります。
「能」の他に「噂」、「欺」、「表」、「十」、「貼」、「暴」などいろんな文字が1byte文字の目でみたとき「¥」で終わります。
この問題を防ぐ一番確実な方法は、「日本語を一切使わない」ことです。
でも日本人に日本語を使うなというのは無理な相談です。
なので、もう一つの方法は、日本語コメントには「//〜」という記法をつかわず、「/* 〜 */」という記法を使うということです。
え? お前はサイト上でいつも「//〜」という記法で日本語コメント入れてるじゃないかって?
追々 修正していきます^^;