delay function
-
hallo,
wie kann ich die durch die folgende Funktion entstehende Verzögerung bestimmen ???
void Delay(void) { short k=1024; while(--k); }
danke schön
-
Messen (z.B. mit plattformspezifischen Timerfunktionen), berechnen (was aber nur auf einfachen µCs klappen wird) und vor allem hoffen, dass das dein Compiler nicht wegoptimiert
-
TactX schrieb:
und vor allem hoffen, dass das dein Compiler nicht wegoptimiert
Sollte sich das mit nem "volatile" nicht verhindern lassen?
void Delay(void) { volatile short k=1024; while(--k); }
-
anonymus schrieb:
TactX schrieb:
und vor allem hoffen, dass das dein Compiler nicht wegoptimiert
Sollte sich das mit nem "volatile" nicht verhindern lassen?
wahrscheinlich ja.
OP: wenn du linux hast, dann versuch's mit 'udelay' (kann aber sein, dass es die nur im kernel gibt)...
-
Wieso wahrscheinlich?
Der volatile-Modifizierer sagt dem Compiler doch, daß
diese Variable von Außen verändert werden kann;
er also dessen Wert nicht als konstant annehmen und
dementsprechend optimieren darf.