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> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > > > > hallo, > > > > bin gerade dabei eine Stopuhr zu programmieren, mittlerweile ist das Programm so umfangreich, > > > > dass die Stopuhr zu langsam läuft. (Timer 2 10ms) analog dem Demoprogramm. > > > > In der Hilfe steht: > > > > // Timer 2 läuft normalerweise im 10ms Takt. In diesem... > > . > > > Hi, > > > > > > mach nen Timer cnt rein if cnt >= 10 then .... dann hast du 100ms > > > > > > Grüße Ulli > > > > > Hallo Ulli, > > danke für die schnelle Antwort. Ich kann das mal versuchen. > > Kann es eigentlich sein, dass das Programm den Prozessor so beschäftigt, > > dass ein Interupt nicht abgearbeitet wird? Ich kann mir ja sonst nicht erklären warum > > die Uhr zu langsam läuft. Im Programm zusätzlich abgearbeitet TicksTimerCount, arbeitet korrekt. > > Gruß F.J. > > Hallo Sonnenflieger, > > Aus Online-Manual: > Irq_GetCount, Gibt an, wie oft der Interrupt von der Hardware bis zum Aufruf von Irq_GetCount() ausgelöst wurde. > Ein Wert größer 1 kann dann auftreten, wenn die Hardware schneller Interrupts generiert, als der Interpreter die > Interruptroutine abarbeiten kann. > > wenn die routine länger dann 10 ms lauft, gibts problemen mit timing in das beispiel. > Die ruckgabewert von Irq_GetCount() kann man brauchen zum corrigieren > > Mit folgendes beispiel kannst Du eine routine jede 100ms laufen lassen. > Wenn die routine 20ms lauft wird der rückgabewert irqcnt=2 geben > cnt wird dann mit 2 erhöht und die timing bleibt correct. > > Sub INT_10ms() > cnt=cnt+irqcnt > If cnt>=10 Then > cnt=0 > Sub_100ms() > End If > irqcnt=Irq_GetCount(INT_TIM2COMP) ' Interrupt Request Counter > End Sub > > Achtung, "Dim irqcnt As Integer" darf nicht in die interrupt routine geschrieben werden, > sonst wird die immer auf 0 gesetzt beim anfang des routine. > Die Variablendefinition für cnt und irqcnt soltte im main() gemacht werden > > Ich hab so eine routine die zwischen 30 und 80 ms lauft, und die timing bleibt perfect > > Gruß, > Aristocat >