mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATtiny45 10bit-PWM


Autor: limbo! (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich bin dabei für eine Modelleisenbahn einen blinkenden Schornstein auf 
einen ATtimy45 zu programmieren.

Ich verwende dazu eine Fading-LED mit einer logarithmischen Codetabelle.
Wenn ich das ganze mit 32 Werten mache funktioniert es.

Da das dünkler werden der LED langsam sein soll sieht man allerdings das 
überspringen von einer Helligkeit auf die Nächste.

Jetzt dachte ich mir, ich könnte einfach 64 Werte nehmen. Aber genau das 
funktioniert nicht. Die LED wird heller, fängt dann zu flackern an und 
wird dann stufenweise wieder dünkler. Wo liegt denn da der Fehler?

Ich vermute das hat irgendwas mit 10-bit PWM zu tun oder? Allerdings 
gibt es beim Tiny45 keine PWM11 usw um die 8 oder 10-bit PWM 
einzustellen.

Danke für eure Hilfe!

Grüße
Markus

Autor: Rangi Jones (rangi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Tiny25/25/85 hat nur 8-bit Timer. Du versuchst hier aber Werte > 255 
zuzuweisen in der Zeile :
OCR0A = pgm_read_word(pwmtable_64+temp)

Da wird der obere Teil des Words abgeschnitten. Du kannst nicht einfach 
so eine 10Bit PWM verlangen, wenn es die Hardware nicht hergibt.

Probier mal was in Hardware. z.B einen kleinen Kondensator (wenige nF) 
parallel zur Diode um sie "unempfindlicher" gegen die kurzen Strompulse 
zumachen.

Autor: limbo! (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich hab durch ausgiebiges Studieren der Datenblätter das Problem der 
"nicht vorhandenen 10bit PWM" herausgelesen.

Ich hab das Ganze jetzt so schnell gemacht, dass man das Wechseln der 
Helligkeiten nicht mehr sieht. Sieht jetzt zwar nicht mehr so 
realistisch aus - ist aber trotzdem schön.
Danke übrigens für deine Antwort! Das mit dem Kondensator hätte ich noch 
versuchen können. Aber egal - das Teil ist verbaut und gut ist ;-)

Grüße
Markus

Autor: hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo limbo!

du kannst natürlich auch bei 8 Bit mit 64 Werten arbeiten.
Der Wertebereich ist halt 0-255.
Wenn du bei der o.a. Tabelle mit 64 Werten diese durch 4
teilst, nächster unsigned char daraus machst und diese auch als
unsigned char bezeichnest/behandelst hast du mehr Stufen.

Noch mehr Stufen ist jedoch sinnlos da dann keine log. Funktion
erkennbar ist.

hans

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.