Shouldnt we write first and then read? ok i understand that we have nothing to write. But why it doent work if i do not add the i2cwrite line?
which is precisely what the i2cread command does for you automatically. it should not ever be necessary to add a extra write , no i2c chip i have ever encountered has needed such treatment


i2cwrite SDA, SCL, addr
is an incomplete transaction. if your chip needs it then it is not a true i2c device or something else is occurring.
a logic analyzer would show what's really happening. its not normal and should be examined further to have any confidence
that the code is really viable in the long term

addr = %10110100
trying to set bit0 [the r/w bit] of a i2c address with pbp's i2c commands is not possible and will not have any effect
the code will set the r/w bit as needed