Frequenz im Fast PWM modus

OP #2379976
Lesenswert?

hi,

ich betreibe den 8-bit timer im Fast PWM modus. Aufgabe ist es ein 
PWM-Signal bei einer Frequenz von 1kHz auszugeben.

wenn ich mit mein multimeter aber die frequenz messe zeigt der mir Werte 
zwischen 1,9 kHz und 5 kHz an?!

Vielleicht liegt es ja am Messgerät, trotzdem würde ich euch bitten ob 
die einstellung mit 1 kHz richtig ist mal zu überschauen?!


TCCR0A = (0<<FOC0A) | (1<<WGM01) | (1<<WGM00) | (1<<COM0A1) | 
(0<<COM0A0) | (0<<CS02) | (1<<CS01) | (1<<CS00);

OCR0A = 55;

im Handbuch steht ja PWM frequenz für den ausgang ist

f pwm = Taktfrequenz / N * 256  bei mir also  16mhz / 64 * 256 = 976 hz
Gast #2379993
Lesenswert?

Hi

>f pwm = Taktfrequenz / N * 256  bei mir also  16mhz / 64 * 256 = 976 hz

Die Rechnung ist richtig. Vielleicht kommt dein Multimeter nicht mit dem 
Tastverhältnis klar. Nimm mal für OCR0A den Wert 128.

MfG Spess
Gast #2396871
Lesenswert?

marcel schrieb:
> wie kann ich das denn einstellen/programmieren das ich genaue 1000hz als
> frequenz herausbekomme?

z.B. mit einem Quarz, dessen Frequenz eine 2er Potenz ist, z.b. 4,096MHz 
oder 8,192MHz (16,384 MHz übertaktet vielleicht den kleinen Atmel). Dann 
sollte bei der Rechnung oben genau 1000 rauskommen.
Gast #2405253
Lesenswert?

Hi

>ja meine 16 bit timer sind alle schon belegt, hab nur noch 8bit timer
>und diese besitzen kein ICR :/

Aber es gibt 8 Bit-Timer mit 2 OC-Registern. Dann lässt sich OCRxB für 
die PWM und OCRxA für die Frequenz benutzen.

Welchen Controller benutzt du denn?

MfG Spess
Gast #2405277
Lesenswert?

jemand meinte mal das ich für das blinken auch ein 8 bit timer nehmen 
kann und wenn ich dann kleine frequenzen haben will, dass ich den timer 
mehrmals überlaufen lasse bis dann ein interrupt meiner Led sagt das sie 
jetzt einschalten kann.

hab allerdings keine ahnung wie man das programmiert, gibts dazu schon 
fertige code im inet vielleicht?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren