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
Du kannst das den Präprozessor machen lassen. #define PWM_SOURCE 1 // oder 0 wenn der Teil nicht rein soll #define CAN_SOURCE 1 // oder 0 ... #if PWM_SOURCE // hier Code für PWM #endif #if CAN_SOURCE // hier Code für CAN #endif
Es ist immer wieder erstaunlich, wie die Leute große Projekte in C auf die Beine stellen wollen, ohne die grundlegensten Grundlagen zu kennen...
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
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
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
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.