www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Timer korrekt?


Autor: Filth __ (filth)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ist der Timer so korrekt?
$regfile = "m644pdef.dat"
$crystal = 16000000
$hwstack = 128
$swstack = 512
$framesize = 128
$baud = 38400



Enable Interrupts

Config Timer0 = Timer , Prescale = 64
Timer0 = 6

On Timer0 Stoppuhr
Enable Timer0
Start Timer0

Dim Millisekunden As Integer
Dim Sekunden As Integer
Dim Minuten As Integer

Do

   Do
      Waitms 10
      Print Minuten ; ":" ; Sekunden ; ":" ; Millisekunden
   Loop

Loop

End


Stoppuhr:
   Timer0 = 6

   Millisekunden = Millisekunden + 1
   If Millisekunden = 1000 Then
         Incr Sekunden
         Millisekunden = 0
   End If

   If Sekunden = 60 Then
      Incr Minuten
      Sekunden = 0
   End If
Return

oder habe ich einen Denkfehler drin?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich nehme mal an, auch in Bascom darf man kommentieren.
Besonders, wenn man Fragen hat, sollte man kommentieren, was man sich 
bei den einzelnen Zeilen gedacht hat.
Das sollte die Chancen auf ne helfende Antwort drastisch erhöhen.
Besonders Anfänger sollten kommentieren, damit man logische Fehler im 
Programmablauf schnell erkennt.


Ich weiß nicht, ob Bascom das kann, aber in C lasse ich Konstanden immer 
den Compiler ausrechnen, ich bin dazu zu faul. Auch verrechnet der 
Compiler sich seltener als ich. Alles, was der Compiler schon ausrechnen 
kann, kostet ja keinen Code.
Wenn Bascom das nicht kann, dann sollte man aber wenigstens die Formel 
als Kommentar hinter die Konstantenverwendung schreiben.


Peter

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>ist der Timer so korrekt?

Hängt immer davon ab, was er machen soll.

MfG Spess

Autor: Filth __ (filth)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Timer soll einfach eine Stoppuhr sein, sprich die Zeit (mehr oder 
weniger) korrekt zählen

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alex G. schrieb:
> Hallo,
>
> ist der Timer so korrekt?

Das soll offenbar eine Uhr sein.

Starte sie um Punkt 22:00 Uhr und sieh um 23:00 Uhr nach, ob die Ausgabe 
60 Minuten lautet. Wenn ja, dann wird es wohl korrekt sein

Autor: Filth __ (filth)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok schaut gut aus.

Die Idee dahinter:
16.000.000 / 64 = 250.000
Timer wird um 6 Ticks vorgeschoben, also:
250.000 / 250 = 1000

Sub Stoppuhr: wird also genau 1000 mal pro Sekunde aufgerufen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.