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.


Anmelden zum Antworten