Forum: Mikrocontroller und Digitale Elektronik 8 bit Timer mit intrene Takt


von sofi (Gast)


Lesenswert?

Hallo,
ich benutze den µc ATtiny45(intrene Takt 8 MZ).
ich wollte eine Interrupt auslösen nach 10 ms.
ich habe den Prescaler ausgewählt, die umrechnung gemacht....
aber soll ich was extra einsetzen um die interene Takt zu benutzen,
oder ist ähnlich wie extren.

Danke.

von Sebastian Heyn (Gast)


Lesenswert?

woher der takt kommt ist egal, der timer wird glaube ich immer von der
aktiven taktquelle angesteuert.

von Sebastian Heyn (Gast)


Lesenswert?

hast du das fusebit "DIVIDE CLOCK BY 8" gelöscht? sonst hast du nur
alle 80ms einen interrupt.
Hast du interrupts global enables und den timer gestartet?

von sofi (Gast)


Lesenswert?

ok, aber was soll ich machen um die interne takt zu aktivieren

von sofi (Gast)


Lesenswert?

ja den  Interrupts global enable und auch timer schon gemacht.
aber den fusbit habe ich ihm nicht gelöscht, wie mache ich das, und
kannst mir erklären warum?

Danke

von Ronny (Gast)


Lesenswert?

Schau dir mal im Datenblatt das Kapitel 6 an ("System Clock and Clock
Options"),da steht genu drin,wie sich die Sache mit dem Takt
verhält.Bei Auslieferung des Tiny sollte auf jedenfall der interne Takt
aktiv sein (damit man den uC auch ohne Taktquelle programmieren kann).

Der Timer kann dann entweder vom aktiven Systemtakt den du für alles
verwendest (z.B 8MHz) betrieben werden oder von einem externen Takt den
du an T0 legst betrieben werden.Beim internen kannst du auch noch
zusätzlich einen Prescaler vorschalten.Auch dazu steht wieder jede
Menge im Datenblatt.

Sehr praktisch,das Atmel zu jedem AVR genau ein passendes Datenblatt
rausgibt,bei anderen (komplexeren) Controllern gibt´s oft nur ein über
viele PDFs verteiltes allgemeines Datenblatt wo man noch suchen
muss,was grad zum aktuell vorhandenen Derivat passt ;)

von Sebastian Heyn (Gast)


Lesenswert?

welche programmiersprache?

von sofi (Gast)


Lesenswert?

Danke euch.
ich programmiere mit C

von Ronny (Gast)


Lesenswert?

Bevor du an den Fuses rumstellst,lies dir lieber 3x das Datenblatt
vorher durch.Im Zweifelsfall lässt du erstmal alles so wie´s ist und
misst mal nach wie gross die Zeit zwischen den Interrupts ist und
veränderst dann deinen Prescaler entsprechend.

Die Fuses sind am Anfang ´ne beliebte Fehlerquelle....

von Hannes L. (hannes)


Lesenswert?

Den Clock-Prescaler kann man auch aus dem AVR-Programm heraus
einstellen, was eine (für den Unwissenden gefährliche)
Fusebit-Manipulation nicht erforderlich macht.

Schau dir im Datenblatt das Register für den Clock-Prescaler an, da
steht bei der Beschreibung der Bits auch dabei, wie man vorzugehen hat.
In Assembler ist das kein Problem, und wenn man mit C wirklich umgehen
kann (ich kann es nicht), sollte das auch kein Problem sein, das
erforderliche Timing beim Verstellen des Vorteilers einzuhalten.

Aber wie schon mehrfach erwähnt, ohne Datenblatt lesen (und verstehen)
wird das nix...

...

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
Noch kein Account? Hier anmelden.