Hi Ich habe bei einer recht banalen Aufgabe ein großes Problem. Ich möchte mit den Zählern eines Cortex (genauer dem LM3S9b92 Eval Kit) die Frequenz eines rechteckigen Eingangssignals messen. Nehme ich den Timer0 der so konfiguriert werden kann, dass man seine internen TimerA und B als seperate 16 Bit Timer/Counter nutzen kann. So habe ich den Timer0A so konfiguriert, dass er mir nach 100 ms einen Interrupt erzeugt (ich weiß, ich könnte auch den SysTickTimer nehmen) und der Timer0B soll im "edge count mode", aufwärtszählend, die Flanken des Eingangssignals zählen. Die 100 ms sind kein Problem und der Timer läuft gut. Auch in die ISR wird richtig gesprungen. Aber die Flankenzählung erzeugt nur schwachsinn. Im Timer0B Register steht nur schwachsinn drin, egal, wie ich die Messzeit variiere. Das Messignal, mit einem Oszi nachgemessen, ist ein sauberes Rechtecksignal mit 0V für low und 3,3V für high. Der Cortex wird mit 80 MHz betrieben. Der Zähler hat einen Prescaler von 128, wird vorgeladen mit einem Wert von 62500 und zählt dann runter. Das Eingangssignal liegt bei ca. 2,5kHz, sollte also kein Problem sein, ein Wert um 250 Flanken sollten zählbar sein. Damit sind als Überläufe ausgeschlossen. Ich bin so langsam mit meinem Latein am Ende, woran es liegen könnte. Ich habe auch schon den Timer1 Block genommen, das Problem ist aber das gleiche. Hätte vielleicht jemand eine Idee? Meinen bisherigen Code habe ich mal angehängt. Er ist aus meinem bisherigen Projekt herauskopiert, als bitte nicht meckern, wenn da was unschön aussieht ;-) Vielen Dank schon mal
Sollte jemand ein ähnliches Problem haben... 1. kann der Zähler im Edge Count Modus nur abwärtszählen und 2. muss dann ein Matchvalue vorgegeben werden. Im Normalfall wäre der Startwert bei dem 16 Bit Timer dann bei 0xFFFF und der Matchvalue bei 0x0000.
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.