forked from PaulStoffregen/Time
Import fixes from Michael for Arduino 1.5.7
This commit is contained in:
@ -1,6 +1,8 @@
|
||||
/* DateStrings.cpp
|
||||
* Definitions for date strings for use with the Time library
|
||||
*
|
||||
* Updated for Arduino 1.5.7 18 July 2014
|
||||
*
|
||||
* No memory is consumed in the sketch if your code does not call any of the string methods
|
||||
* You can change the text of the strings, make sure the short strings are each exactly 3 characters
|
||||
* the long strings can be any length up to the constant dt_MAX_STRING_LEN defined in Time.h
|
||||
@ -38,7 +40,7 @@ const char monthStr10[] PROGMEM = "October";
|
||||
const char monthStr11[] PROGMEM = "November";
|
||||
const char monthStr12[] PROGMEM = "December";
|
||||
|
||||
PGM_P monthNames_P[] PROGMEM =
|
||||
const PROGMEM char * const PROGMEM monthNames_P[]
|
||||
{
|
||||
"",monthStr1,monthStr2,monthStr3,monthStr4,monthStr5,monthStr6,
|
||||
monthStr7,monthStr8,monthStr9,monthStr10,monthStr11,monthStr12
|
||||
@ -55,8 +57,12 @@ const char dayStr5[] PROGMEM = "Thursday";
|
||||
const char dayStr6[] PROGMEM = "Friday";
|
||||
const char dayStr7[] PROGMEM = "Saturday";
|
||||
|
||||
PGM_P dayNames_P[] PROGMEM = { dayStr0,dayStr1,dayStr2,dayStr3,dayStr4,dayStr5,dayStr6,dayStr7};
|
||||
char dayShortNames_P[] PROGMEM = "ErrSunMonTueWedThrFriSat";
|
||||
const PROGMEM char * const PROGMEM dayNames_P[] =
|
||||
{
|
||||
dayStr0,dayStr1,dayStr2,dayStr3,dayStr4,dayStr5,dayStr6,dayStr7
|
||||
};
|
||||
|
||||
const char dayShortNames_P[] PROGMEM = "ErrSunMonTueWedThrFriSat";
|
||||
|
||||
/* functions to return date strings */
|
||||
|
||||
|
19
Time.cpp
19
Time.cpp
@ -1,6 +1,6 @@
|
||||
/*
|
||||
time.c - low level time and date functions
|
||||
Copyright (c) Michael Margolis 2009
|
||||
Copyright (c) Michael Margolis 2009-2014
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
@ -16,14 +16,15 @@
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
6 Jan 2010 - initial release
|
||||
12 Feb 2010 - fixed leap year calculation error
|
||||
1 Nov 2010 - fixed setTime bug (thanks to Korman for this)
|
||||
24 Mar 2012 - many edits by Paul Stoffregen: fixed timeStatus() to update
|
||||
status, updated examples for Arduino 1.0, fixed ARM
|
||||
compatibility issues, added TimeArduinoDue and TimeTeensy3
|
||||
examples, add error checking and messages to RTC examples,
|
||||
add examples to DS1307RTC library.
|
||||
1.0 6 Jan 2010 - initial release
|
||||
1.1 12 Feb 2010 - fixed leap year calculation error
|
||||
1.2 1 Nov 2010 - fixed setTime bug (thanks to Korman for this)
|
||||
1.3 24 Mar 2012 - many edits by Paul Stoffregen: fixed timeStatus() to update
|
||||
status, updated examples for Arduino 1.0, fixed ARM
|
||||
compatibility issues, added TimeArduinoDue and TimeTeensy3
|
||||
examples, add error checking and messages to RTC examples,
|
||||
add examples to DS1307RTC library.
|
||||
1.4 5 Sep 2014 - compatibility with Arduino 1.5.7
|
||||
*/
|
||||
|
||||
#if ARDUINO >= 100
|
||||
|
@ -26,6 +26,8 @@ void setup() {
|
||||
// stay with their old values."
|
||||
rtc_clock.set_time(__TIME__);
|
||||
rtc_clock.set_date(__DATE__);
|
||||
// However, this might work on other unofficial SAM3X boards
|
||||
// with different reset circuitry than Arduino Due?
|
||||
}
|
||||
setSyncProvider(getArduinoDueTime);
|
||||
if(timeStatus()!= timeSet)
|
||||
|
@ -7,7 +7,7 @@
|
||||
T1357041600
|
||||
*
|
||||
* A Processing example sketch to automatically send the messages is inclided in the download
|
||||
* On Linux, you can use "date +T%s > /dev/ttyACM0" (UTC time zone)
|
||||
* On Linux, you can use "date +T%s\n > /dev/ttyACM0" (UTC time zone)
|
||||
*/
|
||||
|
||||
#include <Time.h>
|
||||
|
@ -7,10 +7,10 @@
|
||||
*
|
||||
* A message starting with a time header sets the time
|
||||
* A Processing example sketch to automatically send the messages is inclided in the download
|
||||
* On Linux, you can use "date +T%s > /dev/ttyACM0" (UTC time zone)
|
||||
* On Linux, you can use "date +T%s\n > /dev/ttyACM0" (UTC time zone)
|
||||
*
|
||||
* A message starting with a format header sets the date format
|
||||
*
|
||||
|
||||
* send: Fs\n for short date format
|
||||
* send: Fl\n for long date format
|
||||
*/
|
||||
@ -35,7 +35,7 @@ void setup() {
|
||||
}
|
||||
|
||||
void loop(){
|
||||
if (Serial.available()) {
|
||||
if (Serial.available() > 1) { // wait for at least two characters
|
||||
char c = Serial.read();
|
||||
if( c == TIME_HEADER) {
|
||||
processSyncMessage();
|
||||
@ -50,7 +50,7 @@ void loop(){
|
||||
delay(1000);
|
||||
}
|
||||
|
||||
void digitalClockDisplay(){
|
||||
void digitalClockDisplay() {
|
||||
// digital clock display of the time
|
||||
Serial.print(hour());
|
||||
printDigits(minute());
|
||||
@ -72,7 +72,7 @@ void digitalClockDisplay(){
|
||||
Serial.println();
|
||||
}
|
||||
|
||||
void printDigits(int digits){
|
||||
void printDigits(int digits) {
|
||||
// utility function for digital clock display: prints preceding colon and leading 0
|
||||
Serial.print(":");
|
||||
if(digits < 10)
|
||||
@ -84,11 +84,11 @@ void processFormatMessage() {
|
||||
char c = Serial.read();
|
||||
if( c == FORMAT_LONG){
|
||||
isLongFormat = true;
|
||||
Serial.println("Setting long format");
|
||||
Serial.println(F("Setting long format"));
|
||||
}
|
||||
else if( c == FORMAT_SHORT){
|
||||
else if( c == FORMAT_SHORT) {
|
||||
isLongFormat = false;
|
||||
Serial.println("Setting short format");
|
||||
Serial.println(F("Setting short format"));
|
||||
}
|
||||
}
|
||||
|
||||
@ -99,12 +99,10 @@ void processSyncMessage() {
|
||||
pctime = Serial.parseInt();
|
||||
if( pctime >= DEFAULT_TIME) { // check the integer is a valid time (greater than Jan 1 2013)
|
||||
setTime(pctime); // Sync Arduino clock to the time received on the serial port
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
time_t requestSync()
|
||||
{
|
||||
time_t requestSync() {
|
||||
Serial.write(TIME_REQUEST);
|
||||
return 0; // the time will be sent later in response to serial mesg
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user