Pulsmessung Kategorie: Verschiedenes (von P_St - 8.03.2012 14:00) | ||
| ||
Liebes Forum Hab da folgende Mega128 Anwendung. Es werden verschiedene Sensoren mit max. möglicher Durchlaufzeit in einer Endlosschleife gemessen und ausgegeben. Klappt alles wunderbar. Komme in Sume auf eine MeĂ?frequenz von ca. 150Hz, bin sehr zufrieden da ich ca. 20Hz anstreben wĂĽrde. Jetzt hab ich da einen weiteren Sensor der mir Pulse von 8msec-4sec! liefert und deren Periodendauer wĂĽrde ich gerne mit einem Timer möglichst genau bestimmen. Kann aber nicht einfach im Extremfall meine anderen Messungen mal bis zu 4sec anhalten. Also muĂ? diese Messung im Hintergrund laufen. Hab also mal Pulsgenerator als Simulation einer Referenz gebastelt und los gings: 1.) Lösungsansatz Mit Timer_T1PM(1,PS_1024) auf die positive Flanke triggern und mit PM_Wert=Timer_T1GetPM() bei jeder Schleife PM_Wert einlesen und wenn PM_Wert >0 Pulsdauer verarbeiten. Klappt wunderbar, läuft im Hintergrund und liefert die volle 16Bit Genauigkeit fĂĽr die Pulszeit. Aber sobald ich einen Wert ge- lesen habe muĂ? ich ja leider wieder mit Timer_T1PM(1,PS_1024) starten und da ist die nächste Messung dann MĂĽll (Startverzögerung?) . AuĂ?erdem verliere ich glaub ich den nächsten Puls da die Funktion ja wieder erst wieder auf eine steigende Flanke triggern muĂ?. Das kann ich mir aber bei teilweise eh schon 4sec MeĂ?zeit nicht leisten da gleich 1-2 Pulse zu â??verlierenâ??. Frage: Gibt es irgendeine Chance das man die Funktion Timer_T1PM(1,PS_1024) irgendwie "manual zurĂĽcksetzen" kann (wenn man mit PM_Wert>0 erfolgreich einen Wert ermittelt hat) um gleich wieder auf die nächste Flanke warten zu können (und nicht Pulse zu verlieren bzw. falsche Ergenisse zu prod.)? 2.) Lösungsansatz Mit Timer2 (10ms Timer im Hintergrund) die Zeit zwischen den Pulsen messen. Exterenen Interrupt auf steigende Flanke getriggert in Funktion schicken und dort Timer_TickCount() starten. Bei der nächsten positiven Flanke wird wieder in den interrupt gesprungen, die Ticks ausgelesen und der Tick counter neu gestartet. Super elegant und klappt wieder alles super bei den langen Pulsen. Aber mit einem â??10ms Pulsâ?? Pulsweiten von 8msec zu messen geht natĂĽrlich nicht :-) und da hakts schon wieder. Frage: Kann man diesen Timer2 irgendwie dazu bringen mit 1ms Tackt zu laufen? Oder seht ihr irgend eine andere Möglichkeit bzw. könnt ihr mir weiterhelfen? Vielen, vielen Dank und schöne GrĂĽĂ?e P_ST | ||
Antwort schreiben Antworten: Re: Pulsmessung (von Torsten - 9.03.2012 17:08) Re: Pulsmessung (von P_ST - 14.03.2012 1:03) Re: Pulsmessung (von Torsten - 14.03.2012 20:10) Re: Pulsmessung (von P_ST - 22.03.2012 22:15) Re: Pulsmessung (von PepeV - 16.03.2012 15:54) Re: Pulsmessung (von P_ST - 22.03.2012 22:23) Re: Pulsmessung (von PepeV - 22.03.2012 22:52) Re: Pulsmessung (von mat - 22.03.2012 22:31) Re: Pulsmessung (von mat - 22.03.2012 23:24) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum