Forum: Mikrocontroller und Digitale Elektronik Wie lese ich eine Frequenz beim Atmel mega32 ein?


von Katrin Pausi (Gast)


Lesenswert?

Hallo Leute!

Bei unsere Diplomarbeit haben wir folgendes Problem. Wir wissen nicht,
wie wir eine Frequenz beim Atmel mega32 einlesen sollen. Wir haben
bisher nur geschafft,dass wir einen Port auf 5V legen. Nun stellt sich
die Frage, wie wir dieses Problem bewältigen sollen, da wir im Internet
leider nichts passendes dazu finden. Wir programmieren in C und leider
finden wir nur Bsp. für Assembler, die uns auch nicht weiter helfen.


Die Frequenz liegt im Bereich 0-120 kHz!

Hoff, uns kann jemand weiter helfen! Wäre toll!

mfg
Kati

von Michael Wilhelm (Gast)


Lesenswert?

Das wird am einfachsten über den ICP (Input Capture) gemacht. Wenn der
Timer 1 richtig initalisiert wird, passiert folgendes: der Inhalt der
Timerregister (High und Lowbyte) landen in den Capture-Registern. Ein
Interrupt wird ausgelöst, und dann kann man anhand des
Oszillatortaktes, des Timervorteilers und (Mapfile) die Verweilzeit
bzw. Ein- und Aussprung der Interruptroutine die Frequenz errechnen.
Bei 0-120 KHz muß evtl. auch noch der Timerüberlauf abgefragt werden.
So in etwa geht's.
MW

von Michael (Gast)


Lesenswert?

Daß Du nichts gefunden hast überrascht mich. Es gibt mehrere Lösungen,
hier ein Link:

http://www.mino-elektronik.de/fmeter/fm_software.htm

von Katrin Pausi (Gast)


Lesenswert?

Danke für die Hilfe, aber wir haben nur einen ICP Port und wir müssen
aber 3 Frequenzen einlesen!

mfg kati

von Michael Wilhelm (Gast)


Lesenswert?

Die Hilfen können nur so gut sein wie die Beschreibungen!!!
MW

von Katrin Pausi (Gast)


Lesenswert?

Und das Programm ist leider nicht für AVR, so wie bei dem Link! Würd das
aber gehn, wenn wir 3 Frequenzen haben, dass wir 2 über Timer1/ Timer0
einlesen und einen über ICP?

Mfg

von Rahul (Gast)


Lesenswert?

Wie ist so ein oszillierendes Signal aufgebaut?
Es besitzt eine fallende und eine steigende Flanke, die sich
abwechseln. Bei der nächsten Flanke kommt schon die nächste Periode.
Also kann man zwischen 2 Flanken die Periodendauer messen.
Dann bildet man den Kehrwert, und erhält die Frequenz.
Problematisch sind da nur die niedrigen Frequenzen. (Wie will man 1Hz
oder 0,00001Hz messen?)


(Bei uns war das Stoff Anfang Hauptstudium bei den Maschinbauern und
Freinwerktechnik/Mechatronikern im Elektronik-Labor...)

von Rahul (Gast)


Lesenswert?

man könnte auch einen Frequenzzähler (Rohde&Schwarz bspw.) an die
serielle Schnittstelle anschliessen und ihn über diese steuern...

von Michael (Gast)


Lesenswert?

""Und das Programm ist leider nicht für AVR, so wie bei dem Link!

Ist der Mega32 kein AVR ? Es tut mir leid, aber wenn Dir der Link nicht
hilft, wird es wohl auch kein anderer schaffen.

von Katrin Pausi (Gast)


Lesenswert?

An michael:
Wieso bist du so unfreundlich? Es ist nur für den AT90S2313 und nicht
für einen mega32 und da wir uns damit noch nicht so gut auskennen,
müssen wir erst selber mal schaun, wie wir das Problem am besten lösen.
Außerdem ist es nicht einfach ein fertig programmiertes Programm zu
lesen. Wir studieren eh schon seit stunden das Datenblatt über Timer.

von Michael (Gast)


Lesenswert?

Gut, vielleicht bin ich unfreundlich.
Aber mehr, als die C-Quelle für einen AVR - ob 2313 oder Mega32 -
angeliefert zu bekommen, kannst Du nicht erwarten. Und bei der
Erledigung von 'Hausarbeiten' wird Dir hier vermutlich nicht viel
Entgegenkommen gezeigt. Aber ich lasse mich auch vom Gegenteil
überzeugen.

von Katrin (Gast)


Lesenswert?

hallo, aber das ist keine hausaufgabe. nur weil du vl meinst, dass du
dich da so super toll auskennst, freut mich das für dich. aber es kein
grund mich vl zu beschimpfen. es gibt nun mal leute die sich nicht so
gut auskennen, aber damit wirst du wohl oder übel leben müssen.
aber wir werden das auch ohne deine hilfe schaffen. vl nicht heute,
aber dann halt nächste woche. so blöd ist mein diplomarbeitsgruppe auch
nicht!

von Tobi (Gast)


Lesenswert?

müsst ihr das ganze in software lösen oder ist auch weitere externe
hardware erlaubt?

von Katrin (Gast)


Lesenswert?

ist eigentlich recht egal wie wir dies lösen.

von Tobi (Gast)


Lesenswert?

dann schau dir mal das an. durch erweiterung sollten sich da locker 3
frequenzen messen lassen (über enable leitungen umschalten)

