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
Wo liegt dein Problem? Mit dem Vorteiler durch 256 teilen, beim Rest die letzten zwei Stellen weg und du hast den Wert für den Timer.
Hallo Hubert, Mein Problem sind die Grundlagen. Ich verstehe die Berechnung nicht um auf meine 0.01sec zu kommen. Viele Grüße, Achim
3,6864 MHz=1/3,6864µs. Für 10ms brauchst du also 36864 Takte. Mit Vorteiler 256 also einen Reload-Wert von -144. (144*256=36864)
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.
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
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.
Vielen Dank. Das war die Lösung für mein Problem! Habt Ihr noch einen Tipp für ein gutes Referenzhandbuch für BASCOM? Viele Grüße, Achim
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
Hallo Daniel, mail mir mal an: info@elachimo.de Was soll die Uhr denn können? Viele Grüße, Achim
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.