私はコーディングにかなり慣れていないので、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 が点灯します。
起動するとすぐに停止することなく、これを適切に実行するにはどうすればよいですか?