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


von Lukas (Gast)


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 )
{};
}

von Hubert G. (hubertg)


Lesenswert?

Schau noch mal ins Datenblatt, in meinem gibt es im TCCR1A kein WGM00

von Lukas (Gast)


Lesenswert?

Hmm...

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

von Oliver J. (skriptkiddy)


Lesenswert?

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

von Stanley (Gast)


Lesenswert?

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

von Lukas (Gast)


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?

von Stanley (Gast)


Lesenswert?

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

von Michael K. (Gast)


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...

von Lukas (Gast)


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!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.