AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Parallelport abfragen

Ein Thema von Hagbart · begonnen am 16. Apr 2009 · letzter Beitrag vom 28. Apr 2009
Antwort Antwort
Seite 2 von 2     12   
Hagbart

Registriert seit: 9. Dez 2006
Ort: Alsfeld
35 Beiträge
 
Delphi 7 Personal
 
#11

Re: Parallelport abfragen

  Alt 16. Apr 2009, 11:41
Zitat von divBy0:
Zum Ansteuern der Motoren wird das reichen, nur zum Zählen ist es zu langsam.
Deswegen werd ich es auch mit einem µC umsetzen (müssen). Ist zwar mehr aufwand aber wenn es keine andere Lösung gibt.


Zitat von divBy0:
Wenn ich CNC-Maschine höre, denke ich immer gleich an Sinumerik.
Ist ja auch net ganz falsch. Vom Prinzip änhnlich, nur das Meine Marke Eigenbau, ein paar Nummern kleiner (50x50cm) und vermutlich auch wesentlich ungenauer ist.
  Mit Zitat antworten Zitat
oldmax

Registriert seit: 27. Apr 2006
Ort: Gieboldehausen
167 Beiträge
 
#12

Re: Parallelport abfragen

  Alt 16. Apr 2009, 12:26
Hi
MC ist die richtige Wahl und muß unter Umständen gar nicht so aufwändig sein. Ich arbeite mit einem preiswerten Pollin Board, einem Steckpanel für schnelle Tests und an Software nehme ich PonyProg und AVR-Studio. Ich weiß, es gibt auch komfortablere Lösungen, aber für einen Einstieg ist der Weg gar nicht so schlecht. Hast du erst mal den Anfang geschafft, gibt's immer wieder neue Aufgaben zu lösen und so ein MC gibt bei minimalem Aufwand schon ein riesiges Anwendungsgebiet.
Alles was du brauchst ist unter 100 € zu bekommen....
Die Lösung über den Parallelport kann ich nur empfehlen, wenn du einen alten "86 hast und direkt mit Assembler unter DOS auf die Schnittstelle zugreifen kannst. Steinzeittechnik halt, aber hier bekommst du schon einiges an Tempo hin. Speziell die Interrupt-Technik kann für schnelle Routinen benutzt werden, ohne die restlichen Programme platt zu machen. Aber wer macht das noch ? Also, es bleibt für die moderne Zeit der MC.
Gruß oldmax
Noch ist mein Rechner mir zu Diensten.... ansonsten habe ich die Macht ihn zu vernichten !
  Mit Zitat antworten Zitat
Benutzerbild von seim
seim

Registriert seit: 11. Nov 2007
83 Beiträge
 
#13

Re: Parallelport abfragen

  Alt 16. Apr 2009, 16:57
Zitat von oldmax:
"86 hast und direkt mit Assembler unter DOS auf die Schnittstelle zugreifen kannst
Ich glaub sogar, dass ein moderner MC schneller ist..
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#14

Re: Parallelport abfragen

  Alt 16. Apr 2009, 17:20
Interrupt-Handler: klick
  Mit Zitat antworten Zitat
Hagbart

Registriert seit: 9. Dez 2006
Ort: Alsfeld
35 Beiträge
 
Delphi 7 Personal
 
#15

Re: Parallelport abfragen

  Alt 26. Apr 2009, 13:15
Mittag,

habe doch noch eine andere Lösung gefunden. Ist zwar sehr Prozessorlasstig, daher die Freuqenz aber nur kurz gemesen werden muss, ist das akzeptabel (zumindest für mich ).

Hier mal der gesamte Quelltext, benötigt wird die Inpout32.dll

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, mmsystem, AppEvnts, ShellApi, ExtCtrls, ComCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    ProgressBar1: TProgressBar;
    Timer1: TTimer;
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure OnIdle(Sender: TObject; var Done: Boolean);
    procedure OnTimer;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    Zeit: int64;
    Counter: integer; //Variable zum Zählen der Timer durchläufe
  end;

var
  Form1: TForm1;
  gelesen, schreiben: Integer;
  STyp: String[3] = 'LPT';
  BasAdr: Integer = $378;
  ComHandle: THandle;
  before: boolean = true;

implementation

{$R *.dfm}

procedure Out32(Addresse:Integer; Wert:byte);stdcall;export;
external 'INPOUT32.DLL';
function Inp32(Addresse:Integer):Byte;stdcall;export;
external 'INPOUT32.DLL';

procedure TForm1.OnIdle(Sender: TObject; var Done: Boolean);
begin
  done:=false;
  OnTimer;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnIdle := OnIdle;
end;

procedure TForm1.OnTimer;
var
  adr: integer;
begin
  adr:=Inp32(BasAdr+1);//Lesen
  if (adr = 254) and (before = true) then
  begin
    inc(counter);//Zähler um 1 erhöhen
    before := false;
  end;
  if adr = 126 then
    before := true;
  if timegettime-Zeit>1000 then //Jeweil nach einer Sekunde Frequenz ausgeben
  begin
    Label1.Caption := IntToStr(counter); //Freuqenz ausgeben
    zeit:= timegettime; //neue Start Zeit ermitteln
    Counter := 0; //und Zähler wieder auf 0
  end;
end;

end.
Einzigster Haken ist, das die Freuqenz nur bis ca. 900 Hz. angezeigt wird, deswegen habe ich einen Freuqenzteiler (2:1) eingebaut. Die angezeigte Frequenz muss dann einfach nurnoch mal 2 genommen werden (ich weiß, ist zwar ungenau, aber meiner Meinung nach kommt es auf 1 Hertz meist sowieso nicht an).
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.334 Beiträge
 
Delphi XE5 Professional
 
#16

Re: Parallelport abfragen

  Alt 28. Apr 2009, 08:00
Wäre eventuell eine Alternative? http://www.michaelgaedtke.de/SubMenu...utorial-II.htm
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz