Guten Morgen, ich habe eine kleine Blokade in Form des Verstehens zur Berechnung der Werte zur Einstellung der Timerwerte. Der Wert wird mit der Formel T =m*(2ms)^r berechnet. (https://www.mikrocontroller.net/articles/RFM12#Zeitgeber_f.C3.BCr_Wake-Up_.28Wake-Up_Timer_Exxx_.._Fxxx.29) Leider weiß ich hier nicht weiter welche Größen wie eingesetzt werden müssen, kann mir jemand bitte mir den Rechenweg aufzeichnen, Beispiel geben? Vielen DAnk!
t = m * 2^r * 1ms Eine Gleichung mit 3 Unbekannten m kann nur die Werte zwischen 1 und 255 annehmen und r zwischen 0 und 29 Was ist denn gegeben? Was willst du wissen? Wenn die Zeit t gegeben ist z. B. 300 Sekunden (5 Minuten) 300s = m * 2^r * 1ms 300 = m * 2^r Nehmen wir jetzt r=0 an 300 = m * 2^0 300 = m * 1 300 = m // Lösung nicht möglich Nehmen wir jetzt r=1 an 300 = m * 2^1 300 = m * 2 150 = m // Lösung ist möglich
arr, die Rechnung oben war jetzt für 300 ms = 0,3s aber das Prinzip müsste klar sein
jetzt hat es Klick gemacht, es war wohl gestern zu spät um es zu sehen. * da das LSB 8 Bit breit ist kann m= max. 255 einnehmen * da das MSB 5 Bit breit ist kann r= max. 29 einnehmen also ist die Berechnung für die Zeit: tmax= 255 * 2^29 fest r m Und somit ergibt sich für 60sek: E8FF oder 111 01000 11111111 Jetzt weiß ich die Werte in der Formel einzusetzen. :) Vielen Dank
:
Bearbeitet durch User
Hallo, der Sleeptimer ist ohnehin ungenau und Temperaturabhängig wenn die Funktion zur Quarzsyncronisation nicht genutzt wird um Strom zu sparen. Annäherung nach obiger Rechnerei reicht also völlig aus. Meine RFM02 laufen frei und senden mit ca. alle Minute per Timer. Habe gerde mal in meinen alten Source reingeschaut: 0xE500 + 200 wären 2^5 = 32 *200, also 6400ms oder 6,4s nach Datenblatt. Ganz praktisch sind es rund 60s... Ich habe diesen Fehler nie klären können, ganz praktisch laufen aber alle 6 Sensoren seit Jahren mit diesem Wert und senden rund alle Minute. Würde mich also interessieren, was bei Dir mit 0xE8FF passiert. Gruß aus Berlin Michael
:
Bearbeitet durch User
Hallo Michael, also ich habe den Wert 0xE8FF eingegeben und habe etwa 60sec. Wake uptime. Da bei mir die Zeit nicht unmittelbar eine rolle spielt, ist mir die Genauigkeit zweitrangig. Aber dennoch danke für Deinen Hinweis. Gruß Matthias
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.