Hallo, ich habe eine Frage. Und zwar will ich mit meinem nachfolgenden Code vom H-Terminal eine Zahl. Zb. 12 einlesen, den Wert der Variable i zuweisen, dann wieder den Wert von i geteilt durch 2 im Terminal wieder ausgeben. Um das richtige Ergebnis zu erhalten muss ich zuerst die Zahl die ich teilen möchte eingeben. Und mit Enter bestätigen (Senden) dann passiert noch nichts, wenn ich jetzt erneut a eingebe und mit Enter Sende kommt das richtige Ergebnis im Received Data Fenster (BILD) es sollte aber so sein, das ich 12 eingebe (Enter Senden) und danach automatisch das Ergebnis angezeigt wird. Könnte mir Bitte jemand sagen was ich hier falsch mache ?
1 | |
2 | #define F_CPU 16000000UL
|
3 | #define BAUD 9600UL
|
4 | |
5 | #include <util/delay.h> |
6 | #include <string.h> |
7 | #include <stdlib.h> |
8 | #include <stdio.h> |
9 | #include <ctype.h> |
10 | #include <avr/io.h> |
11 | |
12 | //Initialisierung und die Funktionen uart_putchar und art_getchar
|
13 | #include "serial2.h" |
14 | |
15 | //Eintrag von uart_putchar und uart_getchar als
|
16 | //Standard IO
|
17 | FILE mystdout = FDEV_SETUP_STREAM(uart_putchar, uart_getchar, _FDEV_SETUP_RW); |
18 | |
19 | int main(void) |
20 | {
|
21 | |
22 | |
23 | //Initialisierung (aus serial2.h) aufrufen
|
24 | uart_init(F_CPU, BAUD); |
25 | |
26 | //Elementare IO Funktionen als Standard IO eintragen
|
27 | stdout = stdin = &mystdout; |
28 | |
29 | |
30 | while (1) |
31 | {
|
32 | |
33 | int i; |
34 | |
35 | printf("\r\nGeben Sie eine Zahl ein: "); |
36 | scanf("%d", &i); //&i ist die Adresse von i |
37 | printf("\r\nDer halbe Wert ist %d", i / 2); |
38 | _delay_ms(500); |
39 | }
|
40 | }
|