Beim Experimentieren mit Lazarus am RPI-Gpio ist mir aufgefallen, dass nach einem Neustart vom RPI, nach dem 1. Mal starten einer Applikation z. B. nach den offiziellen Beispielen auf der Seite: http://wiki.freepascal.org/Lazarus_on_Raspberry_Pi/de - bei der Initialisierung der "direction" ein Fehler auftritt.
Beim ersten Start steht in der direktion --> in , anstatt "out" !
Konkret geht es um die unteren Zeilen, aber auch bei anderen Beispielen:
Code: Alles auswählen
procedure TForm1.FormActivate(Sender: TObject);
begin
{ Prepare SoC pin 17 (pin 11 on GPIO port) for access: }
gReturnCode := fpsystem('echo "17" > /sys/class/gpio/export');
LogMemo.Lines.Add(IntToStr(gReturnCode));
{ Set SoC pin 17 as output: }
gReturnCode := [b]fpsystem('echo "out" > /sys/class/gpio/gpio17/direction');[/b]
LogMemo.Lines.Add(IntToStr(gReturnCode));
end;
auch diese Art der Initialisierung liefert das gleiche Problem:
Code: Alles auswählen
fileDesc := fpopen('/sys/class/gpio/gpio18/direction', O_WrOnly);
gReturnCode := fpwrite(fileDesc, IN_DIRECTION[0], 2);
1. Frage:
Woran kann das bitte liegen?
2. Frage
Wer hat schon Bit-Banging am GPIO des RPI mit Lazarus probiert und Erfahrung? Meine Spielereien zielen auf ein Lesen der "MISO"-Leitung von SPI ab.
Ein schönes Weinachtsfest wünscht HPT