訂正:
PICマイコンでつくる
インドア・プレーン
戻る
2006年10月20日時点、初版および第2版にて、下記の誤植がありました。お詫びをして訂正させていただきます。

p.63 ●変調パルスの送信 リスト内

    MOVLW b'00001111' ; RB0 ,RB1 , RB2 ,RB3 High

p.131 図7.13 +3.7VとGNDの間に0.1μFのセラミック・コンデンサを追加。

p.141 表8.1 D2発光ダイオードの下に、下記を追加。

    C1 セラミック・コンデンサ  1μF  1個  30円

p.201 図C.8 キャプション PIC12C509AのSFR 

    図C.9 キャプション PIC12F629のSFR 

p.269 部品の調達先 リストの下から4行目。

     2SC1015 -> 2SA1015

p.268 コラム Microschip社のライタ -> Microchip社のライタ

◆CD-ROMに収録したプログラムの修正版。
irxs411.asm irxs411.HEX
(ファイルをダウンロードする場合は、ダウンロードファイルの上でマウスを右クリックして「対象をファイルに保存」を選択してください。)

---

初版(2005年3月16日時点)にて、下記の誤植がありました。お詫びをして訂正させていただきます。

p.64 表3.1
 Q1のトランジスタ2SC1815の行削除
 Q2 → Q1

◆p.79 ●ギャップ検出 のプログラムを訂正
LP1	MOVLW	D'25'		; 2.5ms以上のギャップを検出するための25を
	MOVWF	COUNT		; COUNTにセット
LP2	BTFSS	GPIO, 3		; 入力がHighならスキップしてギャップかチェック
	GOTO	LP1		; 入力がLowの間ここでループ
	CALL	WAIT		; 100μs待ち
	DECF	COUNT, F		; COUNTをデクリメント
	BTFSC	STATUS, Z		; ギャップでなければスキップ
	GOTO	LP3		; ギャップなら検出完了でLP3へ
	BTFSC	GPIO, 3		; 入力がLowならスキップして
	GOTO	LP2
	GOTO	LP1		; ギャップを検出するためにLP1へ

◆p.102 上から5行目
AVR備わっている → AVR備わっている

◆p.113 表6.3
TA7358P → TA75358P

◆p.126 リスト7.1

delay(500); 2ヵ所を → delay(244);

[補足事項]
delay( )関数の引数にchar型を宣言した場合、引数として渡せるのは255(FFh)までとなります。
リスト7.1ではdelay(char);と宣言して、引数に500(1F4h)を使っていますが、
この場合下位8ビットの244(F4h)だけが引数として渡されることになります。
引数として500を渡すためにはdelay( )関数の引数に16ビットのunsigned long型かlong型を
宣言する必要があります。 char型を使う場合は2回に分けるなどの工夫が必要です。 リスト7.1のdelay( )関数の引数にunsigned long型を使ったプログラム例を下記に示します。

#include hexcodes.h;
#pragma config |= 0x2184

void delay(unsigned long millisec)
    {
        uns8 i;
        do {
            TMR0 = 0;
            while (TMR0 < 61)
                ;
        } while (-- millisec > 0);
        for (i = 0; i < 255; i++)
            ;
        for (i = 0; i < 207; i++)
            ;
}

void main(void)
{
    #pragma update_RP 1
    #asm
        DW    __CALL(0x3ff)
    #endasm
    OSCCAL = W;
    TRISIO = 0b.0000.0000;
    OPTION_REG = 0b.0000.0011;
    CMCON = 0b.0000.0111;
    #pragma update_RP 0
    GPIO = 0b.0000.0000;

    for(;;) {
        GPIO4 = 1;
        delay(500); // 499.997msec
        nop2();     // タイム調整
        GPIO4 = 0;
        delay(500);
    }
}
◆p.131 図7.13
PIC12F629 → PIC12C509A

◆p.141 図8.3
D2のアノードを電源(+5V)に接続変更


◆p.144 図8.5
D2のアノードを電源(+5V)に接続変更


◆p.222 MOVWFの書式
MOVWF f, d → MOVWF f
◆p.238 表D.Aのhighの例
最終番地は3FFhまでとなるで、→ 最終番地は3FFhまでとなる

◆CD-ROMに収録したプログラムの修正版。
irxs300.asm irxs400.asm irxs300.HEX irxs400.HEX
(ファイルをダウンロードする場合は、ダウンロードファイルの上でマウスを右クリックして
「対象をファイルに保存」を選択してください。)