/dev/gpiox

stemeh

Neues Mitglied
27. Dez. 2007
4
0
0
Sprachen
Hallo Kann Mir jemand diese Zeile erklären ?

pio = open("/dev/gpio1", O_RDWR|O_NONBLOCK);

ich weiß wohl das pio dann das device ist.
Und wie sende Ich dann den Wert ins device
Und wie lese ich aus dem device
 
Hallo stemeh.
Hallo Kann Mir jemand diese Zeile erklären ?

pio = open("/dev/gpio1", O_RDWR|O_NONBLOCK);

ich weiß wohl das pio dann das device ist.
Und wie sende Ich dann den Wert ins device
Und wie lese ich aus dem device

Vielleicht hilft dir das folgende Beispiel weiter. Es wird das GPIO-Device zum Lesen geöffnet, dann wird mit read gelesen, das Ergebnis untersucht und das GPIO-device wieder geschlossen. Ähnlich verhält sich das beim Schreiben.

Code:
uint32_t InputPins;

/* ... */

gpio = open("/dev/gpio0", O_RDONLY|O_NONBLOCK);
   /* Hier öffnest du das device, nur zum lesen, bei nachfolgendem
      read nicht blockiert. Äquivalent O_WRONLY (nur schreiben) oder
      O_RDWR (schreiben und lesen) */

   /* Konnte ich das device öffnen? */
if (gpio < 0) {
   printf("kann GPIO device nicht öffnen");
   return -1;
}

read(gpio, &InputPins, sizeof(InputPins)); 

        
if (~InputPins & 0x01) /* Bit 0 */
   /* mache etwas ... */;

/* ... */

   /* ist GPIO device geöffnet, dann schliessen */
if (gpio)
   close(gpio);
Code:
ssize_t read(int fd, void *puffer, size_t bytezahl);

ssize_t write(int fd, void *puffer, size_t bytezahl);
Ich hoffe, ich konnte dir ein bisschen weiterhelfen.

Gruss
Dirk
 
Ja das hilft Mir Dirk. Aber Ich konnte ab /dev/gpio7 keine Devices mehr erstellen angeblich wegen speicher. Es gibt doch bestimmt ne möglichkeit wie Ich diese I/O configuration im C Programm eingeben kann und direkt in die Register schreiben kann
 
Hallöchen,
nur damit ich das richtig verstehe um mit open() ein GPIO öffnen zu können muss diese schon unter /dev vorhanden sein?
Ich möchte nämlich auf meinem STK1000 die LEDs benutzen und komme da nicht wirklich weiter. Denn in meinem /dev befindet sich kein solcher Eintrag wie /gpio1. Was mache cih da Falsch oder was fehlt da?

Achso sollte ich vielleicht noch sagen, ich benutze einen Bootloader Version 1.3.4 und die von Atmel bereitgestellte Linuxversion (Kernelversion: 2.6.27.6).
GEladen wird das ganze von einer SD-Card.

mfg
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)