Gast
#5787515
Ich versuche gerade eine Funktion zu schreiben, mit der ich über die UART Schnittstelle Daten über ein RS232 to USB Kabel (COM4) an ein Terminal auf dem PC schicke, um mir die Daten ansehen zu können. Ich möchte die UART kennen lernen. Ich schicke direkt eine 0, wenn value = 0 ist. Wenn die Zahl > 0 ist, arbeite ich mit einem Modulo Operator und teile die Zahl immer durch 10, damit ich einzelne Ziffern ins Array setzen kann. Die Zahlen werden immer beginnend mit dem letzten Index in das Array gespeichert. Wenn die Zahl negativ sein sollte, wird alles mit Nullen gefüllt. Ich habe nun 2 Fragen. Da das Array eine Länge von 10 hat sieht die Anordnung von der Zahl 7800 beispielsweise so aus: xxxxxx7800 Wenn ich diesen Wert über die UART schicke sehe ich am Terminal (HTERM) einen Zeilenumbruch nach jedem 10. Wert einstelle, sehe ich nicht diese Anordnung, sondern mir wandern die Zahlen ständig hin und her. Wenn ich Glück habe sieht es wie folgt aus: (Die nicht gefüllten Felder werden im HTERM stets mit "*" dargestellt) ******7800 die nächste Zahl zB *******68 Aber manchmal kann es auch folgendermassen aussehen: **7800**** (1. Zahl) 7800****** (2. Zahl) und die nächste Zahl 68 dann 7800*****6 (3. Zahl 68) 8********* oder auch mal die 100 mit einer folgenden 0 ****1000** Ich verstehe das nicht. Was mache ich nur falsch? Liegt es daran, dass ich die Felder (value > 0) nicht weiter fülle? Was könnte das Problem sein? Weiters möchte ich das Programm irgendwie auf Einfachstem Wege dazu bringen auch negative Zahlen darstellen zu können. Dazu müsste ich den Typ des Parameters wohl zuerst einmal auf int32_t umstellen, aber dann habe ich das Problem mit der else. Gibt es irgendwie eine einfache Lösung oder muss ich die komplette Funktion umschreiben?
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |