mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik frequenz berechen (in pascal)


Autor: Hannes F. (pfannkuchen2001)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte die frequenz berechnen, die an einem mega8 an BD2 anliegt 
messen.

machen kann ich das ja irgendwie so:
 wenn hohe flanke dann
   starte timer
      wenn nächste hohe flanke dann
         lies timer

wie kann ich das in pascal umsetzen?
die kurve die da anliegt, ist keine rechteckkurve, sondern eine 
sinuskurve von 0 - 5V; das sollte als auch funktionieren.


Hannes

Autor: JensG (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also wie das in Pascal auszusehen hat, kann ich nicht (mehr) sagen - 
aber wenn es eine Sinuskurve ist, würde ich daraus erstmal ein Rechteck 
machen. Also Trigger noch mit reinhängen. Wenn der mega8 an dem Port 
einen Trigger hat, dann nimm den.

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde PortD so programmieren, das steigende Flanken einen Interrupt 
auslösen und dann einfach nur zählen, wieviele steigende flanken es pro 
Sekunde gibt.

Autor: Michael Wilhelm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
BD2? Nicht Port D2? Wenn das Layout noch nicht vorgegeben ist, nimm den 
Port B0 als Input Capture Unit. Der ist für solche Sachen beser. Und von 
Pascal hab ich keine Ahnung. Wenn hier im Forum keiner helfen kann, 
versuch es bei e-lab.de
die vertreiben eine Pascal IDE

MW

Autor: Hannes F. (pfannkuchen2001)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Niels Hüsken wrote:
> Ich würde PortD so programmieren, das steigende Flanken einen Interrupt
> auslösen und dann einfach nur zählen, wieviele steigende flanken es pro
> Sekunde gibt.

hmm ja aber genau das ist ja mein problem: wie kann ich das 
programmieren, das NUR steigende flanken so einen interrupt auslösen?

leider ist mir die messung pro sekunde zu langsam. desswegen würde ich 
lieber   die zeit messen, die zum beispiel 5 oder 10 steigende flanken 
brauchen. und daraus die frequenz errechen.

nur hab ich praktisch keine ahnung, wie ich so einen interrupt auslöse, 
oder wie ich so einen timer initialisiere....


Hannes

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hannes F. wrote:
> hmm ja aber genau das ist ja mein problem: wie kann ich das
> programmieren, das NUR steigende flanken so einen interrupt auslösen?

Das findest du im Datenblatt des mega8 ganz gut beschrieben....

> leider ist mir die messung pro sekunde zu langsam. desswegen würde ich
> lieber   die zeit messen, die zum beispiel 5 oder 10 steigende flanken
> brauchen. und daraus die frequenz errechen.

Wenn die eine Sekunde zu lang ist, mach sie kürzer z.B. um die hälfte 
und verdoppel einfach das ergebnis...

> nur hab ich praktisch keine ahnung, wie ich so einen interrupt auslöse,
> oder wie ich so einen timer initialisiere....

Dafür haben wir hier diese wunderbaren tutorials. Learning while doing 
ist eh besser als alles vorgekaut zu bekommen, denke ich.

Autor: Hannes F. (pfannkuchen2001)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Dafür haben wir hier diese wunderbaren tutorials. Learning while doing
> ist eh besser als alles vorgekaut zu bekommen, denke ich.

hmm leider gibt es keine wunderbaren tutorials die das ganze unter 
pascal beschreiben.

> BD2? Nicht Port D2? Wenn das Layout noch nicht vorgegeben ist, nimm den
> Port B0 als Input Capture Unit. Der ist für solche Sachen beser.

das hilft mir nicht soo viel weiter ;) warum ist der besser?

> Das findest du im Datenblatt des mega8 ganz gut beschrieben....

hmm davon hab ich noch nichts gelesen, aber mein englisch ist auch 
dermaßen schlecht, das ich es warscheinlich einfach überlesen habe...


> Wenn die eine Sekunde zu lang ist, mach sie kürzer z.B. um die hälfte
> und verdoppel einfach das ergebnis...

ok, wenn ich sie vierteile, dann wird das vielleicht was...

gibt es eigentlich überhaupt leute hier im Forum, die pascal 
programmieren?

Hannes

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hannes F. wrote:
> hmm leider gibt es keine wunderbaren tutorials die das ganze unter
> pascal beschreiben.

Ich kann kein Pascal schreiben; aber ich kanns trozdem lesen. Meiner 
Meinung nach sind die syntaktischen Unterschiede zwischen C und Pascal 
nicht wirklich gravierend.

>> BD2? Nicht Port D2? Wenn das Layout noch nicht vorgegeben ist, nimm den
>> Port B0 als Input Capture Unit. Der ist für solche Sachen beser.
>
> das hilft mir nicht soo viel weiter ;) warum ist der besser?

Gemeint ist, das BD2 kein Inputcapturing (so heisst die technik, die aus 
Flanken Interrupts macht) kann. Daher eignent sich PB0 besser.

> hmm davon hab ich noch nichts gelesen, aber mein englisch ist auch
> dermaßen schlecht, das ich es warscheinlich einfach überlesen habe...

Dann müsste jetzt deine Frage also lauten:

"Wer sucht mir mal die Seite aus dem ATmega8-Doku raus, auf der das 
Thema "Inputcapturing" beschrieben ist."

> gibt es eigentlich überhaupt leute hier im Forum, die pascal
> programmieren?

Ehrlich gesagt habe ich hier noch keine gesehen. Ich würde ohnehin 
jedem, der sich mit uCs beschäftigen will, sich mit C auseinander zu 
setzen. Das C sich in diesem Bereich durchgesetzt hat, hat Gründe.

In deinem Falle denke ich ist der Aufwand ziemlich gering. Wie ich 
eingangs schon erwähnte: so gross ist der Unterschied zwischen Pascal 
und C nicht.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.