Also die Funktion sendUartData erwartet ein unsigned char was beim
AVR-GCC ein einfaches Byte = 8-Bit = uint8_t ist.
Wenn man jetzt einen größeren Datentyp übergibt, verwendet die Funktion
nur die niederwertigsten 8 Bit und der Compiler gibt auch eine Warnung
aus, dass die Datentypen nicht passen.
Korrekter Weise sollte man also bei einem größeren unsigned Datentyp
vorher auf >UINT8_MAX prüfen, ggf. begrenzen und explizit casten:
sendUartData((uint8_t)meinUint16_t);
Für die grundlegende Funktion ist das aber nicht notwendig.
Zu beachten ist vielmehr, dass wie Walter Tarpan schon sagte, 200 keinem
standard ASCII-Zeichen entspricht und je nach verwendetem
Terminalprogramm u.U. einfach nichts angezeigt wird.
Wenn eine Ausgabe als ASCII String erwartet wird, muss die Zahl zunächst
in einen String umgewandelt werden, welcher dann aus mehreren Zeichen
besteht.
Ich benutze als Terminalprogramm gerne HTerm, dies verfügt auch über
eine Anzeige in Dezimal und Hex und kann somit die 200 auch als 200
dezimal anzeigen. Putty und andere Terminalprogramme tun das
normalerweise nicht.
Was passiert wenn man 'a' versucht auszugeben, erscheint dann ein a im
Terminalfenster???
Mfg Bimbo385