Hallo bin auf der such nach Infos zum ATtiny 2313. Habe mur das Datenblat gelden und gelesen. Dort stehen die Anzahl der Timer drin mit den Bit, die Einstellungen der einenzelnen Mode, die Prescaler usw. Es steht was zum Register A und B ( OCROA (B) ) drin. Was ich nicht begriffen habe ist der Zusammenhang dabei. Wenn ich z.B. den Timer 0 (8 Bit) mit 16MHz betreibe, wie muss ich dan Register A und/oder B einstellen? Auf was bezieht sich der Prescaler? Kann mir jemand dabei weiterhelfen? achim
Achim Seeger schrieb: > bin auf der such nach Infos zum ATtiny 2313. Nicht wirklich. > Habe mur das Datenblat > gelden und gelesen. Dort stehen die Anzahl der Timer drin mit den Bit, > die Einstellungen der einenzelnen Mode, die Prescaler usw. Da steht noch viel mehr drin, nämlich u.a. eine detaillierte Beschreibung der Funktionsweise sämtlicher unterstützter Timermodi. > Was ich nicht begriffen habe ist der Zusammenhang dabei. Dann hast du den Beschreibungsteil des DB nicht gelesen oder nicht verstanden. > Wenn ich z.B. den Timer 0 (8 Bit) mit 16MHz betreibe, wie muss ich dan > Register A und/oder B einstellen? Das hängt natürlich von der Anwendung ab. Also davon, was der Timer darin genau tun soll. > Auf was bezieht sich der Prescaler? Das ist einfach. Der teilt einfach nur den Systemtakt durch einen einstellbaren Faktor, um den Betriebstakt für den Timer bereitzustellen. Der Prescaler spielt also für die Verständnis der Timerfunktionen eigentlich weiter keine Rolle. Es ist genau andersrum: man legt die Funktion fest, die der Timer erfüllen soll, berechnet den zur Erfüllung dieser Funktion nötigen Timertakt (bzw. eher meist: Taktbereich) und wählt den Prescaler dann so, daß der Muttertakt, geteilt durch den Prescalerfaktor, in genau diesem Bereich landet.
Achim Seeger schrieb: > Hallo > bin auf der such nach Infos zum ATtiny 2313. Habe mur das Datenblat > gelden und gelesen. Dort stehen die Anzahl der Timer drin mit den Bit, > die Einstellungen der einenzelnen Mode, die Prescaler usw. > Es steht was zum Register A und B ( OCROA (B) ) drin. > Was ich nicht begriffen habe ist der Zusammenhang dabei. > Wenn ich z.B. den Timer 0 (8 Bit) mit 16MHz betreibe, wie muss ich dan > Register A und/oder B einstellen? Auf was bezieht sich der Prescaler? > Kann mir jemand dabei weiterhelfen? > achim Was genau hast du denn für Fragen? Die Register OCR0A und B stehen für den Output Compare Wert. Huer kommt es auch darauf an in welchem Modus du den Timer betreiben willst. Die beiden Register brauchst du z.B. im CTC-Modus. Hier zählt der Timer taktgebunden hoch und vergleicht stetig den Wert in OCR0x mit dem aktuellen Wert des Timers. Ist der Timer auf dem gleichen wert wir OCR0x kann man damit z.B ein interrupt auslösen. Der Prescaler gibt an wie schnell der Timer inkrementiert wird. Entweder wird der Timer bei jedem Takt hochgezählt oder erst bei jedem 8. , 16., usw (je nachdem wie der Prescaler eingestellt wird. Also: Anzahl der Takte zum inkrementiere = Takt/Prescaler
Danke für die Antworten Rechne mal: - 16 MHz sind 16 000 000 Takte je Sekunde Takt soll 10 ms sein CTC Mode - möchte 8 Bit Zähler nutzen 0-255 (256) - bei 10 ms bis 256 zählen sind je Sekunde 25600 mal - 16 000 000 : 25600 = 625 - Prescaler auf 1024 gesetzt / Nach Datenblatt - 16 000 000 : 1024 = 15625 Takte für den Timer je Sekunde - 15625 : 100 = 156 - im CTC Mode einstellen auf 156 oder 157? Ungenau? - beim erreichen des eingestellten Wertes löse ich einen ISR aus, Zähler von vorn Wie ihr seht geht das mit den 8 Bit und der Einstellung und verstehe es Was mache ich aber mit den Registern A und B im CTC Mode bzw für was nutze ich diese überhaupt Leider versteh ich das Datenblatt nicht so richtig. Bei diesen technischen Sachen bringen manche übersetzer ganz schön mi.. raus achim
Achim Seeger schrieb: > Danke für die Antworten > Rechne mal: > - 16 MHz sind 16 000 000 Takte je Sekunde Takt soll 10 ms sein CTC > . > . > - im CTC Mode einstellen auf 156 oder 157? Ungenau? > - beim erreichen des eingestellten Wertes löse ich einen ISR aus, Zähler > von vorn > > Wie ihr seht geht das mit den 8 Bit und der Einstellung und verstehe es > Was mache ich aber mit den Registern A und B im CTC Mode bzw für was > nutze ich diese überhaupt Beim Timer0 ist das OCR0A das Vergleichsregister für den CTC-Mode. Da kommt deine 156 bzw 157 rein. Also CTC Mode mit dem WGM1-Bit im TCCR0A einstellen und 156 bzw 157 in das OCR0A Register schreiben. Dann läuft der Timer mit deinen oben ausgerechneten Werten und erzeugt bei TCNT0 Stand 156 bzw 157 (je nach OCR0A) einen Output Compare Interrupt - wenn der Interrupt auch enabled ist.
Achim Seeger schrieb: > Wie ihr seht geht das mit den 8 Bit und der Einstellung und verstehe es > Was mache ich aber mit den Registern A und B im CTC Mode bzw für was > nutze ich diese überhaupt Für CTC brauchst du nur eins. Aber bei einer PWM kannst du damit 2 Kanäle ansteuern. mfg.
Begreiffe langsam. Leider reicht mir das als Antwort noch nicht. Wie rufe ich Register a oder b oder beide auf? Bei welchem Mode kann ich es nutzen? Wie kann ich die Zeit messen? z.B. Dauer eines Impulses? achim
Achim Seeger schrieb: > Begreiffe langsam. Leider reicht mir das als Antwort noch nicht. Wie Lern Englisch fürs Datenblatt! Bis dahin kannst du es mit deutschsprachigen Behelfen versuchen zB http://rn-wissen.de/wiki/index.php/Timer/Counter_%28Avr%29 http://www.mikrocontroller.net/articles/AVR-Tutorial:_Timer
Achim Seeger schrieb: > Wenn ich z.B. den Timer 0 (8 Bit) mit 16MHz betreibe, wie muss ich dan > Register A und/oder B einstellen? Auf was bezieht sich der Prescaler? > Kann mir jemand dabei weiterhelfen? Achim Seeger schrieb: > Leider versteh ich das Datenblatt nicht so richtig. Bei diesen > technischen Sachen bringen manche übersetzer ganz schön mi.. raus Hallo, hier gibt es Anleitungen in deutsch: https://www.mikrocontroller.net/articles/AVR-Tutorial:_Timer http://www.weigu.lu/a/pdf/MICEL_C2_Timer.pdf http://www.avr-asm-tutorial.net/avr_de/seminar2/Seminar2.pdf (ab S. 27)
Am besten probierst du ein wenig rum (so blöd es klingt) Ich habe die Timer damit am besten verstanden. Ein wenig herumprobiert was die verscheidenen prescaler und Modis anging und mir immer eine entsprechende ausgabe auf einem lcd ausgeben lassen. So gings dann recht einfach.. Aber am wichtigsten ist: Lesen Lesen Lesen.. Manchmal hilft es, sich das Datenblatt auch 2 oder 3 mal durch zu lesen und auch die Diagramme mal genauer zu betrachten. Die sind nämlich gar nicht so übel.
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.