>>
Ich habe das Problem gelöst. Danke für eure Hilfe.
unsigned char BufferUart[10];
unsigned char Value[4];
int Dezwert;
Routine unsigned int hex4atoi(const char * s);
BufferUart[4] = 65; Für ein 'A'
BufferUart[5] = 70; Für ein 'F'
BufferUart[6] = 66; Für ein 'B'
BufferUart[7] = 66; Für ein 'B'
Value[0] = BufferUart[4];
Value[1] = BufferUart[5];
Value[2] = BufferUart[6];
Value[3] = BufferUart[7];
Dezwert = hex4atoi(Value);
<<
Nun, das geht aber weißgott auch einfacher. Wie schon gesagt, gibt es
keine Stringvariablen oder sowas in C. Das gibt es einfach nicht.
Strings werden als Array interpretiert, das aus mehreren Chars besteht.
Der Name dieses Arrays (Hier zB Value) zeigt auf das erste Zeichen des
Strings im Speicher.
Du kannst also genauso gut schreiben
1 | unsigned char BufferUart[10];
|
2 | unsigned char Value[4];
|
3 | unsigned int Dezwert;
|
4 |
|
5 | unsigned int hex4atoi(const char * s);
|
6 |
|
7 |
|
8 | BufferUart[4] = 65; Für ein 'A'
|
9 | BufferUart[5] = 70; Für ein 'F'
|
10 | BufferUart[6] = 66; Für ein 'B'
|
11 | BufferUart[7] = 66; Für ein 'B'
|
12 |
|
13 | Dezwert = hex4atoi(BufferUart);
|
Ich gebe zu, das ist nicht ganz leicht zu erklären mit den Pointern,
erst recht nicht, wenn man nicht versteht, was es damit auf sich hat,
und warum es die in C gibt und sonst nirgndwo. (Bzw nicht so
offensichtlich)..
Da wirst du dir mal ein Fachbuch zu C Programmierung durchlesen müssen.