PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 20khz Rechteckspannung erzeugen???



stormracer
22.04.2007, 16:59
Moin,
ich möchte gerne wissen, wie ich die Register des Timer setzen muss, um eine Frequenz von ca. 20khz zu erreichen( PWM)? Welcher der Timer des ATMega 32 ist denn überhaupt der sinnvollere für diese Aufgabe?

MFG Stormracer

franzl
22.04.2007, 18:17
Hallo,
wie währs wenn du mal ins Datenblatt des Atmega32 rein schauen würdest, dort findest du Antwort auf deine Frage.
Ich würd sowas mit timer1 realisieren.
Mfg franz

stormracer
23.04.2007, 17:17
Moin,
habe jetzt nach viel googlen und Datenblatt lesen bin ich zu diesem Versuch gekommen:


int main(void)
{
//Port D als Output
DDRD = 0xff;

//10 Bit Phase Correct PWM, max Wert 1023
TCCR1A = (1<<WGM10) | (1<<WGM11) |(1<<COM1A1);
//Takt = CPU-Takt/64
TCCR1B = (1<<CS10) | (1<<CS11);

//Port D Bit 7 (Enable) auf I
PORTD |= (1 << 7);

while(1)
{
OCR1A=512; // ~2,5V
}
return 0;
}


Aber ich weiß immer noch nicht, wie ich die Frequenz berechnen kann.
Kann ich die Formel f=CPU_Takt/(2*Prescaler*TOP) benutzen?
Aber welcher Wert ist TOP, ist das in dem Mode 1023, oder der Wert, der durch OCR1A eingestellt wird?

MFG Stormracer

uwegw
23.04.2007, 17:44
Zur Timer-Berechnung gibts nen nettes Tool namens AVRcalc.

stormracer
25.04.2007, 17:55
Moin,
kann mir jemand bestätigen, dass die oben genante Formel richtig ist?
Im Endefekt geht es mir darum, ein MosFET zu betreiben, das einen verbraucher mit 20kHz schaltet. Muss dazu auch die vollen 5Volt auf den Ausgangspin legen, also mus ich doch OCR1A auf 1023 setzen?

MFG Stormracer

uwegw
25.04.2007, 18:55
Moin,
kann mir jemand bestätigen, dass die oben genante Formel richtig ist?
Im Endefekt geht es mir darum, ein MosFET zu betreiben, das einen verbraucher mit 20kHz schaltet. Muss dazu auch die vollen 5Volt auf den Ausgangspin legen, also mus ich doch OCR1A auf 1023 setzen?

MFG Stormracer

Es wird nicht klar, was du eigentlich willst: ein Rechteck mit 20k? Eine PWM-Steuerung?

stormracer
26.04.2007, 11:44
Moin,
also ich möchte im Endefekt Energie auf eine sich drehende Scheibe bekommen und habe mir dazu zwei Spulen besorgt, wobei die eine fest ist und die andere auf der drehenden scheibe. Nun soll die feste Spule mit einer Frequenz von ca. 20kHz betrieben werden soll (um einen möglichst guten Wirkungsgrad zu erreichen).
Um diese 20kHz zu bekommen, hab ich mir gedacht, die mit einem ATMega per PWM erzeugen.
Bei PWM bekommt man doch eine Rechteckspanung?

MFG Stormracer

franzl
26.04.2007, 13:13
Hi,
also wenn es nur drum geh die 20kHz zu erzeugen dann könntest das auch mit einem Timerbaustein machen z.B. NE555. Ja mit dem Atmega kannst du eine Rechteckspannung machen mit PWM.
mfg franz