「逆引き PIC電子工作 やりたいこと事典」正誤表

 技術評論社    ISBN978-4-297-10283-8
  
  誤りがありましたら是非メールでお知らせ下さい。 

ページ 章・節 行数    正 誤 内 容 更新月日
 P77 注意  ここに掲載されている液晶表示器の回路図はSD1602HULB用です。
SC1602Bを使う場合にはピン配置が異なりますので注意してください
特にVDDとVSSが逆になっています。
 2021/2/23
 P82 リスト1  MCCのI2Cライブラリの変更により下記修正
/*********************************
* 液晶へ1文字表示データ出力
*********************************/
void lcd_data(uint8_t data){
unsigned char tbuf[2]; // バッファ構成

tbuf[0] = 0x40; // データ指定
tbuf[1] = data; // 文字データ
while(!I2C1_Open(0x3E)); // バス取得
I2C1_SetBuffer(tbuf,2);
I2C1_MasterWrite();
while(I2C1_BUSY == I2C1_Close());// 通信終了待ち
__delay_us(30); // 処置待ち遅延
}
/*******************************
* 液晶へ1コマンド出力
*******************************/
void lcd_cmd(uint8_t cmd){
unsigned char tbuf[2]; // バッファ構成
tbuf[0] = 0x00; // コマンド指定
tbuf[1] = cmd; // コマンドデータ
while(!I2C1_Open(0x3E)); // バス取得
I2C1_SetBuffer(tbuf,2);
I2C1_MasterWrite();
while(I2C1_BUSY == I2C1_Close()); // 通信終了待ち
/* ClearかHomeか */
if((cmd == 0x01)||(cmd == 0x02))
__delay_ms(2); // 2msec待ち
else
__delay_us(30); // 30μsec待ち
}
 2023/3/14
P96,P97 MCCのSPIライブラリの変更により下記部分を変更
 リスト1  SYSTEM_Inirialize();
        SPI_Open(0);   <--追加
リスト2(a)  2か所
       SPI_Exchange8bit(cmnd); 
            → SPI_ExchangeByte(cmnd);
       SPI_Exchange8bit(data);  
            → SPI_ExchangeByte(data);
2020/11/2
 P225  表1 MCCのI2Cライブラリの書式変更と新規関数追加
 2023/3/14
 P225 リスト1 MCCの I2Cライブラリの変更により上表の使用例にしたがって変更
/*********************
* 1バイトデータ送信
********************/
void SendI2C(uint8_t Adrs, uint8_t Data){
uint8_t tbuf[1];

tbuf[0] = Data;
while(!I2C1_Open(Adrs)); // バス取得
I2C1_SetBuffer(tbuf, 1); // バッファ指定
I2C1_MasterWrite(); // 送信実行
while(I2C1_BUSY == I2C1_Close()); // 通信終了待ち
/*********************
* コマンド送信
**********************/
void Send_data(uint8_t Adrs, uint8_t Reg, uint8_t Data)
{
unsigned char tbuf[2]; // バッファ準備

tbuf[0] = Reg; // 送信データ
tbuf[1] = Data; // 送信データ
while(!I2C1_Open(Adrs)); // バス取得
I2C1_SetBuffer(tbuf,2); // バッファ指定
I2C1_MasterWrite(); // 送信実行
while(I2C1_BUSY == I2C1_Close()); // 通信終了待ち
}
/*******************************
* 指定バイト数の受信
*******************************/
void GetDataI2C(uint8_t Adrs, uint8_t *Buffer, uint8_t Cnt){
uint8_t tbuf[Cnt];

while(!I2C2_Open(Adrs)); // バス取得
I2C2_SetBuffer(tbuf, Cnt); // バッファ用意
I2C2_MasterRead(); // 読み出し実行
while(I2C2_BUSY == I2C2_Close()); // 通信終了待ち
for(i=0; i<Cnt; i++)
*Buffer++ = tbuf[i];
}
 2023/3/14
 P227 表1 リスト1 SPI_Exchange8bit  → SPI_ExchangeByte
SPI_Exchange8bit  → SPI_ExchangeByte
 2023/3/14
 P246 図1 誤  CCP1 Capture
正  CCP1 Compare
2019/8/30 
 P246 図2 誤  IC1 PIC16F1778
正  IC1 PIC16F18857
 2019/8/30
 P247 リスト1 下から11行目 誤  CCP1_SetCompareCount(31260);
正  CCP1_SetCompareCount(31250); 
 2019/8/30
 P268 図2  誤  スイッチS1抜け
正  RA7ピンにS1の接続を追加  (P126の図2参照) 
 2021/1/27
 P311 図2の右下の表  誤 PMOD2
正 PMOD0
 2023/3/14