Forum: Mikrocontroller und Digitale Elektronik PWM-Signal


von Christian (Gast)


Lesenswert?

Hallo! Ich versuche gerade mit einem Atmega32, 16Mhz ein Pwm-signal
mithilfe des Timer 0 an Port PB3 (OC0) zu erzeugen. Ich programmiere in
C:

DDRB|=(1<<PB3)   //PB3 als Ausgang
TCCR0 = 0x7B;    //phase correct PWM, clk/1024
OCR0=125;

Kann jedoch am Port keine Spannung messen.
Danke Christian

von crazy horse (Gast)


Lesenswert?

musst ihm schon noch sagen, was er machen soll -hellsehen kann der Timer
nicht. TCCR0.

von crazy horse (Gast)


Lesenswert?

sorry, schief geguckt :-)

von dave (Gast)


Lesenswert?

Kannste das ganze bitte in Shiftschreibweise schreiben?
TCCR0 = (1<<WGM0)|(1<<CS02)...

So wie ich das grad mit dem Datenblatt überprüft hab, kam raus: Clk/64,
FastPWM.

dave

von Christian (Gast)


Lesenswert?

@dave:
 Sorry war ein Tippfehler.
Richtig:
TCCR0|=(1<<COM00)|(1<<WGM01)|(1<<CS02)|(1<<CS00);

von dave (Gast)


Lesenswert?

TCCR0 = (1<<COM01)|(1<<WGM00)|(1<<CS02)|(1<<CS00);

WGM01 WGM00
  0     1    PWM, Phase Correct 0xFF TOP BOTTOM

COM01 COM00
  1     0    Clear OC0 on compare match when up-counting. Set OC0 on
compare match when downcounting.

IMHO

dave

von Christian (Gast)


Lesenswert?

Danke Dave!

Das PWM signal erhalte ich jetzt einwandfrei. Aber wie kann man
eigentlich aus dem PWM ein Analog-Signal erhalten?

Gruss Christian

von Dirk (Gast)


Lesenswert?

Hi,

einfach ein Tiefpass an den PWM Ausgang haengen.

Mfg
Dirk

von Christian (Gast)


Lesenswert?

Wie legt man den Tiefpass aus?

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.