The proble was %s, %c works perfect. Thank you all On Sunday, 16 March 2014 21:22:13 UTC+5:30, milkyway wrote: > > Hi, I am new to this group. Following is a code I tried from Derek > Malloy's videos, to read the gpio pin values. When I run this program I get > "Segmentation fault". I can't make out how it happens. Can anybody help me > out? > > #include <stdio.h> > #include <string.h> > #define MAX 128 > int readButton(int); > > int main() > { > int i = 1000; > while(i--) > readButton(60); > return 0; > } > > > int readButton(int pin) > { > char setValue[4], GPIOPin[4], GPIODirection[MAX], GPIOValue[MAX]; > FILE *GPIOHandler; > int i; > sprintf(GPIOPin, "%d", pin); > sprintf(GPIODirection, "/sys/class/gpio/gpio%s/direction", GPIOPin > ); > sprintf(GPIOValue, "/sys/class/gpio/gpio%s/value", GPIOPin); > if ((GPIOHandler = fopen("/sys/class/gpio/export", "ab")) == NULL) > { > fprintf(stderr, "Failed to export the GPIO\n"); > return 1; > } > strcpy(setValue, GPIOPin); > fwrite(GPIOPin, sizeof(char), 2, GPIOHandler); > fclose(GPIOHandler); > if ((GPIOHandler = fopen(GPIODirection, "rb+")) == NULL) > { > fprintf(stderr, "Failed to set the direction\n"); > return 1; > } > strcpy(setValue, "in"); > fwrite(&setValue, sizeof(char), 3, GPIOHandler); > fclose(GPIOHandler); > > if ((GPIOHandler = fopen(GPIOValue, "rb+")) == NULL) > { > fprintf(stderr, "Failed to set read file\n"); > return 1; > } > fread(&setValue, sizeof(char), 1, GPIOHandler); > fclose(GPIOHandler); > printf("The value of the pin is %s\n", setValue[0]); > if ((GPIOHandler = fopen("/sys/class/gpio/unexport", "ab")) ==NULL > ) > { > fprintf(stderr, "Failed to unxport GPIO \n"); > return 1; > } > strcpy(setValue, GPIOPin); > fwrite(&setValue, sizeof(char), 2, GPIOHandler); > fclose(GPIOHandler); > return 0; > } > > > >
-- For more options, visit http://beagleboard.org/discuss --- You received this message because you are subscribed to the Google Groups "BeagleBoard" group. To unsubscribe from this group and stop receiving emails from it, send an email to beagleboard+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.