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
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.
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
1 | zaehler = + TOP*overflow_counter; |
vertippt hat. Es muss += lauten und nicht = + Dadurch ist zaehler offenbar immer 0, was dazu führt, dass hier
1 | freq = 16000000/ icr_neu; |
durch 0 dividiert wird.
help me how using timer1 input caputure for measure frequency square signal
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.