Hallo! Folgende Problemstellung: Mit einem ATmega16 soll ein Signal dekodiert werden. Im Anhanhan ist das kodierte Signal (AC) zu sehen. Dieses Signal soll so dekodiert werden das zwei kurze Bits als 1 in einem Array abgespeichert werden und ein langes Bit als 0. Die Grundfrequenz ist 2kHz, ein kurzes Bit hat so 125us und ein langes 250us. Die länge der Bits kann von den vorgegebenen Werten abweichen (ca. +-30us).
Hier habe ich versucht das Signal zu dekodieren aber bin nicht sehr weit gekommen. Die Zeit des rot markierten Balken wird gemessen und wenn der Wert größer ist als eine bestimmte Grenze wird es als 0 interpretiert und andernfalls als 1. Die Taktfrequenz des Mikrocontrollers beträgt 12MHz und so müsste er bei einem Bit von 125us müsste der Zähler auf 1500 zählen und bei 250us auf 3000. Bei einer steigenden Flanke soll er mit dem zählen beginnen und bei einer darauffolgenden fallenden Flanke den Wert ausrechnen und abspeichern. Wenn zwei kurze Bits kommen, sollen diese zu einem 1er zusammengefasst werden. Hoffentlich könnt ihr mir bei meinem Problem weiterhelfen und mir helfen den Code zu schreiben, da ich ohne Hilfe nicht weiterkomme. Michael
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.