Re: C
Posted: 19 Jun 2017, 12:19
Etwas einfaches habe ich nicht.
Ich habe mal dein Beispiel etwas abgewandelt (ohne Garantie).
Bei jedem Aufruf wird entweder der Zustand von Pin 2.0 ausgelesen und ausgegeben, oder eine Fehlermeldung.
Ich habe mal dein Beispiel etwas abgewandelt (ohne Garantie).
Bei jedem Aufruf wird entweder der Zustand von Pin 2.0 ausgelesen und ausgegeben, oder eine Fehlermeldung.
Code: Select all
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h> //fuer die Konstante O_RDWR und open()
#include <unistd.h> //fuer close()
#include <stdint.h> //fuer den Datentypen uint32_t
#include <sys/ioctl.h>
#include <errno.h>
#define ANZAHL 1
int main()
{
uint32_t daten[ANZAHL];
const int offset=2;
int bytesread = 0;
int device = -1;
device = open( "/dev/piControl0", O_RDWR );
if ( device < 0 )
{
fprintf( stderr, "Fehler bei open(): %s", strerror(errno) );
return -1;
}
if ( lseek( device, offset, SEEK_SET ) < 0 )
{
fprintf( stderr, "Fehler bei lseek(): %s", strerror(errno) );
return -2;
}
bytesread = read( device, daten, ANZAHL );
if ( bytesread < 0 )
{
fprintf( stderr, "Fehler bei read(): %s", strerror(errno) );
return -3;
}
printf( "%d\n", daten[0] );
fclose ( device );
}