allgemeines Zeitmodul

Gast #418891
Lesenswert?

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
Gast #418892
Lesenswert?

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.
Gast #418893
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren