ATtiny13 PWM / CTC - Fragen und Schwierigkeiten

Gast #3339371
Lesenswert?
• ▲
▼
Hallo zusammen!
Ich möchte mit meinem ATtiny13 mittels PWM Töne/Sinus erzeugen. Damit 
ich das Rad nicht komplett neu erfinde habe ich gegoogelt und das hier:
http://www.avr-asm-download.de/praesentation/Teil_8_Beispiel_11.pdf
ausprobiert. Funktioniert, Sinus mit 1,7kHz.
Nun habe ich das Ganze versucht in C zu portieren. Im Prinzip 
funktioniert es, aber der Sinus hat dann 1,1kHz. Wie kann man sich das 
erklären? Hab ich nen Denkfehler begangen?

  CLKPR = (1<<CLKPCE);
  CLKPR = 0x00;
  CLKPR = 0;

  OCR0A = 171;
  OCR0B = (st[p]); // in "st" steht der Sinuswert, p ist der Index
  p = 1;

  TCCR0A = (1<<COM0B1)|(1<<WGM01)|(1<<WGM00);
  TCCR0B = (1<<CS00);
  TIMSK0 = (1<<TOIE0);

  sei();

Die zweite Schwierigkeit, schreibe ich mein Sinus nicht is RAM sondern 
ins Flash, dann ist es kein Sinus mehr. Ist der Lesezugriff aus dem 
Flash zu langsam?
const char st[32] PROGMEM = {94 ... };
  OCR0B = pgm_read_byte (st[p]);

Und weil das noch nicht genug Probleme sind, macht mir der eigentliche 
Ablauf zu schaffen. Aus dem pdf oben folgt daß OCR0A = 
CPU-Frequenz/Abtastrate/Zielfrequenz ist. Wenn ich nun 2 verschiedene 
Frequenzen (nacheinander) ausgeben möchte, dann müßte ich auch 2 
verschiedene Wertearrays haben. Zumindest sehr aufwendig, wie stelle ich 
es an, wenn ich z.B. den Sinus zwischen 1kHz und 2kHz in 100er Schritten 
ändern will?

Danke.

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.