Gast
#2368226
Hallo,
bisher haben wir für die Kommunikation z.B. über den UART zwei globale
Variablen verwendet. Wobei eine den Empfangsbuffer darstellt und die
andere ein Flag, dass der main() Funktion signalisiert, dass ein
kompletter Datenblock empfangen wurde.
Beide Variablen sind als volatile deklariert, weil auf diese im IRQ wie
auch in der main() zugegriffen wird. In dem Artikel zur Code-Optimierung
ist nun beschrieben, dass es bei globalen Variablen sinnvoll ist diese
in einer struct zusammenzufassen. Dies würde den Code auch etwas
aufräumen.
Ist dieses Vorgehen auch für die Kommunikation mit einem IRQ sinnvoll
oder würde jetzt bei jedem Zugriff auf das Empfangsflag der gesamte
Empfangsbuffer jedesmal geholt werden und beim Schreiben des Flags der
gesamte Buffer neu geschrieben?
Ich denke dabei an folgendes Beispiel:
volatile struct {
unsigned char flag;
unsigned char buffer[20];
}
Oder ist vielleicht eine völlig andere Möglichkeit Daten mit dem IRQ
auszutauschen viel sinnvoller?
Vielen Dank schonmal