0

Orange Pi Plus H3 で割り込みを使用しようとしています。こちらからWiringOPをダウンロードしてインストールしました。

しかし、プログラムを実行していると、次のメッセージが表示されました。

gpio: GPIO エクスポート インターフェイスを開けません: そのようなファイルまたはディレクトリはありません

私は似たような問題をたくさん見つけましたが、私に合わない解決策はありません。たとえば、/boot/config.txt を変更しますが、私の /boot/ ディレクトリには config.txt ファイルがありません。

これを解決する方法はありますか?

そして、ここに私がテストしたコードがあります:

#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;
}

私のシステムは、Loboris の修正カーネルを使用した Lubuntu 15.04 です。

4

1 に答える 1

0

良い。久しぶりに OrangePI のソリューションが見つかりました。

Orange Pi で割り込みを使用する唯一の方法は、Armbianをインストールすることです。次に、このバージョンの WiringOPをインストールし、最後にこれを複製します: https://github.com/ua3nbw/gpiokey

wpi.cファイルがあります。gccを使用してコンパイルし、選択したピン (デフォルト - ピン 8) で割り込みを行います。

残念ながら、私のオレンジは最初の割り込みから 5 秒後にシャットダウンします。多分後でこれを修正する方法を見つけるでしょう。

于 2016-07-20T09:53:46.607 に答える