roboforum.ruТехнический форум по робототехнике. |
|
|
опишите задачу ЦИФРАМИ.Intr писал(а): модуль Ke-USB24A а вот возник вопрос с теми же светодиодами как заставить их мигать с определенной частотой ?
procedure TForm1.Button3Click(Sender: TObject);
var
buffer: string;
CRbyte: Shortint;
LFbyte: Shortint;
NumberWritten : DWORD;
begin
Button4.Enabled:=True;
Button3.Enabled:=False;
Stop:=False;
while not(Stop) do
begin
CRbyte := 13; // HEX 0x0D
LFbyte := 10; // HEX 0x0A
buffer := '$KE,WR,22,1' + Char(CRbyte) +
Char(LFbyte);
WriteFile(CommHandle, PChar(buffer)^, Length(buffer), NumberWritten, nil);
sleep(30);
CRbyte := 13; // HEX 0x0D
LFbyte := 10; // HEX 0x0A
buffer := '$KE,WR,22,0' + Char(CRbyte) +
Char(LFbyte);
WriteFile(CommHandle, PChar(buffer)^, Length(buffer), NumberWritten, nil);
sleep(30);
Application.ProcessMessages;
end
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
PortString := '\\.\COM' + Edit1.Text;
CommHandle := CreateFile(PChar(PortString), GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING,
0, 0);
if (CommHandle = INVALID_HANDLE_VALUE) then
begin
MessageDlg('Error. Can`t Open port', mtError, [mbOK], 0);
end
else
begin
GetCommState(CommHandle, DCB);
DCB.BaudRate := CBR_9600; // FORMALLY, CONNECT BAUD DOESN`T MATTER (Virtual Com Port)
DCB.Parity := NOPARITY;
DCB.ByteSize := 8;
DCB.StopBits := OneStopBit;
CommTimeOuts.ReadIntervalTimeout := 0;
CommTimeOuts.ReadTotalTimeoutMultiplier := 0;
CommTimeOuts.ReadTotalTimeoutConstant := 1000;
CommTimeOuts.WriteTotalTimeoutMultiplier := 0;
CommTimeOuts.WriteTotalTimeoutConstant := 1000;
SetCommTimeouts(CommHandle, CommTimeOuts);
SetCommState(CommHandle, DCB);
MessageDlg('Port Open Ok', mtInformation, [mbOK], 0);
end
end;
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10