Einzelnen Beitrag anzeigen

SirTwist

Registriert seit: 28. Sep 2006
196 Beiträge
 
Delphi XE Professional
 
#7

Re: UART über Comport/Zahlen übertragen

  Alt 17. Mär 2007, 15:15
Wenn, dann so rum:
Chr(StrToInt(Edit1.Text)) Ich denke mal, dass Deine Mega8-Routine nur einzelne Byte-Werte vom UART entgegennimmt. Deine Cport-Library schickt aber Strings. Ein String besteht aus einzelnen Zeichen, die jeweils durch einen Ascii-Code dargestellt werden. Jedes Zeichen kommt dann beim Mega8 als dessen Ascii-Code als Bytewert an. Deshalb wird aus Deinem 'z' die 97.

Alternative 1:
Delphi-Quellcode:
var a: Integer;
begin
  ...
  a := StrToIntDef(Edit1.Text, -1); // Wenn kein gültiger Zahlenwert, wird -1 zurückgegeben
  
  if InRange(a, 0, 255) // Testen, ob ein Zahlenwert von 0 bis 255 eingegeben wurde
    then cport.WriteStr(Chr(a)); // Wenn ja, dann senden
...
Alternative 2:
Du benutzt zur Eingabe deiner Zahl direkt eine TUpDown-Komponente, gekoppelt mit einem Edit-Feld. Dann hast Du in der Eigenschaft "Position" direkt einen Integerwert, den Du über die Eigenschaften "Min" und "Max" auf den Wertebereich 0-255 einschränken kannst.
  Mit Zitat antworten Zitat