pascalio - Input-/Output-Bibliothek für Free Pascal

Zur Vorstellung von Komponenten und Units für Lazarus

Re: pascalio - Input-/Output-Bibliothek für Free Pascal

Beitragvon Mathias » 16. Nov 2016, 18:16 Re: pascalio - Input-/Output-Bibliothek für Free Pascal

Hast du diesen Link mal angeguckt.

http://wiki.freepascal.org/Lazarus_on_R ... zeduren.29

Vielleicht hilft dir dies weiter.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3855
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Warf » 16. Nov 2016, 18:56 Re: pascalio - Input-/Output-Bibliothek für Free Pascal

Murphy. hat geschrieben:Hi,

ich beschäftige mich seit kurzem mit dem Raspberry Pi + Lazarus und habe eine Frage zu PascalIO. Ich würde gerne mit einem GPIO Pin über einen Transistor ein Relai schalten. Das Relai soll bei Überschreitung der Maximaltemperatur an einem Sensor schalten. Mit der Unit fpgpio müsste das doch eigentlich funktionieren.

Ich habe bist jetzt folgendes probiert um GPIO 21 bzw. Pin 40 auf true zu setzen.

Code: Alles auswählen


Code: Alles auswählen
procedur TForm5.Timer1Timer(Sender: TObject);
    var
    gpio: TGpioLinuxPin,
    write: TGpioDirection;
    begin
    na := True;
    gpio := TGpioLinuxPin.Create(21);
    gpio.Direction := write;
    gpio.Value := true;
    gpio.Destroy;
    end





Wäre cool wenn mir jemand auf die Sprünge helfen könnte.



Ich kenne mich damit nicht so wirklich aus, allerdings ist write eine lokale Variable und damit ist der Wert Undefiniert. Diesen Wert weist du dann der Direction zu, daher kannst du nicht bestimmen was für einen wert Direction letztendlich bekommen wird
Warf
 
Beiträge: 794
Registriert: 23. Sep 2014, 16:46
Wohnort: Aachen
OS, Lazarus, FPC: Mac OSX 10.11 | Win 10 | FPC 3.0.0 | L trunk | 
CPU-Target: x86_64, i368, ARM
Nach oben

Beitragvon Murphy. » 16. Nov 2016, 19:34 Re: pascalio - Input-/Output-Bibliothek für Free Pascal

Den Link hab ich mir schonmal angeguckt und es auch nachdem Beispiel ausprobiert.

Code: Alles auswählen
 
procedure TForm5.Timer1Timer(Sender: TObject);
var
pin_21: TGpioPin;
begin
na := True;
pin_21 := TGpioLinuxPin.Create(21);
pin_21.Direction := gdOut;
pin_21.Value := na;
Pin_21.Destroy;
end;
 


Das funktioniert aber auch nicht ???
Murphy.
 
Beiträge: 20
Registriert: 21. Okt 2016, 18:02

Beitragvon Socke » 16. Nov 2016, 21:35 Re: pascalio - Input-/Output-Bibliothek für Free Pascal

Murphy. hat geschrieben:Hi,

ich beschäftige mich seit kurzem mit dem Raspberry Pi + Lazarus und habe eine Frage zu PascalIO. Ich würde gerne mit einem GPIO Pin über einen Transistor ein Relai schalten. Das Relai soll bei Überschreitung der Maximaltemperatur an einem Sensor schalten. Mit der Unit fpgpio müsste das doch eigentlich funktionieren.

Ich habe bist jetzt folgendes probiert um GPIO 21 bzw. Pin 40 auf true zu setzen.

PascalIO gibt die Pin-Nummern direkt an Linux weiter; Daher ist 21 für den Hardware-Pin 40 schon richtig.

Bitte prüfe nach dem Aufruf von pin_21.Value := True, ob die gesetzen Werte mit den Dateien unter /sys/class/gpio/ übereinstimmen. Mit Aufruf des Destruktors wird der GPIO-Pin wieder zur Verwaltung an den Kernel zurückgegeben und damit möglicherweise wieder auf den Standard zurückgesetzt; daher wäre es besser zu Beginn des Programms eine Instanz des TGPIOLinuxPins zu erstellen und erst am Ende des Programms wieder freizugeben.

Natürlich darf der Pin 21 nicht durch andere Funktionen wie SPI genutzt werden. Hier ist ggf. nicht die aktuelle Nutzung ausschlaggebend sondern ob die jeweilgen Kernel-Module geladen sind.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Socke
 
Beiträge: 2497
Registriert: 22. Jul 2008, 18:27
Wohnort: Köln
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 8.1/Debian GNU/Linux/Raspbian/openSUSE | 
CPU-Target: 32bit x86 armhf
Nach oben

Beitragvon Murphy. » 16. Nov 2016, 23:43 Re: pascalio - Input-/Output-Bibliothek für Free Pascal

Hi,

der Pin 21 wird von den SPI-Geräten nicht benutzt. Ich habe mir jetzt erstmal einen einzelnen Form mit zwei buttons und einem timer nur zum testen erstellt.
Der Code sieht so aus:
Code: Alles auswählen
unit u_notaus_form;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
  StdCtrls, fpgpio;
 
var
  na: Boolean;
  pin_21: TGpioPin;
 
type
 
  { TForm5 }
 
  TForm5 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Timer1: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
 
  private
    { private declarations }
  public
    { public declarations }
  end;
 
var
  Form5: TForm5;
 
implementation
 
{$R *.lfm}
 
{ TForm5 }
 
procedure TForm5.Timer1Timer(Sender: TObject);
begin
  pin_21.Value := na;
end;
 
procedure TForm5.Button1Click(Sender: TObject);
begin
  na := true;
end;
 
procedure TForm5.Button2Click(Sender: TObject);
begin
  na := false;
end;
 
procedure TForm5.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
  pin_21.Destroy;
end;
 
procedure TForm5.FormCreate(Sender: TObject);
begin
  pin_21 := TGpioLinuxPin.Create(21);
  pin_21.Direction:= gdOut;
end;
 
end.


In dem Verzeichnis /sys/class/gpio/ tut sich nichts. Ich habe es so verstanden, dass dort eigentlich über Create eine Datei für Pin21 erzeugt werden soll. Löscht der Destructor die ganze Datei, oder wie kann ich das verstehen?

Liegts am Code? Was mach ich falsch?

Über das Terminal kann ich den Pin auf True bzw False setzen.

Danke für die Tipps! :)
Murphy.
 
Beiträge: 20
Registriert: 21. Okt 2016, 18:02

Beitragvon Murphy. » 17. Nov 2016, 13:16 Re: pascalio - Input-/Output-Bibliothek für Free Pascal

Hat sich erledigt, es läuft !:)
Murphy.
 
Beiträge: 20
Registriert: 21. Okt 2016, 18:02

• Themenende •
Vorherige

Zurück zu Units/Komponenten



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried