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.