Hallo zusammen, ich bin an einer Stelle wo ich nicht mehr weiter weiß. Ich benutze den AT89C51ED2 und habe mit C ein kleines Programm geschrieben Mit dem Programm kann ich Daten erfassen die dann auf einem kleinen LCD Display auf dem Board angezeigt werden. Nun möchte ich die Daten über eine RS232 Schnittstelle auf meinen PC senden. Ich habe die Daten auf dem uc in einen String umgewandelt (sprintf). Hab mich auch über UART informiert, das ich darüber die Daten senden muss, und sie dann über ein Terminal Programm empfangen kann. Aber wie mach ich das? Kann mir jemand bitte helfen? Danke im Voraus
Hallo Björn, wenn du den Text schon als String vorliegen hast, dann kannst du doch einfach ein Zeichen nach dem anderen über die serielle Schnittstelle übertragen. Das sollte so Funktionieren:
1 | char *pointer=var_mystring; |
2 | |
3 | for(;pointer;pointer++) |
4 | {
|
5 | send_char(*pointer); |
6 | } |
Gruß, SIGINT
Hallo Sigint,
danke für deine Antwort ;-)
Ich bin leider nicht der Profi darin.
Könntest du mir vielleicht einen Tipp geben wo ich die Zeilen einfügen
soll?
Hier ist mein kleines Programm.
P.S. Ich habe einen kompletten Text auf dem LCD Display,
wird der dann im ganzen übertragen?
Gruß,Björn
const float LSB = 0.01953; // 5V / 256 Schritte = 0.01953
void main (void)
{
unsigned char AIn0Wert; //AD0-Wert als 8-Bit-Variable
unsigned char buf [16]; //für LCD-Anzeig
float UIn0Wert; //für Skalierung des AD0-Werts auf 0 bis 5V
initlcd (); //LCD-Display initialisieren
testlcd (); //LCD-Display testen und löschen
while (1)
{
AIn0Wert = ain (0);//Analogwert von Poti an Kanal 0 einlesen
LEDPort = AIn0Wert;//an LEDs an P2 ausgeben
aout (AIn0Wert);//und an den Analogausgang
UIn0Wert = AIn0Wert * LSB;//Skalierung auf 0 bis 5V
sprintf (buf,"AD0 = %1.3f Volt",UIn0Wert);
// Floatvariable formatieren, als 4-stellige Kommazahl in String
verwandeln, in buf kopieren
// %Ausgabeformat folgt, 1 Vor- 3 Nachkommastellen, f Floatvariable,
auszugebende Variable
printlcd (buf,1);
} // Ende Endlosschleife mit while
}
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.