zZ habe ich leider sehr viel Freizeit zu hause und nutzte die Zeit an meinen Programmen zu Arbeiten.
Die Grundroutinen, welche die UART auf meinem Atmega16 steuern laufen und somit habe ich nun auch meinen Grundbefehlssatz aufgebau.
Dies läuft auch mit dem Abstrich der Übertragungsrate (115200) zuriedenstellend.
Feinschliff kommt 3 rev. vor dem Final-Board.
Bei der Portionierung der Ersten Routine habe ich jedoch nach dem 4tem Durchlauf folgenden Softwarefehler.
USB.LastErrorDesc = Bad file number
Initialisiert wird meine Schnittstelle wie folgt
Code: Alles auswählen
procedure TTray_Form.Find_MS;
var MS_Load: String;
begin
if FileExists('/dev/ttyUSB0') then begin
if ( _USB.Connect and (Not _USB.Error)) then begin
{$ifdef CPUARM}
MS_load :='$0#M>'; // <--- ARM Masteranvorderung zum Atmega16 /128
{$endif}
{$ifdef CPUi386}
MS_load :='$1#M>'; // <--- PC Masteranvorderung zum Atmega16 /128 (Dominant, auch wenn ARM schon Master ist
{$endf}
USB.SendString(MS_Load);
_USB.RXD := USB.RecvTerminated(1000, '>')+'>';
StatusBar1.Panels[0].Text := _USB.RXD;
StatusBar1.Panels[0].Width := Canvas.TextWidth(_USB.RXD) + 50;;
end;
end;
end;
procedure TTray_Form.FormCreate(Sender: TObject);
begin
USB := TBlockSerial.Create;
try
USB.Connect(Port);
// USB.Config(115200, 8, 'N', 1, false, false);
USB.Config(9600, 8, 'N', 1, false, false);
Sleep(1000);
finally
if USB.LastError = 0 then begin <--- Auswertung muß noch erweitert werden
_USB.Connect := True;
_USB.Error := False;
end;
end;
Statusbar1.Panels[1].Text := USB.LastErrorDesc;
end;
procedure TTray_Form.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
USB.Free;
end;