Subversion Repositories svnkaklik

Compare Revisions

No changes between revisions

Ignore whitespace Rev 5 → Rev 6

/programy/delphi/motor/LPTMot.dcu
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/programy/delphi/motor/LPTMot.dfm
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/programy/delphi/motor/LPTMot.pas
0,0 → 1,340
unit LPTMot;
 
interface
 
uses PORTINC,
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;
 
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
RadioButton4: TRadioButton;
Button3: TButton;
Button4: TButton;
Label1: TLabel;
Timer1: TTimer;
Timer2: TTimer;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Timer3: TTimer;
CheckBox1_4: TCheckBox;
CheckBox1_5: TCheckBox;
CheckBox1_6: TCheckBox;
CheckBox1_7: TCheckBox;
Button9: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure RadioButton3Click(Sender: TObject);
procedure RadioButton4Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Timer3Timer(Sender: TObject);
procedure Button9Click(Sender: TObject);
end;
 
var
Form1: TForm1;
krok1, krok2, krok3 : Byte;
msteps: integer;
smer: byte;
const BA = $378; { LPT1 }
vpravo = true;
vlevo = false;
mspeed = 10;
 
 
implementation
 
{$R *.DFM}
procedure Motor1 (vpravo : Boolean);
begin
if vpravo then begin
krok1 := krok1 * 2;
if krok1 = 16 then krok1 := 1
end else begin
krok1 := krok1 div 2;
if krok1 = 0 then krok1 := 8;
end;
OutPort(BA, krok1 + 16 * krok2);
end;
 
procedure Motor2 (vpravo : Boolean);
begin
if vpravo then begin
krok2 := krok2 * 2;
if krok2 = 16 then krok2 := 1
end else begin
krok2 := krok2 div 2;
if krok2 = 0 then krok2 := 8;
end;
OutPort(BA, krok1 + 16 * krok2);
end;
 
procedure Motor3 (vpravo : Boolean);
begin
if vpravo then begin
krok3 := krok3 * 2;
if krok3 = 16 then krok3 := 1
end else begin
krok3 := krok3 div 2;
if krok3 = 0 then krok3 := 8;
end;
OutPort(BA+2, krok3 XOR 11);
end;
 
function spinac1: Boolean;
begin
if (InPort(BA+1) and 8) = 0 then spinac1 := true else spinac1 := false;
end;
 
function spinac2: Boolean;
begin
if (InPort(BA+1) and 16) = 0 then spinac2 := true else spinac2 := false;
end;
 
function spinac3: Boolean;
begin
if (InPort(BA+1) and 32) = 0 then spinac3 := true else spinac3 := false;
end;
 
procedure nulpoloha;
begin
repeat
Motor1(vlevo);
delay (5);
until spinac1;
repeat
Motor2(vlevo);
delay (5);
until spinac2;
repeat
Motor3(vlevo);
delay (5);
until spinac3;
end;
 
 
procedure pohyb1;
var N : Word;
begin
for n:= 1 to 100 do begin { 100 krokù }
Motor1 (vpravo);
Motor2 (vpravo); { všechny motory }
Motor3 (vpravo);
delay (5); { rychle }
end;
for n:= 1 to 100 do begin { 100 krokù }
Motor1 (vpravo); { jen motor 1 }
delay (10); { pomalu }
end;
delay(1000); { klid 1s }
for n:= 1 to 100 do begin { 100 krokù }
Motor1 (vlevo);
Motor2 (vlevo); { všechny motory }
Motor3 (vlevo);
delay(5); { rychle }
end;
for n:= 1 to 100 do begin { 100 krokù }
Motor1 (vlevo); { jen motor 1 }
delay (10); { pomalu }
end;
delay (1000); { klid 1s }
end;
 
procedure TForm1.FormCreate(Sender: TObject);
var ble: integer;
begin
OpenCom (Pchar('LPT1:'));
krok1 := 1;
krok2 := 1;
krok3 := 1;
OutPort (BA,0);
val(Edit1.Text,msteps,ble);
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
nulpoloha;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
pohyb1;
end;
 
procedure TForm1.Edit1Change(Sender: TObject);
var
ble:integer;
begin
val(Edit1.Text,msteps,ble);
end;
 
