Hallo, ich möchte gern DMX-Daten an einen COM Port übergeben, welche ich mir dann im Hyperterminal anschauen kann. Bis jetzt seh ich im Hyperterminal aber nur skurrile Schriftzeichen (nehme mal an, das HT eigentlich einen string benötigen würde für die genaue Darstellung und kein unsigned char Array). Gibt es im Hyperterminal eine entsprechende Einstellung, damit man auch die unsigned char Daten korrekt angezeigt bekommt / in meinem Fall die DMX-Werte? Oder gibt es ein anderes kostenloses Terminal, welches das zulässt? Gruß Bernd
Bernd Schuster schrieb: > Hallo, > > ich möchte gern DMX-Daten an einen COM Port übergeben, welche ich mir > dann im Hyperterminal anschauen kann. Bis jetzt seh ich im Hyperterminal > aber nur skurrile Schriftzeichen (nehme mal an, das HT eigentlich einen > string benötigen würde für die genaue Darstellung und kein unsigned char > Array). > > Gibt es im Hyperterminal eine entsprechende Einstellung, damit man auch > die unsigned char Daten korrekt angezeigt bekommt / in meinem Fall die > DMX-Werte? Oder gibt es ein anderes kostenloses Terminal, welches das > zulässt? HTerm kann das. Aber: Warum bereitest du nicht deine Werte so auf, dass sie auch Hyperterminal korrekt anzeigen kann? Ev. noch ein Text davor, dann kannst du sogar kontrollieren, ob die Baudrate korrekt eingestellt ist. http://www.mikrocontroller.net/articles/FAQ#Wie_kann_ich_Zahlen_auf_LCD.2FUART_ausgeben.3F
da die Daten später wirklich an einen UART-Port vom Prozessor gesendet werden sollen und dies jetzt nur als Test fungiert, da die Hardware noch nicht da ist. Dann muss ich später weniger im c-Code wieder abändern.
Bernd Schuster schrieb: > Dann muss ich später weniger im c-Code wieder abändern. Ach komm. Es geht um EINE Funktion und dort wieder um ein paar Zeilen Code. Warum nur haben die Leute immer solche Angst davor, sich ein paar Zeilen Hilfscode zu machen, der nach Projektfertigstellung stillgelegt wird. Statt dessen wurschteln sie lieber mit untauglichen Testmitteln rum. Woher weißt du denn, dass das was die HTerm anzeigen würde, auch tatsächlich korrekt ist und nicht dadurch entsteht, dass deine Baudrate nicht korrekt eingestellt ist? Sieh dich um hier im Forum. Die Anzahl der Threads bei denen angeblich 'alles korrekt eingestellt ist', die 'UART aber trotzdem nicht funktioniert' ist Legion! Die Ausgabe in lesbarer Form hast du in 20 Sekunden gemacht
1 | void uart_puts( const char* s ) |
2 | {
|
3 | while( *s ) |
4 | uart_putc( *s++ ); |
5 | }
|
6 | |
7 | ....
|
8 | |
9 | int main() |
10 | {
|
11 | ....
|
12 | irgendwie kommst du mit dem unsigned char Wert hoch |
13 | ....
|
14 | |
15 | unsigned char wert; |
16 | |
17 | wert = .... |
18 | |
19 | |
20 | {
|
21 | char buffer[30]; |
22 | sprintf( buffer, "DMX = %d\n", wert ); |
23 | uart_puts( buffer ); |
24 | }
|
25 | |
26 | ...
|
27 | }
|
und das ist jetzt viel Aufwand? Wenn die Ausgabe an 20 verschiedenen Stellen erfolgt, dann bau dir halt eine Funktion dafür
1 | void uart_puts( const char* s ) |
2 | {
|
3 | while( *s ) |
4 | uart_putc( *s++ ); |
5 | }
|
6 | |
7 | void uart_put_dmx( unsigned char wert ) |
8 | {
|
9 | char buffer[30]; |
10 | sprintf( buffer, "DMX = %d\n", wert ); |
11 | uart_puts( buffer ); |
12 | }
|
13 | |
14 | ....
|
15 | |
16 | int main() |
17 | {
|
18 | ....
|
19 | irgendwie kommst du mit dem unsigned char Wert hoch |
20 | ....
|
21 | |
22 | unsigned char wert; |
23 | |
24 | wert = .... |
25 | |
26 | |
27 | uart_put_dmx( wert ); |
28 | |
29 | ...
|
30 | }
|
dann hast du später nur EINE einzige Stelle, an der du eingreifen musst: die Funktion uart_put_dmx.
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.