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
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
#2396856
wie kann ich das denn einstellen/programmieren das ich genaue 1000hz als frequenz herausbekomme?
Gast
#2396868
Takt verfälschen (>16MHz) oder einen Timer nehmen wo du ein max. Zähler einstellen kannst... Meine das konnte der Timer 1 + 2 beim ATmega8 über das Register ICR1/ICR2.
Gast
#2396871
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.
marcel schrieb: > wie kann ich das denn einstellen/programmieren das ich genaue 1000hz als > frequenz herausbekomme? Oder einen 16-Bit-Timer nehmen.
Gast
#2405246
ja meine 16 bit timer sind alle schon belegt, hab nur noch 8bit timer und diese besitzen kein ICR :/
Gast
#2405253
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
#2405268
die PWM mit 1000hz hat eine andere Funktion als das blinken. also die PWM hat ihren eignen ausgang und das blinken ist für etwas anderes da.
Gast
#2405271
und ich benutze ein at90can128
Gast
#2405277
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.