Timer-Frequenz beim AT90S8515

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From German to

Threaded View
Hi NG,
ich verwende in einer Schaltung den 16 Bit Timer des AT90S8515.

Der µC läuft mit 8 MHz, eine externe Taktfrequenz  ist nicht angelegt.

Nun stimmen meine Berechnungen bezüglich des Teilers und der erreichbaren
Taktzeiten hinten und vorne nicht - die Takte sind viel zu lange.

Ich hatte ermittelt, daß mit CK/1024 und entsprechendem Setzen des Zählers
ca. 5-6 IRQs ausgelöst werden.
Weit gefehlt, ich habe allenfalls 1/4 Hz, daß ändert sich auch durch Ändern
des Zähler-Startwert nicht gravierend.

Läuft der Zähler etwa mit einer anderen Frequenz als der µC-Taktfrequenz ?

Nicolas Nickisch



Re: Timer-Frequenz beim AT90S8515
Quoted text here. Click to load it
Grundsatz Nr. 1: Man sollte immer in das Datenblatt des Chips gucken,
den man verwendet. Stichwort Prescaler.
--
Manfred Winterhoff, reply-to invalid, use mawin at despammed.com
homepage: http://www.geocities.com/mwinterhoff /
We've slightly trimmed the long signature. Click to see the full one.
Re: Timer-Frequenz beim AT90S8515
Vielen Dank, den hatte ich auf CK/1024 gesetzt.
Entsprechend sollte es 1024/8000000  = 0.000128 s dauern bis der Timer um
eins hochgezählt wird.
Ein voller Timerdurchlauf dauert an 8,38848 s.

Ich setze den Zähler aber schon auf 250 (im HiByte). Das sollte zu einer
Zeit zwischen 2 iRQ von 0,16384s führen.
Tut's aber nicht - dauert fast 4 Sekunden. !!!


Quoted text here. Click to load it
?
Quoted text here. Click to load it



Re: Timer-Frequenz beim AT90S8515
Hallo Nicolas

Quoted text here. Click to load it

Wahrscheinlich liegt da der Fehler. Du musst High- _und_ Low-Byte setzen und
zwar in dieser Reihenfolge.

viele grüße
ralph


Re: Timer-Frequenz beim AT90S8515
Hab ich vergessen zu beschreiben. in der Tat setzte ich zuerst das Hi- und
dann das Low-Byte (wegen des temp. Registers)

Quoted text here. Click to load it
und



Re: Timer-Frequenz beim AT90S8515
* Nicolas Nickisch schrieb:
Quoted text here. Click to load it

Wann und wodurch sollen die denn ausgelöst werden?
Overflow oder Compare Match? Wenn letzteres, hast du daran
gedacht, das "Clear on Compare Match"-Bit zu setzen?
Vielleicht postest du mal ein paar Codeschnipsel.

Re: Timer-Frequenz beim AT90S8515
Das ganze soll durch Overflow ausgelöst werden.

Code folgt ....
Quoted text here. Click to load it



Re: Timer-Frequenz beim AT90S8515
Hallo Nicolas!

Quoted text here. Click to load it

Lädst du den Timer denn auch richtig nach, oder läuft er danach
komplett durch? Dann dürftest du ca. 0,11 Hz erreichen.

Gruß
Thorsten
--
Kunst kommt aber von 'können',
nicht von 'kennst du schon den neuesten trick?'
We've slightly trimmed the long signature. Click to see the full one.
Re: Timer-Frequenz beim AT90S8515
genau, ein kompletter Zyklus sollte ca. 8,xxx sek dauern (s.o.)
ich lade den Zähler mit 250 im Hi-Byte


Quoted text here. Click to load it
erreichbaren
Zählers
Quoted text here. Click to load it
Ändern
Quoted text here. Click to load it



Re: Timer-Frequenz beim AT90S8515
Nicolas Nickisch schrieb:

Quoted text here. Click to load it

Falls du den Overflow interrupt verwendest, wird alle 8,39 Sekunden ein
interrupt ausgeloest. Ausser du initialisiert den Zaehler in der ISR neu.
Was jedoch nicht sehr sinnvoll (jitter) ist.

Fuer periodischen Interrupts empfiehlt sich der Output Compare Match
interrupt (zusammen mit dem CTC-Bit oder aendern der Match register in
der interrupt service routine)

Wenn du einige Zeilen Code postest, kann man dir besser helfen.

servus thomas


Site Timeline