procedure TForm1.RadioButton1Click(Sender: TObject);
begin
OutPort(BA, 1);
end;
 
procedure TForm1.RadioButton2Click(Sender: TObject);
begin
OutPort(BA, 2);
 
end;
 
procedure TForm1.RadioButton3Click(Sender: TObject);
begin
OutPort(BA, 4);
 
end;
 
procedure TForm1.RadioButton4Click(Sender: TObject);
begin
OutPort(BA, 8);
 
end;
 
procedure TForm1.Button3Click(Sender: TObject);
var n:integer;
begin
for n:=1 to msteps do
begin
OutPort(BA, 5);
delay(mspeed);
OutPort(BA, 6);
delay(mspeed);
OutPort(BA, 10);
delay(mspeed);
OutPort(BA, 9);
delay(mspeed);
end;
OutPort(BA, 0);
end;
 
procedure TForm1.Button4Click(Sender: TObject);
var n:integer;
begin
for n:=1 to msteps do
begin
OutPort(BA, 9); //1
delay (mspeed); { pomalu }
OutPort(BA, 10); //8
delay (mspeed); { pomalu }
OutPort(BA, 6); //2
delay (mspeed); { pomalu }
OutPort(BA, 5); //4
delay (mspeed); { pomalu }
end;
OutPort(BA, 0);
end;
 
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if (smer and 1)=1 then
Button4Click(Sender)
else
Button3Click(Sender);
inc(smer);
end;
 
procedure TForm1.Button5Click(Sender: TObject);
begin
Timer1.Enabled:=true;
Timer2.Enabled:=true;
end;
 
procedure TForm1.Button6Click(Sender: TObject);
begin
Timer1.Enabled:=false;
Timer2.Enabled:=false;
end;
 
procedure TForm1.Button8Click(Sender: TObject);
var n:integer;
begin
for n:=1 to msteps do
begin
OutPort(BA, 1); //1
delay (mspeed); { pomalu }
OutPort(BA, 8); //8
delay (mspeed); { pomalu }
OutPort(BA, 2); //2
delay (mspeed); { pomalu }
OutPort(BA, 4); //4
delay (mspeed); { pomalu }
end;
OutPort(BA, 0);
end;
 
procedure TForm1.Button7Click(Sender: TObject);
var n:integer;
begin
for n:=1 to msteps do
begin
OutPort(BA, 4); //1
delay (mspeed); { pomalu }
OutPort(BA, 2); //8
delay (mspeed); { pomalu }
OutPort(BA, 8); //2
delay (mspeed); { pomalu }
OutPort(BA, 1); //4
delay (mspeed); { pomalu }
end;
OutPort(BA, 0);
end;
 
procedure TForm1.Timer3Timer(Sender: TObject);
var
n : integer;
begin
n := InPort(BA+1);
 
IF $10 = n and $10 then
CheckBox1_4.Checked := false else CheckBox1_4.Checked := true;
IF $20 = n and $20 then
CheckBox1_5.Checked := false else CheckBox1_5.Checked := true;
IF $40 = n and $40 then
CheckBox1_6.Checked := false else CheckBox1_6.Checked := true;
IF $80 = n and $80 then
CheckBox1_7.Checked := true else CheckBox1_7.Checked := false;
end;
 
procedure run(turns:integer; speed:integer);
var n:integer;
begin
for n:=1 to turns do
begin
OutPort(BA, 1);
delay (speed); { pomalu }
OutPort(BA, 2);
delay (speed); { pomalu }
OutPort(BA, 4);
delay (speed); { pomalu }
end;
OutPort(BA, 0);
end;
 
procedure TForm1.Button9Click(Sender: TObject);
var n: integer;
begin
for n:=35 downto 20 do run(2,n);
run(70,20);
end;
 
end.
/programy/delphi/motor/LPTMot.~dfm
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/programy/delphi/motor/LPTMot.~pas
0,0 → 1,340
unit LPTMot;
 
interface
 
