Hallo, ich grüble schon ein paar Stunden über folgendes Problem. Ich habe eine Objekt in Ansi C, das alle Uart Funktionalitäten besitzt. Nun brauche ich zwei Uart Verbindungen. In dem Uart Objekt gibt es zwei Interrupt Handler, jeweils für eine Uart. Wenn ich nun zwei Instanzen von diesem Uart Objekt in meiner Main Applikation erzeuge, soll je nachdem nur der eine relevante Interrupt Handler im Uart Objekt vorhanden sein. Könnte man sowas möglicherweise mit einer Präprozessoranweisung lösen ? Wie würdet ihr dies realisieren ?
Sicher dass das kein C++ ist? Klingt irgendwie objektorientiert...
Link dein uart.o zur Anwendung und gut ist. Daß das Object 2x verwendet wird, bedeutet ja nicht, daß die Funktionen darun 2x da sind. Das ist Sinn und Zweck von Object-Modulen, uzumindest einer davon.
Es handelt sich um Ansi C Code. Also mit Präprozessoranweisungen macht hier keinen Sinn ?
Wenn ich halbwegs verstanden habe, was du vorhast, fallen mir dazu Funktionszeiger ein. Die Funktionen sind eh in keinem Objekt vorhanden, sondern genau einmal im ganzen Programm. Dann würde man in jedes Objekt einen Zeiger auf einen Funktion richten, im einen Objekt halt auf die eine Funktion und im anderen Objekt auf die andere. Aufgerufen wird dann über den Funktionszeiger die jeweils für das Objekt passende Funktion. Mit dem PP wird das wohl nix, weil der ja von den Objekten zur Laufzeit nichts weiß.
PP is dafür eigentlich nicht gedacht. Wie ein Vorredner schon erwähnte solltest du zur Laufzeit Funktionspointer (Callback-Funktionen) dem jeweilig UART zuweisen.
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.