Servus zusammen,
ich steh grad ein bissl aufm Schlauch und Google sowie meine Literatur
wollen mir mangels passenden Suchbegriffen oder einer zu spezifischer
Frage (oder auch zu großem Knoten im Kopf) auch nicht behilflich sein.
Folgendes: ich habe eine Structur, die ich ganz nochmal wie eine
Structur auslesen möchte. Schreiben möchte ich in sie allerdings wie in
ein Array, da ich die Bytes der Structur in passender Reihenfolge über
den UART empfange.
Meinen aufs wesentliche reduzierten Code würde ich also folgendermaßen
schreiben:
1 | #include ...
|
2 |
|
3 | struct struct_t {
|
4 | uint16_t a;
|
5 | uint16_t b;
|
6 | uint8_t c;
|
7 | };
|
8 |
|
9 | uint8_t array[5];
|
10 |
|
11 | int main ( void ) {
|
12 |
|
13 | uint16_t lesen;
|
14 | struct struct_t *ptr = array;
|
15 |
|
16 | // eine uint16_t aus dem array auslesen...
|
17 | lesen = *ptr.b;
|
18 | }
|
19 |
|
20 |
|
21 | ISR( UART_RX_vect ) {
|
22 | ststic uint8_t i=0;
|
23 | array[i] = UDR;
|
24 | i++;
|
25 | if( i >= 5 )
|
26 | i = 0;
|
27 | }
|
Meine Frage lautet nun, ob ich, wie oben, auf das Array auch über den
Pointer zugreifen kann?
Klar ich könnte es einfach probieren, doch da meine Hardware keine
Ausgabemöglichkeiten hat mit denen ich das ordentlich testen könnte muss
ich leider mal bei den Profis anfragen.
Könnte ich also wie in meinem Code oben UART-Daten empfangen und in der
main() auswerten?
Vielen Dank