ich habe mir ein Überwachungsprogramm für meine Heizung geschrieben. Läuft unter Windows und auf meinem Raspi. Nun möchte ich nicht nur die Anzeige der Temperatur von Heizkessel, Ölkessel, Pufferspeicher etc. auf dem Display sehen, sondern gern eine LED leuchten lassen, wenn wieder Holz nachgelegt werden muss.
Folgendes PascalIO Testprogramm hatte ich geschrieben (4 Toggleboxen schalten ein 4fach Relais):
Code: Alles auswählen
procedure TForm1.FormCreate(Sender: TObject);
begin
FGpio02 := TGpioLinuxPin.Create(2);
FGpio03 := TGpioLinuxPin.Create(3);
FGpio04 := TGpioLinuxPin.Create(4);
FGpio17 := TGpioLinuxPin.Create(17);
FGpio02.Direction := gdOut;
FGpio03.Direction := gdOut;
FGpio04.Direction := gdOut;
FGpio17.Direction := gdOut;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
FGpio02.Destroy;
FGpio03.Destroy;
FGpio04.Destroy;
FGpio17.Destroy;
end;
procedure TForm1.ToggleBox1Change(Sender: TObject);
begin
FGpio02.Value := ToggleBox1.Checked;
end;
procedure TForm1.ToggleBox2Change(Sender: TObject);
begin
FGpio03.Value := ToggleBox2.Checked;
end;
procedure TForm1.ToggleBox3Change(Sender: TObject);
begin
FGpio04.Value := ToggleBox3.Checked;
end;
procedure TForm1.ToggleBox4Change(Sender: TObject);
begin
FGpio17.Value := ToggleBox4.Checked;
end;
Beende ich das Programm ganz normal (außerhalb und innerhalb der IDE), bekommt GPIO 17 irgendwie Kriechstrom und beim nächsten Start lässt sich kein GPIO mehr schalten. Erst wenn ich aus der IDE heraus das Programm abbreche, lassen sich die GPIOs beim nächsten Programmstart wieder aus- und anschalten.
Wie kann ich sicherstellen, daß die GPIOs nach Programmende ausgeschaltet werden und daß sie immer bei Programmstart funktionieren?
Raspberry 3B+, Raspbian GNU/Linux 10 (buster)
(ich bin Noob bei Raspi und bin erstaunt, daß alles bisher recht unkompliziert funktioniert hat - übrigens danke af0815 und Socke!)