- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 5 von 5

Thema: Zeitsystem programmieren

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.08.2008
    Ort
    DE
    Beiträge
    523

    Zeitsystem programmieren

    Anzeige

    Powerstation Test
    Hallo,
    mir ist irgwie kein guter Titel eingefallen, deshalb versuche ich es hier so gut wie möglich zu beschreiben

    Und zwar möchte ich gerne eine Software schreiben, die verschiedene Dinge an bestimmten Tagen zu bestimmten Zeiten ausführt.
    Also z.b. Montag, 8:00 führe foo1() aus etc.

    Ich will dazu eine RTC verwenden. Leider habe ich keine Ahnung wie sowas aufgebaut ist (die Software) oder wie das überhaupt angegangen wird. Vlt kann mir einer von euch helfen.


    mfg

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    03.09.2009
    Ort
    Berlin (Mariendorf)
    Beiträge
    1.023
    Zitat Zitat von Wsk8 Beitrag anzeigen
    mir ist irgwie kein guter Titel eingefallen
    Vielleicht "Mehrkanal-Wochenschaltuhr" ?

    Aus eigener Praxis kann ich als RTC die DS1307 (als DIL) empfehlen. Es gibt auch Komplett-RTC-ICs mit integriertem Quarz, die sind in Summe kaum teurer, da kenne ich von R...t aber nur SMD-Typen; und eine Batterie braucht man ja auch noch, die steht der Miniaturisierung eher entgegen. Die Auswahl an Chips ist ziemlich groß, aber der DS1307 ist hier scheinbar recht beliebt.

    Zur Umsetzung:
    Die RTC muss mit aktueller Zeit und Wochentag gefüttert werden.
    Je Schaltereignis muss Uhrzeit und Wochentag der Ausführung sowie und der Kanal per externer Eingabe veränderbar sein (kann im nichtflüchtigen RAM der RTC gespeichert werden); oder eben Start- und Endezeit ....
    Für den operativen Betrieb sind verschiedene Wege gangbar. Entweder man kennt intern die aktuelle Zeit der RTC und prüft ständig (alle?) möglichen Ereignisse auf Handlungsbedarf; dazu sollte die RTC regelmässig ausgelesen werden.
    Oder man sortiert im Controller die Schaltaufträge chronologisch und überträgt der RTC nacheinander die Schaltzeiten als Alarmzeiten; reagiert wird dann nur noch auf die elektrischen Weck/Alarm/Interruptsignale der RTC.

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Auf UNIX Systemen erledigt sowas cron. Hier etwas zum Nachlesen:

    https://de.wikipedia.org/wiki/Cron
    http://www.drweb.de/magazin/cron-job...heldon-cooper/

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.04.2008
    Beiträge
    282
    Ich hab's ja schon oft gesagt: ich persönlich mag die Digisparks: http://shop.cboden.de/Digispark/Digi...ngs-Board.html
    dazu kommt dann noch ein RTC-Shield: http://shop.cboden.de/Digispark/Shie...rungssatz.html
    und ggf. ein I/O-Expander, falls Du mehr Kanäle schalten willst: http://shop.cboden.de/Digispark/Shie...rungssatz.html
    und natürlich noch eine Treiberstufe abhängig von der Last, die Du schalten willst. Da können wir Dir aber gerne Tipps geben, sobald Du uns verrätst, was angesteuert werden soll.

    In der Arduino-IDE des Digispark sind schon ein paar Beispiele für die Ansteuerung der RTC drin. Alternativ kannst Du Dir einen ersten Überblick auch im Digistump-Wiki verschaffen: http://digistump.com/wiki/digispark/tutorials/rtc Da die Code-Beispiele sehr kurz sind, siehst Du schon, dass es eigentlich ganz einfach ist: zunächst die richtige Bibliothek einbinden und eine Objekt-Variable anlegen:

    Code:
    #include <TinyRTClib.h>  
    RTC_DS1307 RTC;
    Dann in der Setup-Routine die RTC starten und mit aktuellem Datum und Uhrzeit "stellen" (entfällt natürlich, wenn schon einmal gemacht):

    Code:
    RTC.begin();
    
      if (! RTC.isrunning()) {
         // following line sets the RTC to the date & time this sketch was compiled only for the first run
         RTC.adjust(DateTime(__DATE__, __TIME__));   
    }
    und im einfachsten Fall - wie von RoboHolIC geschrieben - in der Main-Loop regelmäßig die Uhr auslesen
    Code:
    DateTime now = RTC.now();
    Dann kannst Du an Hand des ausgelesenen Wertes ermitteln, was zu tun ist. Im ersten Wiki-Beispiel wird der Datumswert zerlegt und auf einem LCD ausgegeben. Genauso gut kannst Du die Teilinformationen nutzen um Deine Ausgänge zu schalten.

    Die Jungs vom deutschen Shop sind eigentlich sehr hilfsbereit. Wenn Du denen ne Email schickst, beraten Sie Dich ggf. auch.
    Geändert von redround (23.11.2013 um 11:49 Uhr)

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.08.2008
    Ort
    DE
    Beiträge
    523
    War ja schon mal ne Menge Info. Muss das jetzt erstmal alles verarbeiten. Bei Unklarheiten melde ich mich wieder
    Zudem wollte ich noch anmerken, dass ich bereits ein Board mit dieser RTC besitze. Ich denke die sollte mir genug Möglichkeiten bieten. http://www.nxp.com/documents/data_sheet/PCF8563.pdf

    mfg

Ähnliche Themen

  1. Programmieren ?
    Von Akku4 im Forum Asuro
    Antworten: 5
    Letzter Beitrag: 08.04.2009, 22:49
  2. Programmieren
    Von ROBOTIERER im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 18.10.2007, 12:49
  3. Programmieren
    Von Arbeitslos im Forum Software, Algorithmen und KI
    Antworten: 35
    Letzter Beitrag: 22.09.2006, 16:46
  4. uC programmieren
    Von flo315 im Forum Elektronik
    Antworten: 2
    Letzter Beitrag: 16.04.2006, 14:44
  5. [ERLEDIGT] programmieren
    Von ??? im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 1
    Letzter Beitrag: 21.03.2005, 19:21

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test