Handler konfigurierbar machen in C

Gast #4999428
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
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
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

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.