Gast
#413126
Da alle Resourcen meines LPC2148 was Timer angeht verbraucht waren, ich aber noch die Zeit zwischen zwei Ereignissen im Sekundenbereich mit einer Auflösung von 10 oder besser 1 ms benötigte, habe ich versucht das mit der RTC zu lösen. Dabei müssen aber die Überläufe der Zähler richtig behandelt werden um Zeitsprünge zu vermeiden. Falls jemand das auch gebrauchen kann, hier ein Testprogram dazu mit meinem Lösungsversuch. Test Bedingungen: Zeit zwischen zwei steigenden Flanken eines async. 1 KHz Signals sollten mittels RTC CTIME0 and CTCR Register ermittelt werden. 1KHz Signal verbunden mit INT2 eines LPC2148 (60 MHz). Die RTC läuft mit einem 32 KHz Uhrenquarz. Ergebnis: Genauigkeit scheint bessser als 30 us zwischen zwei Flanken zu sein. Habe keine größeren Zeitsprünge gesehen. CTCR scheint mit 64 KHz zu laufen (?). Die ISR für eine Zeitdifferenz von bis zu 59 Sekunden und die mit Auswertung ist im anhängendem Screen-shot zu finden. Sie braucht ca. 17 us zur Ermittlung der Zeitdifferenz. Voraussetzung ist jedoch, dass das Auslesen von CTCR und zweimal CTIME0 nicht unterbrochen wird! Es ist nur ein Beispiel und Test. Ich nicht sicher bin, ob alle Überläufe schon richtig behandelt werden. Also alles Ohne Gewähr!!
