Hi Leute, ich habe ein Programm für einen Temperatursensor (SHT11) geschrieben. In dem Porgamm habe ich ein paar Dinge mit #define definert: ... #define SHT_DDR DDRC // Port with clock #define SHT_PORT PORTC // Port with clock #define SHT_PIN PINC // Port with clock #define SHT_CLOCK 3 // Pin used to #define SHT_DATA 2 // Pin used to ... nun möchte ich einen zweiten Sensor am selben Port schließen. Um nicht die ganze Funtionen umschreiben zu müssen wäre es am Besten, wenn ich irgendwie nur die Werte von SHT_DATA und SHT_CLOCK ändern könnte. Ich kann ja aber schlecht sagen for(i=0; i<2; i++) { if(i==0) { #define SHT_CLOCK 3 #define SHT_DATA 2 shtsensor(); } else if(i==1) { #define SHT_CLOCK 4 #define SHT_DATA 5 shtsensor(); } } Ich hoffe aber aus diesem falschen BSP wird mein Problem klar. Vielleicht habt ihr ja ne Lösung für mich. Gruß Olli
Warum definierst du nicht zwei verschiedene? #define SHT_CLOCK1 4 #define SHT_DATA1 5 #define SHT_CLOCK2 3 #define SHT_DATA2 2
Um ein Umschreiben wirst Du nicht rumkommen. Aber es dürfte doch wohl nicht so schwer sein, die Makros rauszuschmeißen und der Funktion dafür Parameter zu verpassen...
Oder mach eine globale Variable draus, die du zwischendrin überschreiben kannst. Ist nicht allzu schön, aber mit wenig Änderung verbunden.
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.