RTC mit Sommerzeit


hi!

habe das netz schon auf den kopf gestellt, aber leider nicht das richtige gefunden, oder einfach nach dem falschen gesucht.

also - ich suche einen code, den ich in meinen sketch einfügen kann, damit ich die uhrzeit vom ds1307 rtc-modul auch bei sommer/winterzeit korrekt angezeigt bekomme.

im moment klappt das mit der sommerzeit nicht.
habe die uhrzeit mit dem pc gestellt. obwohl mein pc gerade 20:24 anzeigt, zeigt das display vom arduino 19:26 an?

gestellt habe ich hiermit:
code: [select]
/*
* timertcset.pde
* example code illustrating time library real time clock.
*
* rtc clock set in response serial port time message
* processing example sketch set time inclided in download
*/

#include <time.h> 
#include <wire.h> 
#include <ds1307rtc.h>  // basic ds1307 library returns time time_t


void setup()  {
  serial.begin(9600);
  setsyncprovider(rtc.get);   // function time rtc
  if(timestatus()!= timeset)
     serial.println("unable sync rtc");
  else
     serial.println("rtc has set system time");     
}

void loop()
{
  if(serial.available())
  {
     time_t t = processsyncmessage();
     if(t >0)
     {
        rtc.set(t);   // set rtc , system time received value
        settime(t);         
     }
  }
   digitalclockdisplay(); 
   delay(1000);
}

void digitalclockdisplay(){
  // digital clock display of time
  serial.print(hour());
  printdigits(minute());
  printdigits(second());
  serial.print(" ");
  serial.print(day());
  serial.print(" ");
  serial.print(month());
  serial.print(" ");
  serial.print(year());
  serial.println();
}

void printdigits(int digits){
  // utility function digital clock display: prints preceding colon , leading 0
  serial.print(":");
  if(digits < 10)
    serial.print('0');
  serial.print(digits);
}

/*  code process time sync messages serial port   */
#define time_msg_len  11   // time sync pc header followed unix time_t ten ascii digits
#define time_header  't'   // header tag serial time sync message

time_t processsyncmessage() {
  // return time if valid sync message received on serial port.
  while(serial.available() >=  time_msg_len ){  // time message consists of header , ten ascii digits
    char c = serial.read() ;
    serial.print(c); 
    if( c == time_header ) {       
      time_t pctime = 0;
      for(int i=0; < time_msg_len -1; i++){   
        c = serial.read();         
        if( c >= '0' && c <= '9'){   
          pctime = (10 * pctime) + (c - '0') ; // convert digits number   
        }
      }   
      return pctime;
    } 
  }
  return 0;
}


kann da jemand helfen?

gruß
morris

das mit der sommerzeit ist recht aufwändig zu berechnen, aber es gibt eine lib "ds1307new.h", die das unterstützt.
sie stellt (neben den üblichen anderen funktionen) auch die funktion ismezsummertime() zur verfügung.


Arduino Forum > International > Deutsch (Moderator: uwefed) > RTC mit Sommerzeit


arduino

Comments

Popular posts from this blog

Convierte tu Raspberry en un NAS. Firmware fvdw-sl 15.3 - Raspberry Pi Forums

How to format a Get Request

avrdude: verification error, first mismatch at byte 0x0000 0x0c != 0x62