Forum: Mikrocontroller und Digitale Elektronik AVR AT90S8515 Timer/Counter Zeitbasis


von Peter Schumacher (Gast)


Lesenswert?

Hi,

ich laboriere gerade mit o.g. yC. Dennoch verstehe ich die Basis für den 
Timer1 nicht.

Ich verwende "no prescaling", interne Taktung und meine Schaltung 
erfüllt auch voll ihre Funktion. Allerdings hatte ich Frequenz CLKio 
gleich der Taktfrequenz des MCU erwartet und so lange kein Ergebnis 
erreicht.

Um meine Wartezeit zu realisieren hatte ich auf Grundlage der 
MCU-Taktfrequenz den Counter auf FF00 stellen müssen. Funktioniert hat 
es aber erst, als ich FFE0 eingestellt hatte, also erheblich weniger.

Wie ist die Basis für CLKio?????????????????

Danke für jeden Tip.


Peter

von Jörg Wedermann (Gast)


Lesenswert?

Kannst Du bitte mal Deinen Quelltext veröffentlichen (mit 
Initialisierung)?

Dann kann man da bestimmt mehr zu sagen...

Gruß Jörg

von Peter Schumacher (Gast)


Lesenswert?

Hallo Jörg,

anbei die Initialisierungsroutine. Ziel ist es, 4800 mal pro Sekunde den 
Interrupt zu bekommen.

Ich hätte erwartet:
1.23MHz / 4800 = 256,25 = 0x100 -> setze Timer1 = FF00
Es lief aber erst mit einem Timer1 = FFE0 d.h. -> 0x20!!
Sobald ich den Takt (STK500) verändere, dann ändert sich
auch der nötige Wert, eben so, wenn ich prescaling verwende.

Gruss Peter


Initialisierung:

  ldi  tmp1,2
  out  TCCR1B,tmp1

;es lief E0     an 1.23MHz
;20/1.23*1.84=2F->D1  an 1.84MHz
;20/1.23*3.69=60->A0  an 3.69MHz

  ldi  PulsHWT,0xFF
  ldi  PulsNWT,0xE0
  out  tcnt1h,PulsHWT
  out  tcnt1l,PulsNWT

  ldi   tmp1,(1<<TOV1)
  out   TIFR,tmp1

  ldi  tmp1,(1<<TOIE1)
  out  TIMSK,tmp1

(Im Interrrupt frage ich lediglich einen Port ab, also nix dolles.)

von Peter Schumacher (Gast)


Lesenswert?

Hallo Jörg,

ldi tmp1,2
out TCCR1B,tmp1

Sorry ich war blind!!

Das ist natürlich mit PRESCALING (8 fach). Und 8 mal 0x20 ist dann 
0x100. Schön wenn die Welt wieder rund ist.

Peter

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.