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
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.
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.
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
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
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.
> 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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.