Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Revision 1:86dc8dfe6a20, committed 2014-12-10
- Comitter:
- nxp_ip
- Date:
- Wed Dec 10 01:45:09 2014 +0000
- Parent:
- 0:658f351580f0
- Child:
- 2:47151300f95a
- Commit message:
- RAM access test has been added.; fix for program compile error.
Changed in this revision
| PCF2127.lib | Show annotated file Show diff for this revision Revisions of this file |
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/PCF2127.lib Tue Dec 09 07:23:50 2014 +0000 +++ b/PCF2127.lib Wed Dec 10 01:45:09 2014 +0000 @@ -1,1 +1,1 @@ -http://developer.mbed.org/users/nxp_ip/code/PCF2127/#700e0285cfd8 +http://developer.mbed.org/users/nxp_ip/code/PCF2127/#db76c68f998f
--- a/main.cpp Tue Dec 09 07:23:50 2014 +0000
+++ b/main.cpp Wed Dec 10 01:45:09 2014 +0000
@@ -2,8 +2,8 @@
* A sample code for PCF2127 library
*
* @author Akifumi (Tedd) OKANO, NXP Semiconductors
- * @version 1.6
- * @date 09-Dec-2014
+ * @version 1.7
+ * @date 10-Dec-2014
*
* PCF2127 is a "real time clock (RTC)" module which is including a Xtal and TCXO
* http://www.nxp.com/products/interface_and_connectivity/real_time_clocks/rtcs_with_temp_compensation/series/PCF2127.html
@@ -14,7 +14,6 @@
* This code is refined version of..
* http://developer.mbed.org/users/okano/code/NXP_PCF2127A/
*/
- */
#include "mbed.h"
#include "PCF2127.h"
@@ -24,14 +23,26 @@
void show_time( void );
void set_time( void );
+void RAM_dump( void ); // for PCF2127 only
+void RAM_read_test( void ); // for PCF2127 only
+void RAM_write_test( void ); // for PCF2127 only
+void RAM_test( int last_RAM_content_invalid ); // for PCF2127 only
+
int main()
{
printf( "PCF2127 demo started.\r\n" );
- if ( rtc.is_init_required() ) {
+ int clock_integrity_fail = rtc.is_init_required();
+
+ if ( clock_integrity_fail ) {
set_time();
}
+ /*
+ * Next line can be enabled when using PCF2127 only
+ */
+ //RAM_test( clock_integrity_fail );
+
while ( 1 ) {
show_time();
wait( 0.25 );
@@ -43,18 +54,17 @@
struct tm dt, *dtp;
time_t t;
char s[ 30 ];
-
+
dtp = &dt;
rtc.clear_intr();
// get time information from PCF2127
- if ( PCF2127::TIME_FUNC_ERROR == (t = rtc.time( NULL )) )
- {
+ if ( PCF2127::TIME_FUNC_ERROR == (t = rtc.time( NULL )) ) {
printf( "error at reading time\r\n" );
return;
}
-
+
dtp = localtime( &t );
// print time and date on terminal
@@ -75,3 +85,65 @@
rtc.set_time( s );
}
+
+void RAM_function_test( void )
+{
+}
+
+void RAM_dump( void )
+{
+ char b[ 512 ];
+
+ if ( rtc.RAM_read( 0, b, 512 ) ) {
+ printf( "error at reading RAM\r\n" );
+ }
+
+ for ( int i = 0; i < 512; i++ ) {
+ if ( !(i % 16) ) {
+ printf( "\r\n 0x%03X(%03d): 0x", i, i );
+ }
+ printf( " %02X", b[ i ] );
+ }
+}
+
+const char *texts[] = {
+ "Love the life you live. Live the life you love.",
+ "It always seems impossible until it's done.",
+ "You'll never find a rainbow if you're looking down.",
+ "There is always light behind the clouds."
+};
+
+void RAM_test( int last_RAM_content_invalid )
+{
+ char txt[ 64 ];
+ time_t t;
+
+ if ( !last_RAM_content_invalid ) {
+ rtc.RAM_read( 0, (char *)&t, sizeof( t ) );
+ rtc.RAM_read( 16, txt, sizeof( txt ) );
+ printf( "RAM test read\r\n" );
+ printf( " last program start was on %s\r", ctime( &t ) );
+ printf( " last saved text was \"%s\"\r\n", txt );
+ }
+
+ t = rtc.time( NULL );
+ rtc.RAM_write( 0, (char *)&t, sizeof( t ) );
+ rtc.RAM_write( 16, (char *)texts[ t % 4 ], strlen( texts[ t % 4 ] ) + 1 );
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
PCF2127 and PCF2129 High-accuracy RTC module