PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zeiten mit ATMega32 messen



ach-feld
25.11.2005, 16:20
hallo zusammen,

ich habe folgendes problem:
ich möchte mit meinem atmega32 (12Mhz) ultraschallfrequenzen (ca. 45kHz) bestimmen. dazu habe ich mir überlegt, dass ich an einen digitalen port den ultraschallempfänger anschließe und die zeit zwischen zwei high-signalen messe. so bekomme ich dann ja T und dadurch auch die frequenz heraus.

jetzt würde ich gerne wissen, wie ich die zeit messen kann. habe schon viele sachen über timer gelesen, aber nichts speziell in dieser richtung. außerdem bin ich mir nicht so sicher, ob ich das mit den timern auch alles verstanden habe *g*

wäre nett, wenn ihr mir dazu einen beispielcode posten könnt (am besten mit kommentaren). und was haltet ihr überhaupt von meinen überlegungen? ist das ganze so realisierbar?

gruß

ach-feld

ach-feld
25.11.2005, 20:08
hallo nochmal.

habe ich mich zu unverständlich ausgedrückt oder kann mir hierbei keiner helfen? wäre wirklich nett, wenn ihr mir noch ein bisschen auf die sprünge helfen könntet.

schon mal danke im vorraus...

foxi_the_daywalker
26.11.2005, 12:29
Hmm, ich versuch es mal informal.

Punkt 1. Ich würde es in ASM machen.

Also du richtest einen Timer ein der von 0-128 zählt und dann einen Interrupt auslöst. Dort fragst du den Pin ab.
Beim ersten mal Zähler=0
Wenn Pin=0 , dann Zähler=Zähler +1
Wenn Pin=1, dann geben Zähler aus.(Zwischendurch muss Pin=0 gewesen sein)

So könntest du die Zeit zwischen den Highpegeln zählen, denke ich.

Vielleicht hilft es dir.

Bis denn
Foxi

ach-feld
26.11.2005, 13:28
so hatte ich mir das auch gedacht. jedoch programmiere ich immer in c und ich habe keine ahnung, wie ich das realisieren soll.

wäre also nett, wenn mir jemand einen codeschnipsel geben könnte, der genau das ausführt.

svr_fan
11.12.2005, 18:38
probiers mal mit den input capture mode, damit bist du am genauesten