Re: Projekt Stopuhr Kategorie: Programmierung Basic (von Aristocat - 20.02.2009 21:20) | |
Als Antwort auf Re: Projekt Stopuhr von Sonnenflieger - 19.02.2009 7:51
| |
> > > 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 | |
Antwort schreiben Antworten: |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum