Forum: Mikrocontroller und Digitale Elektronik Fast PWM (benutzerdefinierte Obergrenze) auf Atmega168


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Dom (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Guten Tag,

ich hätte eine Frage zur Fast PWM mit benutzerdefinierter Obergrenze auf 
dem Atmega168.

Ich habe nachfolgenden Code geschrieben, auf dem Ausgang PD6 liegt 
jedoch durchgehend ein High Pegel an und ich bekomme die PWM nicht zum 
laufen. Hat jemand eine Idee was ich falsch mache?

Und schonmal vielen Dank :)
1
#include <avr/io.h>
2
#include <math.h>
3
4
//Digital Pin 6 (PD6 / OC0A) PWM
5
6
#define NO_OF_SAMPLES 100
7
#define STEP_X 2.0 * PI / NO_OF_SAMPLES
8
#define DELTA_TIME2OUT (0.5/NO_OF_SAMPLES) * 1000
9
10
int main(void)
11
{
12
  double x = 0.0, y;
13
  long oldTime = millis();
14
15
  //Define PD6 as Output
16
  DDRD |= 1<<DDD6;
17
  
18
  //Configure Timer0
19
  
20
  //Set Prescaler to 1 (internal clock)
21
  TCCR0B &= ~(1<<CS02 | 1<<CS01);
22
  TCCR0B |= 1<<CS00;
23
  
24
  //Set Timer Mode to Fast PWM with OCR0A as upper limit
25
  TCCR0B |= 1<<WGM02;
26
  TCCR0A |= 1<<WGM01 | 1<<WGM00;
27
  
28
  //Set PWM Mode: Non inverting - Clear OC0A on Compare Match,
29
  //set OC0A at BOTTOM
30
  TCCR0A |= 1<<COM0A1;
31
  TCCR0A &= ~(1<<COM0A0);
32
33
34
  OCR0A = 0x00;
35
36
37
  while(1)
38
  {
39
         
40
      OCR0A += 50;
41
      _delay_ms(200);
42
43
  }
44
  
45
}

von Falk B. (falk)


Bewertung
0 lesenswert
nicht lesenswert
@Dom (Gast)

>ich hätte eine Frage zur Fast PWM mit benutzerdefinierter Obergrenze auf
>dem Atmega168.

Da hast du mit PD6 / OC0A aber das falsche Pin ausgewählt. Denn im Timer 
Mode 7 / Fast PWM mit Obergrenze in OCR0A kann man logischerweise nur 
noch mit OCR0B eine PWM erzeugen. Und dann sollte man auch nicht 0x00 in 
ORC0A reinschreiben sondern eine sinnvolle Zahl.

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]
  • [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.