Variantenhandling von C-Programmen

OP #1057150
Hallo Leute,

ich habe eine Frage bezüglich Varaintenhandling von Sourcen. Ich 
beschäftige mich gerade mit dem S12 uC. Als Programmierumgebung verwende 
ich Codewarrior.

Jetzt zu meinen Problem. Ich habe ein Prgramm geschrieben das einerseits 
über PWM Eingänge Befehle erhält und zum anderen über CAN. Wenn ich 
jetzt die CAN Variante verwenden will sollen die PWM Sourcen und die 
Teilprograme nicht mitcompiliert werden. Wie kann ich diese 
ausschließen. Meine erste Idee war durch eine Variable und if Abfragen. 
Aber mir gefällt dies nicht.

Wie jemand eine andere Möglichkeit.

Gruß
ucprogrammierer
Gast
Eine andere Möglichkeit wäre mittels

#ifdef PWM_SOURCE
// hier Code für PWM
#endif

#ifdef CAN_SOURCE
// hier Code für CAN
#endif

und darüber einfach irgendwo

#define PWM_SOURCE
oder
#define CAN_SOURCE

so wirds doch gemacht um das mehrmalige einbinden eines Includes
zu verhindern oder nicht?

lg
Persönliche Seite
Klar, das kann man auch machen, wenn einem Ja/Nein reicht.

Das #define mit einem Wert gibt einem mehr Möglichkeiten, weil man im 
#if die Werte abfragen kann. Z.B. kann man dann sowas machen:

#define PWM_SOURCE 1 // oder 0 wenn der Teil nicht rein soll
                     // oder 2 wenn zusätzlich Debugcode rein soll

#if PWM_SOURCE
// hier Code für PWM
#if (PWM_SOURCE == 2)
// hier Debugcode für PWM
#endif
#endif
OP
Hallo Klaus,

schön das ich dich zum Staunen gebracht habe. Aber man kann doch schon 
mal etwas vergessen.
Mein Projekt hat CAN, SPI und steuert einen Brushlessmotor mit 
Positionserfassung über Hallsensoren an. Ich will das Projekt nicht auf 
die Beine stellen sondern ich habe es schon auf die Beine gestellt. Hab 
vielleicht deshalb etwas zu kompliziert gedacht.

Naja wird immer Meckerer geben, die zu allem einen Kommentar schreiben 
müssen.

Gruß
ucprogrammierer

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 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.