K. R. schrieb:
Mach dir doch erst mal ein paar vernünftige Hilfsfunktionen. So was ....
1 | uart_putc('T');
|
2 | uart_putc('E');
|
3 | uart_putc('S');
|
4 | uart_putc('T');
|
5 | uart_putc(' ');
|
6 | uart_putc('D');
|
7 | uart_putc('E');
|
8 | uart_putc('V');
|
9 | uart_putc('I');
|
10 | uart_putc('C');
|
11 | uart_putc('E');
|
12 | uart_putc(' ');
|
13 | uart_putc('R');
|
14 | uart_putc('E');
|
15 | uart_putc('A');
|
16 | uart_putc('D');
|
17 | uart_putc('Y');
|
ist doch Unsinn.
1 | void uart_puts( const char* str )
|
2 | {
|
3 | while( *str )
|
4 | uart_putc( *str++ );
|
5 | }
|
damit kannst du dann sofort erst mal schreiben
1 | void welcome(void)
|
2 | {
|
3 | uart_puts( "TEST DEVICE READY\r\n" );
|
4 | }
|
Gut.
Weiters ist diese Funktion sofort nützlich, weil sich daraus sofort eine
Zahlenausgabe zusammensetzen lässt
1 | void uart_puti( uint16_t value )
|
2 | {
|
3 | char buffer[8];
|
4 | utoa( value, buffer, 10 );
|
5 | uart_puts( buffer );
|
6 | }
|
welche gleich mal hier ...
1 | int main()
|
2 | {
|
3 | ....
|
4 |
|
5 | while(1)
|
6 | {
|
7 | uart_getc();
|
8 |
|
9 | uint16_t adw = adc_read(0);
|
10 | uart_puti( adw );
|
11 | uart_puts( "\r\n" );
|
12 | }
|
zum Einsatz kommt.
Alternativ hätte man azum Testen auch so vorgehen können
1 | ...
|
2 | int main()
|
3 | {
|
4 | char buffer[20];
|
5 | ...
|
6 | while(1)
|
7 | {
|
8 | uart_getc();
|
9 |
|
10 | uint16_t adw = adc_read(0);
|
11 | sprintf( buffer, "ADC Wert: %u\r\n", adw );
|
12 | uart_prints( buffer );
|
13 | }
|
14 | }
|
Probier beide mal aus. Mal sehen ob dein Problem nicht einfach nur darin
besteht, dass du die Ausgabe in deinem Terminal fehlinterpretierst.