http://www.myplace.nu/avr/countermeasures/index.htm

von Katrin (Gast)


Lesenswert?

Danke, könnte mir weiter helfen ;-)

von peter dannegger (Gast)


Lesenswert?

"Die Frequenz liegt im Bereich 0-120 kHz!"


Das geht schonmal garnicht !

Für 0Hz must Du nämlich unendlich lange messen.

Gib also irgendwas realistisches an.

Und dann sag erstmal, wie schnell die Messungen sein müssen und wie
genau (in % und in Digits).

Dann erst kann man überlegen, wie es gemacht werden könnte.


Für die C-Programmierung ist allerdings besser ein ATMega8 zu
empfehlen, da ein ATTiny2313 recht schnell am Anschlag ist (nur 1024
Befehle).


Peter

von Katrin (Gast)


Lesenswert?

okay, i muss korrigieren. die frequenz liegt zwischen 50-120khz!
der abstand der messung sollte sekunden genau sein.
aber wir haben schon eine lösung für unser problem. danke trotzdem!

von peter dannegger (Gast)


Lesenswert?

Also 50kHz ist ja doch schon sehr weit weg von 0Hz.


Trotzdem ist noch die nötige Genauigkeit wichtig, um die Software
überhaupt anfangen zu können.

Es ist schon ein  erheblicher Unterschied, ob 120,0000kHz von
120,0001kHz unterschieden werden sollen oder nur, obs 50 oder 120kHz
sind.


Die Lösung ist umso einfacher, je besser man überhaupt erstmal die
Aufgabe definiert.


Peter

von luchs (Gast)


Lesenswert?

meine meinung

die fragensteller haben sich noch keinen kopf gemacht, weil mehrere
crossposting mit dem selben thema aufgekommen sind soetwas macht man
nicht.

diplom hiest in unseren breitengraden  leistung pro zeiteinheit
deswegen auch eine zeitbegrenzung

und gennerell gilt  studium (lat.) sich bemühen   und nicht wie manager
andere bemühen

nimms nicht für ungut aber neeneeee

mfg

toni

von Benedikt (Gast)


Lesenswert?

Ja, und dann fragt sie sich, wiso sie in allen Foren in denen sie
gepostet hat so "unfreundlich" wie sie es selber nennt, behandelt
wird...

von werner Hoch (Gast)


Lesenswert?

Der Analog-Comparator des ATmega32 kann auch als Quelle für den Timer
dienen.
Als Eingänge für den Analog-Comparator können neben den 2 normalen
Analogcomparatoreingängen auch alle Analogports verwendet werden.

Mit einem ATmega können also ohne Zusatzbeschaltung 9 Frequenzen
gemessen werden.

obiges ist aus meiner Erinnerung also bitte alles nochmal selbst im
Datenblatt nachlesen.

MfG Werner

von Katrin (Gast)


Lesenswert?

Danke für deine Hilfe! werd den vorschlag weiter leiten. bin heut zu
einem anderen themenbereich eingeteilt worden. also liegt das einlesen
der frequenz nicht mehr in meinem bereich.

mfg
kati

von Dominik (Gast)


Lesenswert?

@ Benedikt & luchs
ihr brauchts net blöd mauln, wenn ihr schon so net fähig seid zu
helfen. aufspielen allein bringt euch nix. würd mi da eher saublöd
vorkommen!aber i find euch beide nur zum auslachen!

von Peter D. (peda)


Lesenswert?

"...wenn ihr schon so net fähig seid zu helfen."

die sind schon fähig zu helfen, aber eben nicht fähig in Deinen Kopf zu
schauen !!!

Wer nicht weiß, daß man 0Hz nicht messen kann und daß es einen großen
Unterschied macht, ob man 50Hz oder 50kHz messen muß, der sollte nicht
andere auslachen sondern sich schämen, weil er bisher alle Vorlesungen
völlig umsonst besucht hat.


Und über die benötigte Genauigkeit weiß hier immer noch keiner
Bescheid.

Dir würde man warscheinlich eine Personenwaage andrehen können, die auf
0,001g genau ist (kostet eben nur schlappe 10.000€) und ein
Fieberthermometer, welches auf 10°C genau ist.

Genauigkeitsbetrachtungen gehören zu den absoluten Grundlagen jeglicher
Messung.


Peter

von luchs (Gast)


Lesenswert?

ahja

also meiner einer hat sehr zügig in dem anderen forum geantwortet dort
is dann blos nie was zurückgekommen und was hats gebracht eine
beschöftigung von völkerstämmen  alles nur heise luft weils jemand
nicht erwarten kann   das ist nett gesagt   absolute scheiße
 viele arbeiten nebenbei und wollen helfen und machen das auch
zudem wurden nur halbfertige aufgabenstellungen angeben was es nicht
leichter macht.
und mein eindruck bleibt bestehen, das die hier ohne große vorbereitung
gefragt haben und das sollte zu erwarten sein.
oder wieso weiß man den sonst nicht das ein mega ... zur avr typenreihe
gehört
steht doch ganz oben im datenblatt ..... .

so und wer von uns beiden hat jetzt blöd gemault ??

von Werner Hoch (Gast)


Lesenswert?

Ich hab mich verzählt.
Neben den 8 Analog-Eingängen und dem Analog-Comparator kann immer noch
der ICP-Pin verwendet werden.
Insgesamt also 10 Pins und nicht 9.
MfG Werner

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.