Forum: Mikrocontroller und Digitale Elektronik Frequenzmessung


von Ferhat Incal (Gast)


Lesenswert?

Wie kann ich die Frequenz einer PWM (%50) duty cyle) Signal messen.Die 
Messung muss 100 mal pro sekunde erneut erfolgen.

Mehr ueber die ANwendung:

Die Ausgangspannung eines wechselrichters wird durch v/f converter durch 
einen optokoppler zur Mc seite transferriert.
DIe Mc muss die frequenz wieder ins Spannung Umwandeln (aber nur rein 
digital) eine f/v converter ist aus EMI gruenden nicht zulaessig.

Eine Loesung waere je 1 ms ein Interrupt aufrufen und den counterinhalt 
lesen und der abgelesene Zahl normieren.

Nur wie kann ich z.B 30 Khz Pulse zaehlen. Wieder durch einen Interrupt 
oder kann man das bei AVR (wie be PWM) automatisch einstellen?


Mfg.

Ferhat.

e9326570@stud4.tuwien.ac.at

von Andreas (Gast)


Lesenswert?

Hallo,

man kann bei den Timern des AVRs als Taktquelle statt dem Oszillatortakt 
einen externen Takt einstellen (siehe Datenblatt). Dann kannst du 
einfach die Zeit bis zum Timer-Überlauf messen oder warten bis eine 
bestimmte Zeit um ist und dann den Zählerstand auslesen. Wenn die 
Frequenz dafür zu hoch ist, vorher extern runterteilen, z.B. mit 
74HC4040.

MfG
Andreas

von Ferhat Incal (Gast)


Lesenswert?

Danke fuer den Hinweiss.

Ich verwende insgesamt 2 PWM quellen (das heisst 2 Timer) fuer die 
Steuerung der Halbbruecke. Habe ich eigentlich noch ein Timer3 zur 
Verfuegung bei 8515 oder 8535?

Ich habe mich sehr an die Timerknappheit des 8051 gewohnt.Bei AVR hat 
man wahrscheinlich die Luxus


Mfg.

von Andreas (Gast)


Lesenswert?

Hallo,

für die 2 PWMs reicht der Timer 1 (16bit, hat 2 Compare-Register), Timer 
0 (8bit) ist dann noch frei.

MfG
Andreas

von Markus B (Gast)


Lesenswert?

Ne, leider nicht. Der 8515 hat glaube ich nur einen 8 Bit und einen 16 
Bit Timer. Über dieses Problem stoße ich auch immer wieder.
Aber Du kannst auch die externen Interrupteingänge verwenden. Davon gibt 
es zwei.
Schreib einfach eine kleine Interruptfunktion für jeden Eingang in der 
Du einen Zähler hochzählst. Über einen Timer erzeugst Du einen 
regelmäßigen Interrupt bei dem Du den Zählerstand abfragst und 
umrechnest.

Gruß
Markus

von Andreas (Gast)


Lesenswert?

Die beiden Timer reichen doch, einer für die PWMs und einer als Counter.

MfG
Andreas

von Ferhat Incal (Gast)


Lesenswert?

Gerade Datenblatt angeschaut.

8515 enthaelt

1 8 bit Timer

1 16 bit Timer mit DUAL 8 oder 9 oder 10 bit PWM. DIe Bezeichnung DUAL 
gibt die Hoffnung dass es dann wirklich ueber compare registern 
realisierbar sind.
Nur bei 8535 ist das selbe Ausdruck DUAL PWM vorhanden nur Atmel gib vor 
dass der 3 PWM hat. Ich bin bischen verwirrt weil es gibt bei 8535 zwei 
zusaetzliche 8 bit Timer aber ohne PWM fuktion (Also keine capture 
compare registern)

Also ich probiere es mal.Wenn es nicht geht sollte man die brutale 
methode verwenden. Wie gesagt in der Interruptroutine zaehlen.


Ferhat.

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.