www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Input Capture


Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich bin gerade dabei ein Signal zu Capturen. Dieses Signal ist
insgesamt maximal 130 ms lang. Dieses Signal ist so aufgebaut das zum
Start eine Highflanke von 9 ms kommt und dann eine Lowflanke von 4,5 ms
kommt. Danach folgen noch ca 64 Bit mit jeweils 1120µs.

Ich habe den Timer Capture Int. genutzt. In dieser ISR Routine wollte
ich gerne das ICES1 Flag (im TCCR1B Register) toggeln um von High auf
Low Flanke zu triggern. Leider habe ich genau da eine Denkblockade wie
ich dieses Bit toggeln kann mit so wenig Befehlen wie moeglich.
Desweiteren habe ich ein kleines Problem mit den 9 ms. Mein ICR1 (Input
Capture Register) zaehlt ja maximal bis 65355. Wie sollte ich ein
Ueberlauf verhindern?


Ich hoffe mir kann da jemand ein bischen unter die Arme greifen.
Ich benutze ein Mega8 mit 8 Mhz und programmiere alles mit ASM.


Mfg

Dirk

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
toggeln:
in r16, TCCR1b
ldi r17, 0b01000000
eor r16,r17
out TCCR1B, r16

Überlauf: entweder Vorteiler erhöhen (max. Zeit wird entsprechend dem
Vorteiler vervielfacht, Auflösung sinkt entsprechend) oder den Timer
per Software erweitern, in der T1_OV-Routine ein Register erhöhen, so
wird aus dem 16bit-Zähler ein 24bit-Zähler. Der Inhalt dieses Registers
wird natürlich bei einem ICP nicht automatisch irgendwo abgespeichert,
dass muss die Software in der ICP-Routine tun. Muss man bei der
Programmierung sehr aufpassen, ICP-Int könnte gerade in dem Augenblick
kommen, an dem der Zähler überläuft, im ICP steht also 0x0000, aber das
Softwareregister ist noch nicht incrementiert -> Messwert ist komplett
falsch.

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich danke Dir Crazy Horse. Jetzt sollte es eigentlich kein grosses
Problem mehr sein.


mfg

Dirk

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.