帮酷LOGO
  • 显示原文与译文双语对照的内容
文章标签:clocks  Integrated  real-time-clock  最大  INT  cloc  时钟  时间  
Arduino Library for Maxim Integrated DS3232 and DS3231 Real-Time Clocks

  • 源代码名称:DS3232RTC
  • 源代码网址:http://www.github.com/JChristensen/DS3232RTC
  • DS3232RTC源代码文档
  • DS3232RTC源代码下载
  • Git URL:
    git://www.github.com/JChristensen/DS3232RTC.git
  • Git Clone代码到本地:
    git clone http://www.github.com/JChristensen/DS3232RTC
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/JChristensen/DS3232RTC
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
  • DS3232RTC库

    https://github.com/JChristensen/DS3232RTC
    自述文件
    杰克。Christensen 2013年月

    CC BY-SA

    简介

    DS3232RTC 是一个支持Maxim集成DS3232和DS3231实时时钟的Arduino库。 这个库打算与pjrc时间库( )的一起使用。

    DS3232RTC Margolis库中提供的库是替换的,它提供了Arduino时间库 ( 但不是针对更新的pjrc版本的DS1307RTC库。) 。 要改变使用 DS1307 RTC到 DS323x RTC,只需要使用 #include <DS3232RTC.h> 而不是 #include <DS1307RTC.h>

    DS3232RTC 还实现了支持DS3232和DS3231附加特性的功能。 与DS3232具有相同的功能,除了: ( 1 ) 电池后备 SRAM,( 2 ) 电池后备 32kHz 输出( 控件/状态 register 0 x0F中的BB32kHz位),以及( 3 ) 可调温度传感器采样率( 。crate1: 控制/状态 register 中的0 位) 。

    "is DS3232RTC库"由 Jack 4.0在sap下授权。

    示例

    以下示例草图包含在 DS3232RTC 库中:

    • SetSerial: 将rtc的日期和时间从Arduino串行监视器设定。 显示日期,时间和温度。
    • TimeRTC: 与以英镑Time库提供的同名名称相同,演示了英镑DS3232RTC库的互换性,以英镑为单位。
    • tiny3232_KnockBang: 演示将 attiny45/85与DS3231或者 DS3232 RTC连接。
    • 使用RTC报警的几个示例。 有关详细信息,请参阅警报入门插件。

    用法说明

    当使用英镑DS3232RTC库时,用户负责确保读取和写入不超过设备空间( 0 x00-0x12,0 x00-0xFF用于 DS3232 )的地址;库不执行边界检查。

    英镑DS1307RTC库类似,英镑DS3232RTC库实例化RTC对象,用户不需要这样做。

    枚举

    SQWAVE_FREQS_t

    描述

    squareWave() 方法( 描述如下) 一起使用的符号名称。

    • SQWAVE_NONE
    • SQWAVE_1_HZ
    • SQWAVE_1024_HZ
    • SQWAVE_4096_HZ
    • SQWAVE_8192_HZ

    ALARM_TYPES_t

    描述

    setAlarm() 方法( 描述如下) 一起使用的符号名称。

    警报 1的值
    • ALM1_EVERY_SECOND --每秒发出一次警报。
    • ALM1_MATCH_SECONDS --在秒匹配时导致警报( 例如 。 每分钟一次) 。
    • ALM1_MATCH_MINUTES --在分钟秒和秒时导致报警。
    • 当hours小时 and 分钟和秒匹配时,ALM1_MATCH_HOURS --会引起警报。
    • 当month和小时的日期和秒的时间匹配时,ALM1_MATCH_DATE --会引起警报。
    • 当week和小时和分钟match和秒 match,ALM1_MATCH_DAY --会引起警报。
    警报 2的值
    • ALM2_EVERY_MINUTE --每分钟触发一次提醒。
    • ALM2_MATCH_MINUTES --在分钟匹配时导致报警( 例如 。 每小时一次) 。
    • ALM2_MATCH_HOURS --在小时分钟和分钟匹配时导致报警。
    • 当month和小时的日期match和分钟时,ALM2_MATCH_DATE --会发出警报。
    • 当 week and小时和分钟match时,ALM2_MATCH_DAY --会引起警报。

    设置和读取时间的方法

    ( void )

    描述

    从RTC读取当前日期和时间,并将它的作为 time_t 值返回。 如果发生( RTC不存在,等等 ) 错误,则返回零。

    命令行语法

    RTC.get();

    参数

    无。

    返回

    当前日期和时间 ( time_t )

    示例
    time_t myTime;
    myTime = RTC.get();

    设置( time_t t )

    描述

    将RTC日期和时间设置为给定的time_t 值。 清除控件/状态 register 中的振荡器停止标志( OSF ) 位。 参见 oscStopped() 函数和DS323x数据表,了解有关OSF位的更多信息。

    命令行语法

    RTC.set(t);

    参数

    t: date将RTC设置为 ( time_t )的日期和时间。

    返回

    I2C状态 ( 字节) 。 如果成功则返回零。

    示例
    //this example first sets the system time (maintained by the Time library) to//a hard-coded date and time, and then sets the RTC from the system time.//the setTime() function is part of the Time library.setTime(23, 31, 30, 13, 2, 2009); //set the system time to 23h31m30s on 13Feb2009RTC.set(now()); //set the RTC from the system time

    读取( tmElements_t & tm )

    描述

    从RTC读取当前日期和时间,并将它的作为 tmElements_t 结构返回。 有关的详细信息,请参阅Arduino时间 库。

    命令行语法

    RTC.read(tm);

    参数

    将日期和时间返回到的tmElements_t 结构的

    返回

    I2C状态 ( 字节) 。 如果成功,返回零。从RTC读取的日期和时间返回到参数。

    示例
    tmElements_t tm;
    RTC.read(tm);
    Serial.print(tm.Hour, DEC);
    Serial.print(':');
    Serial.print(tm.Minute,DEC);
    Serial.print(':');
    Serial.println(tm.Second,DEC);

    写入( tmElements_t & tm )

    描述

    将RTC设置为 tmElements_t 结构给定的日期和时间。 清除控件/状态 register 中的振荡器停止标志( OSF ) 位。 参见 oscStopped() 函数和DS323x数据表,了解有关OSF位的更多信息。

    命令行语法

    RTC.write(tm);

    参数

    tmElements_t: 用于设置日期和时间的结构的地址。

    返回

    I2C状态 ( 字节) 。 如果成功则返回零。

    示例
    tmElements_t tm;tm.Hour = 23; //set the tm structure to 23h31m30s on 13Feb2009tm.Minute = 31;tm.Second = 30;tm.Day = 13;tm.Month = 2;tm.Year = 2009 - 1970; //tmElements_t.Year is the offset from 1970RTC.write(tm); //set the RTC from the tm structure

    读取和写入RTC寄存器或者 static ( SRAM )的方法

    DS3232RTC.h 文件为计时,报警,状态和控制寄存器定义符号名称。 这些可以用于下面函数中的addr参数。

    ( 字节地址,字节/字节字节 nBytes )

    描述

    将一个或者多个字节写入RTC内存。

    命令行语法

    RTC.writeRTC(addr, values, nbytes);

    参数

    地址: 第一个SRAM地址写入 ( 字节) 。 DS3231有效地址范围为 0 x00-0x12,0 x00-0xFF为 DS3232. DS3232的通用SRAM从地址 0 x14开始。 地址未被库检查是否有效。 值:的值,表示要写入的值( *byte )
    字节: 字节的字节,以字节为单位的( 字节) 。 必须在 1和 31 ( 导线库限制) 之间,但不会被库检查。

    返回

    I2C状态 ( 字节) 。 如果成功则返回零。

    示例
    //write 1, 2,.. ., 8 to the first eight DS3232 SRAM locationsbyte buf[8] = {1, 2, 3, 4, 5, 6, 7, 8};
    RTC.sramWrite(0x14, buf, 8);

    writeRTC ( 字节地址,字节值)

    描述

    将单个字节写入RTC存储器。

    命令行语法

    RTC.writeRTC(addr, value);

    参数

    地址: SRAM地址写入 ( 字节) 。 DS3231有效地址范围为 0 x00-0x12,0 x00-0xFF为 DS3232. DS3232的通用SRAM从地址 0 x14开始。 地址未被库检查是否有效。 值:要写入 ( 字节)值。

    返回

    I2C状态 ( 字节) 。 如果成功则返回零。

    示例
    RTC.writeRTC(3, 14); //write the value 14 to SRAM address 3

    ( 字节地址,字节/字节字节 nBytes )

    描述

    从 RTC RAM读取一个或者多个字节。

    命令行语法

    RTC.readRTC(addr, values, nbytes);

    参数

    地址: 第一个SRAM地址读取 ( 字节) 。 DS3231有效地址范围为 0 x00-0x12,0 x00-0xFF为 DS3232. DS3232的通用SRAM从地址 0 x14开始。 地址未被库检查是否有效。 an接收读取的值的array an 。
    nBytes: 字节读取的字节数 ( 字节) 。 必须在 1和 32 ( 导线库限制) 之间,但不会被库检查。

    返回

    I2C状态 ( 字节) 。 如果成功则返回零。

    示例
    //read the last eight locations of SRAM into bufbyte buf[8];
    RTC.sramRead(248, buf, 8);

    readRTC ( 字节地址)

    描述

    从 RTC RAM读取单个字节。

    命令行语法

    RTC.readRTC(addr);

    参数

    地址: SRAM地址,读取 ( 字节) 。 DS3231有效地址范围为 0 x00-0x12,0 x00-0xFF为 DS3232. DS3232的通用SRAM从地址 0 x14开始。 地址未被库检查是否有效。

    返回

    从 RTC ( 字节) 读取的值。

    示例
    byte val;
    val = RTC.readRTC(3); //read the value from SRAM location 3

    报警方法

    DS3232和DS3231有两个报警功能。 Alarm1可以设置为秒精度;Alarm2只能设置为分钟精度。

    ( ALARM_TYPES_t,字节,字节数,字节数,字节数)

    描述

    设置提醒时间。仅设置警报寄存器。 若要在警报匹配时断言 INT pin,请使用 alarmInterrupt() 。 这里方法可以设置警报 1或者警报 2,具体取决于 alarmType ( 使用上面的ALARM_TYPES_t枚举)的值。 设置警报 2时,必须提供秒值,但忽略它,建议使用零。 ( 警报 2没有秒 register 。)

    命令行语法

    RTC.setAlarm(alarmType, seconds, minutes, hours, dayOrDate);

    参数

    alarmType: 值来自ALARM_TYPES_t枚举,above 。 ( ALARM_TYPES_t )
    秒:将警报设置为秒的秒值。 ( 字节)
    分钟:将闹钟设置为分钟值。 ( 字节)
    小时: 小时值设置闹钟。 ( 字节)
    dayOrDate或者月份的日期。 在一周中,使用时间库timeDayOfWeek_t枚举,换句话说,dowSunday,dowMonday,dowTuesday,dowWednesday,dowThursday,dowFriday,dowSaturday的值。 ( 字节)

    返回

    无。

    示例
    //Set Alarm1 for 12:34:56 on SundayRTC.setAlarm(ALM1_MATCH_DAY, 56, 34, 12, dowSunday);

    ( ALARM_TYPES_t alarmType,字节,字节,字节,字节 daydate )

    描述

    设置提醒时间。仅设置警报寄存器。 若要在警报匹配时断言 INT pin,请使用 alarmInterrupt() 。 这里方法可以设置警报 1或者警报 2,具体取决于 alarmType ( 使用上面的ALARM_TYPES_t枚举)的值。 但是,当使用这里方法设置警报 1时,秒值设置为零。 ( 警报 2没有秒 register 。)

    命令行语法

    RTC.setAlarm(alarmType, minutes, hours, dayOrDate);

    参数

    alarmType: 值来自ALARM_TYPES_t枚举,above 。 ( ALARM_TYPES_t )
    分钟:将闹钟设置为分钟值。 ( 字节)
    小时: 小时值设置闹钟。 ( 字节)
    dayOrDate或者月份的日期。 在一周中,使用时间库timeDayOfWeek_t枚举,换句话说,dowSunday,dowMonday,dowTuesday,dowWednesday,dowThursday,dowFriday,dowSaturday的值。 ( 字节)

    返回

    无。

    示例
    //Set Alarm2 for 12:34 on the 4th day of the monthRTC.setAlarm(ALM2_MATCH_DATE, 34, 12, 4);

    alarmInterrupt ( 字节 alarmNumber,布尔 alarmEnabled )

    描述

    启用或者禁用警报"中断"。 注意,这里"中断"会导致断言rtc的INT 。 为了将这个信号作为一个实际中断到微控制器,它需要正确连接并编程在应用程序固件。 在RTC上。

    命令行语法

    RTC.alarmInterrupt(alarmNumber, enable);

    参数

    alarmNumber: 要启用或者禁用的警报数,ALARM_1或者 ALARM_2 ( 字节)
    alarmEnabled: true 或者 false ( 布尔型)

    返回

    无。

    示例
    RTC.alarmInterrupt(ALARM_1, true); //assert the INT pin when Alarm1 occurs.RTC.alarmInterrupt(ALARM_2, false); //disable Alarm2

    报警( 字节 alarmNumber )

    描述

    测试是否已经触发警报。 如果触发警报,则返回 true 并重置RTC中的警报标志,否则返回 false 。

    命令行语法

    RTC.alarm(alarmNumber);

    参数

    alarmNumber: 要测试的警报数,ALARM_1或者 ALARM_2 ( 字节)

    返回

    描述 ( 类型)

    示例
    if ( RTC.alarm(ALARM_1) ) { //has Alarm1 triggered?//yes, act on the alarm}else {
     //no alarm}

    其他方法

    温度( void )

    描述

    返回RTC温度。

    命令行语法

    RTC.temperature();

    参数

    无。

    返回

    RTC温度为摄氏度乘以4 次。 ( int )

    示例
    int t = RTC.temperature();float celsius = t/4.0;float fahrenheit = celsius * 9.0/5.0 + 32.0;

    方波( SQWAVE_FREQS_t频率)

    描述

    启用或者禁用方波输出。

    命令行语法

    RTC.squareWave(freq);

    参数

    频率:来自枚举 above的值。( SQWAVE_FREQS_t )

    返回

    无。

    示例
    RTC.squareWave(SQWAVE_1_HZ); //1 Hz square waveRTC.squareWave(SQWAVE_NONE); //no square wave

    oscStopped ( 布尔 clearOSF )

    描述

    返回控制/状态 register 中的振荡器停止标志( OSF ) 位的值,指示振荡器已经停止,计时数据无效。 根据所传递的参数,可以选择清除OSF位。 如果省略 clearOSF 参数,默认情况下将清除OSF位。 对 set()write()的调用也清除了OSF位。

    命令行语法

    RTC.oscStopped(clearOSF);

    参数

    clearOSF: 一个可选的true 或者 false 值,用于指示是否应该清除OSF位。 如果未提供,则使用 true的默认值,重置OSF位。 ( bool )

    返回

    true 或者 false ( bool )

    示例
    if ( RTC.oscStopped(false) ) { //check the oscillator//may be trouble}else {
     //all is well}


    文章标签:INT  时间  Arduino  实时  最大  Integrated  cloc  时钟  

    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语