www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PWM an Atmega 32 ohne Funktion


Autor: Lukas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Forengemeinschaft,

ich arbeite mich momentan etwas in die uC Programmierung (mit C) ein.
Nun wollte ich eine LED dimmen.
Allerdings leuchtet sie bei folgendem Code überhaupt nicht. Vielleicht 
sieht ja jemand einen Fehler im Code (Compilieren kann ich ihn 
Fehlerfrei):

#include <avr/io.h>

int main()
{

  // OC1A auf Ausgang
  DDRD = (1<<PD5);



//Aktivieren des FASTPWM Modes auf dem OC1A (--> PD5)
//Initalisierung des TimerCounterControl Registers
//ForceOutputCompare stimmt mit standart-Werten überein
//Setzen der Bits WGM00 und WGM 01 auf Fast PWM
    TCCR1A = (1<<WGM00) | (1<<WGM01);
//Setzen der Bits Com00 auf 1 --> Reserved Mode (Activ on Interrupt)
    TCCR1A = (1<<COM00);
//Starten des PWM Signals, aktivieren des internen Taktes mit Prescaler
     TCCR1A = (1<<CS02 ) | (1<<CS01);

//Initalisierung des PWM Signals auf 50% activ High
//Setzen des "Interrupts" auf 255/2 = 127 = 0x7F
    OCR1A = 0x7F;


while( 1 )
{};
}

Autor: Hubert G. (hubertg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau noch mal ins Datenblatt, in meinem gibt es im TCCR1A kein WGM00

Autor: Lukas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm...

also ich wollte den 8-Bit Timer Counter 0 mit  PWM verwenden. Da taucht 
auch das besagte WGM00 auf.

Autor: Oliver Ju. (skriptkiddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das passt aber gar nicht zum Quelltext. Im Quelltext schreibst du die 
Register für TIMER1.

Autor: Stanley (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für Counter 0 musst du aber TCCR0 verwenden ;)

Autor: Lukas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja okay...

Ich dachte dass ich durch das TCCR1A kennzeichne, dass ich den OC1A
(Deshalb 1A anstelle der 0) an das PWM Signal anschließe.

Wie kann ich denn nun kennzeichnen, dass ich den Timer 0 an den Port 
OC1A anschließe?? Oder geht das nicht und ich muss einen anderen Timer 
nehmen?

Autor: Stanley (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nee, das geht nicht, du musst dann schon den OC0 nehmen.

Autor: Michael K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lukas schrieb:
> also ich wollte den 8-Bit Timer Counter 0 mit  PWM verwenden. Da taucht
> auch das besagte WGM00 auf.
Beim Timer 1 nicht. Entscheide dich...

Autor: Lukas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gut...
Dann gibt es ja nicht mehr viel zu entscheiden. Ich werde dann wohl 
einen anderen Timer nehmen müssen.

Vielen Dank für die schnelle Hilfe!

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.