AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi UART über Comport/Zahlen übertragen

UART über Comport/Zahlen übertragen

Ein Thema von deteschniger · begonnen am 17. Mär 2007 · letzter Beitrag vom 18. Mär 2007
Antwort Antwort
deteschniger

Registriert seit: 17. Mär 2007
7 Beiträge
 
#1

UART über Comport/Zahlen übertragen

  Alt 17. Mär 2007, 15:16
Hi,

ich habe folgendes Problem:
Ich habe in meinen Borland Delphi2005 Entwicklungsumgebung eine Cport Library importiert, um mit einem Delphiprogramm über UART etwas an einen ATmega8 zu senden. Das funktioniet auch wunderbar. mit dem Befehl: Comport1.writestr(variable) kann ich zeichen senden. In meinem ATmega8 Programm steht, dass dieser auf die zahl z.B. 97 reagieren soll. Im Delphiporgramm kann ich aber jetzt nicht eine 97 senden, sondern muss in einer Ascii Tabelle nachsehen und für 97 ein "a" senden.

Ich habe in der Cport library noch nicht den Punkt gefunden, wo die gesendeten Zeichen in Ascii umgewandelt werden.
Mein ziel ist es, wenn ich eine z.B. eine 97 absende, dass auch eine 97 am ATmega8 ankommt. Gibt es einen Befehl aus der Cport library, der schon dafür vorgesehen ist? Oder gibt es noch eine andere möglichkeit das Problem der Ascii tabelle zu lösen?

Vielen Dank im Voraus für tips egal welcher art !




Cport quelle: http://sourceforge.net/projects/comport/
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: UART über Comport/Zahlen übertragen

  Alt 17. Mär 2007, 15:19
Herzlich willkommen in der Delphi-PRAXiS, teschniger.

In Delphi kannst du #97 anstelle von 'a' verwenden.

Freundliche Grüße
  Mit Zitat antworten Zitat
deteschniger

Registriert seit: 17. Mär 2007
7 Beiträge
 
#3

Re: UART über Comport/Zahlen übertragen

  Alt 17. Mär 2007, 15:48
Ui das ging aber schnell.

Das funktioniert nicht, da ich aus einer Edit box den Text nehme, in einer Variable speichere und dann per Comport1.writestr(variable) versende. Wenn ich jetzt #97 in mein Textfeld eingebe, ist das nicht das selbe, wie wenn wie ein a reinschreibe, da dann #97 in Asciizeichen umgewandelt wird...

Wie und wo müsste ich denn # einbrigen, damit das z.B. #97 in ein a umgewandelt wird?
sowas wie:
x:= '#' + Edit1.text

geht ja nicht........
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

Re: UART über Comport/Zahlen übertragen

  Alt 17. Mär 2007, 15:54
Hi,

also in deinem Edit stehen Zahlen?
Z.B '97' ?

Wie wärs mit

Chr(IntToStr(Edit1.Text)) ?

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
deteschniger

Registriert seit: 17. Mär 2007
7 Beiträge
 
#5

Re: UART über Comport/Zahlen übertragen

  Alt 17. Mär 2007, 16:09
Ich bitte meine Delphiunkenntnis zu entschuldigen!

Ist das ein eigenständiger Befehl? Mein problem ist folgendes. Das ganze Programm besteht derzeit aus einem Button, einem Label und einem Editfeld.
Wenn ich diesen wunderschönen Button betätige, soll das programm die oben eingetipte zahl in das Entsprechende Ascii zeichen umwandeln. Da ich deinen Befehl nicht kenne, sieht das ganze bei mir so aus

procedure TForm1.Button1Click(Sender: TObject);
begin


label1.Caption:= (InttoStr(Edit1.Text));

end;
Nur das Programm lässt sich nicht Debuggen, da die fehlermeldung: "[Fehler] Power.pas(33): E2250 Es gibt keine überladene Version von 'IntToStr', die man mit diesen Argumenten aufrufen kann" auftaucht.

Wie muss ich also deinen Befehl in das Programm einbinden?


Vielen dank für deine Hilfe
  Mit Zitat antworten Zitat
deteschniger

Registriert seit: 17. Mär 2007
7 Beiträge
 
#6

Re: UART über Comport/Zahlen übertragen

  Alt 17. Mär 2007, 16:13
ich habs..........!!....ich dummerchen

Viele Dankens!!!!!!!!

Kaum schreibt man alles richtig schon funktioniert es
  Mit Zitat antworten Zitat
SirTwist

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

Re: UART über Comport/Zahlen übertragen

  Alt 17. Mär 2007, 16: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
deteschniger

Registriert seit: 17. Mär 2007
7 Beiträge
 
#8

Re: UART über Comport/Zahlen übertragen

  Alt 17. Mär 2007, 16:20
Genau darauf sollte es hinaus laufen!!! Vielen vielen dank!
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

Re: UART über Comport/Zahlen übertragen

  Alt 17. Mär 2007, 17:05
Ehm ja sry.. Wenn ich schnell schreibe dann kommts schonmal vor das ich StrToInt denke und IntToStr schreibe
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
deteschniger

Registriert seit: 17. Mär 2007
7 Beiträge
 
#10

Re: UART über Comport/Zahlen übertragen

  Alt 18. Mär 2007, 08:33
.......ok....das hab ich garnicht gemerkt .
Ich hatte einen anderen Fehler, der zu banal ist, in hier zu posten
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz