DS3231 Test
/*H*******************************************************
DS3231_test.pde Eric Ayars
4/11 Test/demo of read routines for a DS3231 RTC.
Turn on the serial monitor after loading this to check if things are
working as they should.
********************************************************/
#include <DS3231.h>
#include <Wire.h>
//************************* DEFINES ************************************
//************************* PROTOTYPES ************************************
//************************* VARIABLES ************************************
DS3231 myRTC;
bool century = false;
bool h12Flag;
bool pmFlag;
byte alarmDay, alarmHour, alarmMinute, alarmSecond, alarmBits;
bool alarmDy, alarmH12Flag, alarmPmFlag;
/*F********************************************************************
*
**********************************************************************/
void
setup()
{
Wire.begin(); // Start I2C interface
Serial.begin( BAUD ); // Start the serial interface
}
/*F********************************************************************
*
**********************************************************************/
void
loop()
{
// send what's going on to the serial monitor.
// Start with year
Serial.print("2");
Serial.print("1");
else
Serial.print("0");
Serial.print(myRTC.getYear(), DEC);
Serial.print(' ');
// then the month
Serial.print(myRTC.getMonth(century), DEC);
Serial.print(" ");
// then the date
Serial.print(myRTC.getDate(), DEC);
Serial.print(" ");
// and the day of the week
Serial.print(myRTC.getDoW(), DEC);
Serial.print(" ");
// Finally hour, minute, and second
Serial.print( myRTC.getHour(h12Flag, pmFlag), DEC);
Serial.print( " ");
Serial.print( myRTC.getMinute(), DEC);
Serial.print( " ");
Serial.print( myRTC.getSecond(), DEC);
// Add AM/PM indicator
if( h12Flag )
{
if( pmFlag)
Serial.print(" PM ");
else
Serial.print( " AM " );
}
else
Serial.print( " 24h " );
Serial.print( "T=" );
Serial.print( myRTC.getTemperature(), 2 ); // DISPLAY TEMPERATURE
if( myRTC.oscillatorCheck() )
Serial.print( " O+"); // TELL WHETHER TIME IS( LIKELY TO BE) VALID
else
Serial.print( " O-");
if( myRTC.checkIfAlarm( 1 ) )
Serial.print( " A1!" ); // INDICATE WHETHER AN ALARM WENT OFF
if( myRTC.checkIfAlarm( 2 ) )
Serial.print( " A2!");
Serial.println(); // New line on display
// Display Alarm 1 information
Serial.print( "Alarm 1: ");
myRTC.getA1Time( alarmDay, alarmHour, alarmMinute, alarmSecond, alarmBits
, alarmDy, alarmH12Flag, alarmPmFlag);
Serial.print( alarmDay, DEC);
if( alarmDy)
Serial.print(" DoW");
else
Serial.print(" Date");
Serial.print( ' ');
Serial.print( alarmHour, DEC);
Serial.print( ' ');
Serial.print( alarmMinute, DEC);
Serial.print( ' ');
Serial.print( alarmSecond, DEC);
Serial.print( ' ');
if( alarmH12Flag )
{
if( alarmPmFlag)
Serial.print("pm ");
else
Serial.print("am ");
}
if( myRTC.checkAlarmEnabled(1))
Serial.print("enabled");
Serial.println();
// Display Alarm 2 information
Serial.print( "Alarm 2: ");
myRTC.getA2Time( alarmDay, alarmHour, alarmMinute, alarmBits, alarmDy
, alarmH12Flag, alarmPmFlag);
Serial.print( alarmDay, DEC);
if( alarmDy)
Serial.print(" DoW");
else
Serial.print(" Date");
Serial.print( " ");
Serial.print( alarmHour, DEC);
Serial.print( " ");
Serial.print( alarmMinute, DEC);
Serial.print( " ");
if( alarmH12Flag)
{
if( alarmPmFlag)
Serial.print("pm");
else
Serial.print("am");
}
if( myRTC.checkAlarmEnabled( 2 ) )
Serial.print( "enabled" );
Serial.println();
Serial.print("Alarm bits: ");
Serial.println( alarmBits, BIN ); // display alarm bits
Serial.println();
delay( 1000 );
}