Ðề tài: Giao tiếp I2C
View Single Post
Old 14-09-2006, 04:24 PM   #14
thanhha
Nhập môn đệ tử
 
Tham gia ngày: Sep 2006
Nơi Cư Ngụ: Ho Chi Minh City
Bài gửi: 9
:
Send a message via Yahoo to thanhha
Theo Hà nghĩ, ở Master, khi mình đọc cũng phải chờ xung ACK từ Slave thì chtr ko bị rối.
Bạn thử thêm một chtr con chờ Bus trong <2401.c>:

Code:
//**************code thêm vào*********************
BOOLEAN ext_eeprom_ready() 
{
   int1 ack;
   i2c_start();            
   ack = i2c_write(SLAVE_ADDRESS);  
   i2c_stop();
   return !ack;
}
//**********************************************
int8 read_I2C()
{
    int8 value;
    while(!ext_eeprom_ready());                        // code thêm vào
    i2c_start();
    i2c_write(SLAVE_ADDRESS + 1);
    value = i2c_read();
    i2c_stop();
    return (value);
}

void main()
{
    int8 value;

    value = 0x00;
    set_tris_b(0x00);

    while(1){
    value = read_I2C();
    output_b(value);
    delay_ms(500);
    }
}
**********************************************
Thân mến !!

thay đổi nội dung bởi: thanhha, 14-09-2006 lúc 06:11 PM. Lý do: Canh lề
thanhha vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn