Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > 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