BASCOM Timer 3,6864Mhz -> 0,01 sec (AT90S4433)

Gast #273997
Lesenswert?
• ▲
▼
Hallo,
ich habe einen Countdown-Schalter mit einem AT90S4433 gebaut. Der Quarz
hat eine Frequenz von 3,6864Mhz. Jetzt möchte ich die Zeit in 0,01s
Schritten einstellen können.
Wie muss ich den Timer0 einstellen?
Ich habe verzweifelt Gegoogelt aber nichts gefunden.
Vielen Dank im Voraus,
Achim Hoffmann
Gast #274001
Lesenswert?
• ▲
▼
Du möchtest aus den 3686400 Hz 100Hz machen, 1/0,01 = 100.
Du musst im Datenblatt nachsehen welche Teiler sind fix eingebaut und
dann mal probieren, in dem Fall durch 256, das ergibt dann 14400. Wenn
du diese Zahl in den Timer einstellen könntest würde jede Sekunde ein
Interrupt ausgelöst und du hättest 1 Sekunden Schritte, wenn du 144
eingibst dann hast du 0,01 Sek.
Also 0,01 Sek sind 100Hz und die vorhandene Frequenz mit den
vorgegebenen Teilern teilen bis die 100Hz herauskommen.
Besser kann ich es dir leider nicht erklären.
#274002
Lesenswert?
• ▲
▼
Wenn ich das richtig verstehe, lasse ich meine Interruptroutine 144 mal
nix tuhen um danach die Befehle zu verarbeiten?

Ontimer0:
   incr dummy
   if dummy = 144 then
      dummy = 0
      Decr Zeit3
      If Zeit3 = 0 And Zeit2 > 0 Then
         Zeit3 = 99
         Decr Zeit2
         If Zeit2 = 0 And Zeit1 > 0 Then
            Zeit2 = 99
            Decr Zeit1
         End If
      End If
   end if
Return

So ungefär??
Grüße,
Achim
Gast #274003
Lesenswert?
• ▲
▼
Nein, du musst im TCCR0 den Teiler durch 256 einstellen und dann im
Timer Register TCNT0 den entsprechenden Wert, in diesem Fall 256 - 144=
112 eintragen, starten, bei 256 kommt der Interrupt, Timer stoppen, 112
eintragen, starten usw. Der Interrupt kommt alle 0,01 sek.
Mit dem Timer1 ginge das schöner, da kannst du einen
Compare-Match-Interrupt auslösen.
Gast #274005
Lesenswert?
• ▲
▼
Hallo Achim,

ich kann Dir zwei Bücher empfehlen:

Roland Water --- Microcontroller Lehrbuch
Claus Kühnel --- Programmieren der AVR RISC uC

Zweites ist für den Fortgeschrittenen meiner Meinung nach
interessanter. Es werden deutlich mehr Anwendungsbeispiele
genannt....die dafür etwas knapper. Walter beschreibt mehr die
Grundlagen.

Kannst Du mir evtl. mit dem Quelltext zu deinem o.g. Projekt aushelfen.
Ich muss in Bascom eine Stoppuhr mit 0,01sec Auflösung realisieren.

Viele Grüße
Daniel

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren