24. juli 2011 - 01:14
Der er
7 kommentarer og 1 løsning
C Program til Linux - Læs: Linux input subsystem
Hej Jeg prøver at skrive et C program der læser data fra et accelerometer på en ARM processor der kører Linux Kernel 2.6. Jeg kan tilgå data på de 3 kanaler fra accelerometret på følgende 2 måder: 1: system("printevent ai"); Udskriver alle 3 kanaler løbende efter hinanden. 2: system("cat /sys/class/sbc2800/ai8/value"); system("cat /sys/class/sbc2800/ai9/value"); system("cat /sys/class/sbc2800/ai10/value"); Men hvordan opsamler jeg disse værdier ? Eller er der en helt anden måde at læse data fra Subsystem ? Håber i kan hjælpe.
Annonceindlæg fra DE-CIX
Edge computing: behandling ved kilden
Edge computing revolutionerer den måde, data behandles på, ved at bringe kapacitet og ydeevne tættere på dér, hvor der er behov for det.
15. april 2025
Hej Jeg har prøvet følgende: int fd = -1; fd = fopen("/sys/class/sbc2800/ai8/value", "r"); if(fd < 0) { printf("\nUnable to read from the device\n"); } printf("Output %d",fd); close (fd);Output: 228~ Som er forkert, det burde være et tal i størrelsen: 3824120
Tak, fik det til at virke :) int main(void) { printf("Start"); int i; FILE *fd; fd = fopen("/sys/class/sbc2800/ai8/value", "r"); if(fd < 0) { printf("\nUnable to read from the device\n"); } fscanf(fd, "%d", &i); printf("i: %d",i); fprintf(fd, "Testing...\n"); fclose (fd); printf("End"); //puts("!!!Hello World!!!"); /* prints !!!Hello World!!! */ return EXIT_SUCCESS; } Point ? Tak for hjælpen endnu en gang.
Hej arne_v Fik det til at virke med fopen: printf("Start"); int i; FILE *fd; fd = fopen("/sys/class/sbc2800/ai8/value", "r"); if(fd < 0) { printf("\nUnable to read from the device\n"); } fscanf(fd, "%d", &i); printf("i: %d",i); fprintf(fd, "Testing...\n"); fclose (fd); printf("End"); //puts("!!!Hello World!!!"); /* prints !!!Hello World!!! */ return EXIT_SUCCESS; Point ? Tak for hjælpen endnu en gang :)