В момента работя с I2C в Arch Linux Arm и не съм съвсем сигурен как да изчисля абсолютното минимално забавяне, необходимо между запис и четене. Ако нямам това забавяне, четенето естествено не става. Току-що приложих usleep(1000)
между двете команди, което работи, но току-що е направено емпирично и трябва да бъде оптимизирано до реалната стойност (по някакъв начин). Но как?.
Ето моя примерен код за функцията write_and_read
, която използвам:
int write_and_read(int handler, char *buffer, const int bytesToWrite, const int bytesToRead) {
write(handler, buffer, bytesToWrite);
usleep(1000);
int r = read(handler, buffer, bytesToRead);
if(r != bytesToRead) {
return -1;
}
return 0;
}