Gast
#3151490
Hallo, ich versuche zur Zeit ein PWM moduliertes Digitales Signal mithilfe eines ATTiny45 zu demodulieren. Das Signal kommt von einer Wetterstation. Das ganze Reverse Engineering habe ich schon betrieben. Das Signal hat 9 Synchronisationsbits am Anfang (logisch 1). Ein kurzer Puls (25 Samples) ist eine 1, ein langer Puls (68 Samples) ist eine 0. Die Pause zwischen den hohen Planken beträgt immer 40 Samples. Ein komplettes Datenpaket hat 88Bits. Da ich das Signal mithilfe meiner Soundkarte und Audacity abgetastet habe weiss ich dass mit 44100 Samples/s abgetastet wird. Soweit die Theorie. Jetzt wollte ich das Ganze bitweise auslesen und an den PC übertragen, nur bekomme ich nicht die Daten die ich will. Zum auslesen habe ich mir überlegt dass ich einen Timer alle 23µs überlaufen lasse. Dabei wird eine Variable um 1 erhöht. Bei einem PCINT an meinem Empfänger PIN lese ich dann diese Variable aus und ( mit einer Toleranz von 20 ) schreibe das entsprechende Signal in das entsprechende Bit. Im Anhang noch der Code. Jetzt meine Frage: Ist mein vorgehen soweit korrekt oder geht das auch noch besser? Bzw. wo ist der logische/technische Fehler in meiner Vorgehensweise? PS.: Die "Debug LED" blinkt munter vor sich hin. Wenn ich auf meinem Autoschlüssel drücke kommt auch etwas am UART raus, jedoch nicht solange nur die Wetterstation funkt. Achja.: Die Wetterstation sendet alle 48 Sekunden