Forum: Mikrocontroller und Digitale Elektronik unsigned char Daten anzeigen im HT


von Bernd S. (mms)


Lesenswert?

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

von Karl H. (kbuchegg)


Lesenswert?

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

von Bernd S. (mms)


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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.

von Bernd S. (mms)


Lesenswert?

habs bereits ausprobiert - und es passt

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.