www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Timer Pin T0 und T1


Autor: Thomas Frosch (tfreal10)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe im AVR Tutorial gerade was über Timer gelesen!

und da gibt es den Pin T0 also da wird der zustand bzw die Flanke im 
register angegeben! Was kann ich damit anfangen? kann ich den Timer 
dadurch starten bzw. stoppen?

Und warum wird der Pin T1 nicht erwähnt?

Wie kann man diese Register sehen? Für was braucht man die? Also ich 
schreib ja in TCCR den Vorteiler rein! Also wie oft geteilt werden soll 
aber was hat der Pin T0 da drin zu suchen? Verändert der den 
Vorteiler????



 TCCR0
 +------+------+------+------+------+------+------+------+
 |      |      |      |      |      | CS02 | CS01 | CS00 |
 +------+------+------+------+------+------+------+------+
 CS02 - CS00   Clock Select
CS02 CS01 CS00 Bedeutung
0 0 0 keine (Der Timer ist angehalten)
0 0 1 Vorteiler: 1
0 1 0 Vorteiler: 8
0 1 1 Vorteiler: 64
1 0 0 Vorteiler: 256
1 0 1 Vorteiler: 1024
1 1 0 Externer Takt vom Pin T0, fallende Flanke
1 1 1 Externer Takt vom Pin T0, steigende Flanke

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>0 0 0 keine (Der Timer ist angehalten)
Klar, der Timer pennt und der Wert im Zählregister (TCNT0) bleibt 
stehen.

>0 0 1 Vorteiler: 1
>0 1 0 Vorteiler: 8
>0 1 1 Vorteiler: 64
>1 0 0 Vorteiler: 256
>1 0 1 Vorteiler: 1024
Der Wert im Zählregister wird kontinuierlich um eins erhöht, und zwar 
mit dem Takt der CPU, nachdem dieser durch den Vorteiler geteilt wurde.
Beispiel: Vorteiler 010 (=Teiler durch 8) und einem Systemtakt von 8MHz 
(Quarz mit 8MHz zum Beispiel). Dann wird der Wert im Zählregister mit 
8MHz/8 erhöht, also mit 1MHz. D.h., er wird eine Million Mal pro Sekunde 
um eins erhöht.


>1 1 0 Externer Takt vom Pin T0, fallende Flanke
>1 1 1 Externer Takt vom Pin T0, steigende Flanke
Gleiches Spiel wie oben, nur diesmal wird nicht der Systemtakt vom Quarz 
genommen (und ggf. noch geteilt), sondern der Takt, der am T0-Pin 
aliegt. Kannst irgendein Rechtecksignal oder sowas dran anklemmen.

T1 funktioniert genauso, nur halt für den Timer#1.

Autor: AVRFan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>und da gibt es den Pin T0 also da wird der zustand bzw die Flanke im
>register angegeben! Was kann ich damit anfangen? kann ich den Timer
>dadurch starten bzw. stoppen?

Das Ding, das hier immer "Timer" genannt wird, heißt mit vollem Namen 
"Timer/Counter", abgekürzt "T/C0".  Über die Bits CS02, CS01, CS00 im 
TCCR0-Register kannst Du seine Betriebsart festlegen, d. h. ob das Ding 
als Timer oder als Counter funktionieren soll (solange es nicht 
angehalten ist).  Ist es ein Timer, wird es vom µC-internen Takt (nach 
wahlweiser Teilung durch den Prescaler) hochgezählt.  Ist es ein 
Counter, wird es vom Signal am Pin T0 hochgezählt (mit jeder Flanke eins 
rauf).

Analog für T/C1, T/C2 etc.

Autor: Thomas Frosch (tfreal10)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aha also für den Counter gibts dann aber auch keinen prescaler oder? den 
müsst ich mir dann selber schreiben

Autor: AVRFan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>für den Counter gibts dann aber auch keinen prescaler oder?

Nein, gibt es nicht.

>den müsst ich mir dann selber schreiben

Kommt darauf an, welches Problem Du konret lösen willst.  Das 
Timer/Counter-Feature eines AVR-Controllers kann man in der Betriebsart 
Counter z. B. dazu benutzen, periodische Signale zu erfassen, die so 
schnell sind, dass sie softwaremäßig nicht mehr bewältigt werden können. 
Man kann aber eine Routine schreiben, die den TCNT0 resettet, T/C0 in 
den Modus Counter versetzt, danach 100 mal "nop" abarbeitet, 
anschließend den T/C anhält und den Zählerstand TCNT0 in eine Variable 
speichert.  Während der durch die "nop"s erzeugten Wartezeit zählt der 
Counter autonom die Pulse des am Pin T0 anliegenden Signals. Für dessen 
Hardware ist die hohe Frequenz kein Problem (bis zu gewissen Grenzen). 
Mit dem Wissen, wie viele steigende Signalflanken während der 100 
µC-Taktzyklen reingekommen sind, kennst Du die Frequenz des Signals.

Autor: Jadeclaw Dinosaur (jadeclaw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas Frosch wrote:
>für den Counter gibts dann aber auch keinen prescaler oder?
>den müsst ich mir dann selber schreiben
Prescaler kann man sich nicht schreiben, das ist Hardware.
Was du selber schreiben kannst, ist ein Postscaler,
also ein Teiler der nach dem Timer kommt,
z.B. ein Register, das bei jedem Timerüberlauf um 1 hochgezählt
wird. Einen Prescaler kann man vor den T0- oder T1-Eingang setzen,
wenn der Bereich des Controllers nicht reicht.
Ein AVR kann an T0/T1 maximal 50% des CPU-Taktes verarbeiten,
d.h. bei 8MHz Takt ist bei 4MHz Zählfrequenz schluß.
Setzt man z.B. einen 74LS90 davor, sind 25MHz drin,
da ist für den 74LS90 die Grenze.

Gruß
Jadeclaw.

PS: @AVRFan: Für genaue Verzögerungen wie Zählergates doch bitte
einen Timer benutzen, NOP-Sammlungen und Warteschleifen nehmen
unnötig Platz weg und machen das Ganze schlecht wartbar.

Autor: Thomas Frosch (tfreal10)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gg

Ok Danke aber so schnell will ich erstmal noch nicht Zählen!! Ich meinte 
schon einen Postscaler kenn mich mit diesen fachbegriffen noch nicht aus 
gg aber gut ez hab ich wieder was gelernt!

Danke für die Antworten

bis bald

Autor: AVRFan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Für genaue Verzögerungen wie Zählergates doch bitte
>einen Timer benutzen, NOP-Sammlungen und Warteschleifen nehmen
>unnötig Platz weg und machen das Ganze schlecht wartbar.

Kann ja sein, dass ein Timer gar nicht mehr zur Verfügung steht, weil er 
gerade als Counter verwendet wird... ;-)  Und zur Konfiguration eines 
Timers muss man ja auch Code schreiben.  Ich denk, in gewissen Fällen 
und wenn man weiß, was man tut, sind kurze 'nop'-Warteschleifen sowohl 
erlaubt als auch sinnvoll als auch (bei disableten Interrupts) präzise, 
aber - und darin stimme ich Dir zu - eben auch nur in diesen Fällen.

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.