Hallo! Ich hab da ein Problem mit meinem Programm: Ich schließe eine gewisse Frequenz am port 1.4 an und ich weiß nicht wie ich jetzt die frequenz ausrechnen soll und ausgeben soll! Das Ausgeben ist nicht das Problem sondern eher wie ich die Timer einsetzen soll?? Kann mir bitte jemand ein Programm schreiben das mir jede Positive Flanke erkennt und daraus die Frequenz berechnen kann? Ich suche schon seit 2 tagen die lösung, finde diese aber nicht! Habe auch keinen großen Spielraum, da das Programm am Donnerstag fertig sein muss! Darum bitte ich einen von euch mir das Programm zu schicken, es ist sehr wichtig! Die Mühe wird belohnt :)! Vielen dank im voraus
Wieso klingt das nach dem gleichen Problem, das zwei andere Leute hier im Forum haben? Vielleicht solltest du dich denen anschliessen. Und Programme, die man jemand anders zur Verfügung stellt, findet man in der Codesammlung.
Hallo Rahul! Davon weiß ich nichts, ich hab per Google diese Forum entdeckt und wollte gleich mein Problem reinschreiben! mfg michael
> Das Ausgeben ist nicht das Problem..
na dann kannst Du doch programmieren.......Wo ist das Problem mit den
Timern ?? Flanke abwarten, Timer Starten, bei nächster Flanke Timer
stoppen und Wert ausrechnen.
@ stephan henning Ja ich weiß nicht wie ich das programmiere mit den Timern!Für Profis wie euch ist das eine Arbeit von 5 Minuten!Kannst du mir bitte so ein kleines Programm schreiben? Vielen dank im voraus
stefan ned schimpfen, entweder helfen oder still sein. solche meldungen helfen bei dem erreichne des zieles nicht weiter.
(0) Nimm den Timer, schalte ihn auf konstanten Durchlauf. (1) Dann wartest du auf eine Flanke ("Liegt immer noch L-Pegel am Pin?") (2) Hat der Pin seinen Zustand geändert, speicherst du den momentanen Timer-Wert in einem (16Bit-)Register zwischen. (3)Dann wartet man, dass wieder L-Pegel am Pin anliegt. (4) beim nächsten Pegelwechsel (komplette Periode zuende) liest man wieder den Timer-Wert ein. (5) Jetzt subtrahiert man den ersten Wert vom zweiten undd hat damit die Periodendauer in Timer-Taktzyklen. Wie man von einer Periodendauer zur Frequenz kommt, wirst du wohl selber wissen. Zu diesem Thema empfiehlt sich auch die Lektüre des "Mikrocontroller Applikations-Kochbuch" (auch) von Andreas Roth.
moin moin, @michael, ohne Vorgaben ein Programm machen? Welche Programmiersprache? Lips, Forth, Pascal, Basic, C oder doch lieber Assembler? Selbst bei Bezahlung must Du so etwas wie ein Pflichtenheft erstellen. Über welchen Frequenzbereich soll denn gemessen werden? Wies geht hat Stephan schon geschrieben. Nun solltest Du auch was an Quelle schreiben. Mit Gruß Pieter
hallo Rahul! Kannst du mir das bitte programmieren? Ich hab keine Lektüten zu Hand und wenn ichs mir bestelle dauert es viel zu lange! Ich zahle was du willst, bitte schreib mir so ein Programm in 80c51 Befehlssprache! Vielen dank im voraus
@michael, das eigentliche Meßprogramm ist bestimmt nur 10 oder 20 Zeilen lang. Aber was willst du damit ??? Ist ja noch keine Anzeige bei, ..... die wolltest Du ja machen in 80c51 "Befehlssprache" !!!!! ...da hat wohl jemand keinen Bock auf Hausaufgaben........
@stephan Kannst du mir das Messprogramm schicken? Ich will später den Wert der Frequenz in verschiedene Bereiche unterordnen aber dass weiß ich schon wie ichs mache, ich brauche nur das Messprogramm, bitte
Du schreibst ...
> Ich hab da ein Problem mit meinem Programm:
Dann zeig doch mal was Du schon hast !!!!
Ich persönlich glaube Du hast keinen Schimmer und weist nicht mal wovon
wir reden..... siehe oben, Pflichtenheft !!!!!
So wird Dir hier wohl niemand helfen.
Du mußt Dich schon mal selber bemühen, dann wird Dir auch gehofen !!!
Also was Dein Programm schon hat, hier einstellen und dann sehen wir
@stephan Das Programm dass ich besitze ist für die Umwandlung von ascii in hex! Ich bemühe mich den ganzen tag wie ich die timer schreiben soll, aber ich komm nicht weiter! Kannst du es mir bitte schreiben? Wenn ich das Programm vor mir liegen habe, verstehe ich den ablauf und kann es für spätere Programme verwenden! Vielen Dank im voraus
moin moin, @Rahul, ungünstig programmiert, einfacher so: Timer als 16Bit auf 0 jb PortBit,$ ;warte auf LH-Flanke Start Timer jnb PortBit,$ ,warte auf HL-Flanke, ignorieren jb PortBit,$ ;warte auf LH-Flanke StopTimer Timer auslesen, bei 12MHz Takt ist der Wert ca. in Mikrosekunden Mit Gruß Pieter
@Pieter: Ich hab die Methode des Input-Capture des AVR gewählt... Es gibt ja nicht nur eine Lösung. ;)
@ Michael Vielleicht solltest du dir einfach mal ein Datenblett zur Hand nehmen, weil in denen ist das doch immer gut beschrieben. Frequenz+ evtl. teiler vom Timer einstellen und dann noch Wert vorladen und fertig. Also ich kenne den 8051 jetzt auch nicht, aber das sollte doch wirklich kein Problem sein. Du solltest dir einfach mal eine bessere Problemlösungsstrategie überlegen, als hier wild in Foren rumzuschreiben und die Leute zu nötigen, dir ein Programm zu schreiben. Später im Beruf fagst du dann auch die Leute, ob sie deine Arbeit machen ?!?!!?...
na Pieter, mal wieder als Samariter unterwegs ???? Nur gut die Displaysteuerung können wir uns sparen, er hat ja schon ne Wandlungsrutine von ASCI nach HEX !!!
@unfähig Du hast recht dass das später im beruf nicht die Lösung wäre aber irgendwann braucht jeder einmal Hilfe und die benötige ich von den Leuten im Forum die sich wirklich auskennen!Ich brauche nur das Messprogramm! vielen dank im voraus
Hi Stepan, bin grade dabei einen MB90F497 mit meinem! Prog zum Firmwaredownload zu überreden, will noch nicht so. Hast Du mal mein MultiBord angesehen? Mit Gruß Pieter
> irgendwann braucht jeder einmal Hilfe
Schon richtig.
Aber eine Input-Capture ist mit Hilfe des Datenblattes
sowas von trivial aufzusetzen, dass es schon fast
weh tut.
@karl heinz dann zeig mir dass bitte wies geht, ich komm nicht weiter!ich will von negativer bis negativer flanke messen und den wert in einen speicher schreiben! vielen dank im voraus
Du hast die 2 Jahre Lieferzeit übersehen... In der Zeit, wo du hier rumjammerst (weil dir der Ars** auf Grundeis geht), hättest du schon längst die anderen 3-4 Threads zu dem Thema dir angucken können. Da sind diverse Lösungsvorschläge gemacht worden.
Ich hab auch ein Problem: Ich hab hier eine Kuh und ich möchte der gerne Schwimmen beibringen, aber bekanntermaßen haben die keinen Schließmuskel. Kann mir einer mal ein Beispielprogramm schicken wie ich die restlichen Muskeln so ansteuern kann, dass mir die Kuh nicht absäuft ?? Danke
Wieso habe ich nur das Gefühl, dass Ihr drei irgendwas gemeinsam habt: http://www.mikrocontroller.net/forum/read-1-354833.html#new http://www.mikrocontroller.net/forum/read-1-355510.html#new http://www.mikrocontroller.net/forum/read-1-355495.html#new
Zeig mal was du von der Schaltung schon hast(als GIF oder PDF) wäre vielleicht hilfreich bei der Programmierung
@wolfram dies soll die schaltung sein die ich entwickeln will, aber ich brauche zuerst die frequenzwerte die ich messen soll!
Na ja. Da kann dir hier aber keiner helfen. Den abzudeckenden Frequenzbereich musst du schon selbst wissen.
ja den bereich weiß ich ja nur muss ich die zeiten vom timer messen und ich weiß nicht wie das geht
300Hz bis 200kHz Wenn man davon den Kehrwert bildet, hat man die Timer-Zeiten (in diesem Fall ist 300Hz wohl ausschlaggebend). Wenn man eine Tor-Zeit von 10ms benutzen würde, könnte man einfach die Impulse während dieser Torzeit messen (Timer als Counter...). Dann hätte man auch fast gleich die Frequenz (etwas rechnen wird man da noch müssen). Man hätte dann zwischen 3 und 2000 Impulse...
@ rahul ich hab jetzt ein programm geschrieben dass mir die periodendauer indirekt ausgibt. der wert wird in hex ausgegeben.ich hab auch bemerkt dass ich nur bis 100khz reinschicken kann da mein prozessor nicht schnell genug die werte bearbeiten kann, der fehler wird umso größer je höher die frequenz ist die ich an port 1.4 reinschicke ist. wie mach ich das jetzt mit der frequenz? frequenz = Periodendauer aber wie mach ich das im programm?
wenn du sooo ganz zufällig auf diese seite gestoßen bist und herrn wolfgang scheibbs gar nicht kennst, woher kommt dann die tatsache dass ihr die ein und die selbe ip-adresse habt? so ein zufall dass ihr den selben pc für das wirklich sehr kriminell ähnliche problem benützt;-)!?? bitte klär uns an diese stellt doch mal auf. und ehrlich gesagt glaube ich kaum dass du das programm was du in deinem letzten posting beschreibst selber geschrieben hast, ich hab nämlich dass gefühl dass du nicht mal weißt wieviele timer der 8052 hat und redest von timern?...sag mir doch bitte mal welche register indirekt und welche direkt adresierbar sind;), bitte sag mir das und blamier mich dann helf ich dir weiter, versprochen. ps.wie alt bist du?
@michael berger nimm statt den P1.4 Einen Interrupt INT0 oder INT1 dann gehts auch bis ca. 3 kHz. mit einem extra controller sogar bis 21 kHz.
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.