uses PORTINC,
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;
 
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
RadioButton4: TRadioButton;
Button3: TButton;
Button4: TButton;
Label1: TLabel;
Timer1: TTimer;
Timer2: TTimer;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Timer3: TTimer;
CheckBox1_4: TCheckBox;
CheckBox1_5: TCheckBox;
CheckBox1_6: TCheckBox;
CheckBox1_7: TCheckBox;
Button9: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure RadioButton3Click(Sender: TObject);
procedure RadioButton4Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Timer3Timer(Sender: TObject);
procedure Button9Click(Sender: TObject);
end;
 
var
Form1: TForm1;
krok1, krok2, krok3 : Byte;
msteps: integer;
smer: byte;
const BA = $378; { LPT1 }
vpravo = true;
vlevo = false;
mspeed = 10;
 
 
implementation
 
{$R *.DFM}
procedure Motor1 (vpravo : Boolean);
begin
if vpravo then begin
krok1 := krok1 * 2;
if krok1 = 16 then krok1 := 1
end else begin
krok1 := krok1 div 2;
if krok1 = 0 then krok1 := 8;
end;
OutPort(BA, krok1 + 16 * krok2);
end;
 
procedure Motor2 (vpravo : Boolean);
begin
if vpravo then begin
krok2 := krok2 * 2;
if krok2 = 16 then krok2 := 1
end else begin
krok2 := krok2 div 2;
if krok2 = 0 then krok2 := 8;
end;
OutPort(BA, krok1 + 16 * krok2);
end;
 
procedure Motor3 (vpravo : Boolean);
begin
if vpravo then begin
krok3 := krok3 * 2;
if krok3 = 16 then krok3 := 1
end else begin
krok3 := krok3 div 2;
if krok3 = 0 then krok3 := 8;
end;
OutPort(BA+2, krok3 XOR 11);
end;
 
function spinac1: Boolean;
begin
if (InPort(BA+1) and 8) = 0 then spinac1 := true else spinac1 := false;
end;
 
function spinac2: Boolean;
begin
if (InPort(BA+1) and 16) = 0 then spinac2 := true else spinac2 := false;
end;
 
function spinac3: Boolean;
begin
if (InPort(BA+1) and 32) = 0 then spinac3 := true else spinac3 := false;
end;
 
procedure nulpoloha;
begin
repeat
Motor1(vlevo);
delay (5);
until spinac1;
repeat
Motor2(vlevo);
delay (5);
until spinac2;
repeat
Motor3(vlevo);
delay (5);
until spinac3;
end;
 
 
procedure pohyb1;
var N : Word;
begin
for n:= 1 to 100 do begin { 100 krokù }
Motor1 (vpravo);
Motor2 (vpravo); { všechny motory }
Motor3 (vpravo);
delay (5); { rychle }
end;
for n:= 1 to 100 do begin { 100 krokù }
Motor1 (vpravo); { jen motor 1 }
delay (10); { pomalu }
end;
delay(1000); { klid 1s }
for n:= 1 to 100 do begin { 100 krokù }
Motor1 (vlevo);
Motor2 (vlevo); { všechny motory }
Motor3 (vlevo);
delay(5); { rychle }
end;
for n:= 1 to 100 do begin { 100 krokù }
Motor1 (vlevo); { jen motor 1 }
delay (10); { pomalu }
end;
delay (1000); { klid 1s }
end;
 
procedure TForm1.FormCreate(Sender: TObject);
var ble: integer;
begin
OpenCom (Pchar('LPT1:'));
krok1 := 1;
krok2 := 1;
krok3 := 1;
OutPort (BA,0);
val(Edit1.Text,msteps,ble);
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
nulpoloha;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
pohyb1;
end;
 
procedure TForm1.Edit1Change(Sender: TObject);
var
ble:integer;
begin
val(Edit1.Text,msteps,ble);
end;
 
procedure TForm1.RadioButton1Click(Sender: TObject);
begin
OutPort(BA, 1);
end;
 
procedure TForm1.RadioButton2Click(Sender: TObject);
begin
OutPort(BA, 2);
 
end;
 
procedure TForm1.RadioButton3Click(Sender: TObject);
begin
OutPort(BA, 4);
 
end;
 
procedure TForm1.RadioButton4Click(Sender: TObject);
begin
OutPort(BA, 8);
 
end;
 
