현재 저는 아치 리눅스 암에서 I2C로 작업하고 있으며, 쓰기와 읽기 사이에 절대 최소 지연을 계산하는 방법을 잘 모르겠습니다. 이 지연이 없다면 자연스럽게 읽히지 않습니다. 방금 적용한 두 명령 사이에 usleep(1000)
을 적용했지만 경험적으로 완료되었으며 실제 값 (어떻게 든)에 최적화되어야합니다. 하지만 어떻게?리눅스에서 I2C의 쓰기와 읽기 사이의 지연 계산하기
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;
}
내가 처음에는 생각했지만 쓰기와 읽기 사이에 지연 없이는 작동하지 않습니다. – JavaCake
쓰기 기능이란 무엇입니까? 어떤 장치와 통신하고 있습니까? – KZD76
'linux/i2c-dev.h '를 사용하고 있습니다. 장치는 간단한 Atmel/Arduino 컨트롤러입니다. – JavaCake