-1

私はコーディングにかなり慣れていないので、RasPi の GPIO ピンに接続されたボタンが押されるたびに、テキスト ドキュメントにプレースホルダーを書き込む何かを書き込もうとしています。

//Write date function//
void record() {

    ofstream myFile;
    myFile.open("report.txt");
    myFile << "Input at SPAM \n";
    myFile.close();

}

//myRead function//
void myRead(int i){

    if((digitalRead(4) == HIGH) && (i<5)) {
        record();
        digitalWrite(14, HIGH);
        delay(500);
        digitalWrite(14, LOW);  
        ++i;
        delay(500);
        myRead(i);
    }   
    else{
        if((digitalRead(4) != HIGH) && (i<5)){      
            myRead(i);
        }
    }

}   

int main() {
    wiringPiSetup();
    pinMode(12, OUTPUT);
    pinMode(14, OUTPUT);
    pinMode(4, INPUT);
    digitalWrite(12, HIGH);
    digitalWrite(14, LOW);

    myRead(1);
    digitalWrite(14, HIGH);
    delay(5000);
    digitalWrite(14, LOW);

    return 0;
}

コードは問題なくコンパイルされますが、コマンドなしでターミナルで実行するとsudo、「セグメンテーション違反」エラーが発生します。
コマンドで実行するとsudo、プログラムが起動してすぐに終了します。

参考のため:

  • ピン 12 は、ブレッドボードの分圧器に電力を供給しています。
  • ピン 4 は、この分周器から入力を受け取る必要があります。
  • ピン 14 は、ピン 4 に入力があるたびに LED を点灯させます。

プログラムを実行して分圧器のボタンをすばやく押すと、ボタンを押したままにすると LED が点灯します。

起動するとすぐに停止することなく、これを適切に実行するにはどうすればよいですか?

4

1 に答える 1