procedure TForm1.Button3Click(Sender: TObject);
var n:integer;
begin
for n:=1 to msteps do
begin
OutPort(BA, 5);
delay(mspeed);
OutPort(BA, 6);
delay(mspeed);
OutPort(BA, 10);
delay(mspeed);
OutPort(BA, 9);
delay(mspeed);
end;
OutPort(BA, 0);
end;
 
procedure TForm1.Button4Click(Sender: TObject);
var n:integer;
begin
for n:=1 to msteps do
begin
OutPort(BA, 9); //1
delay (mspeed); { pomalu }
OutPort(BA, 10); //8
delay (mspeed); { pomalu }
OutPort(BA, 6); //2
delay (mspeed); { pomalu }
OutPort(BA, 5); //4
delay (mspeed); { pomalu }
end;
OutPort(BA, 0);
end;
 
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if (smer and 1)=1 then
Button4Click(Sender)
else
Button3Click(Sender);
inc(smer);
end;
 
procedure TForm1.Button5Click(Sender: TObject);
begin
Timer1.Enabled:=true;
Timer2.Enabled:=true;
end;
 
procedure TForm1.Button6Click(Sender: TObject);
begin
Timer1.Enabled:=false;
Timer2.Enabled:=false;
end;
 
procedure TForm1.Button8Click(Sender: TObject);
var n:integer;
begin
for n:=1 to msteps do
begin
OutPort(BA, 1); //1
delay (mspeed); { pomalu }
OutPort(BA, 8); //8
delay (mspeed); { pomalu }
OutPort(BA, 2); //2
delay (mspeed); { pomalu }
OutPort(BA, 4); //4
delay (mspeed); { pomalu }
end;
OutPort(BA, 0);
end;
 
procedure TForm1.Button7Click(Sender: TObject);
var n:integer;
begin
for n:=1 to msteps do
begin
OutPort(BA, 4); //1
delay (mspeed); { pomalu }
OutPort(BA, 2); //8
delay (mspeed); { pomalu }
OutPort(BA, 8); //2
delay (mspeed); { pomalu }
OutPort(BA, 1); //4
delay (mspeed); { pomalu }
end;
OutPort(BA, 0);
end;
 
procedure TForm1.Timer3Timer(Sender: TObject);
var
n : integer;
begin
n := InPort(BA+1);
 
IF $10 = n and $10 then
CheckBox1_4.Checked := false else CheckBox1_4.Checked := true;
IF $20 = n and $20 then
CheckBox1_5.Checked := false else CheckBox1_5.Checked := true;
IF $40 = n and $40 then
CheckBox1_6.Checked := false else CheckBox1_6.Checked := true;
IF $80 = n and $80 then
CheckBox1_7.Checked := true else CheckBox1_7.Checked := false;
end;
 
procedure run(turns:integer; speed:integer);
var n:integer;
begin
for n:=1 to turns do
begin
OutPort(BA, 1);
delay (speed); { pomalu }
OutPort(BA, 2);
delay (speed); { pomalu }
OutPort(BA, 4);
delay (speed); { pomalu }
end;
OutPort(BA, 0);
end;
 
procedure TForm1.Button9Click(Sender: TObject);
var n: integer;
begin
for n:=40 downto 10 do run(2,n);
run(1000,10);
end;
 
end.
/programy/delphi/motor/Lptmotp.cfg
0,0 → 1,35
-$A8
-$B-
-$C+
-$D+
-$E-
-$F-
-$G+
-$H+
-$I+
-$J+
-$K-
-$L+
-$M-
-$N+
-$O+
-$P+
-$Q-
-$R-
-$S-
-$T-
-$U-
-$V+
-$W-
-$X+
-$YD
-$Z1
-cg
-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
-H+
-W+
-M
-$M16384,1048576
-K$00400000
-LE"c:\program files\borland\delphi6\Projects\Bpl"
-LN"c:\program files\borland\delphi6\Projects\Bpl"
/programy/delphi/motor/Lptmotp.dof
0,0 → 1,89
[FileVersion]
Version=6.0
 
[Compiler]
A=8
B=0
C=1
D=1
E=0
F=0
G=1
H=1
I=1
J=1
K=0
L=1
M=0
N=1
O=1
P=1
Q=0
R=0
S=0
T=0
U=0
V=1
W=0
X=1
Y=1
Z=1
ShowHints=1
ShowWarnings=1
UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;
 
