Übergabe Bottom Wert bei PWM Ausgabe

Gast #3196779
Lesenswert?
• ▲
▼
Servus erstmal,

ich bin gerade dabei mich mit dem Thema PWM zu beschäftigen, doch leider
klappt es nicht so gut.
Die PWM selbst funktioniert einwandfrei jedoch hab ich das Problem das
ich gerne würde, dass das Programm wie eine Art Dimmer die ganze Zeit
zuerst ein kleines Tastverhältnis von beispielsweise 25% ausgibt und
dann langsam auf z.B. 75% Prozent hochregelt.
Doch irgendwie steh ich auf dem Schlauch was die Übergabe des
Bottomwertes betrifft.
Programm sieht wie folgt aus:

#include <avr/io.h>
#define F_CPU 8000000UL
#include <util/delay.h>


int main()
{
  volatile uint16_t counter=0x0028;
  while(1){
  // OC1A auf Ausgang
  DDRB = (1 << PB1 );  //ATMega88
  //
  // Timer 1 einstellen
  //
  // Modus 14:
  //    Fast PWM, Top von ICR1
  //
  //    WGM13    WGM12   WGM11    WGM10
  //      1        1       1        0
  //
  //    Timer Vorteiler: 1
  //     CS12     CS11    CS10
  //       0        0       1
  //
  //  Steuerung des Ausgangsport: Set at BOTTOM, Clear at match
  //     COM1A1   COM1A0
  //       1        0

  TCCR1A = (1<<COM1A1) | (1<<WGM11);
  TCCR1B = (1<<WGM13) | (1<<WGM12) | (1<<CS10);

  //  den Endwert (TOP) für den Zähler setzen
  //  der Zähler zählt bis zu diesem Wert

  ICR1 = 0x00A0;

  // der Compare Wert
  // Wenn der Zähler diesen Wert erreicht, wird mit
  // obiger Konfiguration der OC1A Ausgang abgeschaltet
  // Sobald der Zähler wieder bei 0 startet, wird der
  // Ausgang wieder auf 1 gesetzt
  //
  // Durch Verändern dieses Wertes, werden die unterschiedlichen
  // PWM Werte eingestellt.

  OCR1A = counter;
  _delay_ms(50);
  counter=counter+1;
  if (counter=0x008C)
    {
      counter=0x0028;
    }
  }

}

Schonmal vielen Dank an alle.

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.