|
|
@@ -17,14 +17,21 @@ type
|
|
|
Button2: TButton;
|
|
|
Button3: TButton;
|
|
|
Button4: TButton;
|
|
|
+ Label1: TLabel;
|
|
|
+ Memo1: TMemo;
|
|
|
procedure Button1Click(Sender: TObject);
|
|
|
procedure Button2Click(Sender: TObject);
|
|
|
procedure Button3Click(Sender: TObject);
|
|
|
procedure Button4Click(Sender: TObject);
|
|
|
procedure FormCreate(Sender: TObject);
|
|
|
procedure FormDestroy(Sender: TObject);
|
|
|
+ procedure Memo1Change(Sender: TObject);
|
|
|
+ procedure Memo1DblClick(Sender: TObject);
|
|
|
private
|
|
|
FUSBasp: TUSBasp;
|
|
|
+ procedure USBaspDataReceive(Sender: TObject; ASerialData: TByteArray;
|
|
|
+ ASerialDataLength: SizeInt);
|
|
|
+ procedure USBaspStatusChange(Sender: TObject);
|
|
|
public
|
|
|
|
|
|
end;
|
|
|
@@ -41,6 +48,8 @@ implementation
|
|
|
procedure TForm1.FormCreate(Sender: TObject);
|
|
|
begin
|
|
|
FUSBasp := TUSBasp.Create;
|
|
|
+ FUSBasp.OnUARTReceive := @USBaspDataReceive;
|
|
|
+ FUSBasp.OnStatusChange := @USBaspStatusChange;
|
|
|
end;
|
|
|
|
|
|
procedure TForm1.Button1Click(Sender: TObject);
|
|
|
@@ -55,7 +64,8 @@ end;
|
|
|
|
|
|
procedure TForm1.Button3Click(Sender: TObject);
|
|
|
begin
|
|
|
- FUSBasp.UARTOpen(9600, USBASP_UART_BYTES_8B, USBASP_UART_PARITY_NONE, USBASP_UART_STOP_1BIT);
|
|
|
+ FUSBasp.UARTOpen(19200, USBASP_UART_BYTES_8B, USBASP_UART_PARITY_NONE,
|
|
|
+ USBASP_UART_STOP_1BIT);
|
|
|
end;
|
|
|
|
|
|
procedure TForm1.Button4Click(Sender: TObject);
|
|
|
@@ -68,5 +78,36 @@ begin
|
|
|
FUSBasp.Free;
|
|
|
end;
|
|
|
|
|
|
-end.
|
|
|
+procedure TForm1.Memo1Change(Sender: TObject);
|
|
|
+begin
|
|
|
+ if Memo1.Lines.Count > 150 then
|
|
|
+ begin
|
|
|
+ Memo1.Lines.BeginUpdate;
|
|
|
+ while Memo1.Lines.Count > 150 do
|
|
|
+ Memo1.Lines.Delete(0);
|
|
|
+ Memo1.Lines.EndUpdate;
|
|
|
+ end;
|
|
|
+end;
|
|
|
+
|
|
|
+procedure TForm1.Memo1DblClick(Sender: TObject);
|
|
|
+begin
|
|
|
+ Memo1.Clear;
|
|
|
+end;
|
|
|
|
|
|
+procedure TForm1.USBaspDataReceive(Sender: TObject; ASerialData: TByteArray;
|
|
|
+ ASerialDataLength: SizeInt);
|
|
|
+begin
|
|
|
+ Memo1.Lines.BeginUpdate;
|
|
|
+ Memo1.Lines.Append(TEncoding.ASCII.GetString(ASerialData, 0, ASerialDataLength));
|
|
|
+ Memo1.SelStart := Length(Memo1.Lines.Text);
|
|
|
+ Memo1.VertScrollBar.Position := Memo1.Lines.Count;
|
|
|
+ Memo1.Lines.EndUpdate;
|
|
|
+end;
|
|
|
+
|
|
|
+procedure TForm1.USBaspStatusChange(Sender: TObject);
|
|
|
+begin
|
|
|
+ Randomize;
|
|
|
+ Label1.Caption := 'Changed' + IntToStr(Random(999));
|
|
|
+end;
|
|
|
+
|
|
|
+end.
|