mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATMega8 Input Capture


Autor: F. C. (random236)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

Ich möchte mit einem ATMega8 über den Input Capturing Pin ein Telegramm 
enmpfangen was in FSK moduliert wurde!

Die beiden Trägerfrequenzen sind 1200/1800Hz, ich hatte schon probiert 
mit einem XR2211 das Signal zu demodulieren hatte aber keinen Erfolg, 
entweder ist die externe Beschaltung zu ungenau oder der Baustein 
defekt. Für den oftmals verwendetetn CMX469 habe ich keine Bezugsquelle!

Ist es möglich das FSK Signal über das InputCapturing zu demodulieren? 
Ich habe das Sinuswechselspannungssignal über einen 100nF Kondensator 
und einen Spannungsteiler von 10kOhm und 3,3kOhm der an +VCC und +GND 
angeschlossen ist, eingekoppelt und auf den ICP-Pin gelegt.

Wenn ich das Signal erzeuge bekomme ich auf dem Scope ein sauberes 
Signal, ich müsste doch nur die Zeit zwischen den aufsteigenden Flanken 
messen und könnte somit die Frequenz ermitteln!

Den Quellcode zum Programm findet ihr im Anhang! Das Programm soll die 
Frequenz zwischen den aufsteigenden Flanken ermitteln und über UART 
ausgeben, die Interrupt Routine scheint zu funktionieren der UART wird 
nur aktiv wenn ich ein Signal anlege, jedoch ist das einzige was ich 
über UART empfange ein "INF"

Ich hoffe ihr könnt mir weiterhelfen! Quellcode ist im Anhang!

Vielen Dank
LG random

Autor: Michael Mayer (eos400dman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

auch wenn der Beitrag schon etwas älter ist, wollte ich mich nach dem 
aktuellen Stand erkundigen.
Hast du noch eine Lösung gefunden?
Ich hatte nämlich vor auch einen XR2211 dafür zu verwenden.

Gruß Michael

PS: Handelt es sich bei dir um FMS? Rein von den Frequenzen her 
betrachtet.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
F. C. schrieb:

> ausgeben, die Interrupt Routine scheint zu funktionieren der UART wird
> nur aktiv wenn ich ein Signal anlege, jedoch ist das einzige was ich
> über UART empfange ein "INF"
>
> Ich hoffe ihr könnt mir weiterhelfen! Quellcode ist im Anhang!

Nur für den Fall, dass es noch jemanden interessiert.
Das Problem ist eine Division durch 0, die dadurch entsteht, dass sich 
der TO hier
  zaehler = + TOP*overflow_counter;
vertippt hat. Es muss += lauten und nicht = +
Dadurch ist zaehler offenbar immer 0, was dazu führt, dass hier
  freq = 16000000/ icr_neu;
durch 0 dividiert wird.

Autor: zryan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
help me how  using  timer1 input caputure for  measure frequency square 
signal

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.