www.mikrocontroller.net

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


Autor: Peter Schumacher (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jörg Wedermann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kannst Du bitte mal Deinen Quelltext veröffentlichen (mit 
Initialisierung)?

Dann kann man da bestimmt mehr zu sagen...

Gruß Jörg

Autor: Peter Schumacher (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.)

Autor: Peter Schumacher (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.