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
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
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
@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...
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.