Trích:
Nguyên văn bởi minhkhoa1990
//
int16 read_I2C_2byte(int8 slave_address)
{
int16 value_read;
i2c_start();
i2c_write(slave_address+1);?????????
high=i2c_read(1);
delay_us(10);
low=i2c_read(0);
i2c_stop();
value_read=make16(high,low);
value_read=value_read/5.2;
printf(" %Ld\n\r",value_read);
return value_read;
}
///////////
các bác cho em hỏi hàm i2c_write(slave_address+1) có ý nghĩa như thế nào và địa chỉ:slave_address+1 là sao.......... thanks các bác nhiều
|
Theo em nghĩ thì đây là một chương trình con.
ở trên bác dùng một biến: int16 read_I2C_2byte(int8
slave_address)
nên ở dưới nó sẽ dùng biến này!
VD như bác điều khiển DS1307 thì địa chỉ của nó là 0b1101000x. (0xD..)
như vậy i2c_write(slave_address+1) sẽ là i2c_write(0xD1) ->> đọc thông tin từ DS1307
thân,