BBB の 7 つのアナログ ピンすべてを 5 ミリ秒ごとに読み取る必要があります。私は次のCコードでそうしています:
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);
}
ただし、CPU 使用率は非常に高くなります (20%)。CPU をあまり使用しないように、アナログ入力を別の方法で読み取る方法はありますか? 誰かが「DMA」を提案しましたが、私はその点で完全に迷っています...
どんな助けでも大歓迎です。