PWM mit Attiny2313

OP #1784054
Lesenswert?
• ▲
▼
Hallo,

ich habe fogendes Problem bei der PWM-Sognalerzeugung, dass ich am 
Ausgang gar nichts tut. Wahrscheilich habe ich was versehen.

So sieht mein Programm aus:
#include <avr/io.h>
//#define F_CPU 8000000UL

int main()
{
   // Timer 1 PWM Init
   //define TOP or value to compare
  ICR1 = 499;
  DDRB   |= (1 << PB3);                  // OC1A PWM Port
  // Set to Fast Phase Mode OCR1 = TOP
  TCCR1A = (1 << WGM11) ;
  TCCR1B = (1 << WGM12)   | (1 << WGM13) ;
  //Set to Toggle on OC1A
  TCCR1A |= (1 << COM1A0);
  //Set Prescaler to
  TCCR1B |= (1 << CS10) | (0 << CS11) | (0 << CS12);  //Prescaler 1
  while(1);
  return 1;
}
Danke im Voraus
Gast #1784321
Lesenswert?
• ▲
▼
Hallo,

was hat das Toogeln des Ausgangs OC1A mit einer PWM zu tun?? So hast du 
immer ein Verhältnis von 50%. Eine "echte" PWM sieht anders aus ...

Ausserdem kann ich spess53 nur recht geben: Wo werden die Register OCR1A 
und/oder OCR1B zugewiesen? Ohne die hast du eine PWM von Null ...
(Mit diesen Registern wird das PWM-Verhältnis vorgegeben; ICR1 ist der 
maximal mögliche Wert.)

Gruss
OP #1784362
Lesenswert?
• ▲
▼
Hallo zusammen,

mal eine Frage, ist das Ausgangsignal kontinuerlich oder nicht?

Meine Ausgangsignal hat eine Frequenz vom 20kHz. ich bekomme mein Signal 
als Sigmenten, und wenn ich eine in die Lupe anschaue, dann entspricht 
die gleiche Freuquenz, die ich eingestellt habe.

So sieht mein Programm aus:
#define F_CPU 8000000UL
#include <avr/io.h>

int main()
{
   // Timer 1 PWM Init
   //define TOP or value to compare

  DDRB   |= (1 << PB3);                  // OC1A PWM Port
  // Set to Fast Phase Mode OCR1 = TOP
  ICR1 = 399;
  OCR1A = 199;
  OCR1B = 199;
  TCCR1A = (1 << WGM11) ;
  TCCR1B = (1 << WGM12)   | (1 << WGM13) ;
  //Set to Toggle on OC1A
  TCCR1A |= (1 << COM1A0) | (1 << COM1A1);
  TCCR1A |= (1 << COM1B0) | (1 << COM1B1);

  //Set Prescaler to
  TCCR1B |= (1 << CS10) | (0 << CS11) | (0 << CS12);  //Prescaler 1

  while(1);
  return 1;
}
#1784403
Lesenswert?
• ▲
▼
<weit aus dem Fenster lehn>

könnte es sich dabei um einen Messfehler deines Digital-Ossis handeln? 
Das der den Eingang eine zeitlang genau dann sampelt, wenn die PWM auf 0 
ist.

Welche Samplefrequenz benutzt dein Ossi beim linken Bild?


Setz mal die OCR Werte auf 390. Sind die Lücken dann kleiner?

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.