- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 10 von 39

Thema: Ein paar Fragen zum Timer !!!

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    08.02.2017
    Beiträge
    21
    Hallo wkrug,

    danke für deine Antwort.

    Es gibt ja mehrer PWM Moduse.
    Ich dacht mal gelesen zu haben das wenn man eine hohe Frequenz erzeugen möchte es nötig sei den Fast PWM Modus zu nutzen.

    Ist das falsch gedacht ?
    Gerne versuche ich auch deine Version.

    Nur glaube ich wäre es für mich auch sehr gut, wenn ich endlich verstehen würde wie man auf die gewünschte Frequenz kommt

    Vielen Dank

    Nicole

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Zitat Zitat von Nicole01 Beitrag anzeigen
    Nur glaube ich wäre es für mich auch sehr gut, wenn ich endlich verstehen würde wie man auf die gewünschte Frequenz kommt
    Hallo,

    ich versuche mich mal an einer Erklärung - für die Fast-PWM.

    Der Timer Counter (TCNT) eines 8-Bit Timers durchläuft im Normalmodus den Wertebereich eines 8-Bit Binärzahl, also von 0 bis 255.

    Wie schnell er das macht, hängt von dem Systemtakt und dem Vorteiler ab (mal abgesehen von der Taktung des Timers durch einem externen Takt).

    Jeder Taktimpuls, der den Timer erreicht, erhöht den TCNT um eins. Es braucht also 256 Timertakte um einen kompletten Timerzyklus im Normalmodus und auch im Fast-PWM Modus zu durchlaufen.
    TCNT = 0 nach TCNT = 1 -> 1 Takt, 1 Takt total
    TCNT = 1 nach TCNT = 2 -> 1 Takt, 2 Takte total
    .
    .
    TCNT = 254 nach TCNT = 255 -> 1 Takt, 255 Takte total
    TCNT = 255 nach TCNT = 0 -> 1 Takt, 256 Takte total -> TCNT Turn von 0 nach 0 nenne ich mal einen "Timerzyklus"

    Bei einem Systemtakt von 1MHz und einem Vorteiler (Prescaler) von 1 wird der TCNT mit einer Frequenz von 1Mhz um 1 erhöht. Für einen Timerzyklus braucht er 256 Takte, die Timerzyklenfrequenz ist also 1000000Hz/256 = 3906,25Hz. Ist höher als Deine geforderten 1kHz. Kann man auch nicht so ohne Weiteres per CTC (Clear Timer on Compare) tiefer machen.

    Also erstmal mit Prescaler den Timertakt heruntersetzten. Nach Datenblatt vom ATtiny85 ist der nächste Prescalerwert des Timers 0 nach 1 die 8. Damit erreicht man eine Timerzyklusfrequenz von (1000000Hz/8 )/256=488,28125Hz. Zu langsam! Bekommt man aber schneller, wenn man den CTC Modus einschaltet und in ein Compareregister den entsprechenden Wert hineinschreibt. TCNT läuft dann nur noch bis zu dem Comparewert bevor auf 0 gesetzt wird. Die Timerzykluszeit wird also schneller.

    Der Timertakt mit dem Prescaler 8 ist 1MHz/8=125000Hz und eine Periode dauert dann 1/125000Hz=8µs. Alle 8µs wird also der TCNT um eins erhöht. Um auf eine Timerzyklusfrequenz von 1kHz zu kommen, muß die Timerzykluszeit 1/1kHz=1000µs sein. Dazu braucht der TCNT 1000µs/8µs=125 Zählschritte.

    Also CTC Modus zum Fast-PWM einschalten und 124 ins Compareregister eintragen (Der 125ste Schritt kommt durch den Schritt von 124 nach 0 zustande). Das andere Compareregister dient dann zur Einstellung der Pulsweite.

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    Der 125ste Schritt kommt durch den Schritt von 124 nach 0 zustande
    whoops Panne XD hab ich in meiner Antwort oben total vergessen
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    08.02.2017
    Beiträge
    21
    Danke für die anderen Antworten und eure Hilfe.

    Bitte nicht gleich sauer sein aber so ganz verstehe ich das immer noch nicht

    Ich hätte dazu bitte noch ein paar Fragen.

    Wie oben schon gefragt, reicht es wenn ich die Takt Frequenz vom Attiny im Code eintrage oder muss ich auch noch etwas in den Fuses verändern?
    Als nächstes würde mich Interresieren wo Ihr genau die ganzen Daten aus dem Datenblatt herbekommt ?

    Damit meine ich sind das immer die gleichen Stellen die Wichtig sind ?
    Z.b. Seite 10, 33, 52, 63 usw ( ist nur ein Beispiel )

    Die CS Bits bestimmen die Quelle für den Timer/Counter richtig ?
    Ist das auch gleichzeitig der Prescaler ?


    Auch verstehe ich die Berechnung der Frequenz noch nicht ganz.

    Wie genau hast Du das berechnet ?
    Timerzyklusfrequenz von (1000000Hz/8 )/256=488,28125Hz

    Ich verstehe es nur soweit, der Systemtakt beträgt 1Mhz ( 1000000 ) jetzt rechnet Ihr 1000000:256=3.906,25
    Gut nur wie kommt Ihr auf dieses Ergebniss ?
    (1000000Hz/8 )/256=488,28125Hz ???

    Wie lautet hier der genaue Rechnungsweg ?

    Entschuldigung für meine vielen Fragen

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    in deinem konkreten Fall (angenommen wir haben dasselbe Datenblatt und nicht nur die "Summary" ... Dokumentnummer ist atmel-2586)

    Kapitel 11.9 Register Description

    11.9.2 TCCR0A – Timer/Counter Control Register A und folgend

    Da sind die Bits beschrieben die die Ausgänge und den Countermodus steuern.

    11.9.3 TCCR0B – Timer/Counter Control Register B und folgend

    gehört immer zu dem anderen Register dazu, im konkreten Fall ist das WGM02 Bit Teil vom B-Register

    Hier steht unter anderem auch welche Prescaler es gibt und wie sie ausgewählt werden.
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    08.02.2017
    Beiträge
    21
    Vielen Dank für deine Antwort.

    Das Datenblatt ist das gleiche.
    Danke für die Informationen.

    Das habe ich soweit alles gefunden.
    Nur z.B. auf Seite 80 sind die CS Bits zu finden.

    Habe den Code jetzt geändert und das CS Bits 01 gewählt.
    Frequenz ist auf fast genau 1 kHz Vielen Dank.

    Nur auf der Seite 83 steht auch was über CS Bits.
    Aber diese kann ich doch bei meinem Attiny nicht nutzen ?

    Vielen Dank mal wieder.

    Nicole

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    39
    Beiträge
    3.416
    doch doch sicherlich, aber nur mit Timer1

    Das ist Kapitel 12 Timer1 und nicht Kapitel 11 Timer0

    Daher hab ich auch darüber gestutzt, dass du im TCCR0A die Bits für TCCR1A verwendet hast und im TCCR0B Das Bit für TCCR1B

    Du hattest da wohl die beiden Timer ausversehen in einen Topf geworfen ... Wenn du dir die REgister ud die Bits ansiehst, merkst du auch schnell dass die Bits des T0 garnicht die gleiche Position haben im Register wie beim T1

    PS: Als Faustformel bei Atmels gilt der Timer0 ist meistens am Funktionsärmsten aber dafür sind die Funktionen und Register fast überall gleich ... Den Code auf einen andern Controller zu wechseln geht also quasi ohne Änderungen ... alle weiteren Timer haben bei den unterschiedlichen Atmel Prozessoren alle ihre eigenheiten und müssen von Controller zu Controller anders programmiert werden
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

Ähnliche Themen

  1. Ein paar Fragen ;)
    Von Checker 1.0 im Forum Robby RP6
    Antworten: 11
    Letzter Beitrag: 18.08.2011, 21:37
  2. Ein paar fragen ...
    Von Gamestake im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 3
    Letzter Beitrag: 21.04.2011, 09:12
  3. Ein paar Fragen
    Von Speed im Forum AVR Hardwarethemen
    Antworten: 10
    Letzter Beitrag: 03.11.2008, 07:19
  4. Ein paar Fragen zu µC
    Von Lars. im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 5
    Letzter Beitrag: 09.06.2006, 14:38
  5. Paar Fragen -g-
    Von Adacart im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 06.01.2005, 17:57

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad