www.mikrocontroller.net

Forum: Haus & Smart Home allgemeines Zeitmodul


Autor: Philipp (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Schmittchen (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Philipp (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.