Hallo Miteinander, ich möchte gerne wissen wie ich die "genaue" Zeit für einen Schleifenaufruf und Durchlauf ermittle? Damit ich Wartezeiten genau definieren kann z.B. 0,5 Millisekunden. Bisher hab ichs halt so gemacht das ich ne LED aufleuchten lasse, die Zeit von Hand messe. Danach anpassen der Schleife. Das ist aber schon eine sehr schlechte Lösung und taucht nur für Sekunden. Mein MSP bekommt über XT2 einen 3.58 MHz Takt. Den hab ich auf 1/8 geteilt. Da ich keine Ahnung von Assembler hab, blick ich das nicht mit der Zeit pro Befehl. Könnte einer mir bitte weiter helfen. wait(50); // vom Aufruf ... void wait(long i) // bis ab arbeiten der Schleife { long j; for(j=0;j<i;i--) ; } // und Rücksprung Danke, Gruß Marc
Gast
#324405
Hiho, also wenn Du schon einen Quarz hast... Einfach einen Timer laufen lassen, vor und nach der zu messenden Routine den Timer-Stand (z.B. TAR) sichern und Differenz bilden. Davon abgesehen halte ich die Wartezeit-Bildung über eine Schleife nur fuer quick'n dirty Lösungen geeignet, würde persönlich immer ne Timer-Lösung vorziehen. z.B. für größere Zeiten (ms-Bereich) Timer laufen lassen (meinetwegen im Continuous Mode). Beim Überlauf einen Interrupt erzeugen und eine Variable entsprechend erhöhen.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.