InetrfaceProducts NXP / Mbed 2 deprecated PCF2127_Hello

Dependencies:   PCF2127 mbed

Files at this revision

API Documentation at this revision

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