www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Tiny15 erzeugt keine definierte PWM


Autor: Alfi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi zusammen,

Möchte eine PWM mit - sagen wir mal - 10kHz und einem Tastverhältnis 50% 
einstellen.
=> Prescaler auf CK/2  , ORC1B: 80d OCR1A: 40d

nach meiner Rechnung ergibt das 1,6MHz/2/80=10kHz

Raus kommen aber 112kHz!!

Ich gehe davon aus, dass ich ein Verständnisproblem habe aber ich komme 
nicht drauf....
Kann mir jemand sagen, wie ich die Frequenz berechne und einstelle??


Danke und Gruß


; PB1  Ausgang PWM

.include "tn15def.inc"



rcall Init
rjmp Main

Init:

    ldi   R16,0x00|(1<<PB1)|(1<<PB2)|(1<<PB3)  ; PB1 als Ausgang
    out   DDRB,R16

  ;PWM einstellen

    ldi   R16,(0<<CS13)|(1<<CS12)|(1<<CS11)|(0<<CS10)|(1<<CTC1)|(1<<PWM1)|(1<<COM1A1)|(1<<COM1A0)  ; invertierte PWM einsschalten -> Geschwindigkeit CK
    out   TCCR1,R16

    ldi   R16,0x50  ;Frequenz
    out   OCR1B,R16


    ldi   R16,0x28  ;Pulsweite einstellen
    out   OCR1A,R16


    ret            ;zurückspringen

Main:

    nop

    rjmp   Main

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
(1<<CTC1) => counter reset bei TCNT1=OCR1A.
(1<<PWM1) => counter reset bei TCNT1=OCR1B.
Beides zusammen ergibt also keinen Sinn.

Autor: Alfi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, CTC1 ist nun 0, damit bekomme ich aber trotzdem 7kHz (mit 
Oszi+Zähler gemessen).

Hast Du vielleicht ein Beispiel, wie die o.g. Frequenz und 
Tastverhältnis eingestellt werden müssen?



Danke!

Autor: Alfi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich glaube ich habe es gefunden!

Problem war kein Denkfehler, sondern der interne Oszillator war nicht 
abgeglichen. Mit einem Wert 0x74 geladen passt die Frequenz.

Wie mir scheint, muß immer ein OSCCR-Wert geladen werden, und dieser 
steht irgendwo im EEPROM?!??
  ldi    RDummy,0x74
  out    OSCCAL,RDummy

Gruß

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.