Forum: Mikrocontroller und Digitale Elektronik PWM mit 30Hz?


von Manuel Hickel (Gast)


Lesenswert?

Hallo Leute,

ich würde gerne mit meinem mega8 eine pwm-frequenz mit 30HZ erlangen
wollen. nun habe ich aber den verdacht, daß ich mit meinen 4MHZ nicht
so tief komme. Sehe ich das richtig? laut datenblatt wäre das tiefste
die 123HZ, aber das ist zu schnell...
wer kann mir da weiterhelfen?

Vielen Dank

von dave (Gast)


Lesenswert?

Ich hab mich zwar nicht näher damit befasst, aber man kann ja nen
Prescaler von 1024 nehmen und dann noch ne 10bit PWM nehmen, macht
1024², was dann mit 5Hz.
Ich hoffe das geht, aber wäre nicht gut.

Nimm lieber ne Software PWM, da du eh nur ne mini-Frequenz brauchst und
dazu der T1 zu schade ist.

dave

von Arnold N. (Gast)


Lesenswert?

Hi,

Du könntest einen Biarzähler, z.B. den 4024 verwenden um den Takt zu
teilen (durch 2, 4, 8, 16 , 32, 64 oder 128).

cu

von Jürgen Schuhmacher (Gast)


Lesenswert?

Habe noch nie gehört, daß das Erzeugen einer niederigen Frequenz bei
einem COntroller ein Problem gewesen wäre :-)

von Manuel Hickel (Gast)


Lesenswert?

ja nun hast du es gehört. und nun kannst du mir sicherlich sagen, welche
bits ich setzen muß, damit ich so um die 30hz bekomme beim mega 8 mit
4MHZ. vielen dank

von Benedikt (Gast)


Lesenswert?

rtfm !
Bei 4Mhz, 30Hz und 8bit benötigst du einen Vorteiler von etwa 512. Wie
man diesen erhält, sollte eigentlich im Datenblatt stehen.

von Alex (Gast)


Lesenswert?

Zur Not kann man sich sowas immer noch in Software mit nem
Timerinterrupt basteln. Allerdings wird man auch dafür nen kurzen Blick
ins Datenblatt riskieren müssen :)

von Michael Lippert (Gast)


Lesenswert?

Oder nimm halt den 1 MHz internen Oszillator oder einen so niedrigen
externen Taktgeber dass es hinkommt. Aber eine Frage bleibt doch: Was
soll den 30 Hz sein? Die einzelnen Pulse oder eine daraus entstehende
Sinusschwingung? Letzteres laeuft hier neben mir gerade mit 0,5 Hz
wunderbar, sag bascom oder was Du nimmst dass es halt warten soll bis
es den naechsten Wert laedt. Wenn Du nur 30 Pulse pro Sekunde willst
mach halt ein Programm was das mit warten und zwei (veraenderlichen?)
Variablen loest.

von Marko (Gast)


Lesenswert?

Eh, Leutem! Noch komplizierter geht's wohl nicht.

Weiß nicht, wo das Problem sein soll.
Ist doch ganz einfach.
Hab's mit nem mega16 gemacht.

Folgende Einstellungen sind notwendig:


TCCR1B=(1<<WGM13)|(1<<WGM12)|(1<<CS10);
TCCR1A=(1<<WGM11)|(1<<WGM10)|(1<<COM1A0);
OCR1A = 8333;

mögliche Vorteiler: 1,8,64,256,1024 (S.112 - 113)
zu wählen ist 8.

Folgende Formel:
z.B.
bei einem 4MHz Quarz:

4000000/(2*8)/30 = 8333,33

Die tiefste mögliche Frequenz ist bei Vorteiler 1024 und 4MHz Quarz:
4000000/(2*1024)/65535 = 0,03 Hz

(65535, weil OCR1A ein 16-bit Register )

Alles klar?

von D. W. (dave) Benutzerseite


Lesenswert?

Wir wollen ne PWM und kein Pintoggle bzw. CTC.

4.000.000 / (a1024 * 2^b)
a = PhaseCorrect (2) oder Fast (1)
b = 8,9 oder 10 (Bit)

Sind maximal (so wie ichs grad gerechnet hab mit Phasecorrect und
10Bit) ca. 2Hz

Oder liech ich da falsch?

von Marko (Gast)


Lesenswert?

Ich verstehe echt nicht, wo Dein Problem liegt!

Lies halt mal das Datenblatt durch!

von Falk B. (falk)


Lesenswert?

@ Marko (Gast)

>Ich verstehe echt nicht, wo Dein Problem liegt!

Aber ich weiss wo deins liegt. Du gräbst uralte, vermoderte Threads aus 
und kannst selbst eine rot geschriebene Warnung übersehen.

>Lies halt mal das Datenblatt durch!

Mach mal die Augen auf ;-)

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.