Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
my_xihale
Time
提交
998ea7db
T
Time
项目概览
my_xihale
/
Time
与 Fork 源项目一致
从无法访问的项目Fork
通知
4
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Time
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
998ea7db
编写于
3月 20, 2017
作者:
C
Claudius Coenen
提交者:
GitHub
3月 20, 2017
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Readme converted to markdown
上级
350b8622
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
59 addition
and
39 deletion
+59
-39
Readme.md
Readme.md
+59
-39
未找到文件。
Readme.
txt
→
Readme.
md
浏览文件 @
998ea7db
Readme file for
Arduino Time Library
#
Arduino Time Library
Time is a library that provides timekeeping functionality for Arduino.
...
...
@@ -12,8 +12,11 @@ Example sketches illustrate how similar sketch code can be used with: a Real Tim
internet NTP time service, GPS time data, and Serial time messages from a computer
for time synchronization.
The functions available in the library include:
## Functionality
The functions available in the library include
```
c
hour
();
// the hour now (0-23)
minute
();
// the minute now (0-59)
second
();
// the second now (0-59)
...
...
@@ -21,115 +24,132 @@ day(); // the day now (1-31)
weekday
();
// day of the week (1-7), Sunday is day 1
month
();
// the month now (1-12)
year
();
// the full four digit year: (2009, 2010 etc)
```
there are also functions to return the hour in 12 hour format
```
c
hourFormat12
();
// the hour now in 12 hour format
isAM
();
// returns true if time now is AM
isPM
();
// returns true if time now is PM
now
();
// returns the current time as seconds since Jan 1 1970
```
The time and date functions can take an optional parameter for the time. This prevents
errors if the time rolls over between elements. For example, if a new minute begins
between getting the minute and second, the values will be inconsistent. Using the
following functions eliminates this probglem
time_t t = now(); // store the current time in time variable t
hour(t); // returns the hour for the given time t
minute(t); // returns the minute for the given time t
second(t); // returns the second for the given time t
day(t); // the day for the given time t
weekday(t); // day of the week for the given time t
month(t); // the month for the given time t
year(t); // the year for the given time t
```
c
time_t
t
=
now
();
// store the current time in time variable t
hour
(
t
);
// returns the hour for the given time t
minute
(
t
);
// returns the minute for the given time t
second
(
t
);
// returns the second for the given time t
day
(
t
);
// the day for the given time t
weekday
(
t
);
// day of the week for the given time t
month
(
t
);
// the month for the given time t
year
(
t
);
// the year for the given time t
```
Functions for managing the timer services are:
setTime(t); // set the system time to the give time t
setTime(hr,min,sec,day,mnth,yr); // alternative to above, yr is 2 or 4 digit yr
```
c
setTime
(
t
);
// set the system time to the give time t
setTime
(
hr
,
min
,
sec
,
day
,
mnth
,
yr
);
// alternative to above, yr is 2 or 4 digit yr
// (2010 or 10 sets year to 2010)
adjustTime(adjustment); // adjust system time by adding the adjustment value
timeStatus(); // indicates if time has been set and recently synchronized
adjustTime
(
adjustment
);
// adjust system time by adding the adjustment value
timeStatus
();
// indicates if time has been set and recently synchronized
// returns one of the following enumerations:
timeNotSet // the time has never been set, the clock started at Jan 1 1970
timeNeedsSync // the time had been set but a sync attempt did not succeed
timeSet // the time is set and is synced
timeNotSet
// the time has never been set, the clock started at Jan 1 1970
timeNeedsSync
// the time had been set but a sync attempt did not succeed
timeSet
// the time is set and is synced
```
Time and Date values are not valid if the status is timeNotSet. Otherwise values can be used but
the returned time may have drifted if the status is timeNeedsSync.
setSyncProvider(getTimeFunction); // set the external time provider
setSyncInterval(interval); // set the number of seconds between re-sync
```
c
setSyncProvider
(
getTimeFunction
);
// set the external time provider
setSyncInterval
(
interval
);
// set the number of seconds between re-sync
```
There are many convenience macros in the time.h file for time constants and conversion
There are many convenience macros in the
`time.h`
file for time constants and conversion
of time units.
To use the library, copy the download to the Library directory.
## Examples
The Time directory contains the Time library and some example sketches
illustrating how the library can be used with various time sources:
-
TimeSerial.pde
shows Arduino as a clock without external hardware.
-
`TimeSerial.pde`
shows Arduino as a clock without external hardware.
It is synchronized by time messages sent over the serial port.
A companion Processing sketch will automatically provide these messages
if it is running and connected to the Arduino serial port.
-
TimeSerialDateStrings.pde
adds day and month name strings to the sketch above
-
`TimeSerialDateStrings.pde`
adds day and month name strings to the sketch above
Short (3 character) and long strings are available to print the days of
the week and names of the months.
-
TimeRTC
uses a DS1307 real time clock to provide time synchronization.
-
`TimeRTC`
uses a DS1307 real time clock to provide time synchronization.
A basic RTC library named DS1307RTC is included in the download.
To run this sketch the DS1307RTC library must be installed.
-
TimeRTCSet
is similar to the above and adds the ability to set the Real Time Clock
-
`TimeRTCSet`
is similar to the above and adds the ability to set the Real Time Clock
-
TimeRTCLog
demonstrates how to calculate the difference between times.
-
`TimeRTCLog`
demonstrates how to calculate the difference between times.
It is a vary simple logger application that monitors events on digtial pins
and prints (to the serial port) the time of an event and the time period since
the previous event.
-
TimeNTP
uses the Arduino Ethernet shield to access time using the internet NTP time service.
-
`TimeNTP`
uses the Arduino Ethernet shield to access time using the internet NTP time service.
The NTP protocol uses UDP and the UdpBytewise library is required, see:
http://bitbucket.org/bjoern/arduino_osc/src/14667490521f/libraries/Ethernet/
-
TimeGPS
gets time from a GPS
-
`TimeGPS`
gets time from a GPS
This requires the TinyGPS library from Mikal Hart:
http://arduiniana.org/libraries/TinyGPS
## Differences
Differences between this code and the playground DateTime library
although the Time library is based on the DateTime codebase, the API has changed.
Changes in the Time library API:
- time elements are functions returning int (they are variables in DateTime)
-
time elements are functions returning
`int`
(they are variables in DateTime)
-
Years start from 1970
-
days of the week and months start from 1 (they start from 0 in DateTime)
-
DateStrings do not require a seperate library
-
time elements can be accessed non-atomically (in DateTime they are always atomic)
-
function added to automatically sync time with extrnal source
-
localTime and maketime parameters changed, localTime renamed to breakTime
-
`localTime`
and
`maketime`
parameters changed,
`localTime`
renamed to
`breakTime`
Technical notes:
##
Technical notes:
Internal system time is based on the standard Unix
time_t
.
Internal system time is based on the standard Unix
`time_t`
.
The value is the number of seconds since Jan 1 1970.
System time begins at zero when the sketch starts.
The internal time can be automatically synchronized at regular intervals to an external time source.
This is enabled by calling the
setSyncProvider(provider)
function - the provider argument is
the address of a function that returns the current time as a
time_t
.
This is enabled by calling the
`setSyncProvider(provider)`
function - the provider argument is
the address of a function that returns the current time as a
`time_t`
.
See the sketches in the examples directory for usage.
The default interval for re-syncing the time is 5 minutes but can be changed by calling the
setSyncInterval( interval)
method to set the number of seconds between re-sync attempts.
`setSyncInterval(interval)`
method to set the number of seconds between re-sync attempts.
The Time library defines a structure for holding time elements that is a compact version of the C tm structure.
All the members of the Arduino tm structure are bytes and the year is offset from 1970.
Convenience macros provide conversion to and from the Arduino format.
Low level functions to convert between system time and individual time elements are provided:
breakTime(time, &tm); // break time_t into elements stored in tm struct
makeTime(&tm); // return time_t from elements stored in tm struct
```
c
breakTime
(
time
,
&
tm
);
// break time_t into elements stored in tm struct
makeTime
(
&
tm
);
// return time_t from elements stored in tm struct
```
The DS1307RTC library included in the download provides an example of how a time provider
can use the low level functions to interface with the Time library.
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录