Hi, nun sitze ich schon den ganzen Tag und bekomms einfach nicht hin.. :( Zuerst wollt ichs mit nem Counter einfach über nen IO pin messen, dann hab ich bemerkt das das Signal nur 3V hat.. (Bei 5V Betriebsspannung des AVR's wird der High wert ja erst bei 3,5V erreicht) Nach vielen weiteren versuchen in der richtung landete ich beim ADC, weil's da ja egal is wie viel Spg. am Signal anliegt :D Bring ich grad aber auch nicht hin.. :( Jetzt würd ich von euch gerne wissen welche möglichkeiten sich da noch bieten würden.. ohne viel elektronik, in nem Servo geht das Signalkabel ja auch meist nur durch nen Wdst. und dann dierekt in nen Controller.. :P Was gäbs denn da für möglichkeiten? Hab mal was von Input Capturing gehört..? Oder werden da wieder spannungen in 5V gegend benötigt? Wenn ihr also nen Code oder ein beispiel übrig hättet wär ich euch sehr dankbar.. ;)
Tipp: Nimm nen einfachen NPN-Transistor und verpass dem an der Basis das Signal, der erkennt ab ~ 1V sicher ein "High" und zieht dann seinen Kolektor (und den daran angeschlossenen Pin) auf low -> fertig is die Laube. Zur Abtastung: 1. Möglichkeit: Quick & Dirty Timerinterrupt mit ~10 kHz in der routine den Pin einlesen und was hochzählen wenn das Signal dann zu Ende ist wird der Wet ins Hauptproggi geschoben (per globaler Variable). (in den int kann man dann glei mehrere Signale abtasten, oder noch ein paar taster abfragen... 2. Möglichkeit: lies dir das dbl. zum input capture durch und dreh da dann was (hab grad nich das vom tiny da...)... PS: normalerweise erkennt ein avr an 5V aber ab ~ 2,7 V sicher high...
Mach doch RC und dann ADC, oder ist dir das nicht genau genug? Ansonsten, nimm einen normalen rising-edge Interrupt und setze in diesem die Taktquelle eines Timers. Dann im falling-edge Interrupt die Taktquelle wieder auf 0 setzen. Nun einfach das Timerregister auslesen und mal die Frequenz nehmen. Schon ist die Zeit da. Mit freundlichen Grüßen, Valentin Buck
Die 3,5V bei High hab ich aus'n Tutorial hier, häng ich für die Active High aber den PullDown Wdst dran sinkt die Signal Spg. weit ab komischwerweise beim Transistor auch.. was vlt. egal wär aber bei nem servo sinkt die Spg. bloß um 0,05-0,1V, so zusagen also garnicht.. Daher leg ich viel wert drauf meinen empfänger nicht zu killen :D
Unkrautmonster schrieb: > Die 3,5V bei High hab ich aus'n Tutorial hier, häng ich für die Active > High aber den PullDown Wdst dran sinkt die Signal Spg. weit ab > komischwerweise beim Transistor auch.. was vlt. egal wär aber bei nem > servo sinkt die Spg. bloß um 0,05-0,1V, so zusagen also garnicht.. > > Daher leg ich viel wert drauf meinen empfänger nicht zu killen :D Aus welchem Tut. hast du du denn d. Ang. mit d. 3,5V? U. Wozu hängst du d. Pulldown dran? Hast du mal n Schaltpl. f. uns, dmt. w. u. e. Bld. mchn. knn.? Und hör auf damit, jeden Quatsch abkürzen zu wollen!!! Gruß, Magnetus
Ja moment das mit dem Pulldown Widerstand versteh ich grad auch nicht mehr, war wohl ne reine verzweiflungs sache, denn der Empfänger gibt ja sowieso neben den 3V auch die 0V aus.. :P War'n hilfloser verbesserungs versuch peinlich xD Das mit den 3,5V hab ich von hier: http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Eing.C3.A4nge_.28Wie_kommen_Signale_in_den_.C2.B5C.29
Einen Tag nach meinem Blackout hab ich's nun geschafft, und nebenbei gelernt mit Interrupts zu arbeiten :D Trotzdem Danke an euch ;)
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.