2016-07-17 1 views
0

J'essaie d'utiliser des interruptions sur mon Orange Pi Plus H3. J'ai téléchargé WiringOP de here et l'ai installé.wiringPiISR: Aucun fichier ou répertoire

Mais quand je programme en cours d'exécution, je reçu le message:

GPIO: Impossible d'ouvrir l'interface d'exportation GPIO: Aucun fichier ou répertoire wiringPiISR: Impossible d'ouvrir/sys/class/GPIO/GPIO7/value: Aucun fichier ou répertoire de ce type

J'ai rencontré beaucoup de problèmes similaires mais aucune solution ne me convient. Par exemple faire des changements dans /boot/config.txt, mais dans mon/boot/dir je n'ai pas de fichier config.txt etc

Y at-il des moyens de résoudre ce problème?

Et voici le code que je l'ai testé:

#include <stdio.h> 
#include <string.h> 
#include <errno.h> 
#include <stdlib.h> 
#include <wiringPi.h> 

// WPi 7 to PA7, ie. Physical OPi-pin 29||WPi 8 to PA8, ie. Physical OPi-pin 31||WPi 9 to PG08 OPi-pin 32|| 
// WPi 10 to PA09 OPi-pin 33|| WPi 12 to PPA10 OPi-pin 35 || WPi 15 to PG06 OPi-pin 38      
#define BUTTON_PIN 8 

// the event counter 
volatile int eventCounter = 0; 

// ------------------------------------------------------------------------- 

void myInterrupt(void) { 
    eventCounter++; 
} 

// ------------------------------------------------------------------------- 

int main(void) { 

    // sets up the wiringPi library 
    if (wiringPiSetup() < 0) { 
    fprintf (stderr, "Unable to setup wiringPi: %s\n", strerror (errno)); 
    return 1; 
    } 
    pinMode(BUTTON_PIN, INPUT); 
    pullUpDnControl (BUTTON_PIN, PUD_UP) ; 

    if (wiringPiISR (BUTTON_PIN, INT_EDGE_FALLING, &myInterrupt) < 0) { 
    fprintf (stderr, "Unable to setup ISR: %s\n", strerror (errno)); 
    return 1; 
    } 

    // display counter value every second. 
    while (1) { 
    // printf("%d\n", eventCounter); 
    if (eventCounter != 0) { 
     system("systemctl suspend"); 
     //printf("Error!!!"); 
    } 

    eventCounter = 0; 
    delay(100); // wait 0.1 second 
    } 

    return 0; 
} 

Mon système est Lubuntu 15.04 en utilisant le noyau modifié de Loboris.

+0

Mon système est Lubuntu 15.04 de Loboris – askrav

+0

Les informations telles que le système que vous utilisez devraient aller dans la question elle-même, plutôt que dans les commentaires. Je l'ai édité pour vous. BTW, un mod peut supprimer ces deux commentaires, s'il vous plaît? – 3442

Répondre

0

Bien. Après une longue période de travail avec la solution OrangePI a été trouvé. La seule façon d'utiliser des interruptions sur Orange Pi est l'installation Armbian. Ensuite, installez this version of WiringOP et enfin cloner ceci: https: .// github.com/ua3nbw/gpiokey

Il y aura wpi.c fichier. Compilez-le en utilisant gcc et faites des interruptions sur la broche que vous choisissez (par défaut - broche 8).

Malheureusement, mon Orange se ferme 5 secondes après la première interruption. Peut-être que plus tard, je trouverai le moyen de résoudre ce problème.

+0

Correction: Utilisez "gpio export [pin num]" avant d'utiliser les interruptions. – askrav