outsourcing of gpio-code

This commit is contained in:
Siegfried Kienzle
2017-04-25 07:33:40 +02:00
parent 1616dd670b
commit 73e359873f
2 changed files with 63 additions and 0 deletions

51
project/gpio.c Normal file
View File

@@ -0,0 +1,51 @@
/*GPIO.c*/
#include<stdio.h>
#include<fcntl.h>
#include<string.h>
#include<unistd.h>
#include<string.h>
#define BASEPATH "/sys/class/gpio/"
#define GPIO_FOLDER "gpio%s/"
void writeFile(char *filename, char *buffer, size_t count)
{
int fd = open(filename, O_WRONLY);
if(fd == -1) {
perror("Fehler bei open ");
}
write(fd, buffer, count);
close(fd);
}
void registerPin(char *pin)
{
writeFile(BASEPATH "export", pin, strlen(pin));
}
void freePin(char *pin)
{
writeFile(BASEPATH "unexport", pin, strlen(pin));
}
void setDirection(char *pin, char *direction, int dirlen)
{
char path[50];
sprintf(path, BASEPATH GPIO_FOLDER "direction", pin);
writeFile(path, direction, dirlen);
}
void registerOutput(char *pin)
{
registerPin(pin);
setDirection(pin, "out", 3);
}
void writeOutput(char *pin, int state)
{
char path[50];
sprintf(path, BASEPATH GPIO_FOLDER "value", pin);
FILE *fd = fopen(path, "w");
fprintf(fd, "%i", state);
fclose(fd);
}