Die ISR für Input Capture kann man natürlich nur einmal definieren. Man muss sich halt überlegen, wie man zwischen den Anwendungen umschaltet - das hängt auch mit der Hardware zusammen, denn da kann normal nur ein Signal am ICP Pin hängen. Über den analogen Comparator könnte man natürlich auch einen 2. Eingang wählen.
In Software sollte da dann eine Unterscheidung in die ISR mit rein. Je nach gerade aktiver Funktion kommt dann entweder der eine oder andere Teil. Wenn man beides in einem Programm brauch, muss die Umschaltung zur Laufzeit erfolgen, also mit IF ... ELSE, und nicht mit #ifndef . Was gerade aktiv ist, zeigt dann etwa ein Variable an. In welches File man die ISR dann packt ist noch zu überlegen - ggf. auch als extra File oder zum Hauptprogramm. In den beiden include files wird man wohl mit #IF auswählen welche Version gebraucht wird: entweder A, B oder die neue mit Unterscheidung zu Laufzeit. Ggf. kann man auch den Code nur einmal haben mit ein paar mehr #IF usw. Was man vermeiden sollte ist es in der ISR eine Funktion aufzurufen.
Lesezeichen