Handler konfigurierbar machen in C

Gast #4999428
Lesenswert?

Hi Leute,

ich stehe etwas auf dem Schlauch, vielleicht hat ja jemand einen 
Lösungsansatz zu folgendes Problem:

Randbedingungen: STM32,Keil-MDK, CMSIS sonst nichts (also kein OS, kein 
HAL, kein PeriphLib)

Ich möchte gerne einen Interrupthandler (Timerinterrupt) für den Empfang 
von Daten verwenden. Momentan ist der statisch einem Timer zugeordnet, 
d.h. der Kollege heisst aktuell
1
void TIM17_IRQHandler (void){
2
 Empfangsroutine();
3
}

Gibt es eine Möglichkeit, dass man in einer Header-File beispielsweise 
"TIM6" einträgt und daraus dann
1
void TIM6_IRQHandler (void){
2
  Empfangsroutine();
3
}

entsteht?
Gast #4999453
Lesenswert?

Danke euch beiden!!

Rufus' Methode funktioniert. (Ich habe keine Ahnung, wieso ich nicht 
selbst auf den ##-Operator kam. Offensichtlich zu wenig Koffein im Blut)

@Micha:
Templates mit C kannte ich noch nicht, lese ich mir gerade durch!
Gast #5000854
Lesenswert?

Warum unbedingt mit Verkettung?
Ich finde es so übersichtlicher:
1
#ifdef TIM6
2
  #define TIMER_HND_EMPFANG TIM6_IRQHandler
3
#elsif TIM7
4
  #define TIMER_HND_EMPFANG TIM7_IRQHandler
5
#else 
6
  #error "...
7
#endif
8

9
...
10

11
void TIMER_HND_EMPFANG (void){
12
  Empfangsroutine();
13
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren