Forum: PC-Programmierung Daten durch UART an den PC senden


von Björn P. (krusty)


Lesenswert?

Hallo zusammen,

auf meiner Suche herauszufinden, wie man Daten per UART von meinem uc 
Atmel
AT89C51ED2 an den Pc sendet kam ich bisher zu folgendem:
1
#include "reg_c51.h"
2
#include <stdio.h>    // für sprintf
3
#include <cbsboard.h>    // für das CBS-Board Version2
4
5
#define LEDPort P2    // für P2 LEDPort verwenden
6
7
const float LSB = 0.01953;  // 5V / 256 Schritte = 0.01953
8
char uart_data;
9
10
void main (void) 
11
{
12
unsigned char AIn0Wert;      //AD0-Wert als 8-Bit-Variable
13
unsigned char buf [16];      //für LCD-Anzeige
14
float  UIn0Wert;      //für Skalierung des AD0-Werts auf 0 bis 5V  
15
initlcd ();        // LCD-Display initialisieren
16
testlcd ();        //LCD-Display testen und löschen
17
18
// UART-Teil, den ich auf der offiziellen Atmel Website gefunden habe
19
SCON = 0x50;    /* uart in mode 1 (8 bit), REN=1 */
20
BDRCON &=0xEC;          /* BRR=0; SRC=0; */
21
BDRCON |=0x0C;          /* TBCK=1;RBCK=1; SPD=0 */
22
BRL=0xFD;               /* 9600 Bds at 11.059MHz */
23
ES = 1;                 /* Enable serial interrupt  */
24
EA = 1;      /* Enable global interrupt */
25
BDRCON |=0x10;          /* Baud rate generator run*/
26
27
while (1)
28
{  
29
AIn0Wert = ain (0);  //Analogwert von Poti an Kanal 0 einlesen
30
LEDPort = AIn0Wert;  //an LEDs an P2 ausgeben 
31
aout (AIn0Wert);  //und an den Analogausgang
32
  
33
UIn0Wert = AIn0Wert * LSB;  //Skalierung auf 0 bis 5V
34
35
sprintf (buf,"HALLO");  
36
printlcd (buf,1);              
37
}  //  Ende Endlosschleife mit while
38
   
39
}


ist das soweit korrekt? wie schicke ich nun einen String an den rechner?

Gruß
Björn

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
Noch kein Account? Hier anmelden.