[Linker]
MapFile=0
OutputObjs=0
ConsoleApp=1
DebugInfo=0
RemoteSymbols=0
MinStackSize=16384
MaxStackSize=1048576
ImageBase=4194304
ExeDescription=
 
[Directories]
OutputDir=
UnitOutputDir=
PackageDLLOutputDir=
PackageDCPOutputDir=
SearchPath=
Packages=
Conditionals=
DebugSourceDirs=
UsePackages=0
 
[Parameters]
RunParams=
HostApplication=
Launcher=
UseLauncher=0
DebugCWD=
 
[Version Info]
IncludeVerInfo=0
AutoIncBuild=0
MajorVer=1
MinorVer=0
Release=0
Build=0
Debug=0
PreRelease=0
Special=0
Private=0
DLL=0
Locale=1031
CodePage=1252
 
[Version Info Keys]
CompanyName=
FileDescription=
FileVersion=1.0.0.0
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=
ProductName=
ProductVersion=1.0.0.0
Comments=
/programy/delphi/motor/Lptmotp.dpr
0,0 → 1,13
program Lptmotp;
 
uses
Forms,
LPTMot in 'LPTMot.pas' {Form1};
 
{$R *.RES}
 
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
/programy/delphi/motor/Lptmotp.exe
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/programy/delphi/motor/Lptmotp.res
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/programy/delphi/motor/PORT.DLL
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/programy/delphi/motor/PORTINC.PAS
0,0 → 1,46
unit PORTINC;
 
interface
 
uses windows;
 
const THEDLL='PORT.DLL';
Procedure DELAY(i:WORD); stdcall; external THEDLL;
Procedure TIMEINIT; stdcall; external THEDLL;
Function TIMEREAD: DWORD; stdcall; external THEDLL;
Procedure DELAYUS(i:DWORD); stdcall; external THEDLL;
Procedure TIMEINITUS; stdcall; external THEDLL;
Function TIMEREADUS: DWORD; stdcall; external THEDLL;
Procedure OUTPORT(PortAddr:Word; Data:byte); stdcall; external THEDLL;
Function INPORT(PortAddr:Word):Byte;stdcall; external THEDLL;
Function OPENCOM(S:PCHAR):Integer;stdcall; external THEDLL;
Function READBYTE:Integer;stdcall; external THEDLL;
Procedure SENDBYTE(d:WORD);stdcall; external THEDLL;
Procedure DTR(d:WORD);stdcall; external THEDLL;
Procedure RTS(d:WORD);stdcall; external THEDLL;
Procedure TXD(d:WORD);stdcall; external THEDLL;
Function CTS:Integer;stdcall; external THEDLL;
Function DSR:Integer;stdcall; external THEDLL;
Function RI:Integer;stdcall; external THEDLL;
Function DCD:Integer;stdcall; external THEDLL;
Procedure REALTIME(d:BOOLEAN);stdcall; external THEDLL;
Function SOUNDSETRATE(Rate:DWORD):DWORD; stdcall; external THEDLL;
Function SOUNDGETRATE:DWORD; stdcall; external THEDLL;
Function SOUNDBUSY:Boolean; stdcall; external THEDLL;
Function SOUNDIS:Boolean; stdcall; external THEDLL;
Procedure SOUNDIN(Puffer:Pchar;Size:DWORD); stdcall; external THEDLL;
Procedure SOUNDOUT(Puffer:Pchar;Size:DWORD); stdcall; external THEDLL;
Function SOUNDGETBYTES:DWORD; stdcall; external THEDLL;
Function SOUNDSETBYTES(B:DWORD):DWORD; stdcall; external THEDLL;
Procedure SOUNDCAPIN; stdcall; external THEDLL;
Procedure SOUNDCAPOUT; stdcall; external THEDLL;
Function JOYX:DWORD;stdcall; external THEDLL;
Function JOYY:DWORD;stdcall; external THEDLL;
Function JOYZ:DWORD;stdcall; external THEDLL;
Function JOYR:DWORD;stdcall; external THEDLL;
Function JOYBUTTON:DWORD;stdcall; external THEDLL;
 
implementation
 
end.
 
/programy/delphi/motor/PORTINC.dcu
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/programy/delphi/motor/vssver.scc
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property