Forum: Compiler & IDEs Variable an UART


von Vitali H. (vitali77)


Lesenswert?

Hallo Forum-Gemeinde!

Ich habe hier einProblem mit einer Übung, die ich gerade versuche 
durchzuführen. Vorab muss ich sagen dass ich nicht mit GCC arbeite. Also 
kann es sein dass die Syntax ein wenig anders ist. Ich denke jedoch dass 
es ein generelles Problem (Fehler) ist. Hier erstmal mein Q-Text.

int i;
void main()
{
 i = 0;

 UART1_Init(9600);
 Delay_ms(100);

 do
 {
  UART1_Write(i);
  UART1_Write_Text("\n\r");
  Delay_ms(500);
  i++;
 }
 while(1);
}


Ich möchte also Zahlenwerte in einer Variable ablegen und in einer 
Schleife an UART übergeben. Am Ende der Schleife soll i um 1 erhöht 
werden. Der Zähler funktioniert uch soweit, ich bekomme nur keine Zahlen 
ausgegeben sonder diese Folge:

1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
`


usw.

Kann mir jemand weiter helfen und mir sagen warum das passiert?


Gruß, VItali

von Karl H. (kbuchegg)


Lesenswert?

Vitali H. schrieb:

> Kann mir jemand weiter helfen und mir sagen warum das passiert?

Wahrschenilich deshalb, weil UART_Write zur Ausgabe eines Characters 
gedacht ist und nicht zur Ausgabe einer Zahl.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Ich denke jedoch dass es ein generelles Problem (Fehler) ist.
Ja, das fehlende Verständnis zum Thema Zahl <--> ASCII-Zeichen
Als Grundlage mal die ASCII-Tabelle aus 
http://www.tcp-ip-info.de/tcp_ip_und_internet/ascii.htm
Wenn in deinem Programm i==48 ist, dann wirst du eine 0 sehen. Wenn 
i==49 ist, dann eine 1. Bei i==111 ein kleines o   usw.usf.

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.