Hallo! Ich benutze die UART-Ringpuffer-Bibliothek von Peter Fleury. Diese binde ich über die Headerdatei uart.h ein. Dateien: MeinProgram.c//Meine Quellcodedatei uart.h //Header von Peter Fleury uart.c //Ringpuffer für Uart von Peter Fleury Wie kann ich es erreichen eine gemeinsame Variable zu haben, auf die ich in MeinProgram.c und in der ISR von uart.c benutzen kann? (ich möchte in meinem Programm eine Statusvariable, die anzeigt sobald ein Zeichen empfangen wurde, also der Uart-receive Interrupt ausgelöst wurde). Wo muss diese Variable deklariert werden? In der uart.h? Mit extern? Ich habe schon lange gegoogelt und auch im Forum gesucht, aber keine brauchbaren Hinweise gefunden. Vielen Dank an alle die sich die Zeit nehmen, Carsten
In uart.c außerhalb der Funktionsdefinitionen:
1 | int status; |
In uart.h:
1 | extern int status; |
Wenn uart.h in MainProgramm.c includet wird, kannst du ganz normal auf die Variable zugreifen. Da du die Variable in einer ISR veränderst, solltest du vor das int in den obigen Deklarationen noch ein volatile schreiben, damit der Compiler die Variablenzugriffe nicht zu stark optimiert.
Hallo! @yalu: Vielen Dank für deine schnelle Hilfe! Jetzt klappts! Du hast mir sehr weitergeholfen! :-)) Lg, Carsten
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.