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 Novataris
Vejen til devops med Bavarian Nordic
Bavarian Nordics vækst blev starten på et DevOps-samarbejde med Novataris for hurtigt at kunne tilpasse IT-organisation til forretningen.
7. december 2023
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 :)