Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Zeitmessung Kategorie: Programmierung (von ChristianK - 12.03.2004 22:04)
Ich nutze:
C-Control II Unit, CC2-Application-Board, CC2-StarterBoard, CC2-ReglerBoard, eigenes Board, OSOPT_V2, OSOPT V3.0
Hallo zusammen,

ich habe Probleme eine einigermassen genaue Zeitmessung hinzukriegen.
auf 100msec genau würde reichen.
Hier die Messfunktion:


function strom_messen(string richtung) returns int
{
halt write_timedate;
long summe;
messungen = 1;
summe = 0;
messzeit = messpause;                  // Vorlauf von Vorprogramm
strom_maxwert = 0;
string_out(3,2,richtung);
strom = ports.adc(div.messport) - div.strom_offset;
if strom > (strom_grenzwert+ 150) return 999;// Abbruch, Kurzschluss ??
rblcd.clear();
strom_out(2, 10, strom_grenzwert);
string_out(3, 2, richtung);
loop
 {
  strom = ports.adc(div.messport) - div.strom_offset; // Strommessung
  if strom > strom_maxwert
     strom_maxwert = strom;
   //  rblcd.delline(2);
  //strom_out(2, 0, strom);                   // Stromwert anzeigen
  //strom_out(2, 10, strom_grenzwert);
  //rblcd.goto(4,0);
  //rblcd.bargraph(strom/2, 100);
  messungen = messungen + 1;
  summe = summe + strom;
  if math.abs(messzeit - time_wait) < 220  // ZwischenTest, schaltet Switch ?
    {
    if endschalter_status()==1      //
      {
      div.fehlercode = 1;           // Falsche Richtung ??
      break;//
      }
    }
  if messzeit - time_wait >320        // Messzeit > Wartezeit - 200 msec
     and  endschalter_status()==1 break;//Break wenn Endschalter ein
  sleep messpause;
  messzeit = messzeit + messpause;
 }
messzeit = messzeit + 2*messpause;
resume write_timedate;
return summe/messungen;                 //Mittelwert zurückgeben
}

Ich habe schon verschiedenes ausprobiert, die auskommentierten Zeilen LCD-Anzeigen
brachten eine gute Sekunde. Priorität des threads hochsetzen hat auch nicht viel gebracht.
Eine externer thread mit Zeitmessung brachte auch nicht viel.
Ich liege immer noch etwa 1 Sekunde unter dem tatsächlichen Wert.
Hat jemand eine Idee wie ich das genauer hinkriegen kann ??
Danke für jeden Tip.

MfG
ChristianK


    Antwort schreiben


Antworten:

Re: Zeitmessung (von André H. - 13.03.2004 12:51)
    Re: Zeitmessung (von ChristianK - 13.03.2004 21:49)