Makro
-
Hallo
Ich habe 2x den gleichen Befehl, spricht 2x wait folgendermassen
for (i = 0; i < 2; i++) { __delay_ms(5); }
Geht es irgendwie, dass ich ein Makro daraus mache und stattdessen 2x Wait schreibe?
-
__delay_ms(5); __delay_ms(5);
-
Oder sogar
__delay( 10 );
-
buell schrieb:
Geht es irgendwie, dass ich ein Makro daraus mache und stattdessen 2x Wait schreibe?
Klar, aber wozu? Ich meine, was willst du eigentlich erreichen? Generiert der Compiler überhaupt unterschiedlichen Code?
-
Warum meinst Du, ein Makro zu brauchen? Kennst Du Funktionen?
-
Ich möchte keine Funktion, sondern ein Makro.
die Delay Funktion wie oben angeführt, geht maximal bis 20ms.
Wie würde man eine For-Schleife also als ein Makro definieren?Es spielt jetzt mal keine Rolle, welche Vorteile und Nachteile es hat oder ob es Sinn macht.
Funktionert:
#define wait(n,m) for (i = 0; i < n; i++){__delay_ms(m);}
so einfach?
inline würde ja notfalls auch gehen
inline void wait(int n, int m) { for (i = 0; i < n; i++) { __delay_ms(m); } }
-
Spricht irgendein vernünftiger Grund gegen die Funktion?
Ansonsten: Wo genau ist das Problem? Einfach machen.
-
DocShoe schrieb:
Oder sogar
__delay( 10 );
Hahaha, das war der krönende Abschluss meines Tages. Da kann ich ja beruhigt ins Bett gehen.