[Cortex M3] Flankenzähler zählt keine Flanken

OP #2743333
Lesenswert?
• ▲
▼
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
Angehängte Dateien:
OP #2751204
Lesenswert?
• ▲
▼
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.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.