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.
woher der takt kommt ist egal, der timer wird glaube ich immer von der aktiven taktquelle angesteuert.
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?
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
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 ;)
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....
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.