PWM ATtiny841 läuft falsch

Gast #4029104
Lesenswert?
• ▲
▼
Hab ein Problem, dass meine PWM nicht richtig dimmt. Die LED ist fast 
dauerhaft an. NUr nach wenigen Sekunden sieht man irgendwann einmal dass 
sie runterdimmt.

Würde gernen einen 20kHz PWM Timer aufbauen mit einer Auflösung von 9 
oder 10Bit. F_CPU = 8E6. Habe noch nicht nicht den richtigen Tipp im 
Datenblatt umsetzen können.
1
#include <avr/io.h>
2
#include <util/delay.h>
3
#include <avr/interrupt.h>
4

5
#define RED_DDR    DDRB
6
#define RED_PORT  PORTB
7
#define RED_PIN    PORTB2
8

9
int main(void)
10
{
11

12
  // Set DDR
13
  RED_DDR |= (1<<RED_PIN);
14
  
15
  // FastPWM non-inverted |  9-Bit
16
  TCCR1A |= (1<<COM1A1) | (1<<WGM11);
17
  TCCR1B |= (1<<WGM12);
18
  
19
  // Prescaler /256
20
  TCCR1B |= (1<<CS12);
21
  
22
  // Pin Mux Selection Register
23
  // TOCC7 (PORTB2) -> 01
24
  TOCPMSA1 |= (1<<TOCC7S0);
25
  
26
  // Output Enable
27
  TOCPMCOE |= (1<<TOCC7OE);
28
  
29
  // Reset Timer-Value
30
  OCR1A = 0;
31

32
  sei();
33
  
34
  while(1)
35
  {
36
    while(OCR1A < 511) { OCR1A++; _delay_ms(50); }
37
    while (OCR1A > 0) { OCR1A--; _delay_ms(50); }
38
  }
39
}
#4029120
Lesenswert?
• ▲
▼
Hallo,

nun die Formel sind aber abgedruckt:
12.9.3 Fast PWM Mode S.101f
fpwm = flck /(N(1+TOP))

Es gilt
TOP = 511
N E { 1,8,64,256,1024 }

Und mit deinen Vorgaben ?

fpwm = 8*10^6 /256 /512 = 61Hz

Nutz man die Formel nach Umstellung anders, erhält man:

N = flck /fpwm /512 = 0,7813

Und diesen Vorteiler gibt es nicht.

Also mit N = 1 ==>
fpwm = flck /(N(1+TOP))
fpwm = 8*10^6 /1 /512 = 15,0625 kHz

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.