Prescaler von 32 oder 128 bei mega644p möglich?

Gast #2530340
Lesenswert?

Üblicherweise kann man davon ausgehen, daß alles, was im Datenblatt 
steht, auch geht (mit ein paar wenigen Ausnahmen), und alles, was da 
nicht steht, auch nicht geht.

Solltes du doch irgendwie einen Preoscaler von 32 oder 128 hinbekommen, 
dann informier bitte Atmel, damit die das ins Datenblatt aufnehmen ;)

Oliver
Gast #2530368
Lesenswert?

Ich wollt von nem 20 Mhz Takt einen 1ms Takt erzeugen.

Mit nem Prescaler von 8 gehts, mir wären halt 32 lieber gewesen.

Beansprucht der Timer dann jeden 8. Takt für sich alleine oder läuft das 
parallel zu anderen Sachen?
Gast #2530380
Lesenswert?

Prescaler 8 ist dann vollkommen problemlos. Die Software merkt nicht, ob 
die Hardware mit Prescaler 8 oder mit den fiktiven 32 getaktet wird. Die 
Software merkt, wie oft deine ISR Rechenzeit braucht und das ist alle 1 
ms.
Gast #2530413
Lesenswert?

ja, ich wollte es mit dem CTC Modus machen^^

Interrupt wird dabei natürlich jedes mal aufgerufen und erhöht mir 
meinen ms Zähler, die Zeit passt nur noch nicht ganz

Ich hab das Bits WGM12 (CTC1) gesetzt, genauso wie COM1A1 und COM1A0
Moderator Persönliche Seite #2531268
Lesenswert?

Heinrich schrieb:
> ich hab halt noch i2c interrupts und ähnliches^^, das stört doch dann,
> wenn man nur nen Teiler von 8 hat?

Heinrich, das ist Hardware, keine Software.  Auch wenn die
"Programmierung" dieser Hardware (also das Erstellen der
Hardwarebeschreibung) fast aussieht wie Software-Programmierung
(erfolgt halt in Verilog oder VHDL, die C bzw. Ada recht ähnlich
sind), der wesentliche Unterschied ist: in der Hardware kannst du
(nahezu) beliebig viele Aktionen (die sich bei VHDL dann zur
Verwirrung der Softwerker auch noch "process" nennen) parallel
erledigen.  Mit einem Tick des jeweiligen Taktes werden eben parallel
die Flipflops deines Timers umgeschaltet auf den nächsten Wert (und
dabei der "compare match" ggf. ermittelt), gleichzeitig schalten
mit dem gleichen Tick die Flipflops der ALU, um das Ergebnis des
aktuellen Befehls in das Zielregister zu übernehmen oder was auch
immer gerade in der CPU dran ist.

Wenn der compare match noch so konfiguriert ist, dass er einen Ausgang
schalten soll, dann würde auch das völlig gleichzeitig erfolgen.  Das
ist ja gerade der nette Trick dabei: die Behandlung des Interrupts in
der Software kann sich hernach Zeit nehmen (so lange, bis der nächste
entsprechende Interrupt auflaufen würde), die Hardware dagegen schaltet
sofort.

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