Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: Stopuhr läuft zu langsam Kategorie: CC-Pro Unit & Appl.Board (von WSH - 2.06.2009 14:16)
Als Antwort auf Stopuhr läuft zu langsam von Sonnenflieger - 14.02.2009 8:22
Ich nutze:
C-Control Pro Mega128
> Hallo,
> ich habe mir das Programm Stopuhr einwenig erweitert. Das Orginaldemo läuft exakt.
> Meine Version läuft genau halb so schnell wie es laufen soll!
> Kann mir da jemand helfen?
> Sub INT_10ms()
>     Dim irqcnt As Integer
>     If start =1 Then                ' Nur wenn die Taste SW1 gedrĂĽckt wurde,
>                                     ' wird dieser Programmteil abgearbeitet.
>         cnt1 =cnt1+1                ' 10ms Zähler wird um Eins erhöht.
>        If tast= 1 Then             ' wenn Motor ein
>          mcnt =mcnt+1                'Motorhundertstel
>           If mcnt =100 Then           '
>             msec =msec+1                ' Motorsec
>             mcnt =0
>           End If
>        End If
>         If cnt1 =100 Then           ' Wenn 1 Sekunde vergangen ist, wird diese
>            i= i+1                         ' Schleife abgearbeitet.
>            Port_WriteBit(PORT_LED1,PORT_ON)
>             sekunde =sekunde+1      ' Sekundenzähler wird um Eins erhöht.
>             If sekunde =60 Then     ' Wenn 60 Sekunden vergangen sind, wird
>                                     ' diese Schleife abgearbeitet.
>                 Port_WriteBit(PORT_LED1,PORT_OFF)
>                 minute =minute+1    ' Minutenzähler wird um Eins erhöht.
>                 If minute =60 Then  ' Wenn 60 Minuten vergangen sind, wird
>                                     ' das Display auf 00:00:00 zurĂĽckgesetzt.
>                     minute =0       ' Der Minutenzähler wird auf 0 gesetzt.
>                 End If
>                 sekunde=0           ' Der Sekundenzähler wird auf 0 gesetzt.
>             End If
>
>             cnt1=0                  ' Der 10ms Zähler wird auf 0 gesetzt.
>         End If
>         Display_Buffer_Set()        ' Display Buffer wird aktualisiert
>         ausgabe()
>         ausgabe2()                   ' Jede Sekunde wird die Zeit ausgegeben.
>     End If
>     tasten()                        ' Aufruf der Funktion zur Tastenabfrage.
>     irqcnt=Irq_GetCount(INT_TIM2COMP)   ' Interrupt Request Counter
> End Sub

Hallo,
ich sehe das bei Sekunde- oder Minute-Abfrage  usw. ein "=" steht! (If Sekunde = 60)
Stelle dir doch mal vor, die Sekunde/Minute steht ĂĽber z.B. 60 vor der Abrage. Ja was denn?

Dann wird es mit Sicherheit alles zu langsam.

Mein Vorschlag: bei zeitkritischen Abfrage immer mit ">=" oder "<=" einstellen.

Kann mir vorstellem, das im anderem Code event. Stunde/Minute-Mem. noch zusätzlich beaufschlagt wird.

WSHertwig




    Antwort schreiben


Antworten: