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 );
}