Am 16.03.2014 16:52, schrieb milkyway:
> 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);
anything bad with
fprintf(GPIOHandler,"%d",pin) ?
re,
wh
> 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 [email protected].
For more options, visit https://groups.google.com/d/optout.