ATMega 168 Timer2 Fast PWM zu langsam

Gast #3158398
Lesenswert?
• ▲
▼
Hallo,
ich betreibe einen ATMega 168 mit einem externen Quarz (16MHz). Am Pin 
OC2B möchte ich per Fast Pwm ein Signal ausgeben. Wird die Cpu-Frequenz 
für Timer2 verwendet, so müsste OC2B alle 16µs (256/F_CPU) wieder auf 1 
gesetzt werden. Eine Messung mit einem Oszi zeigt, dass OC2B nur etwa 
alle 130µs wieder auf 1 gesetzt wird. Das ist etwa ein Faktor 8.

Kann mir bitte jemand sagen, wo dieser Faktor 8 herkommt?

Die Fuse CKDIV8 ist nicht programmiert. Programmiere ich CKDIV8, so 
verlängert sich der Zeitraum nochmal um den Faktor 8.
Verwende ich den internen 8MHz Oszillator, so verlängert sich die Zeit 
um den Faktor 2. Deshalb bin ich mir ziemlich sicher, dass der Quarz 
funktioniert.

Vielen Dank und viele Grüße
Michael

1
#include <avr/io.h>
2

3
#define sbi(port, bit) (port) |= (1 << (bit))
4
#define cbi(port, bit) (port) &= ~(1 << (bit))
5
#define useAsOutput(ddr, bit) (ddr) |= (1 << (bit))
6

7
#define PWM_DDR DDRD
8
#define PWM_PORT PORTD
9
#define PWM_BIT 3
10

11
int main(void)
12
{
13
  useAsOutput(PWM_DDR, PWM_BIT);      
14
  
15
  // Timer 2 einrichten
16
  // Fast PWM, Top=0xff
17
  sbi(TCCR2A,WGM21);
18
  sbi(TCCR2A,WGM20);
19
  
20
  // non inverting compare output mode
21
  sbi(TCCR2A,COM2B1);
22
    
23
  OCR2B = 128;
24
    
25
  // prescaler=1 und Timer aktivieren
26
  TCCR2B = (TCCR2B & ~(_BV(CS22) | _BV(CS21))) | _BV(CS20);
27
      
28
    while(1)
29
    {
30

31
    }
32
}

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.