Ðề tài: Giao tiếp I2C
View Single Post
Old 05-10-2012, 03:08 AM   #10
nguyenthangcdt
Đệ tử 1 túi
 
Tham gia ngày: Apr 2012
Bài gửi: 16
:
Smile

Trích:
Nguyên văn bởi thanhha View Post
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 !!
bạn ơi cho mình hỏi là tai sao trong hàm "read_i2c()" tai sao i2c_write(SLAVE_ADDRESS + 1) ! mình khboong hiểu chỗ " SLAVE_ADDRESS + 1 " BẠN LAMMFOWN GIẢI THÍCH HỘ MÌN ĐƯỢC KHÔNG ! VÀ NẾU BẠN CÓ CHƯƠNG TRÌNH NÀO MÀ VBIEECJ ĐỌC VÀ TRUYỀN DỮ LIỆU ĐỒNG THỜI THÌ CHO MÌNH XIN THAM KHẢO NHÉ ! MÌNH CẢM ƠN CẬU TRƯỚC NHÉ HJ !
nguyenthangcdt vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn