mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Vorteiler und seltsame Startwerte bei Timern


Autor: Karl (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

so langsam reift in mir die Erkenntnis, dass ich langfristig doch nicht
um Timer herum komme.

Bei den Beispielen tauchen aber regelmäßig schwer verständliche
Konstrukte auf:

".equ start = 65536 - 7812;   2 hoch 16 minus 7812"

Warum schreibt man nicht einfach 57724?



"ldi temp, 1<<TOIE1  ; 1000 0000  "

Warum schreibt man nicht einfach 0b10000000 ?
Wo ist das 1 <<TOIE1 erklärt?



"out TCCR1B, temp  ; Timer 1 starten mit Vorteiler 1024"

Was machen diese Vorteiler?

Prosit Neujahr und danke für Eure Antworten
Karl

Autor: dave (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich sag mal ganz frisch ins neue Jahr RTFM (Nr. 1)..

1. Der normale "Timer" zählt immer nach oben. Wenn man den
Overflow-Interrupt wählt und eine bestimmte Zeit will, so muss man wohl
oder übel dem Timer einen kleinen Vorsprung geben. Sicher könnte man
57xxx hinschreiben, jedoch ist es doch viel (menschlicher)
verständlicher, wenn man das maximale (65535) und davon den *zu
zählenden* Wert subtrahiert, man sieht also sofort, wieviel gezählt
wird.

2. Achso.. Ich hatte grad gedacht, dass ein Mensch mehr anzufangen hat
mit TOIE1 als mit 0b1000 0000 oder 128. Werd ich mich wohl vertan
haben. Vielleicht bin ich auch der einzige hier, aber ich verwende sehr
gern das mit den Bit-Namen. RTFM (Nr. 2). Es sind alle Bit-Namen und
Registernamen und Bit-Nummern und Wertigkeiten im Datasheet verzeichnet.
Das TOIE1 entnimmt der Assembler der "xxx.inc" Datei. Da steht z.B.
".equ TOIE1 = 7" und der Assembler macht aus der Direktive
"1<<TOIE1" ==> "1<<7" ==> "128", weil bei I/O Zugriffen
eigentlich die BitNUMMER zählt und hier die BitWERTIGKEIT. Das "<<"
schiebt die 1 einfach mal schnell 7 Stellen nach links, praktisch,
gell.

3. RTFM (Nr. 3). Ich glaube, es gibt nicht viele andere Sachen, die
nicht durch den Begriff oder im Datenblatt besser beschrieben sind. Der
Vorteiler "teilt" den Systemtakt (I/O-Takt) "vor". Es ist ein
Baustein, der dem Timer vorgeschoben ist (alles im Datasheet mit
Blockschaltbildern etc.). Wenn du also 101 = 1024 als Prescaler
(englisch G) nimmst, dann kommt nur jeder 1024te Takt am Timer an.

Sorry, dass ich leider (nur) 3. RTFM (Nr. 4) gesagt hab, aber diese
Fragen sind so gut im Datasheet zu finden, und zwar alles unter den
Überschriften bei Timern. Aber ich helfe ja gerne....
So. Nochmal wiederholen: RTFM (Nr. 5), RTFM (Nr. 6), RTFM (Nr. 7) G

dave

Autor: ...HanneS... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da hatter Recht, der Dave...

Xundes Neues Jahr...

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Dave,

gut erklärt. Ich denke ich habe es nun verstanden.

Zum RTFM: Ich habe erst ganz neu mit Microcontrollern angefangen. Auch
mit Elektronik habe ich sonst nicht so viel zu tun.  Höchstens
mit Hauselektrik, aber die ist nicht vergleichbar.
Oder mal einen geplatzten Kondensator im Verstärker durch nen neuen
ersetzt.

Ich bin ja schon froh, wenn ich die richtigen Manuals irgendwo finde.
Und wenn ich das richtige Manual gefunden habe, stehen die Antworten
auf meine Fragen oft auch zwischen den Zeilen. Da ist es schon
bequemer, wenn ich die Fragen ganz gezielt Leuten stelle, die Ahnung
haben. (wie z.B. dir und HanneS)
Abgesehen davon wusste ich bis vor ein paar Monaten nicht einmal, was
RTFM überhaupt bedeutet.

(Nur zu meiner Entschuldigung)

Aber wie gesagt, danke, dass du mir meine Fragen trotzdem sehr gut
beantwortet hast.

Viele Grüsse
Karl

Autor: ...HanneS... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Dave:

Eigentlich müsste dein Beitrag (und die Frage dazu) ins WIKI oder in
eine FAQ aufgenommen werden, denn dieses Thema kommt ja immer wieder,
jedenfalls bei jedem Neuling, der sich mit der Materie
auseinandersetzen will.

Und besser als du es in Neujahrslaune erklärt hast, kann es kein
Lehrbuch erklären...

Gruß...
...HanneS...

Autor: dave (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
LOL ;) Bei dem Stack-Problem reingefallen, dafür hier gepunktet, gleicht
sich also aus lol.

Ich hab mir auch das noch (leider) wenige MC Wissen aussem Datenblatt
gesaugt. Da steht alles drin und es steht sogar mehr drin, als du
wissen brauchst. Ich schau meistens nur auf die "Register
Description" und da steht alles.. Atmel sagt dir sogar, was du machen
musst hehe.

RTFM = Read The Friendly (hrhr) Manual


Man sollte echt mal anfangen, so allgemeine Sachen in die Wiki zu
sortieren, aber da hat man dann nacher auch nen Datasheet...
Hier hat ja grad jemand erst angefangen das mit dem m128 und seine
(ISP-)Tücken zu erklären... müsste man mal weiterführen.

dave

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.