PIC18

PIC18, MPLAB X IDE, XC8, I2C, pcf8563

CoyoteUgly 2018. 9. 13. 18:40

PIC18, MPLAB X IDE, XC8, I2C, pcf8563



4MHz frequency에 100KHz clock 입니다.


RC3, RC4를 i2c 라인으로 사용합니다.


0. 참고 사항


1. HW 연결


2. 소스 설명

full 소스는 아래 github를 통해 확인하세요.




i2c로 어떤 module의 값을 가져올 때

start - write_mode_addr - get_reg - restart - read_mode_addr - read_value - stop의 순서입니다.



void setI2C(unsigned char reg, unsigned char data)
{
    I2C_Master_Start();         // Start condition
   
    I2C_Master_Write(RTC_ADDR); // 7 bit address + Write
    I2C_Master_Write(reg);      // Write data
    I2C_Master_Write(data);     // Write data
   
    I2C_Master_Stop();          // Stop condition
}


unsigned char getI2C(unsigned char reg)
{
    unsigned char data;
 
    I2C_Master_Start();                 // Start condition
   
    I2C_Master_Write(RTC_ADDR);         // 7 bit address + Write
    I2C_Master_Write(reg);
   
    I2C_Master_RepeatedStart();         // add, important!!!
   
    I2C_Master_Write(RTC_ADDR | 0x01);  // 7 bit address + Read
    data = I2C_Master_Read(0);          // Read + Acknowledge

    I2C_Master_Stop();                  // Stop condition

    return data;
}



3. 소스


4. 결과