Hallo, ursprünglich hatte ich geplant ein Zeitmodul zu bauen mit einer Realtime Clock. Von dieser wollte ich dann per CAN Nachricht zB so: ID 123 Data0: timer ID Data1: sekunden einen Timer anfordern. Sobald die Sekunden aus Data1 abgelaufen sind sollte eine CAN Nachricht gesendet werden die dann enthält das timer ID xy abgelaufen ist. Nun habe ich in dem Thread nebenan gelesen, dass ich auch keinen Fall über die gleiche CAN ID von mehreren Knoten aus so einen Timer anfordern darf. Ich benutze das ganze zwar nicht im Haus, sondern im Auto, aber ich denke die Probleme sind die gleichen und auch hier wird sowas mal jmd gebaut haben (vielleicht nicht gerade fürs Innenlicht usw, sondern fürs Treppenhaus oder sonstwas) Also ich möchte für alle Module Timer zur Verfügung stellen, so dass ich ein paar Zeitgesteuerte Dinge steuern kann ohne in jeden einzelnen Knoten eine RTC bauen zu müssen (sollte möglichst sekundengenau sein) Hatte überlegt einfach jede Sekunde die Uhrzeit/Datum zu senden, allerdings würde ich dann damit zumindest Teile des Autos einmal pro Sekunde aufwecken. Vorteil wäre, das ich einfach in den Modulen die Anzahl der Zeit Pakete zählen könnte und damit einen Sekundentakt hätte. Wie löst Ihr sowas? Hat jmd Vorschläge? Vielen Dank schonmal Gruß Philipp
Codiere doch den Absender in die CanId, z.B. indem du Id 120-129 für die Anforderung des Timers nimmst, wobei die letzte Stelle die Absendernummer ist. Der Empfänger muss dann halt auf 120-129 reagieren, was aber kein Problem ist. (Filter auf "alles" empfangen und gut ist; gibt kein Problem mit der µC-Auslastung). IDs zu knapp? Dann kannste immernoch auf extended IDs wechseln und hast dann 29Bit zur Verfügung... Aber ich glaube es ist einfacher mit dem RTC-Can-Knoten nur die Uhrzeit zu broadcasten und die Knoten errechnen sich ihre Timer selbst (Softwareuhr). Aber das musst du wissen.
Ja hab mir das jetzt so gedacht: Es gibt eine CAN ID vom RTC Modul die folgendes enthält: - Stunde - Minute - Sekunde - Tag - Monat - Jahr - Wochentag Wenn ich ein RTR für diese ID schicke kommt sie nicht sofort sondern zur nächsten vollen Sekunde. In den Modulen in denen ich die Zeiten benötigte zähle ich einfach das eintreffen dieser Packete. Und um nicht jede Sekunde so ein Paket zu senden kommt es nur wenn ein Modul es angefordert hat und dies tut es solange sein Timer noch nicht auf 0 runtergezählt wurde. Gruß Philipp
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.