Forum: Mikrocontroller und Digitale Elektronik Zeit-Frage MSP430 und andere


von Marc F. (kurzschluss)


Lesenswert?

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

von szimmi (Gast)


Lesenswert?

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.

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
Noch kein Account? Hier anmelden.