Einzelnen Beitrag anzeigen

knoby

Registriert seit: 30. Okt 2007
6 Beiträge
 
Delphi 7 Enterprise
 
#1

rs232 schnell ansprechen

  Alt 16. Sep 2008, 20:29
Hey,

folgendes Problem:

Ich habe mit nem Kumpel nen Interface für den seriellen Port am Pc zusammengelötet. Darauf werden über Schieberegister Relais geschaltet und Eingänge eingelesen.

Es muss so angesprochen werden:

Eingänge in die Schiregs holen (dtr einmal auf high und sofort wieder auf low)
dann mit txt den takt angeben und jeweils dem rts die ausgänge der schiberegister setzen.
auf dcd werden die eingänge entgegengenommen

Es werden 16 einsen und nullen durchgeschoben. Eine 1 steht für geschaltet 0 für nicht geschaltet.
Bei den Eingängen werden ebenfals einsen und Nullen an den dcd gesendet und ausgelesen

Bis jetzt habe ich zur Steuerung der Schnitstelle die Port.dll verwendet. Nur jetzt sind wir dabei komplexere Programme zu schreibne udn da stöst die dll langsam an die Grenzen, sprich die Rutine wird zu langsam.

Das ist der Code mit dem wir das Interface ansteuern:

Delphi-Quellcode:
  
  dtr(1); //strobe on //Eingänge ins Schireg holen
  dtr(0); //strobe off

  for n:=1 to 16 do
  begin
    rts(booltoint(aOUT[n])); //ausgang setzen

    if dcd = 1 then
    begin
      aIN[n] := true; //eingang lesen
    end
    else
    begin
      aIN[n] := false;
    end;

    txd(1); //taktgeben
    txd(0);
  end;
  dtr(1); //strobe //Ausgänge setzten
  dtr(0);

Also haben wir uns gedacht: Könnten wir nicht eigene Rutinen schreiben die auf die Pins des Ports zugreifen.
Da war der erste Gedanke das Ganze in Assembler zu schreibne in Delphi.... Soweit so gut allerdings macht uns da ja Windows einen Strich durch die Rechnung das er uns nicht direkt auf die Hardware zugreifen läst...


Daher meine Frage: Wie kann ich eine möglichst schnelle Ansteuerung schreiben die genau das oben beschriebene Protokoll einhält?

Schonmal danke für die Antwort


KnobY


PS: Ähnliche Themen gab es schon weiß ich aber keins davon brachte mich wirklich weiter
  Mit Zitat antworten Zitat