5 밀리 초마다 BBB에있는 7 개의 아날로그 핀을 모두 읽어야합니다. 나는 다음과 같은 C 코드로 그렇게하고 있어요 :아날로그 입력을 beaglebone black으로 빠르게 읽음
void main(){
char value_str[7];
long int value_int = 0;
FILE* f0 = fopen("/sys/bus/iio/devices/iio:device0/in_voltage0_raw", "r");
while(1){
fread(&value_str, 6, 6, f0);
value_int = strtol(value_str,NULL,0);
printf("0 %li\n", value_int);
fflush(stdout);
usleep(5000);
rewind(f0);
}
Hoever에서, CPU 사용량이 정말 높은 (20 %)까지 간다. 아날로그 입력을 다르게 읽음으로써 CPU를 많이 사용하지 않는 방법이 있습니까? 누군가는 "DMA"를 제안했지만 그 점에 대해서는 완전히 분실했습니다 ...
어떤 도움을 주실 수 있습니다.
내가 올바르게 이해하면, 그 기사에서 외부 ADC로부터 샘플을 읽는 방법을 설명한다. bult-in BBB ADC를 사용하고 싶습니다. –