Probleme mit Input Capture

Gast #257615
Lesenswert?
• ▲
▼
Habe ein Problem mit dem Input Capture des Mega162.
Im Anhang befindet sich ein Teil meines Quellcodes.
Hier versuche ich am ICP das DCF Signal einzufangen und auszuwerten.
Den Interrupt habe ich getestet er kommt durch.
Doch in der Funktion DCF Receive bekomme ich kein Ergebnis d.h. zuerst
wird ja der Minutenwechsel ausgewertet und wenn dieser erkannt ist,
wird der Sekundentakt gestartet, doch nichteinmal das funktioniert.

Hoffe ihr habt eine idee.
Angehängte Dateien:
Gast #257618
Lesenswert?
• ▲
▼
Ja schade - dann weiß ich auch nicht, ich programmiere in Assembler, C
ist mir zu "hoch" ;-) und in Assembler klappt´s prima... Andere Frage
- geht das DCF-Modul fehlerfrei, mal ´ne LED+R drangeknüppert und das
Blinkern (kurz, lang) und dessen Rhythmus geprüft? Bei konfusem
Flackern der LED ist eine Störquelle in der Nähe.
Gast #257621
Lesenswert?
• ▲
▼
Input Capture ist ja auch für ne Wahnsinnsbaudrate von 1 Baud extrem
oversized.

Man nimmt da lieber nen Timerinterrupt so etwa 10ms und schaut dann
nach und zählt mit.

Kurze Störflanken werden damit auch unterdrückt.


Peter
Gast #257623
Lesenswert?
• ▲
▼
Was soll denn dabei der INT0 ?

Vergiß mal die ganzen Interrupteingänge, die sind nur was für wirklich
schnelle Sachen.

Also Timerinterrutp alle 10ms, dann nachsehen ob Pin = 1 und eine
Variable hochzählen.
Und beim ersten mal Pin = 0 die Variable zur Auswertung abspeichern und
wieder auf 0 setzen.


Peter
Gast #257624
Lesenswert?
• ▲
▼
Hallo Peter: Sicher hast Du recht, daß man Input Capture auch für andere
Sachen als für DCF-Signal-Capturing nehmen kann. Allerdings hatte ich
bei meinem Projekt den Pin frei und mein Prozi hat ansonsten auch zu
viel um die Ohren, um nicht mit dieser komfortablen Impulserfassung
durch den entsprechenden Interrupt zu arbeiten. Mit anderen Worten: für
mein Projekt war das genau die richtige Lösung und unter ASM
funktioniert das alles sehr schön und zuverlässig. Also würd´ ich nicht
unbedingt sagen, daß man die Interruptpins nur für schnelle Sachen
favorisieren sollte. Wenn Hardware einem bei einer unkomplizierten
Programmierung helfen kann, kann man sie ja auch benutzen. Aber nichts
für ungut ;-).
Gast #257626
Lesenswert?
• ▲
▼
@TravelRec,

ich hab auch nicht gesagt, daß es nicht geht, sondern daß es mit dem
Timerinterrupt ne Menge Vorteile gibt:

- die Zeitauswertung kann man codesparend mit Byte-Variablen machen (2s
= 200).

- die Auswertung ist taktunabhängig, man muß bei Quarzänderung nur den
Comparewert für den 10ms-Interrupt anpassen.

- es werden kurze Störimpulse unterdrückt

- es kann ein beliebiger Pin benutzt werden.


Peter
Gast #257627
Lesenswert?
• ▲
▼
Wenn ich das jetzt richtig Verstanden habe ist es besser irgend einen
Pin abzufragen, da das DCF Signal sehr "langsam" ist (100ms bzw.
200ms)
wenn ich einen Interrupt nehmen würde wäre es möglich das ich mir
Störungen einfange und ein Interrupt ausgelöst wird. Somit wäre das
eingelesene DCF Signal falsch.

Da ich erst angefangen habe mit Mikrocontrollern zu arbeiten bin ich
für jede Anregung bzw. Verbesserung dankbar.

mfG Andi

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.