Hallöchen,
mein Ziel ist es mit einem Atmega8 einen Hex Wert (also zum bsp 4F) über
den UART zu empfangen. Mit diesem Wert soll dann weitergearbeitet
werden.
Mein Problem ist nun, dass bei der Übertragung von F ja der Ascii Wert
übertragen wird (also 70). Jetzt hab ich mir überlegt, den Wert einfach
umzuwandeln und mir die korrekte Zahl auszurechnen.
Leider gibt es bei dem Unterprogrammaufruf ein Problem.
Ich bekomme immer "conflicting types for 'ascii2int'".
Was habe ich falsch gemacht? Oder gibt es eine andere einfachere Lösung
für mein Vorhaben?
Hier mein Code:
1 | int main(void)
|
2 | {
|
3 |
|
4 | init_uart();
|
5 | unsigned char Line[40];
|
6 | unsigned char zwischen;
|
7 | unsigned int erg;
|
8 |
|
9 |
|
10 | while(1)
|
11 | {
|
12 |
|
13 | uart_puts("AT Z");
|
14 | _delay_ms(50);
|
15 | uart_puts("AT SP0");
|
16 | _delay_ms(50);
|
17 | uart_puts("01 05");
|
18 | _delay_ms(50);
|
19 |
|
20 | uart_gets( Line, sizeof( Line ) / sizeof( Line[0] ) );
|
21 |
|
22 | zwischen=Line[0];
|
23 | uart_puts(Line);
|
24 |
|
25 | if ((zwischen=='F')||(zwischen=='f') )
|
26 | {
|
27 | uart_puts("Jaaaa");
|
28 | }
|
29 | else
|
30 | {
|
31 | uart_puts("hmmm");
|
32 | }
|
33 |
|
34 | erg= ascii2int(zwischen);
|
35 |
|
36 |
|
37 | if(erg==15)
|
38 | {
|
39 | uart_puts("juhuuuu");
|
40 | }
|
41 |
|
42 | else
|
43 | {
|
44 | uart_puts("hmmmmmmmmm8");
|
45 | }
|
46 |
|
47 |
|
48 | _delay_ms(2000);
|
49 | }
|
50 | }
|
51 |
|
52 |
|
53 | /* #################################ascii 2 int###################################*/
|
54 |
|
55 |
|
56 | unsigned int ascii2int (unsigned char ascii)
|
57 | {
|
58 | unsigned int dez;
|
59 |
|
60 |
|
61 | switch (ascii)
|
62 | {
|
63 |
|
64 | case 'A':
|
65 | dez=10;
|
66 | break;
|
67 | case 'B':
|
68 | dez=11;
|
69 | break;
|
70 | case 'C':
|
71 | dez=12;
|
72 | break;
|
73 | case 'D':
|
74 | dez=13;
|
75 | break;
|
76 | case 'E':
|
77 | dez=14;
|
78 | break;
|
79 | case 'F':
|
80 | dez=15;
|
81 | break;
|
82 | }
|
83 |
|
84 | return dez;
|
85 | }
|
Ihr werdet euch jetzt wahrscheinlich krumm lachen weil es so einfach
ist, aber ich weiß echt nicht weiter.
mfg ulmi